Pyrex é uma linguagem para escrever Python módulos de extensão.
Pyrex é uma linguagem especialmente concebido para escrever módulos de extensão de Python. Ele foi projetado para preencher a lacuna entre o bom, de alto nível, mundo easy-to-use do Python e do mundo bagunçado, de baixo nível de C.
Você pode estar se perguntando por que alguém iria querer uma linguagem especial para isso. Python é realmente fácil de estender usando C ou C ++, não é? Porque não basta escrever seus módulos de extensão em uma dessas línguas?
Bem, se você já escreveu um módulo de extensão para Python, você vai saber que as coisas não são tão fáceis assim. Primeiro de tudo, há um pouco de código clichê para escrever antes que você pode até mesmo sair do chão. Em seguida, você se depara com o problema da conversão entre tipos de dados Python e C. Para os tipos básicos, tais como números e strings isso não é muito ruim, mas nada mais elaborado e está em escolher Python objetos separados utilizando as / C chamadas de API do Python, que exige que você seja cuidadoso sobre a manutenção de contagens de referência, verificação de erros a cada passo e limpar corretamente se alguma coisa der errado. Quaisquer erros e você tem um acidente desagradável que é muito difícil para depurar.
Várias ferramentas foram desenvolvidas para aliviar alguns dos encargos de produção de código de extensão, dos quais talvez SWIG é o mais conhecido. SWIG leva um arquivo de definição do que consiste em uma mistura de código C e declarações especializadas, e produz um módulo de extensão. Ele grava tudo o clichê para você e, em muitos casos, você pode usá-lo sem saber sobre a API do Python / C. Mas você precisa usar chamadas de API se for necessária qualquer reestruturação substancial dos dados entre Python e C.
Além do mais, SWIG não lhe dá nenhuma ajuda em tudo, se você quiser criar um novo tipo Python embutido. Ele irá gerar classes puras-Python que o envoltório (em uma maneira um pouco inseguro) ponteiros para estruturas de dados C, mas a criação de tipos de extensão verdadeiros está fora do seu âmbito.
Outra tentativa notável a torná-lo mais fácil de estender Python é PyInline, inspirado por uma instalação semelhante em Perl. PyInline permite incorporar pedaços de código C no meio de um arquivo de Python, e automaticamente extrai-los e compila-los em uma extensão. Mas ele só converte os tipos básicos automaticamente, e como com SWIG, que não aborda a criação de novos tipos de Python.
Pyrex pretende ir muito além do que qualquer uma dessas ferramentas fornece anteriores. Pyrex lida com os tipos básicos tão facilmente como SWIG, mas também permite que você escrever código para converter-se entre estruturas de dados Python arbitrárias e estruturas de dados C arbitrários, de uma forma simples e natural, sem saber nada sobre o Python / C API. É isso mesmo - nada! Nem você tem que se preocupar com a contagem de referência ou verificação de erros - é tudo o cuidado de automaticamente, nos bastidores, assim como é em código Python interpretado. E o que é mais, Pyrex permite definir novos tipos built-in Python tão facilmente como você pode definir novas classes em Python.
O que há de novo nesta versão:
· Bugfix minúsculo para corrigir um problema guia / espaço na extensão distutils.
Detalhes de Software:
Versão: 0.9.4.1
Data de upload: 3 Jun 15
Licença: Livre
Popularidade: 113
Comentários não encontrado