الفرق بين المراجعتين ل"Python/LZMACompressor"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الصنف <code>lzma.LZMACompressor</code> في بايثون}}</noinclude> تنشئ هذه الدالة البانية كائن compressor ج...')
 
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:الصنف <code>lzma.LZMACompressor</code> في بايثون}}</noinclude>
 
<noinclude>{{DISPLAYTITLE:الصنف <code>lzma.LZMACompressor</code> في بايثون}}</noinclude>
  
تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً. راجع توثيق الدالة compress()‎ لضغط البيانات دفعة واحدة.
+
تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً. راجع توثيق الدالة <code>compress()</code>‎ لضغط البيانات دفعة واحدة.
 
 
 
 
 
== البنية العامة ==
 
== البنية العامة ==
  
سطر 12: سطر 10:
 
== المعاملات ==
 
== المعاملات ==
  
يحدّد المعامل format نوع تنسيق الحاوية الذي يجب استخدامه، ويأخذ القيم التالية:
+
يحدّد المعامل <code>format</code> نوع تنسيق الحاوية الذي يجب استخدامه، ويأخذ القيم التالية:
  
* FORMAT_XZ: تنسيق الحاوية ‎.xz هذا هو التنسيق الافتراضي.
+
* <code>FORMAT_XZ</code>: تنسيق الحاوية ‎<code>.xz</code> هذا هو التنسيق الافتراضي.
* FORMAT_ALONE: تنسيق الحاوية ‎.lzma القديم.
+
* <code>FORMAT_ALONE</code>: تنسيق الحاوية ‎<code>.lzma</code> القديم.
هذا التنسيق أكثر محدودية من التنسيق ‎.xz، ولا يدعم اختبارات السلامة integrity checks أو المرشحات المتعددة multiple filters.
+
هذا التنسيق أكثر محدودية من التنسيق ‎<code>.xz</code>، ولا يدعم اختبارات السلامة integrity checks أو المرشحات المتعددة multiple filters.
* Format_RAW: تدفق بيانات خام، ولا يستخدم تنسيق حاوية.
+
* <code>Format_RAW</code>: تدفق بيانات خام، ولا يستخدم تنسيق حاوية.
  
لا يدعم هذا التنسيق اختبارات السلامة، ويتطلب دائمًا تحديد سلسلة ترشيح خاصة (لعمليتي الضغط وفك الضغط) إلى جانب عدم إمكانية فك الضغط عن البيانات المضغوطة بهذه الصيغة بواسطة الصيغة FORMAT_AUTO. (راجع كائن LZMADecompressor).
+
لا يدعم هذا التنسيق اختبارات السلامة، ويتطلب دائمًا تحديد سلسلة ترشيح خاصة (لعمليتي الضغط وفك الضغط) إلى جانب عدم إمكانية فك الضغط عن البيانات المضغوطة بهذه الصيغة بواسطة الصيغة <code>FORMAT_AUTO</code>. (راجع كائن <code>[[Python/LZMADecompressor|LZMADecompressor]]</code>).
  
 
=== <code>check</code> ===
 
=== <code>check</code> ===
سطر 25: سطر 23:
 
يحدّد هذا المعامل نوع اختبار السلامة integrity check الذي سيُضمَّن في البيانات المضغوطة، ويستخدم هذا الاختبار عند إجراء عملية فك الضغط وذلك لضمان عدم تعرّض البيانات للتلف. ويمكن لهذا المعامل أن يأخذ إحدى القيم التالية:
 
يحدّد هذا المعامل نوع اختبار السلامة integrity check الذي سيُضمَّن في البيانات المضغوطة، ويستخدم هذا الاختبار عند إجراء عملية فك الضغط وذلك لضمان عدم تعرّض البيانات للتلف. ويمكن لهذا المعامل أن يأخذ إحدى القيم التالية:
  
