pyramid

Tela Software:
pyramid
Detalhes de Software:
Versão: 1.4.2
Data de upload: 20 Feb 15
Revelador: Chris McDonough
Licença: Livre
Popularidade: 1

Rating: nan/5 (Total Votes: 0)

pirâmide é um rápido, pequeno, terra-a-terra, estrutura de desenvolvimento Python web open source & nbsp;. Faz do mundo real desenvolvimento e implantação mais divertido, mais previsível e mais produtivo aplicação web.
pirâmide é um projeto de Pilares, e fundamenta os mais novos frameworks web produzidos pela comunidade Pilões.
pirâmide era anteriormente conhecido como repoze.bfg.
Suporte e Documentação
Consulte o site da Pilões projeto para exibir a documentação, relatar bugs, e obter apoio.
License
pirâmide é oferecido sob a Licença Pública Repoze derivado do BSD

O que é novo nesta versão:.

  • mako_templating: adicionado defensiva Solução para a não-importability de mako devido a markupsafe montante caindo 3,2 apoio Python. Mako templates deixarão de trabalhar sob a combinação de MarkupSafe 0,17 e Python 3.2 (embora a combinação de MarkupSafe 0,17 e Python 3.3 ou qualquer versão suportada Python 2 vai funcionar OK).
  • Faça as pyramid.config.assets.PackageOverrides objeto implementar a API para __loader__ objetos especificados no PEP 302 proxies ao __loader__ definido pelo importador, se presente; caso contrário, aumenta NotImplementedError. Isso faz com que Pyramid visão estática substituições trabalhar corretamente sob Python 3.3 (anteriormente eles não). Veja https://github.com/Pylons/pyramid/pull/1015 para mais informações.

O que é novo na versão 1.4:

  • Corrigir testes funcionais no tutorial ZODB

O que é novo na versão 1.4 Beta 3:

  • liberação Packaging apenas, sem alterações no código. 1.4b2 foi um lançamento brownbag devido à falta de diretórios no arquivo tar.

O que é novo na versão 1.3.4:

  • Quando pyramid.debug_routematch foi ligado e a travessia predicado foi usado em qualquer rota, o roteador iria levantar uma exceção ao tentar imprimir as informações de rota de depuração. Este bug existe desde 1.3a1.
  • Quando o predicado travessia foi usado em qualquer rota, proutes e pviews roteiros de console iria levantar uma exceção ao tentar imprimir as informações de rota de depuração. Este bug existe desde 1.3a1.
  • Backport correção de bug do mestre: - Em pesquisa Mako modelos, verifique se há uri absoluto (usando diretórios mako) quando se mistura a herança com especificações de ativos. https://github.com/Pylons/pyramid/issues/662
  • Ao registrar vários pontos de vista com um predicado aceitar em um aplicativo Pyramid runing sob Python 3, você pode ter recebido um TypeError: tipos unorderable: function () & lt; function () exceção.
  • Backport do mestre: HTTP Aceitar cabeçalhos não estavam sendo normalizado causando potencialmente conflitantes registros de visualização para passar despercebida. Dois pontos de vista que se diferenciam apenas no caso ('text / html' vs. 'text / html') vai agora gerar um erro. https://github.com/Pylons/pyramid/pull/620

