pyramid

Software screenshot:
pyramid
Dettagli del software:
Versione: 1.4.2
Data di caricamento: 20 Feb 15
Sviluppatore: Chris McDonough
Licenza: Libero
Popolarità: 1

Rating: nan/5 (Total Votes: 0)

piramide è un veloce, piccolo, con i piedi per terra, framework di sviluppo di Python web open source. & Nbsp; Rende lo sviluppo di applicazioni web reali e la distribuzione più divertente, più prevedibile e più produttivo.
piramide è un progetto Piloni, e alla base dei nuovi framework web prodotte dalla comunità Piloni.
piramide era precedentemente conosciuto come repoze.bfg.
Supporto e Documentazione
Vedere il sito Piloni progetto per visualizzare la documentazione, i bug report e ottenere supporto.
License
piramide è offerto con la BSD-derived Repoze Public License

Cosa c'è di nuovo in questa versione:.

  • mako_templating: aggiunto difensiva Soluzione per non importability di mako causa markupsafe monte cadere Python 3.2 supporto. Mako templating non sarà più lavorare sotto la combinazione di MarkupSafe 0,17 e Python 3.2 (anche se la combinazione di MarkupSafe 0,17 e Python 3.3 o qualsiasi versione supportata Python 2 funzionerà OK).
  • Fare le pyramid.config.assets.PackageOverrides oggetto implementare l'API per __loader__ oggetti specificati nel PEP 302. La delega al __loader__ impostare da parte dell'importatore, se presente; in caso contrario, solleva NotImplementedError. Questo rende Pyramid visione statica sostituzioni funzionano correttamente in Python 3.3 (in precedenza non sarebbe). Per ulteriori informazioni, vedere https://github.com/Pylons/pyramid/pull/1015.

Cosa c'è di nuovo in versione 1.4:

  • Fissare test funzionali nel tutorial ZODB

Cosa c'è di nuovo in versione 1.4 Beta 3:

  • rilascio Packaging solo, senza modifiche al codice. 1.4b2 è un rilascio Brownbag causa della mancanza directory nel tarball.

Cosa c'è di nuovo nella versione 1.3.4:

  • Quando pyramid.debug_routematch è stata accesa e traversa predicato è stato utilizzato in qualsiasi percorso, il router solleverebbe un'eccezione quando si tenta di stampare le informazioni sul percorso di debug. Questo bug esiste dal 1.3a1.
  • Quando il predicato traversata è stato utilizzato in qualsiasi percorso, proutes e pviews script console sarebbe sollevare un'eccezione quando si tenta di stampare le informazioni sul percorso di debug. Questo bug esiste dal 1.3a1.
  • Backport bug fix da maestro: - In Mako Modelli di ricerca, verificare la presenza di URI assoluto (usando le directory mako) quando mescolando eredità con specifiche attività. https://github.com/Pylons/pyramid/issues/662
  • Quando si registra più viste con un predicato accettare in un'applicazione Pyramid runing in Python 3, si potrebbe aver ricevuto un TypeError: tipi non ordinabile: function () & lt; () funzione eccezione.
  • Backport da maestro: HTTP Accept intestazioni non erano normalizzati causando potenzialmente conflittuali vista registrazioni di passare inosservato. Due punti di vista che differiscono solo nel caso ('text / html' vs 'text / HTML') sarà ora generare un errore. https://github.com/Pylons/pyramid/pull/620

