icon_python.png

Utilisation de Cython

PYTHON-CYTHON2 days

Objectives

Python est un langage puissant, orienté objet, convenant parfaitement à une grande diversité de tâches, du développement web à la simulation numérique en passant par les interfaces graphiques. Toutefois, il est parfois nécessaire d'optimiser les performances de certaines sections critiques du code Python ou d'utiliser une librairie existante non encore accessible en Python. Il est traditionnellement nécessaire pour cela de descendre à un niveau inférieur, typiquement le langage C, pour permettre la compilation de sections critiques du code ou l'accès à une librairie. C'est ici qu'intervient Cython, qui étend le langage Python en ajoutant des annotations permettant d'obtenir les bénéfices de la syntaxe haut-niveau du langage Python tout en le rendant compilable, évitant ainsi d'avoir à écrire du C ou du C++, nettement plus verbeux et moins lisible.
La formation proposée ici se déroule sur deux jours et s'intéresse à un usage avancé de Cython. Partant d'un cas d'optimisation d'un programme Python en Cython, elle développe les principes d'utilisation de Cython pour s'interfacer avec des librairies externes écrites en C ou en C++. La dernière partie s'intéresse à l'utilisation de Cython dans un environnement industriel (norme de codage, écriture de tests, génération de documentation) et compare ses capacités avec les autres outils existants.
La formation comporte une large part de travaux pratiques permettant de mettre en œuvre immédiatement les concepts ayant été vus dans le cadre du cours.


Audience

Ce cours s'adresse aux personnes souhaitant utiliser Cython pour optimiser un programme Python ou s'interfacer avec des librairies externes écrites en C ou C++.


Prerequisites

Connaissance pratique de la programmation en Python, notions de C ou de C++.


program

Introduction

  • Introduction à Cython

    historique de la bibliothèque, domaines d'utilisation.
  • Principes généraux

    environnement de développement, compilation d'extension Cython.

Optimisation d'un code Python existant en utilisant Cython

  • Syntaxe de base de Cython pour la programmation procédurale

    variables et typage, définition de fonctions, utilisation des types et fonctions standards de Python, gestion des erreurs.
  • La programmation orientée objet et Cython

    extension type : les classes de Cython, l'héritage, utilisation des properties, les fonctions spéciales.

Cython pour s'interfacer avec une librairie externe écrite en C ou en C++

  • Principe généraux

    utiliser des librairies C à partir de Cython, utiliser les déclarations et les fonctions Cython à partir du C
  • Cas du C++

    spécification de l'usage du C++ à la compilation, déclarer une classe d'interface C++
  • Limitations

Assurance qualité et Cython

  • Normes de codage

  • Test d'un code Cython

  • Documentation d'un code Cython avec Sphinx


Customization

Cette formation peut être adaptée afin de répondre au mieux à vos besoins. Le cours peut par exemple être complété pour aborder d'autres outils tel que SWIG, Boost ou ctypes. Logilab dispose aujourd'hui d'une palette très large de modules pédagogiques permettant la personnalisation de ses formations.
L'adaptation des cours en intra-entreprise est quasiment systématique. N'hésitez pas à demander conseil à notre service commercial.


Terms

Il est possible d'organiser, à votre demande, une ou plusieurs sessions en intra-entreprise (sur site) n'importe où en France ou en Europe.
Chaque participant à la formation dispose d'un exemplaire personnel du support de cours et du manuel d'exercices.

Durée

2 jours soit 14 heures.

Langue

Au choix, française ou anglaise

Intervenant

Tous les intervenants animant cette formation bénéficient de compétences pédagogiques reconnues. D'autre part, ils participent activement au développement du langage Python et sont intervenus dans des projets utilisant Cython pour accélérer du code, notamment dans un cadre scientifique.

Travaux pratiques

Cette formation accorde une place prépondérante aux travaux pratiques qui permettent, tout au long du cours, de mettre en œuvre et assimiler les concepts théoriques.

Intra-entreprise

  • groupes de 10 personnes maximum
  • 2 jours