والهرم هو سريع، صغير، نزولا إلى الأرض، وإطار التنمية بيثون الويب مفتوحة المصدر على & nbsp؛. فهو يجعل العالم الحقيقي تطوير التطبيقات على شبكة الإنترنت ونشر أكثر متعة، وأكثر قابلية للتنبؤ، وأكثر إنتاجية.
الهرم هو مشروع أبراج، ويكمن وراء أحدث الأطر الويب التي تنتجها المجتمع أبراج.
وكان الهرم المعروف سابقا باسم repoze.bfg.
الدعم و الوثائق
انظر موقع أبراج مشروع لعرض الوثائق، والبق التقرير، والحصول على الدعم.
رخصة
يتم تقديم الهرم تحت رخصة Repoze العامة المستمدة BSD
ما هو الجديد في هذا الإصدار:.
mako_templating: أدرجت الحل دفاعي لعدم importability من ماكو بسبب markupsafe المنبع اسقاط بيثون 3.2 الدعم. سوف ماكو النموذجيه لم تعد تعمل تحت مجموعة من MarkupSafe 0.17 وبيثون 3.2 (على الرغم من أن الجمع بين MarkupSafe 0.17 وبيثون 3.3 أو أي دعم بايثون 2 الإصدار ستعمل OK).
جعل الاعتراض على pyramid.config.assets.PackageOverrides تنفيذ API ل__loader__ الأشياء المحددة في PEP 302. وكلاء لل__loader__ التي وضعتها المستورد، إذا كان موجودا. خلاف ذلك، ويثير NotImplementedError. وهذا يجعل العمل الهرم رأي ثابت يتجاوز بشكل صحيح تحت بيثون 3.3 (في وقت سابق انهم لن). انظر https://github.com/Pylons/pyramid/pull/1015 لمزيد من المعلومات.
ما هو الجديد في الإصدار 1.4:
إصلاح اختبارات وظيفية في البرنامج التعليمي ZODB
ما هو الجديد في النسخة 1.4 بيتا 3:
إطلاق التغليف فقط، أي تغييرات التعليمات البرمجية. كان 1.4b2 بيان brownbag بسبب الدلائل في عداد المفقودين في كتل القطران.
ما هو الجديد في الإصدار 1.3.4:
وعندما تحولت pyramid.debug_routematch على، وكان يستخدم المسند اجتياز في أي طريق، جهاز التوجيه من شأنه أن يرفع استثناء عندما تحاول طباعة المعلومات مسار التصحيح. وقد وجدت هذه الأخطاء منذ 1.3a1.
عندما كان يستخدم المسند اجتياز في أي طريق، فإن proutes وpviews البرامج النصية وحدة التحكم بإصدار استثناء عند محاولة طباعة المعلومات مسار التصحيح. وقد وجدت هذه الأخطاء منذ 1.3a1.
Backport الإصلاح الشوائب من سيده: - في قوالب ماكو البحث، تحقق من وجود أوري المطلق (باستخدام الدلائل ماكو) عندما خلط الميراث مع المواصفات الأصول. https://github.com/Pylons/pyramid/issues/662
عند التسجيل وجهات نظر متعددة مع تقبل المسند في تطبيق الهرم رونينغ تحت بيثون 3، قد حصلوا على TypeError: أنواع unorderable: وظيفة () العلامة & lt؛ وظيفة () استثناء.
Backport من سيده: HTTP نقبل لم يتم تطبيع رؤوس التي يحتمل ان تسبب متضاربة عرض التسجيلات للذهاب دون أن يلاحظها أحد. وجهات النظر التي تختلف فقط في حالة ('نص / HTML' مقابل 'نص / HTML') سوف الآن رفع خطأ. https://github.com/Pylons/pyramid/pull/620
ما هو جديد في الإصدار 1.4 ألفا 1:
علة المآزق:
الميناء إلى الأمام من 1.3 الفرع: عندما تم تكوين أي سياسة التوثيق، فإن الدعوة إلى pyramid.security.effective_principals العودة دون قيد أو شرط على قائمة فارغة. كان هذا غير صحيح، كان ينبغي أن عاد دون قيد أو شرط [الجميع]، والآن لا.
يمكن أن تحتوي صريحة regexes رابط ارسال الآن كولون. https://github.com/Pylons/pyramid/issues/629
على واحدة 64-بت نظام أوبونتو على الأقل في ظل بايثون 3.2، وذلك باستخدام الديكور view_config تسبب في RuntimeError: تغير حجم القاموس خلال التكرار استثناء. أنه لم يعد يفعل. انظر https://github.com/Pylons/pyramid/issues/635 لمزيد من المعلومات.
في قوالب ماكو البحث، معرفة ما اذا كان يتم ضبط أوري بالفعل وإعادته إلى المواصفات الأصول. يحدث عادة مع القوالب الموروثة أو المكونات المدرجة. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
في قوالب ماكو البحث، تحقق من وجود أوري المطلق (باستخدام الدلائل ماكو) عندما خلط الميراث مع المواصفات الأصول. https://github.com/Pylons/pyramid/issues/662
HTTP قبول لم يتم تطبيع رؤوس التي يحتمل ان تسبب متضاربة عرض التسجيلات للذهاب دون أن يلاحظها أحد. وجهات النظر التي تختلف فقط في حالة ('نص / HTML' مقابل 'نص / HTML') سوف الآن رفع خطأ. https://github.com/Pylons/pyramid/pull/620
إلى الأمام الميناء من 1.3 الفرع: عند التسجيل وجهات نظر متعددة مع تقبل المسند في تطبيق الهرم رونينغ تحت بيثون 3، كنت قد تلقى TypeError: أنواع unorderable: وظيفة () العلامة & lt؛ وظيفة () استثناء.
الميزات:
Configurator.add_directive يقبل الآن callables التعسفية مثل جزئيات أو الأشياء تنفيذ __call__ التي لا تملك __name__ و__doc__ الصفات. انظر https://github.com/Pylons/pyramid/issues/621 وhttps://github.com/Pylons/pyramid/pull/647.
ويمكن الآن عرض الطرف الثالث العرف، والطريق، والمشترك المسندات أن تضاف للاستخدام من قبل جهة نظر الكتاب عبر pyramid.config.Configurator.add_view_predicate، pyramid.config.Configurator.add_route_predicate وpyramid.config.Configurator.add_subscriber_predicate. لذلك، على سبيل المثال، القيام بذلك:
config.add_view_predicate ('اي بي سي'، my.package.ABCPredicate)
قد تسمح للمؤلف بغية القيام بذلك في أحد التطبيقات التي تم تكوينها أن المسند:
view_config (ABC = 1)
وتوجد ميزات مشابهة لadd_route، وadd_subscriber. انظر ومثل، إضافة طرف ثالث مشاهدة، الطريق، أو المشترك المسند ومثل. في الفصل السنانير لمزيد من المعلومات.
لاحظ أن التغييرات التي تم إجراؤها لدعم ميزة أعلاه يعني الآن أن الإجراءات فقط الأعضاء المسجلين باستخدام نفس ومثل؛ النظام ومثل. يمكن أن تتعارض مع بعضها البعض. كان عليه أن يكون الحال أن الإجراءات التي سجلت في أوامر مختلفة يمكن أن تتعارض، ولكن لبلدي شيئا المعرفة من أي وقت مضى تعتمد على هذا السلوك (كان سخيفا بعض الشيء).
كائنات مخصصة يمكن أن يتم بسهولة JSON-SERIALIZABLE في الهرم عن طريق تحديد طريقة __json__ على الطبقة الكائن. هذه الطريقة يجب أن تعود القيم تسلسل أصلا من قبل json.dumps (مثل [إينتس]، والقوائم والقواميس، والسلاسل، وهكذا دواليك).
العارض JSON يسمح الآن لتعريف محولات النوع المخصص لتحويل أجسام مجهولة لالتسلسلات JSON.
اعتبارا من هذا الإصدار، المسند REQUEST_METHOD، عندما تستخدم، سوف يعني أيضا فهذا يعني ضمنا أن الرأس عند استخدام GET. على سبيل المثال، وذلك باستخدامview_config (REQUEST_METHOD = 'الحصول على') ما يعادل باستخدامview_config (REQUEST_METHOD = ('الحصول'، 'الرأس')). باستخدامview_config (REQUEST_METHOD = ('الحصول'، 'ما بعد') ما يعادل باستخدامview_config (REQUEST_METHOD = ('الحصول'، 'الرأس'، 'ما بعد'). وذلك لأن الرأس هو البديل من GET أن يغفل الجسم، وWebOb ديه دعم خاص لإرجاع الجسم فارغة عند استخدام الرأس.
وقد تم إدخال config.add_request_method لدعم توسيع الأجسام الطلب مع callables التعسفي. يوسع هذا الأسلوب على config.set_request_property السابق عن طريق وسائل دعم وكذلك الممتلكات. هذه الطريقة يؤدي الآن أقل كود ليتم تنفيذها بناء على طلب وقت البناء من config.set_request_property في الإصدار 1.3.
لا تقم بإضافة؟ إلى عناوين URL التي تولدها request.resource_url إذا تم توفير حجة الاستعلام ولكن فارغة.
لا تقم بإضافة؟ إلى عناوين URL التي تولدها request.route_url إذا تم توفير حجة _query لكن فارغة.
آلية عرض ثابتة يثير الآن (بدلا من العائدات) HTTPNotFound وHTTPMovedPermanently الاستثناءات، لذلك فان هذه يمكن اشتعلت من قبل الرأي NotFound (وجهات النظر الأخرى استثناء).
العارض ماكو يدعم الآن اسم مواطنه في المواصفات الأصول. عندما موجود في المواصفات الأصول اسم مواطنه، فإن النظام يجعل مواطنه القالب داخل القالب وسيعود النتيجة. على سبيل المثال المواصفات الأصول هي الحزمة: مسار / إلى / قالب # defname.mako. وهذا يجعل defname اسمه مواطنه داخل القالب template.mako بدلا من تقديم القالب بأكمله. الطريقة القديمة من إرجاع الصفوف (tuple) في شكل ('defname'، {}) من وجهة نظر ويدعم لالتوافق،
العارض الحرباء ZPT يقبل الآن اسم ماكرو في المواصفات الأصول. عندما موجود في المواصفات الأصول اسم الماكرو، سيقوم النظام تجعل الماكرو المدرجة باعتباره الكلي تحديد وإرجاع النتيجة بدلا من تقديم القالب بأكمله. على سبيل المثال المواصفات الأصول: حزمة: مسار / إلى / قالب # macroname.pt. وهذا يجعل الماكرو الذي يعرف بأنه macroname داخل القالب template.pt بدلا من templae بأكمله.
عندما يكون هناك استثناء المسند عدم تطابق (ينظر عندما يطابق أي رأي لطلب معين بسبب المسندات لا يعمل)، باستثناء يحتوي الآن على وصفا نصيا من المسند الذي لم تطابق.
تمت إضافة وسيلة التوجيه add_permission إلى تحديد مواصفات. هذا التوجيه يسجل introspectable إذن قائمة بذاتها في النظام التأمل الهرم. وبالتالي يمكن أطر بنيت على قمة الهرم استخدام الأذونات البيانات فئة introspectable لبناء قائمة شاملة من الأذونات التي يدعمها نظام التشغيل. قبل أن تضاف هذه الطريقة، تم تسجيل أذونات بالفعل في هذه الفئة introspectable كأثر جانبي تسمية لهم في مكالمة add_view، وهذه الطريقة فقط يجعل من الممكن لترتيب لإذن لوضعها في أذونات فئة introspectable دون تسمية ذلك جنبا إلى جنب مع وجهة نظر المرتبطة بها. وفيما يلي مثال على استخدام add_permission:
التكوين = تحديد مواصفات ()
config.add_permission ('الرأي')
وUnencryptedCookieSessionFactoryConfig يقبل الآن signed_serialize وsigned_deserialize السنانير التي يمكن استخدامها للتأثير على الطريقة التي سخرها جلسات (افتراضيا يتم ذلك مع HMAC + المخلل).
pyramid.testing.DummyRequest الآن يدعم الأساليب التي قدمتها الطبقة pyramid.util.InstancePropertyMixin مثل set_property.
طلب الخصائص والأساليب وأضاف عبر config.set_request_property أو config.add_request_method متاحة لفتيات مراهقات الآن.
طلب الخصائص والأساليب وأضاف عبر config.set_request_property أو config.add_request_method تتوفر في كائن طلب عاد من pyramid.paster.bootstrap الآن.
request.context من الطلب البيئة أثناء التمهيد هو الآن الكائن الجذر إذا لم يتم بالفعل وضع السياق على طلب تقدم.
وظيفة pyramid.decorator.reify هي الآن API، وتضاف إلى وثائق API.
وأضاف مدير السياق pyramid.testing.testConfig، والتي يمكن استخدامها لتوليد مكون في الاختبار، على سبيل المثال مع testing.testConfig (...) :.
ويمكن للمستخدمين الآن تحتج على subrequest من ضمن التعليمات البرمجية عرض باستخدام API request.invoke_subrequest الجديد.
الإستنكار:
كانت pyramid.config.Configurator.set_request_property-إهمال الوثائق. لا يزال طريقة صالحة للاستعمال ولكن يجب استخدام pyramid.config.Configurator.add_request_method أكثر featureful في مكانها (له كل نفس القدرات ولكن يمكن أيضا توسيع الكائن الطلب مع الأساليب).
إلى الوراء عدم التوافق:
جهاز التوجيه الهرم لم يعد يضيف القيم bfg.routes.route أو bfg.routes.matchdict إلى قاموس البيئة WSGI على طلب ل. وكانت هذه القيم في repoze.bfg 1.0 إهمال المستندات (على نحو فعال سبعة النشرات طفيفة قبل). إذا التعليمات البرمجية الخاصة بك يعتمد على هذه القيم، استخدم request.matched_route وrequest.matchdict بدلا من ذلك.
أنه لم يعد من الممكن لتمرير القاموس البيئى مباشرة إلى pyramid.traversal.ResourceTreeTraverser .__ call__ (الملقب ModelGraphTraverser .__ call__). بدلا من ذلك، يجب أن تجتاز كائن الطلب. يمر بيئة بدلا من طلب ولدت تحذيرا انتقاص منذ الهرم 1.1.
سوف الهرم لم تعد تعمل بشكل صحيح إذا كنت تستخدم webob.request.LegacyRequest كمصنع الطلب. مثيلات LegacyRequest الطبقة لها request.path_info التي تعود سلسلة. هذا الإصدار الهرم يفترض أنه لن يكون دون قيد أو شرط request.path_info يونيكود.
قد أزيلت وظائف من pyramid.chameleon_zpt وpyramid.chameleon_text اسمه get_renderer، get_template، render_template، وrender_template_to_response. وقد أصدرت هذه تحذير انتقاص عند الاستيراد منذ الهرم 1.0. استخدام pyramid.renderers.get_renderer ()، pyramid.renderers.get_renderer (). التنفيذ ()، pyramid.renderers.render () أو pyramid.renderers.render_to_response على التوالي بدلا من هذه الوظائف.
تمت إزالة وحدة pyramid.configuration. تم إهمال منذ الهرم 1.0 والمطبوعة تحذيرا انتقاص على استخدامها. استخدام pyramid.config بدلا من ذلك.
تمت إزالة API pyramid.paster.PyramidTemplate. تم إهمال منذ الهرم 1.1 وتحذيرا على الاستيراد. إذا التعليمات البرمجية الخاصة بك يعتمد على هذا، وضبط التعليمات البرمجية لاستيراد pyramid.scaffolds.PyramidTemplate بدلا من ذلك.
تمت إزالة API pyramid.settings.get_settings (). أنه قد تم طباعة تحذير انتقاص منذ الهرم 1.0. إذا التعليمات البرمجية الخاصة بك يعتمد على هذه API، استخدم pyramid.threadlocal.get_current_registry (). الإعدادات بدلا من ذلك أو استخدام السمة إعدادات التسجيل المتاحة من الطلب (request.registry.settings).
تمت إزالة هذه واجهات برمجة التطبيقات من وحدة pyramid.testing. كان قد تم طباعة تحذيرات انتقاص منذ الهرم 1.0:
registerDummySecurityPolicy، استخدم pyramid.config.Configurator.testing_securitypolicy بدلا من ذلك.
registerResources (الملقب registerModels، استخدم pyramid.config.Configurator.testing_resources بدلا من ذلك.
registerEventListener، استخدم pyramid.config.Configurator.testing_add_subscriber بدلا من ذلك.
registerTemplateRenderer (الملقب registerDummyRenderer`)، استخدم pyramid.config.Configurator.testing_add_template بدلا من ذلك.
registerView، استخدم pyramid.config.Configurator.add_view بدلا من ذلك.
registerUtility، استخدم pyramid.config.Configurator.registry.registerUtility بدلا من ذلك.
registerAdapter، استخدم pyramid.config.Configurator.registry.registerAdapter بدلا من ذلك.
registerSubscriber، استخدم pyramid.config.Configurator.add_subscriber بدلا من ذلك.
registerRoute، استخدم pyramid.config.Configurator.add_route بدلا من ذلك.
registerSettings، استخدم pyramid.config.Configurator.add_settings بدلا من ذلك.
في الهرم 1.3 والسابقة، تم استدعاء أسلوب __call__ لكائن الاستجابة قبل أعدم أي الاسترجاعات النهائية. اعتبارا من هذا الإصدار، يتم استدعاء أسلوب __call__ لكائن الاستجابة بعد يتم تنفيذ الاستدعاء النهائية. هذا هو لدعم request.invoke_subrequest الميزة.
وثائق:
وأضاف لومثل، رفع الهرم ومثل. الفصل إلى وثائق السرد. فهو يصف كيفية التعامل مع الإستنكار وإزالتها من واجهات برمجة التطبيقات الهرم وكيفية إظهار تحذيرات انتقاص ولدت الهرم أثناء تشغيل الاختبارات وأثناء تشغيل ملقم.
أضاف ومثل، استدعاء لSubrequest ومثل. الفصل إلى الوثائق. فهو يصف كيفية استخدام API request.invoke_subrequest الجديد.
التبعيات:
الهرم يتطلب الآن WebOb 1.2b3 + (الإصدار الهرم مسبق الاعتماد فقط على 1.2dev +). هذا هو التأكد من أن نحصل على نسخة من WebOb أن يعود request.path_info كنص.
ما هو الجديد في الإصدار 1.3.2:
وكانت النسخة 1.3.1 بيان brownbag، على الأقل جدا على ويندوز وربما على أنظمة التشغيل الأخرى، وذلك بسبب وجود الضالة ومثل، (شملت الاقتباس) دليل الحزم في الدليل الجذر من كتل القطران 1.3.1. كان هذا الدليل ومحتوياته الحالي بسبب تم إنشاء كتل القطران باستخدام الإصدار من setuptools-بوابة بدلا من setuptools-بوابة بتثبيت من الخروج. وكان التغيير الوحيد في هذا الإصدار هو لتصحيح الخطأ التعبئة والتغليف في 1.3.1.
ما هو الجديد في الإصدار 1.3:
وعندما يدعو pyramid.wsgi.wsgiapp2 في WSGI التطبيق المصب، سوف البيئى التطبيق لم يعد لديها (إهمال ويحتمل أن تكون مضللة) bfg.routes. matchdict أو bfg.routes.route المفاتيح في ذلك. ومن شأن أعراض هذا الخطأ أن يكون التطبيق الهرم ملفوفة wsgiapp2 العثور على الرأي الخطأ لأنه يكتشف خطأ أن الطريق كان يقابل عندما، في الواقع، لم يكن.
قدم الإصلاح للقضية https://github.com/Pylons/pyramid/issues/461 (والتي جعلت من الممكن لأساليب المثال لاستخدامها رأي callables) عدم توافق الوراء عندما استخدمت الأساليب التي أعلنت فقط حجة الطلب. انظر https://github.com/Pylons/pyramid/issues/503
ما هو الجديد في النسخة 1.3 بيتا 2:
طريقة pyramid.request.Request.partial_application_url لم يعد في مستندات API. كان من المفترض أن تكون وسيلة الخاص؛ كان نشره في وثائق كطريقة API خطأ، وتمت إعادة تسمية إلى شيء خاص.
عندما تم تسجيل وجهة نظر ثابتة باستخدام مسار الملفات المطلق على ويندوز، فإن وظيفة request.static_url لا تعمل على توليد عناوين المواقع إلى مواردها. أعراض: ومثل، لا ثابتة تعريف URL مطابقة ج: foobarbaz & مثل ؛.
جعل جميع الاختبارات تمر على نظام التشغيل Windows XP.
خطأ في المصادقة ACL التدقيق على بيثون 3: التصاريح وprincipals_allowed_by_permission طريقة pyramid.authorization.ACLAuthenticationPolicy يمكن بإرجاع القيمة الحقيقية غير لائقة عندما كان إذن على ACL سلسلة بدلا من التسلسل، وبعد ذلك فقط إذا كانت سلسلة إذن ACL ل فرعية من قيمة إذن مرت على وظيفة.
هذه الآثار علة أي نشر الهرم تحت بايثون 2. فمن خلل موجود فقط في نشر يعمل على بايثون 3. فهي موجودة منذ الهرم 1.3a1.
كان هذا الخطأ بسبب وجود سمة __iter__ على الاوتار تحت بيثون 3 وهي ليست موجودة تحت السلاسل في بايثون 2.
ما هو الجديد في النسخة 1.3 بيتا 1:
علة المآزق:
لم pyramid.config.Configurator.with_package لا تعمل إذا كان تحديد مواصفات وpyramid.configuration.Configurator المثال على الطراز القديم.
لم تظهر سياسات ترخيص الهرم حتى في introspector.
الإستنكار:
تم إزالة كل ما يشير إلى المتغير طلب tmpl_context من مستندات. وجودها في الهرم هو مربكة بالنسبة للأشخاص الذين كانوا أبدا أبراج المستخدمين. تم إضافته للسهولة ترقية للمستخدمين أبراج في الهرم 1.0، لكنه لم اشتعلت على لأن النظام تقديم الهرم هو الكثير مختلفة من أبراج "كان وجود طرق بديلة لتفعل ما تم تصميمه لتقدمه في أبراج. وسوف تستمر في الوجود ومثل، إلى الأبد ومثل. لكنه لن يكون الموصى بها أو المذكورة في مستندات.
المتطلبات:
بيثون
لم يتم العثور على التعليقات