* CHECK_NONE: لا يوجد اختبار للسلامة، وهذه هي القيمة الافتراضية (والقيمة الوحيدة المقبولة) للصيغتين FORMAT_ALONE و FORMAT_RAW.
+
* <code>CHECK_NONE</code>: لا يوجد اختبار للسلامة، وهذه هي القيمة الافتراضية (والقيمة الوحيدة المقبولة) للصيغتين <code>FORMAT_ALONE</code> و <code>FORMAT_RAW</code>.
* CHECK_CRC32: اختبار التكرار الدوري 32-بت.
+
* <code>CHECK_CRC32</code>: اختبار التكرار الدوري 32-بت.
* CHECK_CRC64: اختبار التكرار الدوري 64-بت، وهذه هي القيمة الافتراضية للصيغة FORMAT_XZ.
+
* <code>CHECK_CRC64</code>: اختبار التكرار الدوري 64-بت، وهذه هي القيمة الافتراضية للصيغة <code>FORMAT_XZ</code>.
* CHECK_CRC256: خوارزمية التقطيع الآمن 256-بت.
+
* <code>CHECK_CRC256</code>: خوارزمية التقطيع الآمن 256-بت.
  
إن كان الاختبار المحدد غير مدعوم من قبل الصيغة، تُطلق اللغة الاستثناء LZMAError.
+
إن كان الاختبار المحدد غير مدعوم من قبل الصيغة، تُطلق اللغة الاستثناء <code>LZMAError</code>.
  
يمكن تحديد إعدادات الضغط إما باستخدام مستوى ضغط معدّ مسبقًا (باستخدام المعامل preset) أو بالتفصيل كسلسلة ترشيح مخصّصة (باستخدام المعامل filters).
+
يمكن تحديد إعدادات الضغط إما باستخدام مستوى ضغط معدّ مسبقًا (باستخدام المعامل <code>preset</code>) أو بالتفصيل كسلسلة ترشيح مخصّصة (باستخدام المعامل <code>filters</code>).
  
في حال توفّر قيمة للمعامل preset فيجب أن تتدرج بين 0 و 9 (ضمنيًا)، ويمكن إضافة الثابت PRESET_EXTREME باستخدام المعامل OR. في حال عدم توفّر قيمة للمعامل preset أو filters فإنّ السلوك الافتراضية يقضي باستخدام الثابت PRESET_DEFAULT (المستوى 6 المعدّ مسبقًا). تنتج الإعدادت المسبقة ذات الأرقام الأعلى مخرجات أصغر، ولكنّها تجعل عملية الضغط أبطأ.
+
في حال توفّر قيمة للمعامل <code>preset</code> فيجب أن تتدرج بين <code>0</code> و <code>9</code> (ضمنيًا)، ويمكن إضافة الثابت <code>PRESET_EXTREME</code> باستخدام المعامل <code>OR</code>. في حال عدم توفّر قيمة للمعامل <code>preset</code> أو <code>filters</code> فإنّ السلوك الافتراضية يقضي باستخدام الثابت <code>PRESET_DEFAULT</code> (المستوى <code>6</code> المعدّ مسبقًا). تنتج الإعدادت المسبقة ذات الأرقام الأعلى مخرجات أصغر، ولكنّها تجعل عملية الضغط أبطأ.
  
 
'''ملاحظة''':
 
'''ملاحظة''':
  
تتطلّب عمليات الضغط التي تستخدم إعدادات مسبقة ذات قيمة عالية قدرة معالجة عالية جدًّا إضافة إلى استهلاكها لمقدار كبير من الذاكرة (وتنتج عن هذه العمليات مخرجات تحتاج إلى المزيد من الذاكرة لفك الضغط عنها). فعلى سبيل المثال قد يصل استهلاك الكائن LZMACompressor للذاكرة مع الإعداد المسبق 9 إلى 800 MiB؛ لذا يُنصح عمومًا باستخدام الإعدادات الافتراضية.
+
تتطلّب عمليات الضغط التي تستخدم إعدادات مسبقة ذات قيمة عالية قدرة معالجة عالية جدًّا إضافة إلى استهلاكها لمقدار كبير من الذاكرة (وتنتج عن هذه العمليات مخرجات تحتاج إلى المزيد من الذاكرة لفك الضغط عنها). فعلى سبيل المثال قد يصل استهلاك الكائن <code>LZMACompressor</code> للذاكرة مع الإعداد المسبق <code>9</code> إلى <code>800 MiB</code>؛ لذا يُنصح عمومًا باستخدام الإعدادات الافتراضية.
  
 
=== <code>filter</code> ===
 
