Couch-chamado-Python

servidor de visualização Couchdb que executa funções no caminho do Python por nome
Baixe Agora

Couch-chamado-Python Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL v3
  • Preço:
  • FREE
  • Nome do editor:
  • Daniel Richman
  • Site do editor:
  • https://github.com/danielrichman/

Couch-chamado-Python Tag


Couch-chamado-Python Descrição

O Couch-Named-Python é um servidor de visualização do CouchDB que executa funções no caminho do Python por nome.InstallationYou vai precisar de um nome de sofá-python e suas funções instaladas no mesmo caminho do python, sendo globalmente, em um virtualenv, ou uma distribuição Menos pasta com um script wrapper que define o PythonPath e invoca Couch_Named_python.pyviews: Main. Neste exemplo, estou usando virtualenv: virtualenv / opt / couch_vssource / opt / couch_vs / bin / activeatepip install couch-chamado-python myfunctions # ou confira cada pacote e use ./setup.py install enquanto virtualenv'd.next , editar /etc/couchdb/local.ini e adicionar à seção Query_servers: Python = / opt / couch_vs / bin / sofá-nomeado-pythonand Reiniciar CouchdBusageFunções no design DOC são apenas module.module.Module.Function paths , por exemplo, se myviews.py (que é instalado no caminho python / opt / couch_vs por pip) contidoFrom couch_named_python Importar não autorizado, proibido, versão @ versão (123) def townmap (doc): rendimento doc @ versão (21) DEF Validate (Novo, Velho, Userctx, SecObj): Se userctx ! = "Daniel": Levantar não autorizado ("não" elif "cidade" não em novo: levantar proibido ("Nenhuma cidade em DOC ") Em seguida, o design DOC pode ser {" ID ":" _design / location "," Visualizações ": {" Cidades ": {" Mapa ":" Myviews.Townmap | 123 "}}," Validate_doc_update ":" MywEws .Validar | 21 "," Linguagem ":" Python "} ie, o fo RMAT é Module.Module.Function.function.vão. Você pode preferir descrever seu design de design em um arquivo yaml, assim: localização: views: cidades: Mapa: myviews.townmap validate_doc_update: myviews.validatethen rodscnp-upload http: // admin : Password @ localhost: 5984 MyDatabase Design.ylwill Upload do mesmo design de design como acima. Você pode ter vários documentos de design em um arquivo Yaml, e se uma exibição não tiver nenhuma função de redução, você pode omitir o mapa :, like assim: design_a: Visualizações: One: Module.Path Dois: Module.OutherDesign_B: Visualizações: stats: Mapa: Module.Map Reduzir: Module.ReduceFurthermore, o CNP-Upload Importações, detecta e acrescenta os sufixos de versão | para você (note como eles são omitidos no Yaml acima, mas produziriam exatamente o mesmo design de design que o exemplo). Portanto, o seu módulo precisa estar no caminho, portanto, certifique-se de ter seu virtualenv em que o servidor de visualização é instalado ativado.rational para decorador @version para o código é armazenado no documento de design, como com o servidor JavaScript padrão, o CouchDB pode rastrear e lidar com as mudanças. No entanto, temos alguns problemas: - O nome do sofá-Python não recusia os módulos. O Viewerver terá que morrer por SIGTERM ou erro para forçá-lo a recarregar o código. - O nome do Couch-Python não pode dizer ao CouchDB que a função de exibição foi alterada. O CouchDB não vai sequer pensar que a função de visualização foi alterada, a menos que você modifique a string para a função no documento de design (economizando o doc sem alterações ou modificando outros atributos não funciona). Para se exercitar se o comportamento da função de exibição for alterado, já que ele poderia ser espalhado por mais de um arquivo. Danotating funções com uma 'versão' manualmente alterada é a solução mais fácil. Quando estiver fazendo uma atualização, você precisa: - Atualize seu Python Arquivos, alterando a @versão em funções cujo comportamento mudou - re-upload de documentos de design para essas funções - Carregue uma exibição para garantir que tudo esteja de volta. Se as versões em uma função carregada e o design do design não corresponderem Ver servidor gera um erro e morre. Isso provavelmente causará a solicitação que iniciou a atualização de exibição para falhar e, em vez disso, produzir um {"erro": blah} resposta do sofá. Atualizar a página reiniciará o servidor de exibição, carregará o arquivo atualizado e execute a exibição corretamente. (Alternativamente, você pode matar o processo de exibição do processo. Se estiver ocioso no momento, o sofá não se importará, e não vai reclamar na primeira carga de visualização.) O uso da versão decorador e verificação é opcional, mas fortemente recomendado . Você pode simplesmente usar funções sem o decorador e colocar módulo.Module.Function no documento de design, se você deseja. Homepage do Product


Couch-chamado-Python Software Relacionado