pyramid är en snabb, liten, ned till jorden, ram Python webbutveckling öppen källkod. & Nbsp; Det gör verkliga webb applikationsutveckling och driftsättning roligare, mer förutsägbart och mer produktiva.
pyramiden är ett pyloner projekt, och ligger bakom de nyaste webbramverk som produceras av pyloner samhället.
pyramid var tidigare känd som repoze.bfg.
Support och dokumentation
Se pyloner Project webbplats för att visa dokumentation, rapport buggar, och få stöd.
licens
pyramid erbjuds under BSD-härledda Repoze Public License
Vad är nytt i den här versionen:.
- mako_templating: lagt defensiv Lösning för icke-importability av mako grund av uppströms markupsafe släppa Python 3.2 stöd. Mako mall kommer inte längre arbeta under kombinationen av MarkupSafe 0,17 och Python 3.2 (även om kombinationen av MarkupSafe 0,17 och Python 3.3 eller något som stöds Python 2-versionen fungerar OK).
- Gör pyramid.config.assets.PackageOverrides invända genomföra API för __loader__ föremål som anges i PEP 302. Ombud till __loader__ fastställs av importören, om närvarande; annars, höjer NotImplementedError. Detta gör Pyramid statisk syn åsido fungerar enligt Python 3.3 (tidigare de inte skulle). Se https://github.com/Pylons/pyramid/pull/1015 för mer information.
Vad är nytt i version 1.4:
- Fix funktionstester i ZODB handledning
Vad är nytt i version 1.4 Beta 3:
- Förpackningar utsättningen först, inga kodändringar. 1.4b2 var en brownbag frigivning på grund av saknad kataloger i arkivet.
Vad är nytt i version 1.3.4:
- När pyramid.debug_routematch var aktiverat och travers predikatet användes i varje sträcka routern skulle höja ett undantag när du försöker skriva ut rutten felsökningsinformation. Denna bugg har funnits sedan 1.3a1.
- När travers predikatet användes i varje sträcka skulle proutes och pviews konsol skript höja ett undantag när du försöker skriva ut rutten felsökningsinformation. Denna bugg har funnits sedan 1.3a1.
- backport buggfix från mästare: - I Mako Mallar lookup, kontrollera absolut URI (med mako kataloger) vid blandning upp arvet med tillgångs specifikationer. https://github.com/Pylons/pyramid/issues/662
- När du registrerar flera vyer med en acceptera predikat i en Pyramid ansökan Runing i Python 3, du kanske har fått ett Typeerror: unorderable typer: function () & lt; funktionen () undantag.
- backport från mästare: HTTP Acceptera rubriker inte är normaliserade orsakar potentiellt motstridiga vyregistreringar att gå obemärkt förbi. Två visningar som bara skiljer sig i ärendet ("text / html" kontra "text / HTML) kommer nu att höja ett fel. https://github.com/Pylons/pyramid/pull/620
Vad är nytt i version 1.4 Alpha 1:
- Buggfixar:
- Framåt port från 1,3 gren: När ingen autentisering politiken var konfigurerad, skulle ett samtal till pyramid.security.effective_principals villkorslöst återvända tom lista. Detta var felaktig, det bör ha villkorslöst återvände [Alla], och nu gör.
- Explicit url leverans regexes kan nu innehålla kolon. https://github.com/Pylons/pyramid/issues/629
- På åtminstone ett 64-bitars Ubuntu systemet under Python 3.2, med hjälp av view_config dekoratör orsakade en RuntimeError: lexikon bytt storlek under iteration undantag. Det gör inte längre. Se https://github.com/Pylons/pyramid/issues/635 för mer information.
- I Mako Mallar lookup, kontrollera om uri är redan anpassat och föra den tillbaka till en tillgång spec. Sker normalt med ärvda mallar eller ingående komponenter. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- I Mako Mallar lookup, kontrollera absolut URI (med mako kataloger) vid blandning upp arvet med tillgångs specifikationer. https://github.com/Pylons/pyramid/issues/662
- HTTP Acceptera rubriker inte är normaliserade orsakar potentiellt motstridiga vyregistreringar att gå obemärkt förbi. Två visningar som bara skiljer sig i ärendet ("text / html" kontra "text / HTML) kommer nu att höja ett fel. https://github.com/Pylons/pyramid/pull/620
- Framåt port från 1,3 gren: när du registrerar flera vyer med en acceptera predikat i en Pyramid ansökan Runing i Python 3, du kanske har fått ett Typeerror: unorderable typer: function () & lt; funktionen () undantag.
- Funktioner:
- Configurator.add_directive accepterar nu godtyckliga callables som deltonerna eller föremål som genomför __call__ som har __name__ gör inte och __doc__ attribut. Se https://github.com/Pylons/pyramid/issues/621 och https://github.com/Pylons/pyramid/pull/647.
- Tredjeparts anpassad vy, sträckor, och abonnent predikat kan nu läggas till för att användas av view författare via pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate och pyramid.config.Configurator.add_subscriber_predicate. Så, till exempel, gör så här:
- config.add_view_predicate ("abc", my.package.ABCPredicate)
- kan ge en uppfattning författaren att göra detta i ett program som konfigurerats att predikatet:
- view_config (abc = 1)
- Liknande funktioner finns för att add_route och add_subscriber. Se & quot; lägga till en tredje parts View, Rutt eller Subscriber Predikat & quot; i Hooks kapitlet för mer information.
- Observera att ändringar gjorts för att stödja den ovannämnda funktionen innebär nu att endast åtgärder registreras med samma & quot; ordning & quot; kan komma i konflikt med varandra. Det brukade vara så att åtgärder registreras vid olika ordning skulle kunna konflikt, men så vitt jag vet ingenting någonsin beroende av detta beteende (det var lite dumt).
- Anpassade objekt kan göras enkelt JSON-serializable i Pyramid genom att definiera ett __json__ metod på objektets klass. Denna metod bör återgå värden inbyggt serialiserbara av json.dumps (såsom ints, listor, ordböcker, strängar, och så vidare).
- JSON renderare tillåter nu för definitionen av anpassade typ adaptrar för att konvertera okända föremål till JSON serialiseringar.
- Från denna utgåva, den request_method predikatet, när de används, kommer också innebära att HEAD antyds när du använder GET. Till exempel använderview_config (request_method = 'GET') är ekvivalent med att användaview_config (request_method = ('GET', 'HEAD')). Användaview_config (request_method = ('GET ", är" POST ") motsvarar att användaview_config (request_method = (' GET ',' HEAD ',. Detta är" POST ") eftersom HEAD är en variant av GET som utelämnar kropp och WebOb har särskilt stöd för att återvända en tom kropp när en HEAD används.
- config.add_request_method har införts för att stödja sträcker begäran objekt med godtyckliga callables. Denna metod expanderar på den tidigare config.set_request_property genom stödjande metoder samt fastigheter. Denna metod medför nu mindre kod som ska köras vid förfrågan byggtid än config.set_request_property i version 1.3.
- Lägg inte till ett? till webbadresser som genereras av request.resource_url om frågan argumentet tillhandahålls men tom.
- Lägg inte till ett? till webbadresser som genereras av request.route_url om _query argumentet tillhandahålls men tom.
- statisk syn maskiner nu höjer (snarare än returer) HTTPNotFound och HTTPMovedPermanently undantag, så dessa kan fångas av NotFound vyn (och andra vyer undantag).
- Mako renderare stöder nu en def namn i en tillgång spec. När def namnet finns i tillgångs spec, kommer systemet gör mallen def i mallen och kommer tillbaka resultatet. Ett exempel tillgångs spec är paket: sökväg / till / mall # defname.mako. Detta kommer att göra det def namngav defname inuti template.mako mall istället ådra hela mallen. Det gamla sättet att returnera en tupel i form ("defname ', {}) från uppfattning stöds för bakåtkompatibilitet,
- accepterar Kameleonten ZPT renderaren nu ett makronamn i en tillgång spec. När makronamn finns i tillgångs spec, kommer systemet gör makrot listad som en definierar makro och returnera resultatet i stället för att göra hela mallen. Ett exempel tillgångs spec: paket: sökväg / till / mall # macroname.pt. Detta kommer att göra makro definierad som macroname inom template.pt mall i stället för hela templae.
- När det finns ett undantag predikat mismatch (ses när ingen åsikt matcher för en given begäran på grund av predikat inte fungerar), innehåller undantag nu en textbeskrivning av predikatet som inte matchade.
- En add_permission direktivet metod sattes till konfiguratorn. Detta direktiv registrerar ett fristående tillstånd introspectable i Pyramid introspektion systemet. Frame byggda ovanpå Pyramid kan därmed använda de behörigheter introspectable kategoriuppgifter för att bygga en omfattande lista över behörigheter som stöds av ett system som körs. Innan denna metod tillsattes, var behörigheter redan registrerad i denna introspectable kategori som en bieffekt av att namnge dem i en add_view samtal gör denna metod det bara möjligt att ordna tillstånd att sättas i behörighet introspectable kategori utan att nämna det tillsammans med en tillhörande vy. Här är ett exempel på användning av add_permission:
- config = Configurator ()
- config.add_permission ('syn')
- UnencryptedCookieSessionFactoryConfig accepterar nu signed_serialize och signed_deserialize krokar som kan användas för att påverka hur sessionerna rangeras (som standard detta görs med HMAC + pickle).
- pyramid.testing.DummyRequest stöder nu metoder som tillhandahålls av pyramid.util.InstancePropertyMixin klassen såsom set_property.
- Begär egenskaper och metoder läggs via config.set_request_property eller config.add_request_method finns nu tillgängliga för tweens.
- Begär egenskaper och metoder läggs via config.set_request_property eller config.add_request_method finns nu i begäran objektet tillbaka från pyramid.paster.bootstrap.
- request.context av miljö begäran under bootstrap är nu rotobjekt om ett sammanhang inte redan är inställd på en förutsättning begäran.
- pyramid.decorator.reify funktionen är nu ett API, och tillsattes till API-dokumentationen.
- Inkom den pyramid.testing.testConfig sammanhang manager, som kan användas för att generera en konfigurator i ett test, t.ex. med testing.testConfig (...):.
- Användare kan nu anropa en subrequest inifrån utsikt kod med ett nytt request.invoke_subrequest API.
- Deprecations:
- pyramid.config.Configurator.set_request_property har dokumentation-föråldrat. Metoden är fortfarande användbara men ju mer funktionsrikt pyramid.config.Configurator.add_request_method bör användas i dess ställe (det har alla samma möjligheter, men kan också utöka förfrågan objekt med metoder).
- spelning bakåt Inkompatibiliteter:
- Pyramiden router inte längre lägger värden bfg.routes.route eller bfg.routes.matchdict begäran s WSGI miljö ordboken. Dessa värden var docs-nedgraderade i repoze.bfg 1.0 (effektivt sju mindre releaser sedan). Om din kod berodde på dessa värden, använd request.matched_route och request.matchdict istället.
- Det är inte längre möjligt att passera en miljö ordlista direkt till pyramid.traversal.ResourceTreeTraverser .__ call__ (aka ModelGraphTraverser .__ call__). Istället måste du skicka en begäran objekt. Passerar en miljö istället för en begäran har genererat ett deprecation varning sedan Pyramid 1.1.
- Pyramid kommer inte längre fungerar korrekt om du använder webob.request.LegacyRequest som en begäran fabrik. Instanser av LegacyRequest klassen har en request.path_info som returnera en sträng. Denna pyramid utgåvan förutsätter att request.path_info ovillkorligen blir Unicode.
- Funktionerna från pyramid.chameleon_zpt och pyramid.chameleon_text namngav get_renderer, get_template, render_template och render_template_to_response har tagits bort. Dessa har utfärdat en deprecation varning vid import sedan Pyramid 1.0. Använd pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Genomförande (), pyramid.renderers.render () eller pyramid.renderers.render_to_response respektive istället för dessa funktioner.
- pyramid.configuration modulen togs bort. Det hade varit Tagen sedan Pyramid 1.0 och tryckt en deprecation varning på dess användning. Använd pyramid.config istället.
- pyramid.paster.PyramidTemplate API togs bort. Det hade varit Tagen sedan Pyramid 1.1 och utfärdade en varning vid import. Om din kod berodde på detta, justera kod för att importera pyramid.scaffolds.PyramidTemplate istället.
- De pyramid.settings.get_settings () API togs bort. Det hade varit att skriva ut en deprecation varning sedan Pyramid 1.0. Om din kod berodde på detta API, använd pyramid.threadlocal.get_current_registry (). Inställningarna i stället eller använd inställningarna attribut av registret tillgänglig från förfrågan (request.registry.settings).
- Dessa API: er från pyramid.testing modulen togs bort. De har utskrift deprecation varningar sedan Pyramid 1,0:
- registerDummySecurityPolicy, använd pyramid.config.Configurator.testing_securitypolicy istället.
- registerResources (aka registerModels, använd pyramid.config.Configurator.testing_resources istället.
- registerEventListener, använd pyramid.config.Configurator.testing_add_subscriber istället.
- registerTemplateRenderer (aka registerDummyRenderer`), använd pyramid.config.Configurator.testing_add_template istället.
- registerView, använd pyramid.config.Configurator.add_view istället.
- registerUtility, använd pyramid.config.Configurator.registry.registerUtility istället.
- registerAdapter, använd pyramid.config.Configurator.registry.registerAdapter istället.
- registerSubscriber, använd pyramid.config.Configurator.add_subscriber istället.
- registerRoute, använd pyramid.config.Configurator.add_route istället.
- registerSettings, använd pyramid.config.Configurator.add_settings istället.
- I Pyramid 1.3 och tidigare, det __call__ metoden ett Response objekt åberopades innan några färdiga återanrop avrättades. Från och med denna utgåva är __call__ metoden ett Response-objekt anropas efter färdiga återanrop utförs. Detta är i stöd för request.invoke_subrequest funktionen.
- Dokumentation:
- Lade en & quot; Uppgradera Pyramid & quot; kapitel till den narrativa dokumentationen. Den beskriver hur man handskas med deprecations och upptag av Pyramid API och hur man visar Pyramid-genererade deprecation varningar medan du kör tester och samtidigt kör en server.
- Lade till en & quot; Starta en Subrequest & quot; kapitel i dokumentationen. Den beskriver hur man använder den nya request.invoke_subrequest API.
- Beroenden:
- Pyramid kräver nu WebOb 1.2b3 + (den tidigare Pyramid utsättningen först åberopas 1.2dev +). Detta för att säkerställa att vi får en version av WebOb som returnerar request.path_info som text.
Vad är nytt i version 1.3.2:
- Version 1.3.1 var en brownbag release, vid stone på Windows och eventuellt på andra operativsystem, på grund av förekomsten av en herrelös & quot; paket katalog (citat ingår) i rotkatalogen 1.3.1 tarball. Denna katalog och dess innehåll var närvarande eftersom arkivet skapades med en release version av setuptools-git snarare än en setuptools-git installeras från en kassan. Den enda förändringen i denna release är att korrigera förpacknings fel i 1.3.1.
Vad är nytt i version 1.3:
- När pyramid.wsgi.wsgiapp2 kallar nedströms WSGI app, appens miljö kommer inte längre att ha (föråldrat och potentiellt vilseledande) bfg.routes.matchdict eller bfg.routes.route nycklar i den. Ett symptom på detta fel skulle vara en wsgiapp2-inslaget Pyramid app hitta fel uppfattning eftersom det felaktigt upptäcker att en rutt motsvar när i själva verket var det inte.
- fix för problemet https://github.com/Pylons/pyramid/issues/461 (vilket gjorde det möjligt för exempelvis metoder som skall användas som se callables) infördes en bakåt inkompatibilitet när metoder som förklaras endast en begäran argument var användas. Se https://github.com/Pylons/pyramid/issues/503
Vad är nytt i version 1.3 Beta 2:
- Metoden pyramid.request.Request.partial_application_url är inte längre i API-dokumentation. Det var tänkt att vara en privat metod; har offentliggjorts i dokumentationen som en API-metoden var ett misstag, och det har bytt namn till något privat.
- När en statisk syn registrerades med hjälp av en absolut filsystem stig på Windows, gjorde request.static_url funktionen inte fungerar för att generera webbadresser till dess resurser. Symptom: & quot; Ingen statisk definition URL matchande c:. Foobarbaz & quot;
- Gör alla tester vidarebefordra Windows XP.
- Bug i ACL autentisering kontroll på Python 3: det tillstånd och principals_allowed_by_permission metod pyramid.authorization.ACLAuthenticationPolicy kunde återvända en olämplig Sann värde när ett tillstånd på en ACL var en sträng i stället en sekvens, och då endast om ACL tillstånd sträng var en delsträng av tillstånd värdet skickas till funktionen.
- Detta fel effekter ingen Pyramid driftsättning inom Python 2; det är en bugg som finns endast i distributioner som körs på Python 3. Det har funnits sedan Pyramid 1.3a1.
- Detta fel berodde på närvaron av en __iter__ attribut på snören enligt Python 3 som inte är närvarande i strängar i Python 2.
Vad är nytt i version 1.3 Beta 1:
- Buggfixar:
- pyramid.config.Configurator.with_package fungerade inte om Configurator var en gammaldags pyramid.configuration.Configurator instans.
- Pyramid auktoriserings politik inte dök upp i introspector.
- Deprecations:
- Alla hänvisningar till tmpl_context förfrågan variabeln togs bort från docs. Dess existens i Pyramid är förvirrande för människor som aldrig blev pyloner användare. Det tillsattes som en portning bekvämlighet för Pyloner användare i Pyramid 1.0, men det har aldrig fångats på grund pyramiden rendering systemet är mycket annorlunda än Pylonerna "var, och alternativa sätt finns för att göra vad den var avsedd att erbjuda i Pylonerna. Den kommer att fortsätta att existera & quot; forever & quot; men det kommer inte rekommenderas eller nämns i de docs.
Krav :
- Python
Kommentarer hittades inte