=== <code>filter</code> ===

المراجعة الحالية بتاريخ 17:25، 12 نوفمبر 2018


تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً. راجع توثيق الدالة compress()‎ لضغط البيانات دفعة واحدة.

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

lzma.LZMACompressor(format=FORMAT_XZ, check=-1, preset=None, filters=None)

المعاملات

يحدّد المعامل format نوع تنسيق الحاوية الذي يجب استخدامه، ويأخذ القيم التالية:

  • FORMAT_XZ: تنسيق الحاوية ‎.xz هذا هو التنسيق الافتراضي.
  • FORMAT_ALONE: تنسيق الحاوية ‎.lzma القديم.

هذا التنسيق أكثر محدودية من التنسيق ‎.xz، ولا يدعم اختبارات السلامة integrity checks أو المرشحات المتعددة multiple filters.

  • Format_RAW: تدفق بيانات خام، ولا يستخدم تنسيق حاوية.

لا يدعم هذا التنسيق اختبارات السلامة، ويتطلب دائمًا تحديد سلسلة ترشيح خاصة (لعمليتي الضغط وفك الضغط) إلى جانب عدم إمكانية فك الضغط عن البيانات المضغوطة بهذه الصيغة بواسطة الصيغة FORMAT_AUTO. (راجع كائن LZMADecompressor).

check

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

  • CHECK_NONE: لا يوجد اختبار للسلامة، وهذه هي القيمة الافتراضية (والقيمة الوحيدة المقبولة) للصيغتين FORMAT_ALONE و FORMAT_RAW.
  • CHECK_CRC32: اختبار التكرار الدوري 32-بت.
  • CHECK_CRC64: اختبار التكرار الدوري 64-بت، وهذه هي القيمة الافتراضية للصيغة FORMAT_XZ.
  • CHECK_CRC256: خوارزمية التقطيع الآمن 256-بت.

إن كان الاختبار المحدد غير مدعوم من قبل الصيغة، تُطلق اللغة الاستثناء LZMAError.

يمكن تحديد إعدادات الضغط إما باستخدام مستوى ضغط معدّ مسبقًا (باستخدام المعامل preset) أو بالتفصيل كسلسلة ترشيح مخصّصة (باستخدام المعامل filters).

في حال توفّر قيمة للمعامل preset فيجب أن تتدرج بين 0 و 9 (ضمنيًا)، ويمكن إضافة الثابت PRESET_EXTREME باستخدام المعامل OR. في حال عدم توفّر قيمة للمعامل preset أو filters فإنّ السلوك الافتراضية يقضي باستخدام الثابت PRESET_DEFAULT (المستوى 6 المعدّ مسبقًا). تنتج الإعدادت المسبقة ذات الأرقام الأعلى مخرجات أصغر، ولكنّها تجعل عملية الضغط أبطأ.

ملاحظة:

تتطلّب عمليات الضغط التي تستخدم إعدادات مسبقة ذات قيمة عالية قدرة معالجة عالية جدًّا إضافة إلى استهلاكها لمقدار كبير من الذاكرة (وتنتج عن هذه العمليات مخرجات تحتاج إلى المزيد من الذاكرة لفك الضغط عنها). فعلى سبيل المثال قد يصل استهلاك الكائن LZMACompressor للذاكرة مع الإعداد المسبق 9 إلى 800 MiB؛ لذا يُنصح عمومًا باستخدام الإعدادات الافتراضية.

filter

يجب أن تكون قيمة هذا المعامل (في حال توفرها) محدّد سلسلة ترشيح filter chain specifier.

راجع موضوع تحديد سلاسل ترشيح مخصصة للمزيد من التفاصيل.

توابع الصنف LZMACompressor

تقدّم كائنات LZMACompressor التوابع التالية:

التابع compress()‎

يقدّم التابع البيانات المعطاة إلى كائن compressor، ويعيد البيانات المضغوطة إن أمكن ذلك، وإلا فإنه يعيد سلسلة بايتات فارغة.

التابع flush()‎

يتمّ التابع عملية الضغط، ويعيد البيانات المضغوطة المتبقية في ذاكرة التخزين الداخلية internal buffer.

مصادر