O que é novo na versão 1.4 Alpha 1:

  • Correções de bugs:
  • porta Avançado de 1,3 ramo: Quando não há política de autenticação foi configurado, uma chamada para pyramid.security.effective_principals iria retornar incondicionalmente a lista vazia. Este foi incorreta, ele deve ter incondicionalmente devolvido [Todos], e agora faz.

  • regexes
  • Explicit expedição url agora pode conter dois pontos. https://github.com/Pylons/pyramid/issues/629
  • Em pelo menos um sistema Ubuntu de 64 bits sob o Python 3.2, utilizando o decorador view_config causou uma RuntimeError: Dicionário mudou de tamanho durante a iteração exceção. Já não se faz. Veja https://github.com/Pylons/pyramid/issues/635 para mais informações.
  • Em pesquisa Mako modelos, verifique se o URI já está ajustada e trazê-lo de volta para uma especificação de ativos. Normalmente ocorre com modelos herdados ou componentes incluídos. https://github.com/Pylons/pyramid/issues/606 https://github.com/Pylons/pyramid/issues/607
  • Em pesquisa Mako modelos, verifique se há uri absoluto (usando diretórios mako) quando se mistura a herança com especificações de ativos. https://github.com/Pylons/pyramid/issues/662
  • HTTP Aceitar cabeçalhos não estavam sendo normalizado causando potencialmente conflitantes registros de visualização para passar despercebida. Dois pontos de vista que se diferenciam apenas no caso ('text / html' vs. 'text / html') vai agora gerar um erro. https://github.com/Pylons/pyramid/pull/620
  • Encaminhar-port de 1,3 ramo: ao registrar múltiplos pontos de vista com um aceitar predicado em uma aplicação Pyramid runing sob Python 3, você pode ter recebido um TypeError: tipos unorderable: function () & lt; function () exceção.
  • Características:
  • Configurator.add_directive agora aceita Callables arbitrárias como parciais ou objetos execução __call__ que não tem __name__ e __doc__ atributos. Veja https://github.com/Pylons/pyramid/issues/621 e https://github.com/Pylons/pyramid/pull/647.

  • Predicados
  • de terceiros exibição personalizado, rotas, e assinantes podem agora ser adicionados para uso por ver os autores via pyramid.config.Configurator.add_view_predicate, pyramid.config.Configurator.add_route_predicate e pyramid.config.Configurator.add_subscriber_predicate. Assim, por exemplo, fazer isso:
  • config.add_view_predicate ('abc', my.package.ABCPredicate)
  • Pode permitir uma visão autor para fazer isso em um aplicativo que configurado que predicado:
  • view_config (abc = 1)
  • características semelhantes existem para add_route e add_subscriber. Ver & quot; de adicionar uma vista de Terceiros, Route, ou Assinante Predicado & quot; no capítulo Hooks para mais informações.
  • Observe que as alterações feitas para suportar a funcionalidade acima agora significa que somente as ações registradas usando o mesmo & quot; ordem & quot; pode entrar em conflito um com o outro. Ela costumava ser o caso de que as ações registradas em diferentes ordens poderiam conflito, mas que eu saiba nada nunca dependeu esse comportamento (que era um pouco bobo).

  • Objetos
  • personalizadas podem ser feitas facilmente JSON-serializado na Pirâmide, definindo um método __json__ na classe do objeto. Este método deve retornar valores nativamente serializáveis ​​por json.dumps (como ints, listas, dicionários, strings, e assim por diante).
  • O representante de JSON permite agora a definição de adaptadores do tipo personalizado para converter objetos desconhecidos para serializations JSON.
  • A partir desta versão, o predicado REQUEST_METHOD, quando utilizada, também implica que a cabeça está implícito quando você usa GET. Por exemplo, usandoview_config (REQUEST_METHOD = 'GET') é equivalente a usarview_config (REQUEST_METHOD = ('GET', 'cabeça')). Usandoview_config (REQUEST_METHOD = ('GET', 'POST') é equivalente a usarview_config (REQUEST_METHOD = ('GET', 'Head', 'POST'). Isto é porque a cabeça é uma variante do GET que omite a corpo, e WebOb possui suporte especial para devolver um corpo vazio quando a cabeça é usado.
  • config.add_request_method foi introduzido para apoiar estendendo-se objetos de requisição com Callables arbitrárias. Este método expande sobre a config.set_request_property anterior por métodos de apoio, bem como propriedades. Este método agora faz com que menos código a ser executado a pedido tempo de construção do que config.set_request_property na versão 1.3.
  • Não adicionar um? para URLs gerados por request.resource_url se o argumento de consulta é fornecida, mas vazio.
  • Não adicionar um? para URLs gerados por request.route_url se o argumento _query é fornecido, mas vazio.
  • O maquinário visão estática levanta agora (ao invés de retornos) HTTPNotFound e HTTPMovedPermanently exceções, assim que estes podem ser capturados pela visão NotFound (e outros pontos de vista de exceção).
  • O representante de Mako agora suporta um nome def em uma especificação de ativos. Quando o nome def está presente na especificação de ativos, o sistema irá processar a def modelo dentro do modelo e retornará o resultado. Um exemplo de especificação de ativos é pacote: path / to / template # defname.mako. Isso vai tornar o defname def nomeado dentro do modelo template.mako em vez de prestar todo o modelo. A velha maneira de retornar uma tupla na forma ('defname', {}) a partir da visão é suportada para compatibilidade com versões anteriores,
  • O representante Chameleon ZPT agora aceita um nome de macro em uma especificação de ativos. Quando o nome da macro está presente na especificação de ativos, o sistema irá processar a macro listado como um define-macro e retornar o resultado, em vez de prestar todo o modelo. Um exemplo de especificação de ativos: pacote: path / to / template # macroname.pt. Isso vai tornar a macro definida como macroname dentro do modelo template.pt vez de toda a templae.
  • Quando há uma exceção predicado incompatibilidade (visto quando não corresponde vista para uma determinada solicitação devido a predicados não funciona), a exceção agora contém uma descrição textual do predicado que não se encontraram.
  • Um método directiva add_permission foi adicionado ao Configurator. Esta directiva registra um introspectable permissão free-standing no sistema introspecção Pyramid. Frameworks construídas sobre Pyramid podem assim utilizar as permissões de dados categoria introspectable para construir uma ampla lista de permissões apoiados por um sistema em execução. Antes foi adicionado este método, as permissões já foram registrados nesta categoria introspectable como um efeito colateral de nomeá-los em uma chamada add_view, este método só torna possível organizar para uma permissão para ser colocado em as permissões categoria introspectable sem nomeá-lo, juntamente com uma visão associada. Aqui está um exemplo de uso de add_permission:
  • config = Configurator ()
  • config.add_permission ('view')
  • O UnencryptedCookieSessionFactoryConfig agora aceita signed_serialize e signed_deserialize ganchos que podem ser usados ​​para influenciar a forma como as sessões são empacotadas (por padrão isso é feito com HMAC + picles).
  • pyramid.testing.DummyRequest agora suporta métodos fornecidos pela classe pyramid.util.InstancePropertyMixin como set_Property.
  • propriedades do pedido e métodos adicionados via config.set_request_property ou config.add_request_method estão agora disponíveis para tweens.
  • propriedades do pedido e métodos adicionados via config.set_request_property ou config.add_request_method estão agora disponíveis no objeto do pedido de regressar de pyramid.paster.bootstrap.
  • request.context de pedido ambiente durante a inicialização agora é o objeto raiz se um contexto ainda não estiver definida em um pedido fornecido.
  • A função pyramid.decorator.reify agora é uma API, e foi adicionado a documentação da API.
  • Adicionado o gerente pyramid.testing.testConfig contexto, que pode ser utilizado para gerar um configurador de um teste, por exemplo, com testing.testConfig (...):.
  • Os usuários agora podem invocar um subrequest de dentro do código vista usando uma nova API request.invoke_subrequest.
  • Deprecações:
  • O pyramid.config.Configurator.set_request_property foi preterido-documentação. O método permanece utilizável mas o pyramid.config.Configurator.add_request_method mais featureful deve ser usado em seu lugar (que tem todos os mesmos recursos, mas também pode estender o objeto do pedido com métodos).
  • recuo Incompatibilidades:
  • O roteador Pyramid já não adiciona o bfg.routes.route valores ou bfg.routes.matchdict ao ambiente WSGI dicionário do pedido. Esses valores foram docs preterido em repoze.bfg 1.0 (efectivamente sete lançamentos menores atrás). Se o seu código dependia desses valores, utilize request.matched_route e request.matchdict vez.
  • Não é mais possível passar um dicionário environ diretamente para pyramid.traversal.ResourceTreeTraverser .__ call__ (aka ModelGraphTraverser .__ call__). Em vez disso, você deve passar um objeto do pedido. Passando um ambiente em vez de um pedido tem gerado um aviso de reprovação desde Pyramid 1.1.
  • Pyramid deixarão de funcionar corretamente se você usar o webob.request.LegacyRequest como uma fábrica de pedido. Instâncias da classe LegacyRequest ter um request.path_info que retornar uma string. Esta versão Pyramid assume que request.path_info será incondicionalmente Unicode.
  • As funções de pyramid.chameleon_zpt e pyramid.chameleon_text nomeado get_renderer, get_template, render_template e render_template_to_response foram removidos. Estes ter emitido um aviso de reprovação na importação desde Pyramid 1.0. Use pyramid.renderers.get_renderer (), pyramid.renderers.get_renderer (). Execução (), pyramid.renderers.render () ou pyramid.renderers.render_to_response respectivamente, em vez de estas funções.
  • O módulo pyramid.configuration foi removido. Ela havia sido reprovado desde Pyramid 1.0 e impresso um aviso de reprovação da sua utilização. Use pyramid.config vez.
  • A API pyramid.paster.PyramidTemplate foi removido. Ela havia sido reprovado desde Pyramid 1.1 e emitiu um alerta sobre a importação. Se o seu código dependia isso, ajustar o seu código para importar pyramid.scaffolds.PyramidTemplate vez.
  • Os pyramid.settings.get_settings () API foi removido. Ele estava imprimindo um aviso de reprovação desde Pyramid 1.0. Se o seu código dependia desta API, use pyramid.threadlocal.get_current_registry (). Configurações vez ou usar o atributo configurações do registro disponível a partir do pedido (request.registry.settings).
  • Essas APIs do módulo pyramid.testing foram removidos. Eles foram imprimindo avisos deprecation desde Pyramid 1.0:
  • registerDummySecurityPolicy, utilize pyramid.config.Configurator.testing_securitypolicy vez.
  • registerResources (aka registerModels, usar pyramid.config.Configurator.testing_resources vez.
  • registerEventListener, utilize pyramid.config.Configurator.testing_add_subscriber vez.
  • registerTemplateRenderer (aka registerDummyRenderer`), use pyramid.config.Configurator.testing_add_template vez.
  • registerView, utilize pyramid.config.Configurator.add_view vez.
  • registerUtility, utilize pyramid.config.Configurator.registry.registerUtility vez.
  • registerAdapter, utilize pyramid.config.Configurator.registry.registerAdapter vez.
  • registerSubscriber, utilize pyramid.config.Configurator.add_subscriber vez.
  • registerRoute, utilize pyramid.config.Configurator.add_route vez.
  • registerSettings, uso pyramid.config.Configurator.add_settings vez.
  • Em Pyramid 1.3 e anterior, o método __call__ de um objeto Response foi invocada antes de qualquer callbacks acabados foram executados. A partir desta versão, o método __call__ de um objeto Response é invocado após callbacks acabados são executados. Esta é em apoio do recurso request.invoke_subrequest.
  • Documentação:
  • Adicionado um & quot; Atualizando Pyramid & quot; capítulo a documentação narrativa. Ele descreve como lidar com depreciações e remoções de pirâmide APIs e como mostrar avisos deprecation Pyramid gerados durante a execução de testes e durante a execução de um servidor.
  • Adicionado a & quot; Invocando um Subrequest & quot; capítulo à documentação. Ele descreve como usar a nova API request.invoke_subrequest.
  • Dependências:
  • Pyramid agora exige WebOb 1.2b3 + (a versão anterior Pyramid apenas invocado 1.2dev +). Isto é para assegurar que se obtenha uma versão de WebOb que retorna request.path_info como texto.

O que é novo na versão 1.3.2:

  • Versão 1.3.1 foi um lançamento brownbag, pelo muito menos no Windows e, possivelmente, em outros sistemas operacionais, devido à existência de um gato de rua & quot; diretório do pacote (citação incluída) no diretório raiz do arquivo tar 1.3.1. Este diretório e seu conteúdo estava presente porque o arquivo tar foi criado usando uma versão de lançamento do setuptools-git em vez de um setuptools-git instalado a partir de um check-out. A única mudança nesta versão é para corrigir o erro de embalagem no ponto 1.3.1.

O que é novo na versão 1.3:

  • Quando pyramid.wsgi.wsgiapp2 chama o app WSGI a jusante, Environ do app não terá mais (obsoleto e potencialmente enganosa) bfg.routes.matchdict ou bfg.routes.route chaves nele. Um sintoma desse bug seria um app Pyramid-embrulhado wsgiapp2 encontrar o ponto de vista errado porque erroneamente detecta que uma rota foi correspondida quando, na verdade, não era.
  • A correção para problema https://github.com/Pylons/pyramid/issues/461 (que tornou possível para os métodos de instância para ser usado como vista Callables) introduziu uma incompatibilidade para trás quando os métodos que declarou apenas um argumento pedido foram utilizado. Veja https://github.com/Pylons/pyramid/issues/503

O que é novo na versão 1.3 Beta 2:

  • O método é pyramid.request.Request.partial_application_url já não nos docs API. Era para ser um método privado; sua publicação na documentação como um método de API foi um erro, e foi renomeado para algo privado.
  • Quando uma visão estática foi registrado usando um caminho de sistema de arquivos absoluto no Windows, a função request.static_url não funcionou para gerar URLs para seus recursos. Sintoma: & quot; Não estática correspondente definição URL c:. Foobarbaz & quot;
  • Faça todos os testes passarem no Windows XP.
  • Bug na autenticação ACL verificando em Python 3: a licenças e principals_allowed_by_permission método de pyramid.authorization.ACLAuthenticationPolicy possa retornar um verdadeiro valor inadequado quando uma permissão em um ACL foi uma string ao invés de uma sequência, e apenas se a permissão ACL seqüência foi uma substring do valor permissão passado para a função.
  • Este bug efeitos não implantação Pyramid sob Python 2; isso é um bug que só existe em implementações de execução em Python 3. Ele existe desde Pyramid 1.3a1.
  • Este bug foi devido à presença de um atributo __iter__ em cordas sob Python 3 que não está presente sob strings em Python 2.

O que é novo na versão 1.3 Beta 1:

  • Correções de bugs:
  • pyramid.config.Configurator.with_package não funciona se o Configurator era um estilo antigo instância pyramid.configuration.Configurator.
  • políticas de autorização Pyramid não apareceu no introspector.
  • Deprecações:
  • Todas as referências à variável pedido tmpl_context foram retirados dos docs. Sua existência no Pyramid é confuso para as pessoas que nunca foram Pilões usuários. Ele foi adicionado como uma conveniência para os usuários portar postes em Pyramid 1.0, mas nunca pegou porque o sistema de renderização Pyramid é muito diferente do que Pilões 'era, e existem formas alternativas para fazer o que foi projetado para oferecer em Pilões. Ele continuará a existir & quot; para sempre & quot; mas não vai ser recomendada ou mencionados nos docs.

Requisitos :

  • Python

Outro software de desenvolvedor Chris McDonough

pyramid_handlers
pyramid_handlers

14 Apr 15

Waitress
Waitress

14 Apr 15

pyramid_exclog
pyramid_exclog

14 Apr 15

Comentário para pyramid

Comentários não encontrado
Adicionar comentário
Ligue imagens!