Cosa c'è di nuovo in versione 1.4 Alpha 1:

  • Bug risolti:
  • porta avanti da 1.3 ramo: quando è stato configurato alcun criterio di autenticazione, una chiamata a pyramid.security.effective_principals sarebbe incondizionatamente restituire la lista vuota. Questo è stato corretto, dovrebbe avere incondizionatamente tornato [Everyone], e ora lo fa.

  • regex
  • url Explicit spedizione possono ora contenere i due punti. https://github.com/Pylons/pyramid/issues/629
  • Su almeno un sistema Ubuntu a 64 bit in Python 3.2, utilizzando il decoratore view_config causato un RuntimeError: dizionario cambiato dimensioni durante l'iterazione eccezione. Non è più così. Per ulteriori informazioni, vedere https://github.com/Pylons/pyramid/issues/635.
  • In Mako Modelli di ricerca, controllare se l'URI è già regolata e riportarlo ad una specifica risorsa. Normalmente si verifica con i modelli ereditati o componenti inclusi. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
  • In Mako Modelli di ricerca, verificare la presenza di URI assoluto (usando le directory mako) quando mescolando eredità con specifiche attività. https://github.com/Pylons/pyramid/issues/662
  • HTTP Accept intestazioni non erano normalizzati causando potenzialmente conflittuali vista registrazioni di passare inosservato. Due punti di vista che differiscono solo nel caso ('text / html' vs 'text / HTML') sarà ora generare un errore. https://github.com/Pylons/pyramid/pull/620
  • Forward-port da 1,3 ramo: al momento della registrazione più visualizzazioni con una accettare predicato in un'applicazione Pyramid runing in Python 3, si potrebbe avere ricevuto una TypeError: tipi non ordinabile: function () & lt; () funzione eccezione.
  • Caratteristiche:
  • Configurator.add_directive ora accetta callable arbitrarie come parziali o oggetti di attuazione __call__ che non hanno __name__ e __doc__ attributi. Vedere https://github.com/Pylons/pyramid/issues/621 e https://github.com/Pylons/pyramid/pull/647.

  • Predicati
  • terze parti di visualizzazione personalizzata, percorso, e abbonati possono ora essere aggiunti per l'uso da vista autori via pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate e pyramid.config.Configurator.add_subscriber_predicate. Così, per esempio, fare questo:
  • config.add_view_predicate ('abc', my.package.ABCPredicate)
  • Potrebbe consentire a un autore al fine di fare questo in un'applicazione che configura quel predicato:
  • view_config (abc = 1)

  • Esistono
  • caratteristiche simili per add_route, e add_subscriber. Vedere & quot; L'aggiunta di un terzo View, Rotta, o Subscriber Predicate & quot; nel capitolo Ganci per ulteriori informazioni.
  • Si noti che le modifiche apportate per supportare la funzione di cui sopra ora significa che solo le azioni registrate con lo stesso & quot; per & quot; possono entrare in conflitto tra loro. Ha usato essere il caso che le azioni registrate a diversi ordini potrebbe potenzialmente un conflitto, ma per il mio nulla conoscenza sempre dipeso da questo comportamento (era un po 'sciocco).

  • Oggetti
  • personalizzati possono essere fatte facilmente JSON-serializzabile in Piramide definendo un metodo __json__ sulla classe dell'oggetto. Questo metodo deve restituire valori nativamente serializzabili da json.dumps (come int, liste, dizionari, stringhe, e così via).
  • Il renderer JSON consente ora per la definizione di adattatori di tipo personalizzato per convertire gli oggetti sconosciuti per serializzazioni JSON.
  • A partire da questa versione, il predicato REQUEST_METHOD, se usato, anche implicare che HEAD è implicito quando si utilizza GET. Ad esempio, utilizzandoview_config (REQUEST_METHOD = 'GET') equivale a utilizzareview_config (REQUEST_METHOD = ('GET', 'HEAD')). Utilizzandoview_config (REQUEST_METHOD = ('GET', 'post') è equivalente all'utilizzoview_config (REQUEST_METHOD = ('GET', 'testa', 'post'). Questo perché HEAD è una variante di GET che omette il corpo, e WebOb ha il supporto speciale per restituire un corpo vuoto quando si utilizza una testa.
  • config.add_request_method è stato introdotto per supportare estendono oggetti richiesta con callable arbitrarie. Questo metodo si espande sul config.set_request_property precedente con metodi di supporto così come le proprietà. Questo metodo fa sì che ora meno codice da eseguire al momento della richiesta di costruzione di config.set_request_property in versione 1.3.
  • Non aggiunge una? a URL generati da request.resource_url se l'argomento query viene fornito ma vuota.
  • Non aggiunge una? a URL generati da request.route_url se l'argomento _query è fornito ma vuota.
  • Il macchinario visione statica ora solleva (piuttosto che ritorna) HTTPNotFound e HTTPMovedPermanently eccezioni, così questi possono essere catturati dalla vista NotFound (e altri punti di vista di eccezione).
  • Il renderer Mako supporta ora un nome def in una specifica risorsa. Quando il nome def è presente nelle specifiche attività, il sistema rende la definizione del modello all'interno del modello e restituirà il risultato. Un spec esempio attività è pacchetto: path / to / template # defname.mako. Questo renderà il defname chiamato def all'interno del template template.mako invece di rendere l'intero modello. Il vecchio modo di restituire una tupla nella forma ('defname', {}) dal punto di vista è supportato per la compatibilità a ritroso,
  • Il renderer Chameleon ZPT ora accetta un nome di macro in una specifica risorsa. Quando il nome di macro è presente nelle specifiche attività, il sistema rende la macro elencata come define-macro e restituire il risultato invece di rendere l'intero modello. Un esempio spec bene: il pacchetto: path / to / template # macroname.pt. Questo renderà la macro definita come nomemacro all'interno del modello template.pt anziché l'intero templae.
  • Quando c'è un'eccezione predicato mancata corrispondenza (visto quando non vista corrisponde per una determinata richiesta a causa di predicati non funzionante), l'eccezione ora contiene una descrizione testuale del predicato che non corrisponde.
  • Un metodo direttiva add_permission è stato aggiunto al configuratore. Questa direttiva registra un introspectable permesso free-standing nel sistema introspezione Piramide. Quadri costruiti in cima a piramide possono quindi utilizzare i dati le autorizzazioni di categoria introspectable per costruire una lista completa dei permessi supportati da un sistema in esecuzione. Prima è stato aggiunto questo metodo, i permessi erano già registrati in questa categoria introspectable come un effetto collaterale di nominarli in una chiamata add_view, questo metodo rende solo la possibilità di organizzare un permesso di essere messo in autorizzazioni categoria introspectable senza nominarlo con una visualizzazione associata. Ecco un esempio di utilizzo di add_permission:
  • config = Configurator ()
  • config.add_permission ('Vista')
  • Il UnencryptedCookieSessionFactoryConfig ora accetta signed_serialize e signed_deserialize ganci che possono essere utilizzati per influenzare il modo le sessioni sono marshalling (per impostazione predefinita questo viene fatto con HMAC + salamoia).
  • pyramid.testing.DummyRequest ora supporta i metodi forniti dalla classe pyramid.util.InstancePropertyMixin quali set_property.
  • proprietà Richiesta ei metodi aggiunti via config.set_request_property o config.add_request_method sono ora disponibili per interpolazioni.
  • proprietà Richiesta ei metodi aggiunti via config.set_request_property o config.add_request_method sono ora disponibili nell'oggetto di richiesta di ritorno da pyramid.paster.bootstrap.
  • request.context della richiesta dell'ambiente durante bootstrap è ora l'oggetto root se un contesto non è già impostato su una richiesta prevista.
  • La funzione pyramid.decorator.reify ora è un API, ed è stato aggiunto alla documentazione API.
  • Inserito il gestore contesto pyramid.testing.testConfig, che può essere utilizzato per generare un configuratore in un test, ad esempio con testing.testConfig (...).
  • Gli utenti possono ora invocare una sotto richiesta dal codice vista utilizzando una nuova API request.invoke_subrequest.
  • deprecati:
  • Il pyramid.config.Configurator.set_request_property è stato documentazione-deprecato. Il metodo rimane utilizzabile, ma il più ricco di funzioni pyramid.config.Configurator.add_request_method deve essere usato al suo posto (che ha tutte le stesse capacità, ma può anche estendersi l'oggetto di richiesta con i metodi).
  • Backwards Incompatibilità:
  • Il router Piramide non aggiunge i valori bfg.routes.route o bfg.routes.matchdict al dizionario ambiente WSGI della richiesta. Questi valori sono stati docs-deprecate in repoze.bfg 1.0 (efficace sette versioni minori fa). Se il codice dipendesse questi valori, utilizzare request.matched_route e request.matchdict invece.
  • Non è più possibile passare un dizionario environ direttamente pyramid.traversal.ResourceTreeTraverser .__ call__ (aka ModelGraphTraverser .__ call__). Invece, è necessario passare un oggetto di richiesta. Passando un ambiente invece di una richiesta ha generato un avviso di disapprovazione dal Pyramid 1.1.
  • Piramide non funzionerà correttamente se si utilizza il webob.request.LegacyRequest come fabbrica richiesta. Le istanze della classe LegacyRequest hanno request.path_info che restituisce una stringa. Questa versione Piramide presuppone che request.path_info sarà incondizionatamente in Unicode.
  • Le funzioni di pyramid.chameleon_zpt e pyramid.chameleon_text nome get_renderer, get_template, render_template, e render_template_to_response sono stati rimossi. Questi hanno emesso un avviso di disapprovazione sull'importazione dal Pyramid 1.0. Utilizzare pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Implementazione (), pyramid.renderers.render () o pyramid.renderers.render_to_response rispettivamente al posto di queste funzioni.
  • Il modulo pyramid.configuration è stato rimosso. Era stato sconsigliato dal Pyramid 1.0 e stampato un avviso di disapprovazione sul suo utilizzo. Utilizzare pyramid.config invece.
  • L'API pyramid.paster.PyramidTemplate è stato rimosso. Era stato sconsigliato dal Pyramid 1.1 e ha emesso un avviso durante l'importazione. Se il codice dipendesse questo, regolare il codice di importare pyramid.scaffolds.PyramidTemplate invece.
  • I pyramid.settings.get_settings () API è stato rimosso. Era stato stampando un avviso di disapprovazione dal Pyramid 1.0. Se il codice dipendesse questa API, utilizzare pyramid.threadlocal.get_current_registry (). Impostazioni invece o utilizzare l'attributo impostazioni del Registro di sistema disponibile dalla richiesta (request.registry.settings).
  • Queste API dal modulo pyramid.testing sono stati rimossi. Sono stati stampati warning di deprecazione dal Pyramid 1.0:
  • registerDummySecurityPolicy, utilizzare pyramid.config.Configurator.testing_securitypolicy invece.
  • registerResources (aka registerModels, utilizzano pyramid.config.Configurator.testing_resources invece.
  • registerEventListener, utilizzare pyramid.config.Configurator.testing_add_subscriber invece.
  • registerTemplateRenderer (aka registerDummyRenderer`), utilizzare pyramid.config.Configurator.testing_add_template invece.
  • registerView, utilizzare pyramid.config.Configurator.add_view invece.
  • registerUtility, utilizzare pyramid.config.Configurator.registry.registerUtility invece.
  • registerAdapter, utilizzare pyramid.config.Configurator.registry.registerAdapter invece.
  • registerSubscriber, utilizzare pyramid.config.Configurator.add_subscriber invece.
  • registerRoute, utilizzare pyramid.config.Configurator.add_route invece.
  • registerSettings, uso pyramid.config.Configurator.add_settings invece.
  • In Pyramid 1.3 e precedenti, il metodo __call__ di un oggetto Response è stato richiamato prima che fossero eseguiti eventuali callback finiti. A partire da questa versione, il metodo __call__ di un oggetto Response viene richiamato dopo callback finiti vengono eseguiti. Questo è a sostegno della funzione request.invoke_subrequest.
  • Documentazione:
  • Aggiunto un & quot; Aggiornamento Pyramid & quot; capitolo per la documentazione di narrazione. Descrive come affrontare deprecati e rimossi di Pyramid API e come mostrare warning di deprecazione Piramide-generati durante l'esecuzione di test e durante l'esecuzione di un server.
  • Aggiunto un & quot; Invocare una sotto richiesta & quot; capitolo alla documentazione. Descrive come utilizzare la nuova API request.invoke_subrequest.
  • Dipendenze:
  • Piramide ora richiede WebOb 1.2b3 + (la release precedente Piramide affidamento solo su 1.2dev +). Questo per garantire che si ottiene una versione di WebOb che restituisce request.path_info come testo.

Cosa c'è di nuovo nella versione 1.3.2:

  • Versione 1.3.1 è una release Brownbag, a meno su Windows ed eventualmente su altri sistemi operativi, a causa dell'esistenza di un randagio & quot; directory del pacchetto (citazione inclusa) nella directory principale del 1.3.1 tarball. Questa directory e il suo contenuto era presente perché il tarball è stato creato utilizzando una versione di setuptools-git piuttosto che un setuptools-git installato da una cassa. L'unico cambiamento in questa versione è di correggere l'errore di confezionamento in 1.3.1.

Cosa c'è di nuovo nella versione 1.3:

  • Quando pyramid.wsgi.wsgiapp2 chiama il WSGI app valle, environ del app non avrà più (deprecato e potenzialmente fuorviante) bfg.routes.matchdict o bfg.routes.route chiavi in ​​esso. Un sintomo di questo bug sarebbe una piramide app wsgiapp2 avvolto trovare la vista sbagliato, perché rileva erroneamente che un percorso è stato abbinato, quando, in realtà, non è stato.
  • La correzione di problema https://github.com/Pylons/pyramid/issues/461 (che ha reso possibile per i metodi di istanza da utilizzare come vista callable) ha introdotto un un'incompatibilità all'indietro quando i metodi che hanno dichiarato solo un argomento fosse richiesta utilizzato. Vedere https://github.com/Pylons/pyramid/issues/503

Cosa c'è di nuovo in versione 1.3 Beta 2:

  • Il metodo è pyramid.request.Request.partial_application_url non è più nella documentazione API. Doveva essere un metodo privato; la sua pubblicazione nella documentazione come un metodo API è stato un errore, ed è stato rinominato in qualcosa di privato.
  • Quando una visione statica è stato registrato utilizzando un percorso filesystem assoluto su Windows, la funzione request.static_url non ha funzionato per generare URL alle sue risorse. Sintomo: & quot; No statica definizione URL corrispondente c:. Foobarbaz & quot;
  • Fai tutti i test passano su Windows XP.
  • Bug in autenticazione ACL controllo su Python 3: i permessi e principals_allowed_by_permission metodo di pyramid.authorization.ACLAuthenticationPolicy potrebbe restituire un vero valore inadeguato quando un permesso su un ACL è una stringa piuttosto che una sequenza, e quindi solo se l'autorizzazione ACL stringa è una sottostringa del valore di autorizzazione passato alla funzione.
  • Questo effetti di bug non distribuzione Piramide sotto Python 2; si tratta di un bug che esiste solo nelle distribuzioni in esecuzione su Python 3. esiste dal Pyramid 1.3a1.
  • Questo bug è dovuto alla presenza di un attributo __iter__ sulle stringhe in Python 3, che non è presente sotto le stringhe in Python 2.

Cosa c'è di nuovo in versione 1.3 Beta 1:

  • Bug risolti:
  • pyramid.config.Configurator.with_package non ha funzionato se il Configurator era un vecchio stile istanza pyramid.configuration.Configurator.
  • le politiche di autorizzazione Piramide non si sono presentati nel Introspector.
  • deprecati:
  • Tutti i riferimenti alla variabile richiesta tmpl_context sono stati rimossi dai documenti. La sua esistenza in Piramide è fonte di confusione per le persone che non sono mai stati piloni utenti. E 'stato aggiunto come vantaggio porting per gli utenti Piloni a Pyramid 1.0, ma non è mai preso piede perché il sistema di rendering Piramide è molto diverso da quello Piloni' era, e modi alternativi esistono per fare ciò che è stato progettato per offrire in Piloni. Si continuerà ad esistere & quot; per sempre & quot; ma non sarà raccomandato o menzionati nella documentazione.

Requisiti :

  • Python

Altri software di sviluppo Chris McDonough

superlance
superlance

20 Feb 15

pyramid_handlers
pyramid_handlers

14 Apr 15

Waitress
Waitress

14 Apr 15

Commenti a pyramid

I commenti non trovato
Aggiungi commento
Accendere le immagini!