piramidės yra greitas, mažas, žemyn į žemę, atviro kodo Python interneto plėtros pagrindų & nbsp;. Tai daro realaus pasaulio interneto programų kūrimą ir diegimą daugiau įdomus, labiau prognozuojamą ir našesnė.
piramidės yra Pilonai projektas, ir juo grindžiamos naujausias interneto sistemas, gaminami pilonų bendruomenei.
piramidės anksčiau buvo žinomas kaip repoze.bfg.
Pagalba ir dokumentacijos
Žr Pilonai projekto interneto svetainėje, kad galėtumėte peržiūrėti dokumentus, pranešti apie klaidas, ir gauti paramą.
Licencija
piramidės yra siūlomos pagal BSD gautas Repoze Public License
Kas naujo , šioje laidoje:.
- mako_templating: įtraukta gynybinės apeiti ne importability iš oxyrinchus dėl tiekėjų markupsafe lašinamojo Python 3.2 paramą. Mako šablonų nebebus pavaldus MarkupSafe 0,17 ir Python 3.2 (nors MarkupSafe 0,17 derinys ir Python 3.3 ar bet kurios palaiko Python versija 2 dirbs OK) derinys.
- Padaryti pyramid.config.assets.PackageOverrides prieštarauti Įgyvendinti __loader__ objektų nurodytų PEP 302. proxy į __loader__ importuotojas nustatytu API, jei yra; kitaip, kelia NotImplementedError. Tai daro Pyramid statinis vaizdas peržiūrėjimas tinkamai veiktų pagal Python 3.3 (anksčiau jie nebūtų). Žr https://github.com/Pylons/pyramid/pull/1015 daugiau informacijos.
Kas naujo versija 1.4:
- Nustatyti funkcinius bandymus į ZODB pamoka
Kas naujo versijos 1.4 Beta 3:
- Pakuotė spaudai, tai ne kodo pasikeitimus. 1.4b2 buvo brownbag spaudai dėl dingusių katalogų archyve.
Kas naujo versijos 1.3.4:
- Kai pyramid.debug_routematch buvo įjungtas ir feed tarinys buvo naudojamas bet kuriame maršrute, maršrutizatorius kiltų išimtį, kai bandote spausdinti maršruto derinimo informaciją. Ši klaida gyvuoja nuo 1.3a1.
- Kai skersinis tarinys buvo naudojamas bet kuriame maršrute, proutes ir pviews konsolės scenarijus sukeltų išimtį, kai bandote spausdinti maršruto derinimo informaciją. Ši klaida gyvuoja nuo 1.3a1.
- Backport Klaidų taisymas nuo meistro: - Kai Mako Šablonai paieškos, patikrinkite, ar absoliutus Uri (naudojant mako katalogus), kai maišymo iki paveldėtoje turto kriterijus. https://github.com/Pylons/pyramid/issues/662
- Registruojant kelis nuomonę turinčias priimti predikato piramidės taikymo pastovi pagal Python 3, galbūt gavote TypeError: unorderable rūšių: funkcija () & lt; funkcija () išimtis.
- Backport nuo šeimininko: HTTP Priimti antraštes nebuvo buvo normalizuotas sukelia potencialiai prieštaringų peržiūrėti registraciją nepastebi. Du požiūriai, kad tik skiriasi bylos ("text / html" vs "text / html"), dabar pakels klaidą. https://github.com/Pylons/pyramid/pull/620
Kas naujo versijos 1.4 Alpha 1:
- pataisymai: "
- Persiųsti uosto nuo 1,3 šakos: kai nebelieka tapatumo politika buvo sukonfigūruotas, kvietimas pyramid.security.effective_principals būtų besąlygiškai grąžinti tuščią sąrašą. Tai buvo neteisinga, ji turėtų turėti besąlygiškai grąžinama [Visi], ir dabar daro.
- Aiškus URL išsiųsti įpraiškas dabar gali būti dvitaškius. https://github.com/Pylons/pyramid/issues/629
- bent vieną 64 bitų Ubuntu sistemą pagal Python 3.2, naudojant view_config dekoratorius sukėlė Runtimeerror: žodyno pasikeitė dydį per iteracijos išimtis. Tai nebėra daro. Žr https://github.com/Pylons/pyramid/issues/635 daugiau informacijos.
- Be Mako Šablonai paieškos patikrinkite, ar uri jau sureguliuotas ir grąžinti jį į turto spec. Paprastai atsiranda su paveldimomis šablonų ar sudedamosios dalys. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- Be Mako Šablonai paieškos, patikrinkite, ar absoliutus Uri (naudojant mako katalogus), kai maišymo iki paveldėjimo turto kriterijus. https://github.com/Pylons/pyramid/issues/662
- HTTP Priimti antraštes nebuvo buvo normalizuotas sukelia potencialiai prieštaringų peržiūrėti registraciją nepastebi. Du požiūriai, kad tik skiriasi bylos ("text / html" vs "text / html"), dabar pakels klaidą. https://github.com/Pylons/pyramid/pull/620
- Persiųsti uosto nuo 1,3 šakos: registruojant kelis nuomonėmis su priimame predikatas piramidės taikymo pastovi pagal Python 3, galbūt gavote TypeError: unorderable tipai: funkcijos () & lt; funkcija () išimtis.
- Įranga:
- Configurator.add_directive dabar priima savavališkų callables kaip partials ar įgyvendinimo __call__ objektų, kurie dont turėti __name__ ir __doc__ atributus. Žr https://github.com/Pylons/pyramid/issues/621 ir https://github.com/Pylons/pyramid/pull/647.
- Trečiųjų šalių užsakymą nuomonei, maršrutas, ir abonento predikatai, dabar gali būti pridėta naudoti vaizdo autorių per pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate ir pyramid.config.Configurator.add_subscriber_predicate. Taigi, pavyzdžiui, daro tai:
- config.add_view_predicate ("ABC", my.package.ABCPredicate)
- Gali leisti vaizdas autorius tai padaryti programa, kuri sukonfigūruota, kad predikatas:
- view_config (abc = 1)
- Panašūs požymiai egzistuoja add_route ir add_subscriber. Žiūrėti & quot; Įrašyta trečiosios šalies View, maršrutas, ar abonentas predikatų & quot; į kabliukai skyriuje rasite daugiau informacijos.
- Atkreipkite dėmesį, kad pokyčiai padarė remti pirmiau funkcija dabar reiškia, kad tik veiksmai registruojami naudojant tą patį & quot; tvarkos & quot; gali prieštarauti vienas kitam. Ji naudojama būti, kad veiksmai registruotas skirtingais užsakymus potencialiai gali konfliktas, tačiau mano žiniomis niekas kada nors priklausė nuo tokio elgesio (ji buvo šiek tiek kvaila).
- Custom objektai gali būti lengvai JSON serializable į piramidės apibrėžiant __json__ metodą objekto klasę. Šis metodas turėtų grįžti vertybes gimtoji Serializable iki json.dumps (pvz int, sąrašus, žodynus, stygos ir kt).
- JSON atvaizdavimo dabar leidžia už užsakymą tipo adapteriai apibrėžimą konvertuoti nežinomų objektų JSON serializations.
- Kaip šio išleidimo, REQUEST_METHOD tarinys, naudoti, taip pat reiškia, kad vadovas yra numanomas, kai jūs naudojate gauti. Pavyzdžiui, naudojantview_config (REQUEST_METHOD = "get") yra lygiavertis naudojantview_config (REQUEST_METHOD = ("GET", "HEAD")). Naudojantview_config (REQUEST_METHOD = ("GET", "PO") yra lygiavertis naudojantview_config (REQUEST_METHOD = ("GET", "HEAD", "PO"). Taip yra todėl, GALVA yra GET variantas, kuris praleidžia kūno ir WebOb turi specialią paramą grąžinti tuščią kūną, kai galva yra naudojamas.
- config.add_request_method buvo pradėtas siekiant remti pratęsiami užklausos objektus su laisvaisiais callables. Šis metodas išplečia ankstesnės config.set_request_property patvirtinamieji metodai, taip pat savybėmis. Šis metodas dabar sukelia mažiau kodas turi būti vykdomos Užklausus statybos metu nei config.set_request_property versijoje 1.3.
- Negalima pridėti? į URL generuojamų request.resource_url jei užklausa argumentas yra numatyta, bet tuščia.
- Negalima pridėti? į URL generuojamų request.route_url jei _query argumentas yra numatyta, bet tuščia.
- statinis vaizdas mašinos dabar kelia (o ne pelną) HTTPNotFound ir HTTPMovedPermanently išimčių, todėl jie gali būti sugauti notfound nuomone (ir kitų išimčių nuomonėmis).
- Mako atvaizdavimo dabar palaiko def pavadinimą turto spec. Kai def vardas esančios turto spec, sistema suteiks šablono def per šabloną ir grąžina rezultatą. Pavyzdys turto spec yra paketas: kelias / iki / template # defname.mako. Tai padaryti def pavadintas defname viduje template.mako šabloną vietoj taukų visą šabloną. Senas būdas grąžinimo kortežą ir formos ("defname" {}) iš mano palaikoma atgalinį suderinamumą,
- Chameleon ZPT atvaizdavimo dabar priima makro pavadinimą turto spec. Kai makro vardas esančios turto spec, sistema suteiks makro išvardytų kaip apibrėžti-makro ir vietoj grąžina rezultatą utilizavimo visą šabloną. Pavyzdys turto spec: paketas: kelias / iki / šabloną # macroname.pt. Tai padaryti makro apibrėžiamas kaip macroname per template.pt šabloną vietoj visai templae.
- Kai yra tarinys neatitikimas išimtis (pasireiškę kai nėra vaizdo rungtynes už tam tikrą prašymą dėl predikatai ne darbo), išimtis dabar yra tekstinis aprašymas predikato kuri neatitiko.
- add_permission direktyva metodas buvo įtraukta į konfigūratorių. Ši direktyva registruoja nemokamai stovėti leidiminė introspectable į piramidę savistaba sistema. Karkasai pastatytas ant piramidės galima taip naudoti leidimus introspectable kategorijos duomenis statyti išsamų remiamų bėgimo sistemos leidimus. Prieš buvo įtraukta šis metodas, leidimai jau buvo įregistruotas šio introspectable kategorijai kaip šalutinis poveikis pavadinti juos į add_view skambučio, šis metodas tik leidžia organizuoti leidimas turi būti įdėti į leidimus introspectable kategoriją neįvardijant jį kartu su susijęs požiūris. Štai ir naudojimo add_permission pavyzdys:
- config = konfigūratorius ()
- config.add_permission ("požiūris")
- UnencryptedCookieSessionFactoryConfig dabar priima signed_serialize ir signed_deserialize kabliukus, kurie gali būti naudojami siekiant daryti poveikį kaip sesijos važinėjant (pagal nutylėjimą tai daroma su hmac + marinatas).
- pyramid.testing.DummyRequest dabar palaiko pateiktus pyramid.util.InstancePropertyMixin klasės metodus, pavyzdžiui, set_property.
- Užklausa savybės ir metodai pridėta per config.set_request_property ar config.add_request_method dabar yra prieinami tweens.
- Užklausa savybės ir metodai pridėta per config.set_request_property ar config.add_request_method dabar yra prašymas objektas grąžino iš pyramid.paster.bootstrap.
- request.context Aplinkos prašymu bootstrap metu dabar šaknis objektas, jei kontekstas dar nėra pastatyta ant numatytą prašymą.
- pyramid.decorator.reify funkcija dabar API ir buvo įtraukta į API dokumentaciją.
- Pridėta pyramid.testing.testConfig kontekstinį vadybininkas, kuris gali būti naudojamas generuoti konfigūratorių bandyme, pvz su testing.testConfig (...):.
- Vartotojai dabar gali remtis tam subrequest iš vidaus vaizdas kodas naudodami naują request.invoke_subrequest API.
- Deprecations:
- pyramid.config.Configurator.set_request_property buvo dokumentai, pasenusios. Metodas, išlieka tinkami naudoti bet daugiau featureful pyramid.config.Configurator.add_request_method, turėtų būti naudojamas vietoje jo (ji turi visas tas pačias galimybes, bet taip pat gali pratęsti prašymo objektas, su metodais).
- Praėjusio Nesuderinamumas:
- piramidės maršrutizatorius nebėra prideda vertes bfg.routes.route arba bfg.routes.matchdict prie prašymo anketa WSGI aplinkos žodyną. Šios vertybės buvo docs-pasmerkta repoze.bfg 1,0 (veiksmingai septynių nepilnamečių spaudai prieš). Jei jūsų kodas priklausė nuo šių vertybių, o ne naudoti request.matched_route ir request.matchdict.
- Tai nebeįmanoma praeiti aplin žodyną tiesiogiai pyramid.traversal.ResourceTreeTraverser .__ call__ (dar žinomas kaip ModelGraphTraverser .__ call__). Vietoj to, jūs turite pereiti užklausos objektą. Perdavimai aplinką vietoj prašymo sukurtas nusidėvėjimo įspėjimu nuo piramidės 1.1.
- piramidės nebeveiks tinkamai, jei jūs naudojate webob.request.LegacyRequest kaip Užklausus gamykloje. Egzempliorių LegacyRequest klasės turėti request.path_info kuris grįžti eilutę. Ši piramidė spaudai teigiama, kad request.path_info bus besąlygiškai būti Unicode.
- funkcijos iš pyramid.chameleon_zpt ir pyramid.chameleon_text pavadintas get_renderer, get_template, render_template ir render_template_to_response buvo ištrintas. Jie įspėjo importuojant nusidėvėjimas nuo piramidės 1.0. Naudokite pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Įgyvendinimą (), pyramid.renderers.render () arba pyramid.renderers.render_to_response atitinkamai vietoj šių funkcijų.
- pyramid.configuration modulis buvo pašalintas. Ji buvo pasmerkta nuo piramidės 1.0 ir išspausdinti įspėjimą ant jo naudojimo nusidėvėjimas. Naudokite pyramid.config vietoj.
- pyramid.paster.PyramidTemplate API buvo ištrintas. Ji buvo pasmerkta nuo piramidės 1.1 ir išleido apie importo įspėjimą. Jei jūsų kodas priklausė nuo to, koreguoti savo kodą importuoti pyramid.scaffolds.PyramidTemplate vietoj.
- pyramid.settings.get_settings () API buvo ištrintas. Tai buvo spausdinti nusidėvėjimo įspėjimu nuo piramidės 1.0. Jei jūsų kodas priklausė nuo šio API vietoj naudoti pyramid.threadlocal.get_current_registry (). Nustatymus arba naudokite nustatymų atributas registre turimą nuo prašymo (request.registry.settings).
- Šios API iš pyramid.testing modulis buvo pašalintas. Jie buvo spausdinti nusidėvėjimo įspėjimus nuo piramidės 1.0:
- registerDummySecurityPolicy, naudokite pyramid.config.Configurator.testing_securitypolicy vietoj.
- registerResources (dar žinomas kaip registerModels, naudoti pyramid.config.Configurator.testing_resources vietoj.
- registerEventListener, naudokite pyramid.config.Configurator.testing_add_subscriber vietoj.
- registerTemplateRenderer (dar žinomas kaip registerDummyRenderer`), naudokite pyramid.config.Configurator.testing_add_template vietoj.
- registerView, naudokite pyramid.config.Configurator.add_view vietoj.
- registerUtility, naudokite pyramid.config.Configurator.registry.registerUtility vietoj.
- registerAdapter, naudokite pyramid.config.Configurator.registry.registerAdapter vietoj.
- registerSubscriber, naudokite pyramid.config.Configurator.add_subscriber vietoj.
- registerRoute, naudokite pyramid.config.Configurator.add_route vietoj.
- registerSettings, naudokite pyramid.config.Configurator.add_settings vietoj.
- piramidės 1.3 ir ankstesniais, __call__ metodas atsakas objektas buvo remiamasi prieš bet gatavų šios funkcijos buvo įvykdytas. Kaip šio išleidimo, __call__ metodas atsakas objekto remtis po gatavų šios funkcijos atliekamos. Tai remiant request.invoke_subrequest funkciją.
- Dokumentacija:
- Pridėta & quot; piramidė & quot atnaujinimas; skyrius prie pasakojimo dokumentus. Jame aprašoma, kaip susidoroti su deprecations ir pašalinamo piramidės API ir kaip parodyti piramidė sugeneruotas nusidėvėjimo įspėjimai važiuojant bandymus ir važiuojant serverį.
- Pridėta & quot; taikydamos Subrequest & quot; skyrius dokumentus. Jame aprašoma, kaip naudoti naują request.invoke_subrequest API.
- Priklausomybės:
- piramidė dabar reikalauja WebOb 1.2b3 + (prieš piramidė spaudai tik rėmėsi 1.2dev +). Tai užtikrina, kad mes gauti WebOb versiją, kuri grąžina request.path_info kaip tekstą.
Kas naujo versijos 1.3.2:
- Versija 1.3.1 buvo brownbag spaudai, ne labai jau "Windows" ir galbūt kitų operacinių sistemų, atsižvelgiant į benamius & quot buvimą; paketo kataloge (citata įtraukti) į šakninį katalogą 1.3.1 archyvo. Šis katalogas ir jo turinys buvo pateikti, nes tar buvo sukurtas naudojant išleidimo versiją setuptools-git, o ne setuptools-git įdiegta iš kasos. Vienintelis pasikeitimas šioje versijoje yra ištaisyti pakavimo klaidą 1.3.1.
Kas naujo versijoje 1.3:
- Kai pyramid.wsgi.wsgiapp2 ragina tolesniam WSGI app, App aplin nebereikės (pasenusios ir gali klaidinti) bfg.routes.matchdict arba bfg.routes.route raktai jį. Šios klaidos požymis būtų wsgiapp2 suvynioti piramidė app rasti klaidingą požiūrį, nes ji klaidingai nustato, kad maršrutas buvo suderinta, kai iš tiesų, tai nebuvo.
- už klausimą https://github.com/Pylons/pyramid/issues/461 (kuri leido Pavyzdžiui metodai, naudojami kaip vaizdo callables) nustatyti pristatė atgal nesuderinamumo, kai metodai, deklaruotos tik prašymas argumentas buvo naudojami. Žr https://github.com/Pylons/pyramid/issues/503
Kas naujo versijos 1.3 Beta 2:
- metodas pyramid.request.Request.partial_application_url yra nebėra API docs. Jis buvo skirtas būti privatus metodas; jo paskelbimo dokumentuose kaip API metodu buvo klaida, ir jis buvo pervadintas į kažką privataus.
- Kai statinio vaizdas buvo įregistruoti pagal absoliučią failų sistemos kelią Windows request.static_url funkcija neveikia generuoti URL į savo išteklius. Požymis: & quot; Nr statinis adresas apibrėžimas atitikimo C:. Foobarbaz & quot;
- Padaryti visi testai perduoti Windows XP.
- Re į ACL autentiškumo tikrinimo Python 3: leidimai ir principals_allowed_by_permission metodas pyramid.authorization.ACLAuthenticationPolicy gali grįžti netinkamą tikroji vertė, kai ant ACL leidimas buvo eilutė, o ne seka, ir tik tada, jei ACL leidimas eilutė buvo iš leidimo vertės išlaikytas funkcijos eilutės.
- Ši klaida poveikis nėra piramidė dislokuotos Python 2; tai yra klaida, kuri egzistuoja tik dislokavimo veikia Python 3. Ji egzistavo nuo piramidės 1.3a1.
- Ši klaida buvo dėl to, kad yra __iter__ atributas buvimo stygos pagal Python 3, kurios nėra pagal styginiams Python 2.
Kas naujo versijos 1.3 Beta 1:
- pataisymai: "
- pyramid.config.Configurator.with_package neveikia, jei konfigūratorius buvo senas stiliaus pyramid.configuration.Configurator atvejis.
- piramidės leidimų politika nebuvo rodomi introspector.
- Deprecations:
- Visos nuorodos į tmpl_context Užklausus kintamojo buvo pašalintas iš docs. Jo buvimas piramidės klaidina žmones, kurie niekada nebuvo pilonai vartotojams. Jis buvo pridėtas kaip susiejamu numeriu patogumo pilonai vartotojų piramidės 1,0, bet ji niekada sugauti, nes piramidė teikimo sistema yra daug skirtingų nei Pilonai "buvo ir pakaitinių būdų egzistuoja daryti tai, ką ji buvo sukurta siekiant pasiūlyti pilonai. Ji išliks & quot; amžinai & quot; tačiau ji negali būti rekomenduojamas ar minėta docs.
Reikalavimai :
- Python
Komentarai nerastas