piramide is een snelle, kleine, down-to-earth, open source Python web development framework & nbsp;. Het maakt real-world web applicatie ontwikkeling en implementatie meer plezier, meer voorspelbaar en productiever.
piramide is een Pylonen project, en ligt ten grondslag aan de nieuwste web-frameworks geproduceerd door de pylonen gemeenschap.
piramide was eerder bekend als repoze.bfg.
Ondersteuning en documentatie
Zie de website pylonen Project documentatie, bugs rapporteren bekijken, en steun te krijgen.
Licentie
piramide wordt aangeboden onder de BSD afgeleide Repoze Public License
Wat is nieuw in deze release:.
- mako_templating: toegevoegde defensieve workaround voor niet-importability van mako vanwege upstream markupsafe dropping Python 3.2 ondersteuning. Mako template zal niet meer werken onder de combinatie van MarkupSafe 0,17 en Python 3.2 (hoewel de combinatie van MarkupSafe 0,17 en Python 3.3 of enige ondersteunde Python 2 versie zal werken op OK).
- Maak de pyramid.config.assets.PackageOverrides bezwaar uitvoering van de API voor __loader__ objecten genoemd in PEP 302. Volmachten aan de door de importeur ingesteld __loader__, indien aanwezig; anders, verhoogt NotImplementedError. Dit maakt Piramide statische visie overrides werken behoren onder Python 3.3 (voorheen zouden ze niet). Zie https://github.com/Pylons/pyramid/pull/1015 voor meer informatie.
Wat is nieuw in versie 1.4:
- Fix functionele tests in de ZODB handleiding
Wat is nieuw in versie 1.4 Beta 3:
- Packaging vrijlating alleen, geen wijzigingen in de code. 1.4b2 was een brownbag vrijkomen als gevolg van ontbrekende directories in de tarball.
Wat is nieuw in versie 1.3.4:
- Wanneer pyramid.debug_routematch werd ingeschakeld en de traverse predikaat werd gebruikt in elke route, de router zou een uitzondering te verhogen wanneer het proberen om de route debugging informatie af te drukken. Deze bug bestaat sinds 1.3a1.
- Wanneer de traverse predikaat werd gebruikt in elke route, zou proutes en pviews console scripts een uitzondering te verhogen wanneer het proberen om de route debug informatie af te drukken. Deze bug bestaat sinds 1.3a1.
- backport bug fix van meester: - In Mako Sjablonen lookup, controleer absolute uri (met behulp van Mako directories) bij het mengen up erve met troef specs. https://github.com/Pylons/pyramid/issues/662
- Bij het registreren van meerdere weergaven met een accept gezegde in een piramide applicatie runing onder Python 3, u zou kunnen hebben een TypeError ontvangen function () & lt; function () uitzondering.
- backport van meester: HTTP Accept headers niet werden genormaliseerd waardoor mogelijk conflicterende oog registraties om onopgemerkt. Twee opvattingen die alleen verschillen in de zaak ("text / html 'versus' text / html ') zal nu een fout te verhogen. https://github.com/Pylons/pyramid/pull/620
Niet te bestellen types::
Wat is nieuw in versie 1.4 Alpha 1:
- Bug Fixes:
- Forward poort van 1,3 tak: Als er geen authenticatie beleid is geconfigureerd, zou een oproep om pyramid.security.effective_principals onvoorwaardelijk terug te keren de lege lijst. Dit is onjuist, het moet onvoorwaardelijk hebben teruggegeven [Iedereen], en nu doet.
- Expliciete url verzending reguliere expressies kunnen nu bevatten dubbele punten. https://github.com/Pylons/pyramid/issues/629
- Op ten minste een 64-bit Ubuntu-systeem onder Python 3.2, met behulp van de view_config decorateur veroorzaakte een RuntimeError: woordenboek veranderd grootte tijdens iteratie uitzondering. Het doet niet meer. Zie https://github.com/Pylons/pyramid/issues/635 voor meer informatie.
- In Mako Sjablonen lookup, controleer dan of de uri al is aangepast en terug te brengen naar een actief spec. Normaal gesproken gebeurt met erfelijke sjablonen of opgenomen componenten. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
- In Mako Sjablonen lookup, controleer absolute uri (met behulp van Mako directories) bij het mengen up erve met troef specs. https://github.com/Pylons/pyramid/issues/662
- HTTP Accept headers niet werden genormaliseerd waardoor mogelijk conflicterende oog registraties om onopgemerkt. Twee opvattingen die alleen verschillen in de zaak ("text / html 'versus' text / html ') zal nu een fout te verhogen. https://github.com/Pylons/pyramid/pull/620
- Forward-poort van 1,3 tak: niet te bestellen types:: bij het registreren van meerdere weergaven met een accept gezegde in een piramide applicatie runing onder Python 3, u zou kunnen hebben een TypeError ontvangen function () & lt; function () uitzondering.
- Kenmerken:
- Configurator.add_directive accepteert nu willekeurige callables zoals partials of voorwerpen uitvoering __call__ die niet hoeft __name__ en __doc__ attributen. Zie https://github.com/Pylons/pyramid/issues/621 en https://github.com/Pylons/pyramid/pull/647.
- Third-party aangepaste weergave, route, en abonnee predikaten kan nu gebruik worden toegevoegd door het oog auteurs via pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate en pyramid.config.Configurator.add_subscriber_predicate. Dus, bijvoorbeeld, dit te doen:
- config.add_view_predicate ('abc', my.package.ABCPredicate)
- Might toestaan dat een auteur om dit te doen in een toepassing die dat predikaat geconfigureerd:
- view_config (abc = 1)
- Vergelijkbare functies bestaan voor add_route en add_subscriber. Zie & quot; Een derde partij toevoegen View, Route, of Abonnee Predikaat & quot; in het hoofdstuk Haken voor meer informatie.
- Merk op dat wijzigingen in de bovenstaande functie ondersteunen nu betekent dat alleen acties geregistreerd met behulp van dezelfde & quot; Om & quot; kan in strijd zijn met elkaar. Het was vroeger het geval dat de acties ingeschreven bij verschillende orders kan potentieel conflict, maar bij mijn weten niets ooit afhing van dit gedrag (het was een beetje dom) zijn.
- Aangepaste objecten kunnen gemakkelijk JSON-serializable worden gemaakt in Piramide door het definiëren van een __json__ methode op de klasse van het object. Deze methode moet waarden native serializable door json.dumps terugkeren (zoals integers, lijsten, woordenboeken, strijkers, enzovoort).
- De JSON renderer maakt het nu mogelijk voor de definitie van de aangepaste soort adapters om onbekende objecten converteren naar JSON serialisaties.
- Met ingang van deze release, de REQUEST_METHOD predikaat, indien gebruikt, zal ook betekenen dat HEAD wordt geïmpliceerd wanneer je gebruiken. Bijvoorbeeld met behulp vanview_config (REQUEST_METHOD = "GET") is gelijk aan het gebruikview_config (REQUEST_METHOD = ('GET', 'hoofd')). Met behulp vanview_config (REQUEST_METHOD = ('GET', 'POST') is gelijk aan het gebruikview_config (REQUEST_METHOD = ('GET', 'hoofd', 'POST'). Dit komt omdat HEAD is een variant van GET dat nalaat de lichaam, en WebOb heeft speciale ondersteuning aan een leeg lichaam terugkeren wanneer een HEAD wordt gebruikt.
- config.add_request_method is ingevoerd om de uitbreiding verzoek objecten met willekeurige callables ondersteunen. Deze werkwijze breidt de vorige config.set_request_property door ondersteunende methoden en eigenschappen. Deze methode zorgt ervoor dat nu minder code uit te voeren op verzoek van de bouwtijd dan config.set_request_property in versie 1.3.
- Voeg geen? om URL gegenereerd door request.resource_url als de zoekopdracht argument wordt verstrekt maar leeg.
- Voeg geen? om URL gegenereerd door request.route_url als de _query argument wordt verstrekt maar leeg.
- De statische visie machines verhoogt nu (in plaats van rendement) HTTPNotFound en HTTPMovedPermanently uitzonderingen, zodat deze kunnen worden opgevangen door de NotFound uitzicht (en andere opvattingen uitzondering).
- De Mako renderer ondersteunt nu een def naam van een actief spec. Wanneer de naam def aanwezig is in het actief spec is, zal het systeem de sjabloon def binnen de sjabloon maken en zal het resultaat terug. Een voorbeeld troef spec is pakket: pad / naar / template # defname.mako. Dit zal de def vernoemd defname binnen het template.mako sjabloon in plaats van destructie het gehele sjabloon maken. De oude manier van het terugsturen van een tupel in de vorm ('defname', {}) uit het zicht wordt ondersteund voor achterwaartse compatibiliteit,
- De Kameleon ZPT renderer accepteert nu een macro naam van een actief spec. Wanneer de macro naam aanwezig is in het actief spec is, zal het systeem de macro vermeld als een definiëren-macro maken en terug te keren het resultaat in plaats van destructie het gehele sjabloon. Een voorbeeld van activa spec: pakket: pad / naar / template # macroname.pt. Dit zal de macro gedefinieerd als macroname binnen de template.pt sjabloon in plaats van de hele Templae maken.
- Wanneer er een predikaat mismatch uitzondering (gezien toen geen uitzicht past voor een bepaalde aanvraag te wijten aan predikaten niet werken), de uitzondering bevat nu een tekstuele beschrijving van het predicaat die niet overeen.
- Een richtlijn add_permission methode werd toegevoegd aan de Configurator. Deze richtlijn registreert een vrijstaande toestemming introspecteerbare in de Piramide introspectie systeem. Kaders gebouwd bovenop Piramide kan dus gebruik maken van de de permissies introspecteerbare categorie gegevens om een uitgebreide lijst met permissies ondersteund door een draaiend systeem te bouwen. Voordat deze methode werd toegevoegd, werden permissies reeds in deze introspecteerbare categorie als een neveneffect van het noemen ze in een add_view oproep geregistreerd, deze methode maakt het gewoon mogelijk om te zorgen voor een toelating in de permissies te zetten introspecteerbare categorie zonder het te benoemen, samen met een gekoppelde weergave. Hier is een voorbeeld van het gebruik van add_permission:
- config = Configurator ()
- config.add_permission ('view')
- De UnencryptedCookieSessionFactoryConfig accepteert nu signed_serialize en signed_deserialize haken die kunnen worden gebruikt om te beïnvloeden hoe de sessies heen en weer pendelen (standaard wordt dit gedaan met HMAC + augurk).
- pyramid.testing.DummyRequest ondersteunt nu methoden van de klasse pyramid.util.InstancePropertyMixin geleverd zoals set_property.
- Aanvraag eigenschappen en methoden toegevoegd via config.set_request_property of config.add_request_method zijn nu beschikbaar voor tweens.
- Aanvraag eigenschappen en methoden toegevoegd via config.set_request_property of config.add_request_method zijn nu beschikbaar in het verzoek object terug van pyramid.paster.bootstrap.
- request.context van milieu verzoek tijdens de bootstrap is nu de wortel object als een context nog niet is ingesteld op een voorwaarde aanvraag.
- De pyramid.decorator.reify functie is nu een API, en werd toegevoegd aan de API-documentatie.
- Toegevoegd de pyramid.testing.testConfig context manager, die kan worden gebruikt om een configurator genereren test, bijvoorbeeld met testing.testConfig (...).
- Gebruikers kunnen nu een beroep doen op een subrequest uit in het zicht code met behulp van een nieuwe request.invoke_subrequest API.
- Waardeverminderingen:
- De pyramid.config.Configurator.set_request_property heeft-documentatie deprecated geweest. De methode bruikbaar blijft maar hoe meer aan mogelijkheden pyramid.config.Configurator.add_request_method moet worden gebruikt in de plaats (het heeft allemaal dezelfde mogelijkheden, maar kan ook het verzoek object met methoden uit te breiden).
- Backwards van onverenigbaarheid:
- De Piramide router niet meer voegt de waarden bfg.routes.route of bfg.routes.matchdict aan het verzoek van WSGI milieu woordenboek. Deze waarden waren docs-deprecated in repoze.bfg 1.0 (effectief zeven kleine releases geleden). Als uw code afhing van deze waarden, gebruiken request.matched_route en request.matchdict plaats.
- Het is niet langer mogelijk om een environ woordenboek rechtstreeks doorgeven aan pyramid.traversal.ResourceTreeTraverser .__ call__ (aka ModelGraphTraverser .__ call__). In plaats daarvan moet u een verzoek object passeren. Het passeren van een omgeving in plaats van een verzoek is een deprecation waarschuwing gegenereerd sinds Piramide 1.1.
- Piramide zal niet meer goed werken als u de webob.request.LegacyRequest gebruiken als een verzoek in de fabriek. Instanties van de LegacyRequest klasse hebben een request.path_info die een string terug. Deze piramide vrijkomen ervan uit dat request.path_info onvoorwaardelijk zal zijn Unicode.
- De functies van pyramid.chameleon_zpt en pyramid.chameleon_text genaamd get_renderer, get_template, render_template en render_template_to_response zijn verwijderd. Deze zijn sinds Piramide 1.0 een deprecation waarschuwing bij invoer uitgegeven. Gebruik pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Implementatie (), pyramid.renderers.render () of pyramid.renderers.render_to_response respectievelijk plaats van deze functies.
- De pyramid.configuration module werd verwijderd. Het was ontraden sinds Piramide 1.0 en drukte een deprecation waarschuwing op het gebruik ervan. Gebruik pyramid.config plaats.
- De pyramid.paster.PyramidTemplate API werd verwijderd. Het was ontraden sinds Piramide 1.1 en een waarschuwing op import. Als uw code afhankelijk van deze, aan te passen uw code te pyramid.scaffolds.PyramidTemplate importeren plaats.
- De pyramid.settings.get_settings () API werd verwijderd. Het was het printen van een deprecation waarschuwing sinds Piramide 1.0. Als uw code afhing van deze API, gebruiken pyramid.threadlocal.get_current_registry (). Instellingen in plaats daarvan of gebruik de instellingen attribuut van het register verkrijgbaar bij de aanvraag (request.registry.settings).
- Deze API's van de pyramid.testing module werden verwijderd. Ze zijn afgedrukt deprecation waarschuwingen sinds Piramide 1.0:
- registerDummySecurityPolicy, gebruiken pyramid.config.Configurator.testing_securitypolicy plaats.
- registerResources (aka registerModels, gebruiken pyramid.config.Configurator.testing_resources plaats.
- registerEventListener, gebruiken pyramid.config.Configurator.testing_add_subscriber plaats.
- registerTemplateRenderer (aka registerDummyRenderer`), gebruik pyramid.config.Configurator.testing_add_template plaats.
- registerView, gebruiken pyramid.config.Configurator.add_view plaats.
- registerUtility, gebruiken pyramid.config.Configurator.registry.registerUtility plaats.
- registerAdapter, gebruiken pyramid.config.Configurator.registry.registerAdapter plaats.
- registerSubscriber, gebruiken pyramid.config.Configurator.add_subscriber plaats.
- registerRoute, gebruiken pyramid.config.Configurator.add_route plaats.
- registerSettings, gebruik pyramid.config.Configurator.add_settings plaats.
- In Piramide 1.3 en eerdere, de __call__ methode van een Response object werd aangeroepen voordat enige afgewerkte callbacks werden geëxecuteerd. Met ingang van deze release, is de __call__ methode van een Response object aangeroepen nadat afgewerkte callbacks worden uitgevoerd. Dit is ter ondersteuning van de request.invoke_subrequest functie.
- Documentatie:
- Toegevoegde een & quot; Het upgraden van de Piramide & quot; hoofdstuk aan het verhaal documentatie. Het beschrijft hoe om te gaan met Waardeverminderingen en het verwijderen van de Piramide API's en hoe je Piramide-gegenereerde deprecation waarschuwingen laten zien tijdens het uitvoeren van tests en tijdens het uitvoeren van een server.
- Voegde een & quot; Het aanroepen van een subrequest & quot; hoofdstuk aan de documentatie. Het beschrijft hoe de nieuwe request.invoke_subrequest API te gebruiken.
- Afhankelijkheden:
- Piramide vereist nu WebOb 1.2b3 + (de voorafgaande Piramide vrijlating vertrouwden alleen op 1.2dev +). Dit is om ervoor te zorgen dat we krijgen een versie van WebOb dat request.path_info keert terug als tekst.
Wat is nieuw in versie 1.3.2:
- Versie 1.3.1 was een brownbag release, op minst op Windows en eventueel op andere besturingssystemen, te wijten aan het bestaan van een verdwaalde & quot; pakket directory (citaat inbegrepen) in de root directory van de 1.3.1 tarball. Deze map en de inhoud ervan was aanwezig omdat de tarball werd gemaakt met een versie van setuptools-git in plaats van een setuptools-git geïnstalleerd vanaf een kassa. De enige verandering in deze release is op de verpakking fout in 1.3.1.
Wat is nieuw in versie 1.3:
- Wanneer pyramid.wsgi.wsgiapp2 noemt de downstream WSGI app, environ van de app zal niet langer (verouderd en mogelijk misleidend) bfg.routes.matchdict of bfg.routes.route sleutels erin. Een symptoom van deze bug zou een-wsgiapp2 verpakt Piramide app vinden het verkeerd inzicht, omdat het ten onrechte detecteert dat een route werd geëvenaard, terwijl in feite, was het niet.
- De correctie voor uitgifte https://github.com/Pylons/pyramid/issues/461 (die het mogelijk maakte bijvoorbeeld methoden om te worden gebruikt als uitzicht callables) introduceerde een achteruit onverenigbaarheid wanneer methoden die verklaarde slechts een verzoek argument waren gebruikt. Zie https://github.com/Pylons/pyramid/issues/503
Wat is nieuw in versie 1.3 Beta 2:
- De methode pyramid.request.Request.partial_application_url is niet meer in de API documentatie. Het was bedoeld om een eigen methode te zijn; de bekendmaking ervan in de documentatie als een API-methode was een vergissing, en het is hernoemd naar iets prive.
- Wanneer een statische visie werd geregistreerd met behulp van een absoluut bestandspad op Windows, heeft de request.static_url functie niet om URL's om haar middelen te genereren. Symptoom: & quot; Geen statische URL definitie matching c:. Foobarbaz & quot;
- Maak alle tests doorstaan op Windows XP.
- Bug in ACL-verificatie controleren op Python 3: de vergunningen en principals_allowed_by_permission methode pyramid.authorization.ACLAuthenticationPolicy zou een ongepast True waarde terug te keren wanneer een toestemming op een ACL was een string in plaats van een volgorde, en dan alleen als de ACL toestemming touwtje was een substring van de toestemming waarde doorgegeven aan de functie.
- Deze bug effecten geen Piramide inzet onder Python 2; het is een bug die alleen bestaat in implementaties draait op Python 3. Het bestaat al sinds Piramide 1.3a1.
- Deze fout werd veroorzaakt door de aanwezigheid van een __iter__ attribuut op koorden onder Python 3 die niet aanwezig is onder strings in Python 2.
Wat is nieuw in versie 1.3 Beta 1:
- Bug Fixes:
- pyramid.config.Configurator.with_package niet werken als de Configurator was een oude-stijl pyramid.configuration.Configurator bijvoorbeeld.
- beleid Piramide toestemming kwam niet opdagen in de Introspector.
- Waardeverminderingen:
- Alle verwijzingen naar de tmpl_context verzoek variabele werden verwijderd uit de docs. Haar bestaan in Piramide is verwarrend voor mensen die nooit werden pylonen gebruikers. Het werd toegevoegd als een porten gemak voor pylonen gebruikers Pyramid 1.0, maar het is nooit betrapt op omdat de Piramide renderen systeem is een stuk anders dan pylonen 'was, en alternatieve manieren bestaan om te doen wat het werd ontworpen om te bieden in pylonen. Het zal blijven bestaan & quot; voor altijd & quot; maar het zal niet worden aanbevolen of vermeld in de docs.
Eisen
- Python
Reacties niet gevonden