Pyrex est un langage de modules d'extension Python écriture.
Pyrex est un langage spécialement conçu pour l'écriture de modules d'extension Python. Il est conçu pour combler le fossé entre le haut niveau agréable, monde facile à l'utilisation de Python et le désordre, faible niveau mondial de C.
Vous demandez peut-être pourquoi quelqu'un voudrait un langage spécial pour cela. Python est vraiment facile d'étendre l'aide de C ou C ++, est-ce pas? Pourquoi ne pas simplement écrire vos modules d'extension dans une de ces langues?
Eh bien, si vous avez déjà écrit un module d'extension pour Python, vous savez que les choses ne sont pas aussi facile que ça. Tout d'abord, il est un peu juste de code réutilisable à écrire avant même de descendre au sol. Ensuite, vous êtes confronté avec le problème de la conversion entre les types de données en Python et C. Pour les types de base tels que les nombres et les chaînes ceci est pas trop mal, mais rien de plus complexe et vous êtes dans la cueillette des objets Python de part en utilisant les / C appels API Python, ce qui vous oblige à être méticuleux au sujet du maintien du nombre de références, la vérification des erreurs à chaque étape et de nettoyage correctement si quelque chose va mal. Toutes les erreurs et vous avez une mauvaise chute qui est très difficile à déboguer.
Différents outils ont été développés pour faciliter une partie du fardeau de la production de code d'extension, dont peut-être SWIG est le plus connu. SWIG prend un fichier de définition constitué d'un mélange de code C et déclarations spécialisés, et produit un module d'extension. Il écrit tous les passe-partout pour vous, et dans de nombreux cas, vous pouvez l'utiliser sans avoir à connaître l'API Python / C. Mais vous devez utiliser les appels d'API si une restructuration importante des données est nécessaire entre Python et C.
Qui plus est, SWIG vous donne pas d'aide du tout si vous voulez créer un nouveau type de Python intégré. Il va générer des classes pures-Python (qui enveloppent d'une manière légèrement dangereux) des pointeurs vers des structures de données C, mais la création de véritables types d'extension est en dehors de son champ d'application.
Une autre tentative notable à le rendre plus facile à étendre Python est PyInline, inspiré par une installation semblable pour Perl. PyInline vous permet d'intégrer des morceaux de code C dans le milieu d'un fichier Python, et automatiquement les extrait et les compile en une extension. Mais il ne convertit automatiquement les types de base, et comme avec SWIG, il ne traite pas de la création de nouveaux types de Python.
Pyrex vise à aller au-delà de ce que l'un de ces outils précédents fournit. Pyrex traite des types de base tout aussi facilement que SWIG, mais il vous permet aussi d'écrire du code pour convertir entre arbitraires structures de données de Python et des structures arbitraires de données de C, d'une manière simple et naturelle, sans rien connaître de la / C API Python. Cela est vrai - rien du tout! Ni que vous avez à vous soucier de comptage de référence ou la vérification des erreurs - il est tous pris en charge automatiquement, dans les coulisses, tout comme il est dans le code Python interprété. Et qui plus est, Pyrex vous permet de définir de nouveaux types intégrés de Python aussi facilement que vous pouvez définir de nouvelles classes en Python.
Quoi de neuf dans cette version:
· Minuscule bugfix pour corriger un problème onglet / espace dans le prolongement distutils.
Détails logiciels:
Version: 0.9.4.1
Date de transfert: 3 Jun 15
Licence: Gratuit
Popularité: 113
Commentaires non trouvées