פרטי תוכנה:
פירמידה היא,, במסגרת פיתוח אינטרנט Python קוד פתוח & nbsp מהיר, קטן למטה אל אדמה;. זה גורם לפיתוח יישומי האינטרנט בעולם האמיתי ופריסה יותר כיף, יותר לחיזוי, ופורה יותר.
פירמידה היא פרויקט מיגון עמודים, ועומדת בבסיס מסגרות האינטרנט החדשים ביותר המיוצרות על ידי קהילת עמודי החשמל.
הפירמידה הייתה ידועה בעבר כrepoze.bfg.
תמיכה ותיעוד
ראה אתר האינטרנט של מיגון עמודי פרויקט כדי להציג תיעוד, באגים דו"ח, ולקבל תמיכה.
רישיון
פירמידה מוצעת תחת רישיון Repoze הציבורי הנגזר BSD
מה חדש בהודעה זו :.
- mako_templating: הגנה הוסיף פתרון אלטרנטיבי לאי-importability של mako בשל markupsafe במעלה הזרם יפסיק את תמיכת Python 3.2. בניית תבנית Mako כבר לא תעבוד תחת השילוב של MarkupSafe 0.17 ופייתון 3.2 (אם כי השילוב של MarkupSafe 0.17 וPython 3.3 או כל Python 2 גרסה נתמכת יעבדו על אישור).
מה חדש בגרסה 1.4:
- תקן בדיקות פונקציונליות בהדרכת ZODB
מה חדש בגרסת 1.4 Beta 3:
- שחרור אריזה בלבד, ללא שינויים בקוד. 1.4b2 היה שחרור brownbag בשל חסר ספריות בtarball.
מה חדש בגרסת 1.3.4:
- כאשר pyramid.debug_routematch היה מופעל והחוצה הנשוא היה בשימוש בכל דרך, נתב יעלה חריג בעת ניסיון הדפסת המידע לאיתור באגים מסלול. באג זה קיים מאז 1.3a1.
- כאשר הנשוא חוצה היה בשימוש בכל מסלול, proutes וpviews תסריטי קונסולה יעלו חריג בעת ניסיון הדפסת מידע מסלול באגים. באג זה קיים מאז 1.3a1.
- תיקון באג Backport מהורים: - בבדיקת Mako תבניות, לבדוק אורי מוחלטים (באמצעות ספריות mako) כאשר ערבוב עד ירושה עם מפרט נכס. https://github.com/Pylons/pyramid/issues/662
- בעת ההרשמה תצוגות מרובות עם נשוא קיבל ביישום פירמידת runing תחת Python 3, וייתכן שקבלת TypeError: סוגי unorderable: פונקציה () & lt; פונקציה () יוצא מן הכלל.
- Backport מהורים: HTTP קבל כותרות לא להיות מנורמלות גורמות פוטנציאלי מתנגשים רישומי נוף לנעלמו מעיניו. שתי השקפות שונות רק במקרה ("text / html" לעומת "text / HTML ') יהיה עכשיו להעלות שגיאה. https://github.com/Pylons/pyramid/pull/620
מה חדש בגרסה 1.4 אלפא 1:
- תיקוני באגים:
- יציאה קדימה מ1.3 סניף: כאשר אין מדיניות אימות הוגדרה, קריאה לpyramid.security.effective_principals הייתה ללא תנאי להחזיר את הרשימה הריקה. זה לא היה נכון, זה צריך להיות ללא תנאי חזר [כולם], ועכשיו עושה.
- משלוח url מפורש יכול כעת לכלול נקודותיים. https://github.com/Pylons/pyramid/issues/629
- בלפחות מערכת אחת של 64 סיביות אובונטו תחת Python 3.2, באמצעות מעצב view_config גרם RuntimeError: המילון השתנה גודל באיטרציה יוצא מן הכלל. זה כבר לא עושה. ראה https://github.com/Pylons/pyramid/issues/635 לקבלת מידע נוסף.
- בבדיקת Mako תבניות, לבדוק אם אורי הוא כבר מותאמים ולהחזיר אותו למפרט נכס. בדרך כלל מתרחש עם תבניות בירושה או רכיבים כלולים. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- בבדיקת Mako תבניות, לבדוק אורי מוחלטים (באמצעות ספריות mako) כאשר הערבוב עד ירושה עם מפרט נכס. https://github.com/Pylons/pyramid/issues/662
- HTTP קבל כותרות לא להיות מנורמלות גורמות פוטנציאלי מתנגשים רישומי נוף לנעלמו מעיניו. שתי השקפות שונות רק במקרה ("text / html" לעומת "text / HTML ') יהיה עכשיו להעלות שגיאה. https://github.com/Pylons/pyramid/pull/620
- צופה פני יציאה מ1.3 סניף: בעת ההרשמה תצוגות מרובות עם נשוא קיבל ביישום פירמידת runing תחת Python 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 ('abc', my.package.ABCPredicate)
- עשוי לאפשר מחבר במטרה לעשות את זה ביישום שמוגדר נשוא ש:
- view_config (abc = 1)
- תכונות דומים קיימות עבור add_route, וadd_subscriber. ראה & quot; הוספת צד שלישי צפה ב, כביש, או המנוי Predicate & quot; בפרק הוקס לקבלת מידע נוסף.
- שים לב ששינויים שנעשו כדי לתמוך בתכונה מעל עכשיו אומר שרק פעולות רשומות באמצעות אותו & quot; כדי & quot; יכול להתנגש אחד עם השני. זה היה אמור להיות במקרה זה פעולות רשומות בהזמנות שונות עלול סכסוך, אבל למיטב ידיעתי שום דבר אי פעם היה תלוי בהתנהגות זו (זה היה קצת טיפשי).
- מותאמים אישית יכולים להתבצע בקלות JSON-serializable בפירמידה על ידי הגדרת שיטת __json__ על מעמדו של האובייקט. שיטה זו אמורה לחזור ערכי serializable מקורי על ידי json.dumps (כגון ints, רשימות, מילונים, מחרוזות, וכן הלאה).
- מפיק JSON עכשיו מאפשר להגדרה של מתאמי סוג מותאם אישית כדי להמיר אובייקטים ידועים לserializations JSON.
- נכון למהדורה זו, נשוא REQUEST_METHOD, כאשר משתמש בו, גם לרמוז ראש המשתמע בעת שימוש GET. לדוגמא, באמצעותview_config (REQUEST_METHOD = 'GET') הוא שווה ערך לשימוש ב@view_config (REQUEST_METHOD = ('ראש' 'GET',)). באמצעותview_config (REQUEST_METHOD = ("GET", "POST") הוא שווה ערך לשימוש ב@view_config (REQUEST_METHOD = ("GET", 'ראש', 'POST'). זאת, משום שהראש הנו נגזר של GET שמשמיט גוף, ויש לו תמיכת WebOb מיוחדת לחזור גוף ריק כאשר משתמש בראש.
- config.add_request_method כבר הציג לתמיכה באובייקטי בקשת הארכה עם callables השרירותי. שיטה זו מרחיבה את config.set_request_property הקודם בשיטות תמיכה וכן נכסים. שיטה זו גורמת לעכשיו פחות קוד להיות מוצאת להורג בזמן בניית בקשה מ config.set_request_property בגרסה 1.3.
- אל תוסיף? לכתובות אינטרנט שנוצר על ידי request.resource_url אם טיעון השאילתה מסופק אך ריק.
- אל תוסיף? לכתובות אינטרנט שנוצר על ידי request.route_url אם טיעון _query מסופק אך ריק.
- מכונות התצוגה סטטית עכשיו מעלה (ולא חוזר) חריגים HTTPNotFound וHTTPMovedPermanently, ולכן אלה יכולים להיתפס על ידי מבט NotFound (ונוף יוצא מן הכלל אחר).
- מפיק Mako תומך כעת שם def במפרט נכס. כאשר שם def נוכח במפרט הנכס, המערכת תעבד def התבנית בתוך התבנית ותחזיר את התוצאה. מפרט דוגמא נכס הוא חבילה: נתיב / ל/ # defname.mako תבנית. זה יהפוך את defname שם def בתוך תבנית template.mako במקום טיוח כל התבנית. הדרך של חזרה tuple בצורה הישנה ('defname', {}) מהתצוגה נתמכת עבור תאימות לאחור,
- מפיק Chameleon ZPT עכשיו מקבל שם המאקרו במפרט נכס. כאשר שם המאקרו נמצא במפרט הנכס, המערכת תעבד מאקרו הרשום כלהגדיר-מאקרו ולהחזיר את התוצאה במקום טיוח כל התבנית. מפרט דוגמא נכס: חבילה: נתיב / ל/ תבנית # macroname.pt. זה יהפוך את מקרו המוגדר כmacroname בתוך תבנית template.pt במקום כל templae.
- כאשר יש חוסר התאמת חריג נשוא (ראה כאשר אין מבט תואם לבקשה ניתנה בשל פרדיקטים לא עובדים), למעט החברה כולל תיאור טקסטואלי של הנשוא שלא התאים ל.
- שיטת הוראת add_permission התווספה לConfigurator. הוראה זו רושמת introspectable רשות שעמד חופשית למערכת ההתבוננות הפנימית הפירמידה. כך נבנו על גבי מסגרות פירמידה יכולה להשתמש בנתוני הקטגוריה introspectable ההרשאות לבנות רשימה מקיפה של הרשאות הנתמכות על ידי מערכת הפעלה. לפני שיטה זו נוספה, הרשאות כבר רשומות בקטגוריה introspectable זה כתופעת לוואי של מתן שמות אותם בשיחת add_view, בשיטה זו רק עושה את זה אפשר לסדר לרשות להכניס את הרשאות קטגוריה introspectable בלי שיום זה יחד עם תצוגה משויכת. הנה דוגמא של שימוש בadd_permission:
- config = Configurator ()
- 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 זמינים כעת לtweens.
- מאפייני בקשה ושיטות שנוספו דרך config.set_request_property או config.add_request_method זמינים כעת בחזר אובייקט הבקשה מpyramid.paster.bootstrap.
- request.context של בקשת הסביבה במהלך bootstrap נמצא כעת בשורש אם הקשר עדיין לא הוגדר על בקשה ובלבד.
- פונקצית pyramid.decorator.reify היא עכשיו API, והתווספה לתיעוד API.
- הוספת מנהל pyramid.testing.testConfig ההקשר, אשר יכול לשמש כדי ליצור תצורה במבחן, למשל עם testing.testConfig (...):.
- יכולים כעת להפעיל subrequest מתוך קוד תצוגה באמצעות API request.invoke_subrequest חדש.
- Deprecations:
- pyramid.config.Configurator.set_request_property כבר-לא מומלץ לשימוש בתיעוד. השיטה נשארה שמישה אבל pyramid.config.Configurator.add_request_method featureful יותר יש להשתמש במקום שלה (יש לה את כל אותן היכולות, אלא גם יכול להאריך את אובייקט הבקשה עם שיטות).
- אחורה אי התאמה:
- נתב הפירמידה כבר לא מוסיף bfg.routes.route הערכים או bfg.routes.matchdict למילון סביבת WSGI של הבקשה. ערכים אלה היו ב1.0 repoze.bfg-מיושן מסמכים (ביעילות שבע משחרר קטין לפני). אם הקוד שלך היה תלוי בערכים אלה, השתמש request.matched_route וrequest.matchdict במקום.
- זה כבר לא אפשרי לעבור מילון Environ ישירות לcall__ .__ pyramid.traversal.ResourceTreeTraverser (aka ModelGraphTraverser .__ call__). במקום זאת, אתה חייב לעבור אובייקט בקשה. עובר סביבה במקום בקשה עורר אזהרת פחת מאז פירמידת 1.1.
- פירמידה כבר לא עובדת כמו שצריך, אם אתה משתמש בwebob.request.LegacyRequest כמפעל בקשה. יש מופעים של מחלקת LegacyRequest request.path_info שיחזור מחרוזת. שחרור פירמידה זו מניח כי request.path_info יהיה ללא תנאי להיות Unicode.
- הפונקציות מ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).
- APIs אלה ממודול pyramid.testing הוסר. הם כבר הדפסת אזהרות פחת מאז פירמידת 1.0:
- registerDummySecurityPolicy, להשתמש pyramid.config.Configurator.testing_securitypolicy במקום.
- registerResources (aka registerModels, להשתמש pyramid.config.Configurator.testing_resources במקום.
- registerEventListener, להשתמש pyramid.config.Configurator.testing_add_subscriber במקום.
- registerTemplateRenderer (aka 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__ של אובייקט Response הופעלה לפני כל התקשרויות חזרה מוגמרים הוצאו להורג. נכון למהדורה זו, שיטת __call__ של אובייקט Response מופעלת לאחר callbacks המוגמר מתבצע. זה בתמיכה של תכונת request.invoke_subrequest.
- תיעוד:
- נוסף & quot; שדרוג פירמידה & quot; פרק לתיעוד הסיפורי. הוא מתאר כיצד להתמודד עם deprecations והסרות של APIs הפירמידה ואיך להראות אזהרות פחת שנוצרו פירמידה תוך כדי ריצת בדיקות ותוך כדי ריצה בשרת.
- נוסף & quot; בהתהדרו Subrequest & quot; פרק לתיעוד. הוא מתאר כיצד להשתמש ב- API request.invoke_subrequest החדש.
- תלות:
- פירמידה דורשת כעת 1.2b3 WebOb + (שחרור הפירמידה לפני הסתמך רק על + 1.2dev). זו היא להבטיח כי אנו מקבלים גרסה של WebOb שמחזירה request.path_info כטקסט.
regexes
כעת ניתן להוסיף פרדיקטים
אובייקטים
משתמשים
מה חדש בגרסת 1.3.2
:
- brownbag, ב הפחות על Windows ואולי על מערכות אחרות הפועלות, בשל קיומו של תועה & quot; ספריית חבילה (ציטוט כלול) בספריית השורש של tarball 1.3.1. במדריך זה ובתכניו היו נוכח, כי tarball נוצר באמצעות גרסה מסחרית של setuptools-git לא setuptools-git מותקן מלקוחות. השינוי היחיד בהודעה זו כדי לתקן את שגיאת האריזה ב1.3.1.
מה חדש בגרסת 1.3:
- כאשר pyramid.wsgi.wsgiapp2 קורא את יישום WSGI במורד הזרם, Environ של האפליקציה כבר לא צריך (לא מומלץ לשימוש ופוטנציאל מטעה) מפתחות bfg.routes.matchdict או bfg.routes.route בזה. סימפטום של הבאג הזה יהיה אפליקציה פירמידה עטופה wsgiapp2 מציאת התצוגה לא נכונה כי היא בטעות מזהה שמסלול הותאם כאשר, למעשה, זה לא היה.
- התיקון לבעיה https://github.com/Pylons/pyramid/issues/461 (שאפשר לשיטות למשל, שתשמשנה כcallables תצוגה) הציג חוסר תאימות לאחור כאשר שיטות שהכריזו רק טיעון בקשה היו בשימוש. ראה https://github.com/Pylons/pyramid/issues/503
מה חדש בגרסת 1.3 Beta 2:
- שיטת pyramid.request.Request.partial_application_url היא כבר לא במסמכי API. זה היה אמור להיות שיטה פרטית; פרסומו בתיעוד כשיטת API היה טעות, וזה כבר שינה את שם למשהו פרטי.
מה חדש בגרסת 1.3 Beta 1:
- תיקוני באגים:
- pyramid.config.Configurator.with_package לא יעבוד אם Configurator היה בסגנון ישן למשל pyramid.configuration.Configurator.
- מדיניות אישור פירמידה לא הופיעה בintrospector.
- Deprecations:
- כל אזכור למשתנה בקשת tmpl_context הוסר מהמסמכים. קיומה בפירמידה הוא מבלבל עבור אנשים שמעולם לא היו עמודי משתמשים. זה התווסף לנוחות porting למשתמשי מיגון עמודים בפירמידה 1.0, אבל זה מעולם לא נתפס על מכיוון שמערכת עיבוד הפירמידה היא מאוד שונה מאשר מיגון עמודים 'הייתה, ודרכים חלופיות קיימות כדי לעשות את מה שהוא נועד להציע בעמודי חשמל. זה ימשיך להתקיים & quot; לנצח & quot; אבל זה לא מומלץ או מוזכר במסמכים.
דרישות :
- Python
תגובות לא נמצא