{"id":12879,"date":"2022-07-02T18:24:24","date_gmt":"2022-07-02T18:24:24","guid":{"rendered":"http:\/\/705consulting.com\/?page_id=12879"},"modified":"2023-02-21T00:27:39","modified_gmt":"2023-02-21T00:27:39","slug":"formation-python","status":"publish","type":"page","link":"https:\/\/705consulting.com\/index.php\/formation-python\/","title":{"rendered":"FORMATION PYTHON"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12879\" class=\"elementor elementor-12879\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f419774 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f419774\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b7ddcf4\" data-id=\"b7ddcf4\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-258fa8e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"258fa8e\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-1f15051\" data-id=\"1f15051\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-45b9f54 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"45b9f54\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a3cff03\" data-id=\"a3cff03\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f3991e2 elementor-widget elementor-widget-witr_section_t_widget\" data-id=\"f3991e2\" data-element_type=\"widget\" data-widget_type=\"witr_section_t_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<!-- text widget center -->\n\t\t\t\t\t<div class=\"witr_text_widget\">\n\t\t\t\t\t\t<div class=\"witr_text_widget_inner\">\n\t\t\t\t\t\t\t<!-- text widget top -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- text widget middle -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- text widget bottom -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- content -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p><p>Python est un\u00a0<b>langage de programmation puissant et facile \u00e0 apprendre<\/b>. Il dispose de structures de donn\u00e9es de haut niveau et permet une approche simple mais efficace de la programmation orient\u00e9e objet.<\/p><div class=\"co8aDb\" role=\"heading\" aria-level=\"3\"><b>Avec Python, on\u00a0peut\u00a0:<\/b><\/div><div class=\"RqBzHd\"><ol class=\"i8Z77e\"><li class=\"TrT0Xe\">cr\u00e9er et administrer un site Web.<\/li><li class=\"TrT0Xe\">d\u00e9velopper des logiciels et des applications, aussi bien pour ordinateur\u00a0<b>que<\/b>\u00a0pour t\u00e9l\u00e9phone.<\/li><li class=\"TrT0Xe\">automatiser des scripts syst\u00e8mes et des interactions ordinateur \u2013 navigateur Web.<\/li><\/ol><\/div><\/p>\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!--- repeater content --->\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-476bc18 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"476bc18\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-224c9a9\" data-id=\"224c9a9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-335bcc4 elementor-widget elementor-widget-toggle\" data-id=\"335bcc4\" data-element_type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.7.8 - 02-10-2022 *\/\n.elementor-toggle{text-align:left}.elementor-toggle .elementor-tab-title{font-weight:700;line-height:1;margin:0;padding:15px;border-bottom:1px solid #d4d4d4;cursor:pointer;outline:none}.elementor-toggle .elementor-tab-title .elementor-toggle-icon{display:inline-block;width:1em}.elementor-toggle .elementor-tab-title .elementor-toggle-icon svg{-webkit-margin-start:-5px;margin-inline-start:-5px;width:1em;height:1em}.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-right{float:right;text-align:right}.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-left{float:left;text-align:left}.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-closed{display:block}.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-opened{display:none}.elementor-toggle .elementor-tab-title.elementor-active{border-bottom:none}.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-closed{display:none}.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-opened{display:block}.elementor-toggle .elementor-tab-content{padding:15px;border-bottom:1px solid #d4d4d4;display:none}@media (max-width:767px){.elementor-toggle .elementor-tab-title{padding:12px}.elementor-toggle .elementor-tab-content{padding:12px 10px}}.e-container>.elementor-widget-toggle{width:var(--container-widget-width,100%)}<\/style>\t\t<div class=\"elementor-toggle\" role=\"tablist\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5381\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"tab\" aria-controls=\"elementor-tab-content-5381\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION PYTHON, PROGRAMMATION OBJET <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5381\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5381\"><h2>Objectifs de la formation\u00a0<\/h2><p>Le langage Python est particuli\u00e8rement polyvalent m\u00eame s\u2019il est particuli\u00e8rement utilis\u00e9 dans la Data Science et le Machine Learning gr\u00e2ce \u00e0 la richesse de ses biblioth\u00e8ques scientifiques d\u2019analyse de donn\u00e9es.<\/p><p>Cette\u00a0<strong>formation Python<\/strong>\u00a0vous permet de disposer des solides bases en programmation objet, pr\u00e9sent\u00e9es et d\u00e9clin\u00e9es dans le contexte de Python.\u00a0<\/p><p>\u00c0 l&#8217;issue de cette\u00a0<strong>formation,<\/strong>\u00a0vous aurez acquis les connaissances et comp\u00e9tences n\u00e9cessaires pour :\u00a0<\/p><ul><li>Conna\u00eetre les fondamentaux de la programmation objet<\/li><li>Ma\u00eetriser la syntaxe du langage Python<\/li><li>Conna\u00eetre et mettre en \u0153uvre les modules Python<\/li><li>Manipuler les donn\u00e9es en Python<\/li><li>Concevoir des interfaces graphiques en Python<\/li><li>Disposer d\u2019une premi\u00e8re exp\u00e9rience dans l\u2019utilisation des outils de test et d&#8217;\u00e9valuation d&#8217;un programme Python<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Python s&#8217;adresse \u00e0 tout d\u00e9veloppeur souhaitant acqu\u00e9rir les bases de la programmation en Python.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Les participants \u00e0 cette formation Python doivent conna\u00eetre un langage de programmation, car la formation ne pr\u00e9voit pas de revenir sur les bases de la programmation (variables, test, boucle, fonction, \u2026)<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>Bien commencer avec Python<\/h3><p>Pourquoi utiliser Python plut\u00f4t qu&#8217;un autre langage ?<br \/>Exemples de projet en Python<br \/>Diff\u00e9rences entre les versions de Python<br \/>Installation de Python (pr\u00e9-requis, fichiers, arborescence d\u00e9taill\u00e9e)<br \/>Fonctionnement de l&#8217;interpr\u00e9teur Python<br \/>Les apports de l&#8217;interpr\u00e9teur interactif iPython<br \/>Un premier programme&#8230;<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Prendre en main rapidement son environnement de d\u00e9veloppement<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Premier programme simple interactif de saisie et d\u2019affichage de texte afin de prendre en main l&#8217;interpr\u00e9teur Python. Un second programme non interactif permet de voir l\u2019aspect automatisation de Python.<\/em><\/p><h3>Les bases de Python (la syntaxe, les types)<\/h3><p>Organisation du code (modules, package, importations)<br \/>Recommandations de nommage<br \/>Les types de base (entier, cha\u00eene, r\u00e9el, &#8230;)<br \/>Erreurs classiques sur les types<br \/>Boucles (for), op\u00e9rateurs, tests (if\/else)<br \/>D\u00e9finition et appel de function<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Mettre en \u0153uvre la syntaxe fondamentale de Python\u00a0<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Saisie de notes dans un tableau numpy, affichage de la moyenne, de la plus petite et de la plus grande note. Chargement des notes depuis un fichier CSV (avec en t\u00eate), recherche du meilleur \u00e9tudiant<\/em><\/p><p><em>\u00a0<\/em><\/p><ol><li>\u00a0<\/li><\/ol><h3>Programmer objet en Python<\/h3><p>Limites de la programmation \u00ab simplement \u00bb structur\u00e9e<br \/>Philosophie, concepts, et vocabulaire de la programmation objet<br \/>Repr\u00e9sentation des donn\u00e9es en programmation objet (classes, propri\u00e9t\u00e9s)<br \/>Repr\u00e9sentation des traitements (m\u00e9thodes)<br \/>Contr\u00f4ler l\u2019acc\u00e8s aux donn\u00e9es (encapsulation)<br \/>Exemples de classes pr\u00e9d\u00e9finies en Python permettant de profiter pleinement de l\u2019approche objet<br \/>Cycle de vie d\u2019un objet (constructeur, destructeur)<br \/>Acc\u00e9der aux attributs et fonctionnalit\u00e9s de l\u2019objet cible (self)<br \/>Comment les objets communiquent entre eux ?<br \/>Classe m\u00e8re et classe fille (h\u00e9ritage)<br \/>Des fonctions diff\u00e9rentes avec \u2026 le m\u00eame nom (polymorphisme)<br \/>H\u00e9ritage simple et h\u00e9ritage multiple<br \/>La fonction super()<br \/>Protection des traitements (public, protected, private)<br \/>Le m\u00e9canisme de traitement des exceptions<br \/>Exemple de formalisme UML (diagramme de classe)<br \/>Tour d\u2019horizon des classes fondamentales existantes en Python<br \/>Notion de Design Patterns<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Savoir programmer objet en Python. Comprendre les liens entre les classes.<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Mise en \u0153uvre progressive d\u2019un mod\u00e8le objet en Python CLASSE, ELEVE, EXAMEN, NOTES regroupant l\u2019ensemble des concepts vus dans ce chapitre et favorisant la r\u00e9flexion sur les bonnes pratiques (encapsulation, h\u00e9ritage ? composition ?) tout en prenant en main la syntaxe de fa\u00e7on concr\u00e8te.<\/em><\/p><h3>Types de donn\u00e9es \u00e9volu\u00e9s<\/h3><p>Savoir choisir les bonnes structures de donn\u00e9es<br \/>Tuples, s\u00e9quences et listes (append, extend, insert, &#8230;)<br \/>Fonctions utiles avec les listes (filter, map, reduce)<br \/>Gestion des piles ou des files<br \/>La puissance des dictionnaires (tableaux associatifs)<br \/>Construire une liste sur la base d&#8217;une expression (compr\u00e9hension)<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Savoir utiliser les listes en Python<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Ajout \u00e0 la classe ELEVE de propri\u00e9t\u00e9s (utilisation des list et set) sous la forme de label inclin\u00e9s (utilisation de la librairie Matplotlib)<\/em><\/p><p><em>\u00a0<\/em><\/p><ol start=\"2\"><li>\u00a0<\/li><\/ol><h3>Compl\u00e9ments sur le langage Python<\/h3><p>G\u00e9n\u00e9rateurs et it\u00e9rateurs<br \/>Scripts ex\u00e9cutables<br \/>Op\u00e9rateurs associ\u00e9s aux listes<br \/>Encha\u00eenement de tests par rapport aux listes<br \/>Comparer les sequences<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Savoir utiliser les it\u00e9rateurs<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Modification de la classe ResultatExamen afin qu&#8217;elle impl\u00e9mente un it\u00e9rateur. Afficher dans un log les donn\u00e9es qu&#8217;elle contient via l&#8217;utilisateur de l&#8217;it\u00e9rateur (librairie logging)<\/em><\/p><h3>Les modules de Python<\/h3><p>Philosophie de Python avec les modules (standard, tiers, &#8230;)\u00a0<br \/>Tour d&#8217;horizon des modules standards\u00a0<br \/>Module re (expressions rationnelles)<br \/>Modules os et sys (services du syst\u00e8me d&#8217;exploitation)<br \/>Module csv (fichiers structur\u00e9s par s\u00e9parateur)<br \/>Comment trouver les modules ?<br \/>Installer des modules tiers (setuptools, EasyInstall)<br \/>Le d\u00e9p\u00f4t central : Python Package index (Pypi)<br \/>Importer des modules<br \/>Mieux g\u00e9rer son environnement avec Virtualenv<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Ma\u00eetriser l\u2019utilisation des modules en Python<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Cr\u00e9ation d\u2019un nouveau module en restructurant le projet pr\u00e9c\u00e9dent afin que les 2 classes Resultat et ResultatExamen soient dans un package note. On \u00e9crit ces donn\u00e9es dans un fichier texte (librairie csv). On modularise notre projet afin de simplifier sa maintenance et sa livraison en respectant les bonnes pratiques<\/em><\/p><p><em>\u00a0<\/em><\/p><ol start=\"3\"><li>\u00a0<\/li><\/ol><h3>Gestion des donn\u00e9es (fichiers, SGBD, XML)<\/h3><p>Acc\u00e9der aux fichiers (objet File)<br \/>Conformit\u00e9 des modules Python pour acc\u00e9der \u00e0 une base de donn\u00e9es (DB-API)<br \/>Python et requ\u00eates SQL<br \/>Filtrer les donn\u00e9es gr\u00e2ce aux expressions r\u00e9guli\u00e8res<br \/>Pr\u00e9sentation de la manipulation de flux XMl en Python (ElementTree)<br \/>Manipuler des fichiers CSV\u00a0<strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Savoir dialoguer avec une base de donn\u00e9es de type SQL en encapsulant les traitements de lecture\/\u00e9criture pour respecter les bonnes pratiques d\u2019architecture<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Construction d\u2019un acc\u00e8s \u00e0 une base MySQL ou PostgreSQL (librairies panda, psyco)<br \/>Dans un module persistance, on construit une classe ResultatDao, qui permet toutes les actions standards sur la table r\u00e9sultats (insertion, mise \u00e0 jour, suppression, lecture cibl\u00e9e ou compl\u00e8te de la table).<\/em><\/p><p><em>\u00a0<\/em><\/p><ol start=\"4\"><li>\u00a0<\/li><\/ol><h3>Cr\u00e9ation d\u2019interface graphique\u00a0<\/h3><p>Sp\u00e9cificit\u00e9s du d\u00e9veloppement d\u2019interface graphique (programmation \u00e9v\u00e9nementielle)<br \/>Pr\u00e9sentation de la biblioth\u00e8que TkInter.<br \/>Les principaux conteneurs.<br \/>Pr\u00e9sentation des widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text&#8230;).<br \/>Le gestionnaire de fen\u00eatres.<br \/>Le placement des composants, les diff\u00e9rents layouts.<br \/>La gestion des \u00e9v\u00e9nements, l&#8217;objet event.<br \/>Les applications multifen\u00eatres.<br \/>Un petit mot sur la biblioth\u00e8que Qt<\/p><p>\u00a0<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Mettre en \u0153uvre une IHM en Python avec TkInter<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: D\u00e9veloppement d\u2019une maquette pour compl\u00e9ter l\u2019atelier pr\u00e9c\u00e9dent sous forme graphique (menu, bo\u00eetes de dialogue, liste, boutons, \u2026) afin de proposer une interface pour la saisie des actions de manipulations des donn\u00e9es et l\u2019affichage des r\u00e9sultats<\/em><\/p><h3>Qualit\u00e9 et outils\u00a0<\/h3><p>En quoi consiste l\u2019assurance qualit\u00e9 d\u2019un programme Python (QA) ?<br \/>Vue d\u2019ensemble de la \u00ab trousse \u00e0 outils \u00bb propos\u00e9e au d\u00e9veloppeur\u00a0<br \/>Utiliser le plugin Eclipse pour Python (Pydev)<br \/>Rechercher des bugs avec PyChecker<br \/>V\u00e9rifier le respect des standards avec PyLint<br \/>Utiliser le guide de style PEP 8 (Python Enhancement Proposals)<br \/>G\u00e9n\u00e9rer de la documentation<br \/>Disposer de statistiques sur l\u2019ex\u00e9cution de son programme (profiling)<br \/>Comprendre l&#8217;int\u00e9r\u00eat des outils de Tests (Doctests, Unit tests)<strong><em>Travaux pratiques<\/em><\/strong><strong><em><u>Objectifs<\/u><\/em><\/strong><em>\u00a0<\/em><em>: Bien comprendre le champ fonctionnel de chaque outil pr\u00e9sent\u00e9 dans ce chapitre et savoir les utiliser<\/em><em><br \/><strong><u>Description<\/u><\/strong>\u00a0: Audit de code Python ne respectant pas les standards professionnels en terme de lisibilit\u00e9. Bonnes pratiques dans le Deboguage d\u2019un programme. Mise en \u0153uvre de tests unitaires simples. G\u00e9n\u00e9ration de documentation. Rep\u00e9rage des parties consommatrices d\u2019un programme Python d\u2019analyse de donn\u00e9es (profiling de l\u2019application du TP d\u2019extraction des donn\u00e9es de data.gouv.fr).<\/em><\/p><p>\u00a0<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5382\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"tab\" aria-controls=\"elementor-tab-content-5382\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION DEVELOPPEMENT AVANC\u00c9 AVEC PYTHON<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5382\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5382\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette formation D\u00e9veloppement avanc\u00e9 avec Python vous apprend \u00e0 ma\u00eetriser des fonctionnalit\u00e9s comme la gestion des graphiques, des bases de donn\u00e9es, les liens avec les langages C et Java, le d\u00e9veloppement d&#8217;applications Web, et l&#8217;utilisation de framework comme Django.<\/p><p><br \/><br \/><\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Packager un projet Python<\/li><li>Mettre en \u0153uvre les manipulations avanc\u00e9es des primitives en Python\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0<\/li><li>G\u00e9rer les bases de donn\u00e9es avec Python<\/li><li>Conna\u00eetre la notion de concurrence avec Python<\/li><\/ul><p>Appr\u00e9hender le d\u00e9veloppement web avec Python<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation s&#8217;adresse aux d\u00e9veloppeurs Python.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Avoir suivi la\u00a0formation Python ou poss\u00e9der des connaissances \u00e9quivalentes.<\/p><p>modeste, seul ou en \u00e9quipe.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.\u00a0 \u00a0<\/h3><h3>Packager un projet Python<\/h3><p>Projet vs biblioth\u00e8que \u00a0<br \/>G\u00e9rer un projet avec pipenv<br \/>Cr\u00e9er un wheel distribuable avec setup.cfg<br \/>Compiler le code Python en un ex\u00e9cutable avec nuitka<\/p><h3>Manipulations avanc\u00e9es des primitives en Python<\/h3><p>G\u00e9n\u00e9rer du code \u00e0 la vol\u00e9e : factories puis m\u00e9taclasses<br \/>D\u00e9corateurs \u00e0 plusieurs niveaux<br \/>Context manager et d\u00e9corateur \u00e0 la fois<br \/>Au del\u00e0 de yield : la m\u00e9thode send() des g\u00e9n\u00e9rateurs<br \/>Monkey paching et autres injections de code<br \/>Introspection du code<\/p><h3>Gestion des bases de donn\u00e9es avec Python<\/h3><p>Base de donn\u00e9es support\u00e9es<br \/>SQL \u00e0 la main avec la DB API<br \/>D\u00e9monstration d\u2019un ORM : SQLAlchemy ou Peewee<\/p><h3>Concurrence en Python<\/h3><p>Programmation non blocante avec les threads<br \/>Le GIL et les limites des threads<br \/>Exploiter plusieurs coeurs avec le multiprocessing<br \/>I\/O asynchrone avec asyncio<\/p><h3>Programmation graphique<\/h3><p>Diff\u00e9rentes solutions : PyQt, Tkinter, PyGTK, wxWidgets et Kivy<br \/>Caract\u00e9ristiques de chaque solution.<br \/>Travaux pratiques avec le module Tkinter.<br \/>Cr\u00e9ation d&#8217;objets (fen\u00eatres, boutons, &#8230;),<br \/>Appel des m\u00e9thodes associ\u00e9es (grid(), pack(), &#8230;)<\/p><h3>D\u00e9veloppement web avec Python<\/h3><p>Les frameworks les plus populaires : Django, Pyramid, Flask, Zope \u2026<br \/>Le protocole HTTP<br \/>Le cycle requ\u00eate \/ r\u00e9ponse<br \/>Mise en \u0153uvre avec Flask<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5383\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"tab\" aria-controls=\"elementor-tab-content-5383\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION DECOUVRIR PYTHON ET L\u2019ANALYSE DE DONN\u00c9ES<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5383\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5383\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation Analyse de donn\u00e9es en Python<\/strong>\u00a0permet aux participants dans un premier temps de d\u00e9couvrir et apprendre le langage Python puis de comprendre pourquoi Python est particuli\u00e8rement bien adapt\u00e9 \u00e0 toutes sortes de probl\u00e8mes d\u2019analyse de donn\u00e9es<\/p><p>\u00a0<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Ma\u00eetriser les bases du langage Python<\/li><li>Connaitre les aspects avanc\u00e9s en Python<\/li><li>Savoir analyser des donn\u00e9es en Python<\/li><li>Savoir faire une repr\u00e9sentation graphique de donn\u00e9es en Python<\/li><li>Acqu\u00e9rir des donn\u00e9es externes en Python<\/li><li>Comprendre les performances et la\u00a0 parall\u00e9lisation<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation est destin\u00e9e \u00e0 toute personne qui souhaite utiliser Python pour d\u00e9velopper des applications de calcul scientifique ou d\u2019analyse de donn\u00e9es.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation Python Analyse de donn\u00e9es, il est n\u00e9cessaire de conna\u00eetre au moins un langage de programmation.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Les bases du langage Python<\/h3><p>Les caract\u00e9ristiques du langage Python<br \/>Pourquoi choisir Python pour l\u2019analyse de donn\u00e9es ?<br \/>Installation et configuration<br \/>Philosophie de Python (indentation, objet, etc.)<br \/>Les types de donn\u00e9es<br \/>Appels de fonctions et m\u00e9thodes<br \/>Structures de contr\u00f4les (boucle, test, exceptions)<br \/>Structures de donn\u00e9es et s\u00e9quences (tuple, liste, primitives, dict)<br \/>Les principales biblioth\u00e8ques de Python (NumPy, Pandas, Matplotlib, Ipython, SciPy)<\/p><p><strong><em>Atelier :<\/em><\/strong><em>Installation et configuration de son environnement de d\u00e9veloppement<\/em><em><br \/>Un premier programme simple permettant de r\u00e9sumer la syntaxe de base des grands concepts dans une approche mn\u00e9monique<\/em><\/p><h3>Aspects avanc\u00e9s en Python<\/h3><p>Espace de noms, p\u00e9rim\u00e8tre et fonctions locales<br \/>Manipuler les fonctions comme des objets<br \/>Les fonctions anonymes (lambda)<br \/>Syntaxe d\u2019appels \u00e9tendus (*args, **kwargs)<\/p><h3>Introduction \u00e0 l\u2019Analyse de Donn\u00e9es en Python<\/h3><p>La manipulation de donn\u00e9es par l\u2019utilisation de la librairie Pandas<br \/>Introduction du concept de Dataframe comme structure de donn\u00e9es central pour l\u2019analyse de donn\u00e9es<br \/>Comment interroger ces structures ? Comment ces structures sont index\u00e9es ?<br \/>Traitement de \u00ab donn\u00e9es manquantes \u00bb<br \/>Fusion de dataframes<br \/>Manipulation des dates<br \/>Application de mesures statistiques vari\u00e9es sur les DataFrames<br \/>Bonne compr\u00e9hension des probl\u00e8mes d\u2019\u00e9chelle de mesure, de normalisation<br \/>Cr\u00e9ation de m\u00e9triques d\u2019analyse<\/p><p><strong><em>Atelier :<\/em><\/strong><em>Cet atelier permettra aux participants d\u2019int\u00e9grer des donn\u00e9es tabulaires et des s\u00e9ries temporelles, de les \u00ab nettoyer \u00bb, les manipuler et d\u2019y appliquer des analyses statistiques simples<\/em><\/p><h3>La repr\u00e9sentation graphique de donn\u00e9es en Python<\/h3><p>Introduction aux bases de la visualisation de donn\u00e9es<br \/>Focalisation sur la g\u00e9n\u00e9ration de graphes gr\u00e2ce \u00e0 la librairie Matplotlib : d\u00e9monstration de l\u2019application de graphes Matplotlib \u00e0 la visualisation de probl\u00e8mes concrets<strong><em>Atelier :<\/em><\/strong><em>Cet atelier permettra de poursuivre les travaux de l\u2019atelier pr\u00e9c\u00e9dent en g\u00e9n\u00e9rant des visualisations graphique illustrant les analyses de donn\u00e9es r\u00e9alis\u00e9es<\/em><\/p><h3>L\u2019acquisition de donn\u00e9es externes en Python<\/h3><p>Les formats de donn\u00e9es structur\u00e9es : CSV, flux XML et JSON<br \/>Lecture et \u00e9criture de fichiers<br \/>Manipulation des donn\u00e9es issues de ces fichiers par des structures Python adapt\u00e9es<br \/>Fonctions d\u2018acc\u00e8s et de download de donn\u00e9es en ligne<\/p><p><strong><em>Atelier :<\/em><\/strong><em>Cet atelier permettra de r\u00e9aliser un module de capture de donn\u00e9es disponibles sur Internet<\/em><em><br \/>Application \u00e0 la capture de s\u00e9ries financi\u00e8res (indices de march\u00e9 et cours de bourse)<\/em><\/p><h3>Analyses Statistiques en Python<\/h3><p>Pr\u00e9sentation des principales biblioth\u00e8ques d\u2019analyse de donn\u00e9es Python : NumPy, SciPy, IPython (Jupyter)<br \/>Fonctions de manipulation et de calcul matriciel (Numpy)<br \/>Fonctions de Statistiques Descriptives (SciPy) : quantiles et des fonctions de r\u00e9partition pour<br \/>diff\u00e9rentes lois statistiques<br \/>Fonctions de comparaison de populations, mesures d\u2019association, etc\u00a0 (SciPy)<br \/>Fonctions de classification automatique (SciPy) : k-means<strong><em>Atelier :<\/em><\/strong><em>Cet atelier permettra aux participants d\u2019appliquer leurs connaissances \u00e0 la r\u00e9alisation d\u2019un \u00ab mini atelier \u00bb d\u2019Analyse Technique pour la Finance des March\u00e9s :<\/em><em><br \/>&#8211; Collecte automatique de s\u00e9ries financi\u00e8res<br \/>&#8211; Calcul d\u2019indicateurs : d\u2019indicateurs simples (moyennes mobiles) \u00e0 des indicateurs avanc\u00e9s (tel que le RSI et les Bandes de Bollinger)<br \/>&#8211; Visualisation des r\u00e9sultats<\/em><\/p><h3>Performances et parall\u00e9lisation<\/h3><p>Les outils pour lire l\u2019activit\u00e9 (Timeit, cProfile)<br \/>Parall\u00e9liser vos traitements avec le multiprocessing<br \/>Calcul distribu\u00e9 avec la librairie Celery<br \/>Les faiblesses du multithreading<\/p><p><strong><em>Atelier :<\/em><\/strong><em>Mise en \u0153uvre de l\u2019algorithme Map Reduce avec Celery<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5384\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"tab\" aria-controls=\"elementor-tab-content-5384\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION PYTHON AVANC\u00c9 POUR LE CALCUL SCIENTIFIQUE <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5384\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5384\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette<strong>\u00a0<\/strong><strong>formation Python avanc\u00e9 pour le calcul scientifique<\/strong>\u00a0de trois jours permet aux participants de d\u00e9couvrir les \u00e9l\u00e9ments avanc\u00e9s du langage Python dans un contexte de calculs scientifiques.<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Calculer, estimer et inf\u00e9rer dans des data-set r\u00e9els, bruit\u00e9s et de dimension importante<\/li><li>Augmenter un data-set<\/li><li>R\u00e9aliser des calculs plus pr\u00e9cis<\/li><li>D\u00e9tecter des motifs approchant dans une biblioth\u00e8que de s\u00e9quences<\/li><li>R\u00e9aliser des pr\u00e9dictions sur des s\u00e9ries temporelles<\/li><\/ul><p>D\u00e9poter les calculs sur des architectures mat\u00e9rielles optimis\u00e9es pour les calculs sans modifier le code<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Python Calcul Scientifique s&#8217;adresse aux ing\u00e9nieurs de d\u00e9veloppement et ing\u00e9nieurs scientifiques.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation Python Calcul Scientifique, il est n\u00e9cessaire de de conna\u00eetre les \u00e9l\u00e9ments de base du langage Python (variables, fonctions, et structures de donn\u00e9es) ainsi que les principes de fonctionnement des librairies scientifiques Python (Numpy, Scipy et Pandas).<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1<\/h3><ol><li><br \/><br \/><\/li><\/ol><h3>Partie 1 &#8211; \u00c9l\u00e9ments avanc\u00e9s du langage Python<\/h3><p><strong>\u00c9l\u00e9ments avanc\u00e9s du langage Python<\/strong><\/p><p>\u00c9l\u00e9ments de programmation avanc\u00e9e avec les fonctions :<br \/>&#8211; Les fonctions anonymes<br \/>&#8211; Fonction dans une fonction<br \/>&#8211; Les d\u00e9corateurs<br \/>&#8211; Comment se servir des d\u00e9corateurs pour augmenter la vitesse d&#8217;ex\u00e9cution du code Python ?<br \/>Utilit\u00e9 et exemple d&#8217;application<br \/>Comment \u00e7a fonctionne ?<\/p><p><strong><em>Mise en oeuvre et exercices guid\u00e9s<\/em><\/strong><\/p><p><strong>Choix d&#8217;une partie facultative selon la demande et le rythme d&#8217;avancement.<\/strong><strong><br \/>On compl\u00e8te cette premi\u00e8re journ\u00e9e avec des \u00e9l\u00e9ments avanc\u00e9s de la librairie Pandas ou des points avanc\u00e9s du langage Python.<\/strong><\/p><p><strong>Partie facultative du programme Python<\/strong><\/p><p>Traitement des dates et des heures en Python<br \/>Les ensembles et collections :<br \/>&#8211; Op\u00e9rateur &#8216;splat&#8217;<br \/>&#8211; Appel \u00e9tendu et nombre infini d&#8217;arguments dans un appel de fonction<\/p><p><strong>Partie facultative du programme Pandas<\/strong><\/p><p>Brefs \u00e9l\u00e9ments de rappels de la librairie Pandas<br \/>Multi-index avec Pandas<br \/>Fusion de DataFrame<br \/>Regroupement (groupby, split, apply, combine)<\/p><p><strong><em>Exercices guid\u00e9s reprenant les notions sur des jeux de donn\u00e9es r\u00e9els<\/em><\/strong><\/p><ol start=\"2\"><li>\u00a0<\/li><\/ol><h3>Partie 2 &#8211; Mise en oeuvre du langage Python : les librairies scientifiques avanc\u00e9es<\/h3><p>Comment aller au-del\u00e0 des biblioth\u00e8ques scientifiques de base que sont Matplotlib, Scipy et Numpy ?<\/p><p><strong><em>Des exercices sur des data-sets permettent d&#8217;explorer quelques librairies scientifiques avanc\u00e9es de d\u00e9tection et de pr\u00e9dictions<\/em><\/strong><\/p><p><strong>Pattern Mining<\/strong><\/p><p>Comment utiliser Python pour d\u00e9tecter des pattern fr\u00e9quents et des motifs cach\u00e9s dans des donn\u00e9es bruit\u00e9es de tr\u00e8s grandes dimensions ?<br \/>&#8211; Recherche optimis\u00e9e de s\u00e9quences cibles dans une biblioth\u00e8que de s\u00e9quences<br \/>&#8211; Classification de s\u00e9rie temporelles<br \/>&#8211; D\u00e9tection d&#8217;anomalies et pr\u00e9dictions<\/p><p><strong><em>Exercice guid\u00e9 : application sur des s\u00e9ries temporelles et des data-set r\u00e9els et bruit\u00e9s<\/em><\/strong><\/p><p><strong>Comment r\u00e9aliser des pr\u00e9dictions dynamiques sur des s\u00e9ries temporelles ?<\/strong><\/p><p>Panorama de librairies sp\u00e9cialis\u00e9es \u00a0<br \/>Comment appliquer les m\u00e9thodes de pr\u00e9dictions bay\u00e9siennes avec Python ?<br \/>Aller plus loin. Pistes afin de r\u00e9aliser des pr\u00e9dictions sur des donn\u00e9es dynamiques (online prediction) ?<\/p><p><strong><em>Exercice guid\u00e9 autour d&#8217;un data-set r\u00e9el<\/em><\/strong><\/p><ol start=\"3\"><li>\u00a0<\/li><\/ol><h3>Partie 3 &#8211; Acc\u00e9l\u00e9rer les calculs avec Python<\/h3><p>Panorama de quelques librairies qui permettent de combler l&#8217;\u00e9cart entre Python et les langages compil\u00e9s type C\/C++<br \/>Comment acc\u00e9l\u00e9rer le traitement de ses dataframes Pandas afin d&#8217;\u00e9conomiser plusieurs ordres de grandeur de temps de calcul ?<br \/>Quelles librairies pour d\u00e9porter ses calculs sur carte graphique GPU sans modifier son code ?<\/p><p><strong><em>Exercice guid\u00e9 avec Dask<\/em><\/strong><\/p><h3>Partie 4 &#8211; Datavisualisation avanc\u00e9e avec Python<\/h3><p>Rappel et panorama des biblioth\u00e8ques de visualisation (Matplotlib, Seaborn)<br \/>Comment aller au-del\u00e0 des biblioth\u00e8ques standard ?<br \/>Bref panorama de quelques biblioth\u00e8ques avanc\u00e9es :<br \/>&#8211; graphiques sur des donn\u00e9es de flux (streaming)<br \/>&#8211; graphiques interactifs<br \/>&#8211; graphiques sur des donn\u00e9es massives (Big Data) difficilement repr\u00e9sentables avec les outils standards<br \/>Comment repr\u00e9senter graphiquement les donn\u00e9es de grandes dimensions ? \u00a0<br \/>M\u00e9thodes avanc\u00e9es de projection pour les donn\u00e9es de grandes dimensions<\/p><h3>Partie 5 &#8211; Exercice libre sur un exemple choisi afin d&#8217;utiliser les notions acquises pendant la formation<\/h3><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5385\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"tab\" aria-controls=\"elementor-tab-content-5385\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION SCRAPING ET MANIPULATION DE DONN\u00c9ES AVEC PYTHON <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5385\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5385\"><h2>Objectifs de la formation\u00a0<\/h2><p>Avec sa r\u00e9putation d\u2019excellent \u00ab langage glue \u00bb,\u00a0<strong>Python<\/strong>\u00a0est la technologie id\u00e9ale pour r\u00e9cup\u00e9rer des donn\u00e9es h\u00e9t\u00e9rog\u00e8nes depuis des sources aux formes vari\u00e9es afin d\u2019accumuler une base de connaissances.<\/p><p>\u00a0\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Comprendre les enjeux techniques et ethniques du scraping<\/li><li>Conna\u00eetre les diff\u00e9rentes m\u00e9thodes utilis\u00e9es pour r\u00e9cup\u00e9rer, traiter et stocker les donn\u00e9es<\/li><\/ul><p>Ma\u00eetriser les technologies existantes pour choisir la solution adapt\u00e9e \u00e0 votre besoin d\u2019acquisition<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Scraping Python cible principalement les programmeurs d\u00e9j\u00e0 \u00e0 l\u2019aise avec Python, ayant d\u00e9j\u00e0 des projets de taille moyenne \u00e0 leur actif, et souhaitant mettre en \u0153uvre leur propre outillage pour \u00e9toffer le stock de donn\u00e9es dans lequel ils puissent piocher.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre ce cours Scraping Python, il faut \u00eatre \u00e0 l\u2019aise avec le langage Python dans sa derni\u00e8re version.\u00a0<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>La base du traitement par lot (scraping)<\/h3><p><strong>Rappel des fondamentaux<\/strong><\/p><p>Parcourir le syst\u00e8me de fichiers<br \/>G\u00e9rer proprement l\u2019encoding<br \/>Lire et \u00e9crire des fichiers<br \/>Analyser le JSON, le CSV et l\u2019XML<br \/>Les g\u00e9n\u00e9rateurs<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Crawler une collection de CSV pour en faire un rapport statistique<\/em><\/p><h3>Parcours de donn\u00e9es sur le Web<\/h3><p><strong>Mon premier scraper<\/strong><\/p><p>Rappel sur le protocole HTTP<br \/>Requ\u00eates simples avec Request<br \/>Stocker les donn\u00e9es avec SQLAlchemy<br \/>Analyser du HTML avec Beautiful Soup<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Crawler les articles de Wikip\u00e9dia sans passer par l\u2019API, stocker le r\u00e9sultat en base<\/em><\/p><h3>Questions de performances<\/h3><p><strong>Concurrence et parall\u00e9lisme<\/strong><\/p><p>Threads et GIL<br \/>Utiliser plusieurs c\u0153urs avec le multiprocessing<br \/>Programmation I\/O asyncrone<br \/>Performances et \u00e9thiques<br \/>Utilisation d\u2019une forme de cache : disque, RAM et redis<br \/>Introduire un d\u00e9lai al\u00e9atoire<br \/>Le fichier robot.txt<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Crawler les articles de Wikip\u00e9dia via l\u2019API et Asyncio<\/em><\/p><h3>Les API professionnelles<\/h3><p><strong>Concurrence et parall\u00e9lisme<\/strong><\/p><p>Authentifications et token<br \/>Anatomie d\u2019une API REST<br \/>Retry propre<br \/>G\u00e9rer le rate limiting<br \/>Gestion des erreurs<br \/>Logging de l\u2019application<br \/>Exemple avec un client twitter fait \u00e0 la main<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Crawler les posts de twitter via l\u2019API officielle en utilisant un client d\u00e9j\u00e0 existant<\/em><\/p><h3>Industrialiser le crawling<\/h3><p><strong>Scrappy, un framework de scraping automatique<\/strong><\/p><p>Introduction aux m\u00e9canismes de base du framework<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Crawler les articles de Wikip\u00e9dia en utilisant scrappy<\/em><\/p><p><strong>Selenium, un browser headless<\/strong><\/p><p>Utiliser Selenium \u00e0 la main<br \/>Utiliser Scrappy et Selenium ensemble<\/p><p><strong><em>Travaux Pratiques<\/em><\/strong><\/p><p><em>Crawler les images et les commentaires d\u2019imgur avec scrappy et selenium<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5386\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"tab\" aria-controls=\"elementor-tab-content-5386\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION MACHINE LEARNING AVEC PYTHON <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5386\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5386\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation Machine Learning avec Python<\/strong>\u00a0vous propose de d\u00e9couvrir les concepts et les technologies du Machine Learning \u00e0 travers le langage Python et sa biblioth\u00e8que Scikit-Learn qui propose tous les algorithmes standards. Vous apprendrez \u00e0 d\u00e9velopper de puissants mod\u00e8les pr\u00e9dictifs dont les r\u00e9sultats vous surprendront par leur puissance et leur facilit\u00e9 de mise en \u0153uvre.<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>D\u00e9crire les concepts du machine learning<\/li><li>Conna\u00eetre les principaux algorithmes utilis\u00e9s en machine learning<\/li><li>Utiliser la biblioth\u00e8que Scikit-Learn<\/li><li>Mettre en \u0153uvre le regroupement de donn\u00e9es automatique (clustering)<\/li><\/ul><p>Utiliser Azure Machine Learning<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours Machine Learning avec Python s&#8217;adresse \u00e0 toute personne amen\u00e9e \u00e0 utiliser Python pour d\u00e9velopper des mod\u00e8les de pr\u00e9diction dans n&#8217;importe quel domaine : scientifique, m\u00e9dical, bancaire, s\u00e9curit\u00e9, data&#8230;<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Cette formation Machine Learning avec Python suppose de savoir d\u00e9velopper et de conna\u00eetre les bases de Python.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Fondamentaux du Machine Learning<\/h3><p>Les promesses du machine learning<br \/>Les technologies sous-jacentes<br \/>Liens entre Cloud, Big Data et Machine Learning<br \/>Pr\u00e9sentation du Deep Learning<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><\/p><p><em>Parcours de diff\u00e9rents r\u00e9sultats de programmes de machine learning afin de valider le vocabulaire et les concepts pr\u00e9sent\u00e9s dans ce chapitre (pr\u00e9visions de tarifs, classification d\u2019images, reconnaissance de textes, etc.)<\/em><\/p><h3>Les algorithmes standards<\/h3><p>Diff\u00e9rences entre apprentissage supervis\u00e9 et non supervis\u00e9<br \/>La r\u00e9gression lin\u00e9aire<br \/>La r\u00e9gression logistique<br \/>L\u2019arbre de d\u00e9cision<br \/>Les machines \u00e0 vecteur de support (SVM)<br \/>La classification selon Naive Bayes<br \/>Les plus proches voisins<br \/>Pourquoi faut-il parfois r\u00e9duire les dimensions ?<br \/>Les r\u00e9seaux de neurones<\/p><h3>La biblioth\u00e8que Python (Scikit-Learn)<\/h3><p>Comment utiliser la documentation ?<br \/>Int\u00e9gration de Scikit-Learn avec d\u2019autres librairies (Pandas, Numpy, SciPy, Matplotlib, etc.)<br \/>Repr\u00e9sentation des donn\u00e9es par des tableaux (Numpy, Scipy, Pandas, Python)<br \/>Repr\u00e9sentation d\u2019une pr\u00e9diction par une classe (pr\u00e9dicteur, classifieur, estimator)<br \/>Comment choisir le bon algorithme d\u2019apprentissage automatique ?<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><\/p><p><em>Reconnaissance et classification d\u2019images de fleurs selon des crit\u00e8res observables (chargement d\u2019une base, d\u00e9couverte du contenu, observation des donn\u00e9es, visualisation avec Seaborn, apprentissage, pr\u00e9diction)<\/em><\/p><h3>Apprentissage non supervis\u00e9 (clustering) en Python<\/h3><p>Explorer les donn\u00e9es et les regrouper (clustering)<br \/>Visualisation avec clustering hi\u00e9rarchique et t-SNE<br \/>D\u00e9corr\u00e9lation des donn\u00e9es et r\u00e9duction des dimensions<br \/>D\u00e9couvrir des fonctionnalit\u00e9s interpr\u00e9tables<br \/>Extraire des connaissances des textes (Text Mining)<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><\/p><p><em>Extraction de sujets et de tendances \u00e0 partir de gros volume de flux de donn\u00e9es (exemple Twitter)<\/em><em><br \/>Analyse de sentiments et d\u00e9motions<br \/>Classification automatique de textes dans une ou plusieurs cat\u00e9gories (Word2Vec, Doc2Vec, TF-DF)<br \/>Retour sur l\u2019atelier de la reconnaissance supervis\u00e9e des fleurs pour le passer en mode non supervis\u00e9 : r\u00e9duction des dimensions, regroupement des donn\u00e9es selon diff\u00e9rents algorithmes (clustering) jusqu\u2019\u00e0 la mise en \u00e9vidence de l\u2019identification des groupes de familles de fleurs<\/em><\/p><h3>Azure Machine Learning<\/h3><p>Construire des mod\u00e8les sans coder avec les outils du Cloud<br \/>Les services propos\u00e9s par Visual Studio, Azure et GitHub<br \/>Valider les performances des mod\u00e8les<br \/>D\u00e9ployer son mod\u00e8le<br \/>La pr\u00e9paration des donn\u00e9es<\/p><p><strong><em>Travaux pratiques<\/em><\/strong><\/p><p><em>Construction d\u2019un mod\u00e8le de pr\u00e9diction sous Visual Studio<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5387\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"tab\" aria-controls=\"elementor-tab-content-5387\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION PYTHON: BONNES PRATIQUES ET DESIGN PATTERNS <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5387\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5387\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette<strong>\u00a0<\/strong><strong>formation Python Bonnes pratiques et Design patterns<\/strong>\u00a0vous apprend les bonnes pratiques de programmation avec Python.<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Appliquer des design patterns et des bonnes pratiques pour d\u00e9velopper des applications avec Python<\/li><li>Exploiter des fonctionnalit\u00e9s avanc\u00e9es de programmation Python pour concevoir des programmes fiables<\/li><li>Cr\u00e9er et g\u00e9rer des threads de contr\u00f4le concurrents<\/li><li>G\u00e9n\u00e9rer des requ\u00eates et des r\u00e9ponses aux services Web REST et utiliser les donn\u00e9es renvoy\u00e9es<\/li><li>Suivre l&#8217;ex\u00e9cution du programme et am\u00e9liorer les performances<\/li><li>Lancer des tests unitaires sur les programmes et les modules Python, les installer et les distribuer.<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation est destin\u00e9e aux programmeurs, d\u00e9veloppeurs, ing\u00e9nieurs en logiciels, testeurs et responsables techniques souhaitant approfondir leurs connaissances du langage Python.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Afin de suivre ce stage, il est n\u00e9cessaire d&#8217;avoir suivi la\u00a0<u>formation Python<\/u> ou de poss\u00e9der les connaissances \u00e9quivalentes telles qu&#8217;une exp\u00e9rience professionnelle d&#8217;au moins 3 mois de programmation avec Python.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Programmation orient\u00e9e objet avec Python<\/h3><p>\u00c9tendre les classes pour d\u00e9finir des sous-classes<br \/>H\u00e9riter des plusieurs super-classes et classes mixin<br \/>Ajouter des propri\u00e9t\u00e9s \u00e0 une classe<br \/>D\u00e9finir des classes abstraites de base<\/p><h3>Fonctionnalit\u00e9s Python<\/h3><p><strong>\u00c9criture de code Python<\/strong><\/p><p>Personnaliser les it\u00e9rations et les indexations avec des m\u00e9thodes \u00ab magiques \u00bb<br \/>Modifier le code de fa\u00e7on dynamique avec le \u00ab monkey patching \u00bb<\/p><p><strong>Traitement des exceptions<\/strong><\/p><p>Lever des exceptions personnalis\u00e9es<br \/>R\u00e9duire la complexit\u00e9 du code avec les gestionnaires de contexte et l&#8217;instruction with<\/p><h3>V\u00e9rification du code et tests unitaires<\/h3><p><strong>Tests : Les bonnes pratiques<\/strong><\/p><p>D\u00e9velopper et lancer des tests unitaires Python<br \/>Simplifier les tests automatiques avec le paquetage Nose<\/p><p><strong>V\u00e9rification du comportement du code<\/strong><\/p><p>Investiguer les d\u00e9pendances entre objets avec le paquetage Mock<br \/>Mettre en \u0153uvre les assertions avec le paquetage MagicMock<\/p><h3>Recherche des erreurs et techniques de d\u00e9bogage<\/h3><p><strong>Identification des erreurs<\/strong><\/p><p>Journaliser les messages pour les audits et le d\u00e9bogage<br \/>V\u00e9rifier le code \u00e0 la recherche de bogues avec PyLint<\/p><p><strong>D\u00e9bogage du code Python<\/strong><\/p><p>Extraire les informations sur les erreurs \u00e0 partir des exceptions<br \/>Suivre l&#8217;ex\u00e9cution du programme avec l&#8217;environnement de d\u00e9veloppement int\u00e9gr\u00e9 PyCharm<\/p><h3>Design patterns Python<\/h3><p><strong>Patrons structurels<\/strong><\/p><p>Mettre en \u0153uvre les patrons d\u00e9corateurs avec @<br \/>Contr\u00f4ler les acc\u00e8s \u00e0 un objet avec le patron Proxy<\/p><p><strong>Patrons comportementaux<\/strong><\/p><p>Utiliser le patron d&#8217;it\u00e9ration avec les g\u00e9n\u00e9rateurs Python<br \/>D\u00e9finir un algorithme squelette avec le patron de m\u00e9thode<br \/>Autoriser des couplages l\u00e2che entre classes avec le patron observateur<\/p><h3>Interface avec les clients et les services Web REST<\/h3><p><strong>Services Web REST Python<\/strong><\/p><p>D\u00e9velopper un service REST<br \/>G\u00e9n\u00e9rer des r\u00e9ponses JSON pour des clients Ajax<\/p><p><strong>Clients REST Python<\/strong><\/p><p>Envoyer des requ\u00eates REST depuis un client Python<br \/>Utiliser les donn\u00e9es JSON et XML renvoy\u00e9es<\/p><h3>Mesure et am\u00e9lioration de la performance de l&#8217;application<\/h3><p><strong>Mesurer l&#8217;ex\u00e9cution de l&#8217;application<\/strong><\/p><p>Chronom\u00e9trer l&#8217;ex\u00e9cution des fonctions avec le module \u00ab timeit \u00bb<br \/>Suivre l&#8217;ex\u00e9cution du programme via \u00ab cProfile \u00bb<br \/>Manipuler le suivi de l&#8217;ex\u00e9cution de mani\u00e8re interactive avec \u00ab pstats \u00bb<\/p><p><strong>Les fonctionnalit\u00e9s du langage Python pour l&#8217;optimisation des performances<\/strong><\/p><p>D\u00e9terminer les structures de donn\u00e9es efficaces parmi listes, dictionnaires et tuples<br \/>Transformer et filtrer des ensembles de donn\u00e9es avec les compr\u00e9hensions<br \/>Remplacer l&#8217;interpr\u00e9teur traditionnel Python par PyPy<\/p><h3>Installation et distribution de modules<\/h3><p><strong>Gestion des versions des modules<\/strong><\/p><p>Installer les modules depuis le d\u00e9p\u00f4t PyPi avec pip<br \/>Portabilit\u00e9 du code entre les diff\u00e9rentes versions de Python<\/p><p><strong>Paquetage des modules et des applications Python<\/strong><\/p><p>D\u00e9finir des environnements Python isol\u00e9s avec \u00ab virtualenv \u00bb<br \/>Pr\u00e9parer la distribution d&#8217;un paquetage avec \u00ab setuptools \u00bb<br \/>Importer les modules Python dans un d\u00e9p\u00f4t local<\/p><h3>Ex\u00e9cution en parall\u00e8le<\/h3><p><strong>Processus l\u00e9gers (threads)<\/strong><\/p><p>Cr\u00e9er et g\u00e9rer plusieurs threads de contr\u00f4le avec la classe Thread<br \/>Synchroniser des threads avec des verrous<\/p><p><strong>Traitements lourds<\/strong><\/p><p>Ex\u00e9cuter des commandes du syst\u00e8me d&#8217;exploitation comme sous-processus<br \/>Synchroniser des processus avec les files d&#8217;attente<br \/>Ex\u00e9cuter des traitements en parall\u00e8le avec les groupes de processus et des ex\u00e9cuteurs<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5388\" class=\"elementor-tab-title\" data-tab=\"8\" role=\"tab\" aria-controls=\"elementor-tab-content-5388\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION PYHTON AVEC LA BIBLIOTHEQUE QT <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5388\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"8\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5388\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation PyQt<\/strong>\u00a0s\u2019attache \u00e0 la dimension GUI de Qt.<br \/>Elle vous permettra de savoir d\u00e9velopper des interfaces graphiques pour les utilisateurs en Python, et ce de qualit\u00e9 professionnelle tant en termes de rendu que d&#8217;architecture.<\/p><p>\u00a0<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><p>\u00a0<\/p><ul><li>Aborder l\u2019ensemble des nombreux domaines fonctionnels abord\u00e9s par le framework PyQt<\/li><li>Architecturer son code selon le standard MVC<\/li><li>Utiliser les Widgets propos\u00e9s par Qt dans ses programmes Python<\/li><li>Cr\u00e9er ses propres widgets<\/li><li>Ma\u00eetriser la disposition et la cin\u00e9matique des fen\u00eatres<\/li><li>Programmer les \u00e9v\u00e9nements<\/li><li>G\u00e9rer les styles<\/li><li>D\u00e9velopper des t\u00e2ches en parall\u00e8les (multihtreading)<\/li><li>Utiliser les possibilit\u00e9s multim\u00e9dia (son, vid\u00e9o, 3D, \u2026)<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours PyQt cible principalement les d\u00e9veloppeurs Python, m\u00eame relativement d\u00e9butants. Des d\u00e9veloppeurs C++ connaissant un peu Qt mais d\u00e9butant en Python peuvent aussi \u00eatre int\u00e9ress\u00e9s par cette formation.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre cette formation PyQt dans de bonnes conditions, une certaine connaissance de Python est souhaitable. Il est a minima n\u00e9cessaire d\u2019avoir des connaissances dans un langage de programmation orient\u00e9 objet.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Contexte d\u2019usage de Qt et de PyQt<\/h3><p>Qu\u2019est-ce que Qt ?<br \/>Usage de Qt avec le langage Python (ou l\u2019invention de PyQt)<br \/>L\u2019\u00e9cosyst\u00e8me technique autour de PyQt<br \/>Utilisation commerciale et industrielle de PyQt : quelques exemples<\/p><h3>Widgets en PyQt<\/h3><p>Un premier \u201cHello World\u201d<br \/>La notion de fen\u00eatre et les objets associ\u00e9s en PyQt<br \/>Notions de widget et de disposition (layout) en PyQt<br \/>Inventaire des widgets principaux<\/p><h3>Disposition de fen\u00eatres en PyQt<\/h3><p>Les diff\u00e9rents proc\u00e9d\u00e9s de disposition en PyQt<br \/>QHBoxLayout et QVBoxLayout<br \/>QGridLayout et QFormLayout<br \/>Les autres contr\u00f4les de disposition<\/p><h3>Gestion des \u00e9v\u00e8nements en PyQt<\/h3><p>Les \u00e9v\u00e8nements en PyQt<br \/>Focus sur pyqtSignal<br \/>Les mots-cl\u00e9s partial et lambda<\/p><h3>La gestion des styles en PyQt<\/h3><p>Les polices avec QFont<br \/>Les images avec QPixmap<br \/>Ic\u00f4nes et ressources<br \/>QPalette et QBrush<br \/>Le QSS dans tous ses \u00e9tats<\/p><h3>Architecture avanc\u00e9e avec PyQt<\/h3><p>Adopter une architecture MVC<br \/>Interagir avec une base de donn\u00e9es<br \/>Mapping de donn\u00e9es en PyQt<\/p><h3>Multim\u00e9dia en PyQt<\/h3><p>Les animations avec PyQt<br \/>D\u00e9tour par un autre framework : Pygame<br \/>Gestion du son en PyQt<br \/>Gestion de la vid\u00e9o en PyQt<\/p><h3>Le multithreading<\/h3><p>Les probl\u00e8mes de freeze de l\u2019interface<br \/>QTimer<br \/>QThread et QThreadPool<\/p><h3>Plus loin avec le framework<\/h3><p>Les couches basses et le r\u00e9seau<br \/>Diagramme de donn\u00e9es en PyQt<br \/>De la 3D !<br \/>Un mot sur la micro-\u00e9lectronique<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-5389\" class=\"elementor-tab-title\" data-tab=\"9\" role=\"tab\" aria-controls=\"elementor-tab-content-5389\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION PYTHON POUR LE PENTEST <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-5389\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"9\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-5389\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation Python pour le Pentest<\/strong>\u00a0traite des diff\u00e9rents modules et cas d&#8217;utilisations de Python dans le cadre de tests d&#8217;intrusion.<br \/>Vous analyserez diff\u00e9rentes probl\u00e9matiques rencontr\u00e9es lors d&#8217;audits et les solutions que le scripting Python permet de mettre en place afin d&#8217;automatiser les t\u00e2ches complexes et sp\u00e9cifiques.<\/p><p>\u00a0<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Faciliter le d\u00e9veloppement d&#8217;exploits en Python<\/li><li>Interfacer diff\u00e9rents langages avec Python<\/li><li>Automatiser le traitement de t\u00e2ches et automatiser les exploitations<\/li><li>Contourner les solutions de s\u00e9curit\u00e9<\/li><\/ul><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Ce cours est destin\u00e9 aux RSSI, aux consultants en s\u00e9curit\u00e9, aux ing\u00e9nieurs et techniciens et aux administrateurs syst\u00e8mes et r\u00e9seaux.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour participer \u00e0 cette formation Python pour le Pentest, vous devez avoir une connaissance basique du langage Python.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><ol><li>\u00a0<\/li><\/ol><h3>Python pour le HTTP, requests<\/h3><p>D\u00e9veloppement d&#8217;un syst\u00e8me de recherche exhaustive<br \/>Contournement de captcha<\/p><h3>D\u00e9veloppement d&#8217;un mod\u00e8le Python BurpSuite<\/h3><p>Introduction \u00e0 BurpSuite<br \/>D\u00e9veloppement d&#8217;un module de d\u00e9tection passif de Web Application Firewalls<\/p><h3>Exploitation d&#8217;une injection SQL en aveugle<\/h3><p>Extraction bit \u00e0 bit et analyse comportementale<\/p><ol start=\"2\"><li>\u00a0<\/li><\/ol><h3>Introduction aux t\u00e2ches distribu\u00e9es<\/h3><p>Introduction \u00e0 l&#8217;attaque Slowloris<br \/>D\u00e9veloppement d&#8217;un exploit Slowloris distribu\u00e9<\/p><h3>Python et l&#8217;alt\u00e9ration HTTP<\/h3><p>Introduction \u00e0 MITMProxy<br \/>D\u00e9veloppement d&#8217;un module &#8220;SSL Striping&#8221;<\/p><h3>Python et le forensics<\/h3><p>Volatility<br \/>Hachoir<br \/>Network Forensics avec Scapy<\/p><ol start=\"3\"><li>\u00a0<\/li><\/ol><h3>Le C et Python, Cython<\/h3><p>ctypes<br \/>D\u00e9veloppement d&#8217;un module Cython Antivirus et Backdoors<\/p><h3>Antivirus et Backdoors<\/h3><p>Shellcodes<br \/>Cr\u00e9ation d&#8217;une porte d\u00e9rob\u00e9e avanc\u00e9e<\/p><ol start=\"4\"><li>\u00a0<\/li><\/ol><h3>Cha\u00eene d&#8217;exploitation<\/h3><p>Exploitation de multiples vuln\u00e9rabilit\u00e9s<br \/>Cr\u00e9ation d&#8217;un exploit complet (POC)<\/p><p><strong><em>Travaux Pratiques : atelier final<\/em><\/strong><\/p><p><em>Capture the Flag<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-53810\" class=\"elementor-tab-title\" data-tab=\"10\" role=\"tab\" aria-controls=\"elementor-tab-content-53810\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION FRAMEWORK FLASK: DEVELOPPEMENT DE SERVICE WEB <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-53810\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"10\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-53810\"><h2>Objectifs de la formation\u00a0<\/h2><p>Flask est un framework open-source de d\u00e9veloppement web en Python. \u00c9crit apr\u00e8s Django, l&#8217;autre grand framework Python, il a int\u00e9gr\u00e9 le retour d&#8217;exp\u00e9rience de la communaut\u00e9 Python. Souvent plus explicite, il est plus simple d&#8217;acc\u00e8s pour un(e) d\u00e9butant(e). Vous pouvez ainsi d\u00e9velopper un site web ou une\u00a0application web en gardant la souplesse du langage de programmation Python.<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation Flask s&#8217;adresse aux d\u00e9veloppeurs Python qui souhaitent cr\u00e9er et maintenir leurs premi\u00e8res applications \u00e0 base de Web services.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Pour suivre ce cours Flask, il est n\u00e9cessaire de ma\u00eetriser le langage de programmation Python.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Introduction \u00e0 Flask<\/h3><p>Pourquoi les frameworks web sont n\u00e9cessaires<br \/>Vue d&#8217;ensemble des frameworks Web Python disponibles<br \/>Installation de Flask<br \/>Routage des demandes pour afficher les fonctions<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Validation de la plateforme avec exposition d\u2019un service REST \u00e9l\u00e9mentaire<\/em><\/p><h3>Construire une API REST avec Flask<\/h3><p>Servir des fichiers statiques<br \/>Rendu de mod\u00e8les avec Jinja2<br \/>Produire du JSON, ou XML<br \/>\u00c9mission de redirections<br \/>Contexte d&#8217;application et contexte de demande<br \/>Traitement des t\u00e9l\u00e9chargements de fichiers avec Flask-Uploads<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Application pour la construction de services REST pour l\u2019exposition d\u2019un contrat de gestion de donn\u00e9es (contacts d\u2019un agenda)<\/em><\/p><h3>S\u00e9curiser une API REST<\/h3><p>Pourquoi ajouter de la s\u00e9curit\u00e9 \u00e0 des \u00e9changes HTTP<br \/>Plusieurs modes de s\u00e9curisation<br \/>Gestion de session utilisateur avec Flask-Login et Flask-User<br \/>L&#8217;interface d&#8217;administration cr\u00e9\u00e9e par Flask-Admin<br \/>Envoi d&#8217;email avec Flask-Mail<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Contr\u00f4le pour limiter les acc\u00e8s d\u2019un service Web \u00e0 un ensemble d\u2019usagers<\/em><\/p><h3>Automatiser les phases d\u2019un projet Web Python<\/h3><p>\u00c9tape de conception Swagger<br \/>\u00c9tape de construction avec Conda<br \/>\u00c9tape de d\u00e9ploiement d&#8217;applications Flask en production<\/p><p><strong><em>Travaux Pratiques :<\/em><\/strong><\/p><p><em>Gestion de projet depuis la conception jusqu\u2019au d\u00e9ploiement derri\u00e8re un serveur HTTP<\/em><\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-53811\" class=\"elementor-tab-title\" data-tab=\"11\" role=\"tab\" aria-controls=\"elementor-tab-content-53811\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION DJANGO \u2013 CR\u00c9ER DES APPLICATIONS WEB AVEC LE FRAMEWORK DJANGO <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-53811\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"11\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-53811\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation Django<\/strong>\u00a0vous permettra d&#8217;acqu\u00e9rir les connaissances n\u00e9cessaires pour cr\u00e9er des applications Web avec le framework Django. Trois jours pour acqu\u00e9rir les bases du framework Django et disposer d&#8217;une bonne vue d&#8217;ensemble des diff\u00e9rents modules \u00e0 disposition et des possibilit\u00e9s<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Utiliser l&#8217;ORM, les vues et les templates<\/li><li>R\u00e9aliser rapidement des projets web puissants<\/li><li>Int\u00e9grer des modules externes<\/li><\/ul><p>G\u00e9rer le d\u00e9ploiement et la maintenance de votre projet<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><ul><li><strong>Public :<\/strong><\/li><li>Cette formation Django s&#8217;adresse \u00e0 tout d\u00e9veloppeur souhaitant acqu\u00e9rir les bases du framework Django.<\/li><li><strong>Pr\u00e9requis :<\/strong><\/li><\/ul><p>Pour suivre cette formation Django dans de bonnes conditions, il est important de connaitre les bases du langage Python<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Introduction \u00e0 Django<\/h3><p>Rappels sur le protocole HTTP<br \/>Comprendre la structure d\u2019un projet Django<br \/>Revue g\u00e9n\u00e9rale du fichier settings.py<br \/>Le routing, via urls.py<br \/>Les vues, et les objets de requ\u00eate \/ r\u00e9ponse<br \/>Template, liens, tags et filtres<\/p><h3>L&#8217;ORM Django<\/h3><p>Bases de donn\u00e9es prises en charge<br \/>Cr\u00e9er des mod\u00e8les, types de champs<br \/>Acc\u00e8s aux donn\u00e9es avec les querysets<br \/>Champs relationnels et Managers<br \/>Agr\u00e9gation et annotations de requ\u00eates<br \/>Mod\u00e8les de bases : utilisateur et groupes<br \/>Comment fonctionne les Class Based Views<\/p><h3>L&#8217;interface d&#8217;administration de Django<\/h3><p>Installer l&#8217;interface d&#8217;administration<br \/>Comptes utilisateurs et droits<br \/>Publier des mod\u00e8les dans l&#8217;interface<\/p><h3>Workflow de l\u2019utilisateur<\/h3><p>GET, POST et COOKIES<br \/>Authentification et session<br \/>Les middlewares<br \/>Les formulaires<\/p><h3>Gestion des formulaires<\/h3><p>Cr\u00e9er un formulaire<br \/>Les types de champs<br \/>Validation des donn\u00e9es<br \/>Cr\u00e9er des champs personnalis\u00e9s<br \/>Personnaliser l&#8217;apparence<br \/>Utiliser AJAX pour la soumission<br \/>Upload de fichiers<br \/>Protections CSRF<\/p><h3>Internationalisation<\/h3><p>Internationaliser une application<br \/>Gestion des fichiers de langues<br \/>Traductions javascript<br \/>D\u00e9tection du langage utilisateur<\/p><h3>D\u00e9ploiement et maintenance<\/h3><p>Int\u00e9gration dans Apache ou Nginx : le protocole WSGI<br \/>Gestion des fichiers statiques<br \/>Django-debug-toolbar<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-53812\" class=\"elementor-tab-title\" data-tab=\"12\" role=\"tab\" aria-controls=\"elementor-tab-content-53812\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"\" class=\"elementor-toggle-title\">FORMATION ZOPE: CR\u00c9ATION D\u2019UNE APPLICATION WEB AVEC ZOPE <\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-53812\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"12\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-53812\"><h2>Objectifs de la formation\u00a0<\/h2><p>Cette\u00a0<strong>formation ZOPE<\/strong>\u00a0cr\u00e9ation d&#8217;une application vous permet de conna\u00eetre le serveur d&#8217;applications, le component Architecture, le Framework MVC (Grok) et l&#8217;int\u00e9gration WSGI (Web Server Gateway Interface).<\/p><p>\u00a0<\/p><p>\u00c0 l&#8217;issue de cette formation, vous aurez acquis les connaissances et les comp\u00e9tences n\u00e9cessaires pour :<\/p><ul><li>Conna\u00eetre le serveur d&#8217;applications<\/li><li>Conna\u00eetre le component Architecture<\/li><li>Conna\u00eetre le Framework MVC (Grok)<\/li><\/ul><p>Conna\u00eetre l&#8217;int\u00e9gration WSGI (Web Server Gateway Interface<\/p><h2>\u00c0 qui s&#8217;adresse cette formation ?<\/h2><p><strong>Public :<\/strong><\/p><p>Cette formation Zope concerne les Gestionnaires d&#8217;applications, administrateurs syst\u00e8me, webmestres, d\u00e9veloppeurs de sites, programmeurs.<\/p><p><strong>Pr\u00e9requis :<\/strong><\/p><p>Cette formation zope n\u00e9cessite des donnaissances sur les technologies du Web (XML, XHTML) et de Python et\/ou une exp\u00e9rience d&#8217;int\u00e9grateur sur Plone. Id\u00e9alement avoir suivi la formation Python.<\/p><h2>Contenu du cours\u00a0<\/h2><ol><li><h3>1.<\/h3><h3>Introduction \u00e0 Zope<\/h3><p>Etat actuel des technologies<br \/>Les frameworks de Zope : Zope 2, Zope 3 (Component Architecture),\u00a0\u00a0 Repoze, Grok<br \/>Les plates-formes populaires construites avec Zope<br \/>Les conventions des d\u00e9veloppeurs<\/p><h3>Mettre en place\u00a0 un environnement de d\u00e9veloppement Zope<\/h3><p>Python<br \/>Zope<br \/>Conna\u00eetre les nouvelles librairies de d\u00e9veloppement (Zope 3) : Zope interface, Zope sch\u00e9ma, etc&#8230;<br \/>Aspects de d\u00e9ploiement<\/p><h3>Architecture de composants de Zope, les concepts<\/h3><p>Notion d&#8217;interface &#8211; Notion de composant<br \/>Adaptation d&#8217;interface, Adaptateurs et Browser Views (Multi-Adaptateurs)<br \/>Configuration avec le ZCML (Zope Configuration Markup Language)<\/p><h3>Les outils de d\u00e9veloppement de Zope<\/h3><p>Pr\u00e9sentation avec les Page Templates<br \/>Templates et Browser Views (logique de pr\u00e9sentation)<br \/>Composants de contenus persistants (via la base de donn\u00e9es objet de Zope : ZODB)<br \/>Formulaires d&#8217;interaction avec la librairie zope.formlib (AddForm, EditForm, DisplayForm)<br \/>Indexation et recherche<\/p><h3>Zope : pratiques de d\u00e9veloppement recommand\u00e9es<\/h3><p>Tests unitaires avec doctest<br \/>Tests fonctionnels<\/p><h3>Introduction \u00e0 Grok<\/h3><p>De Zope 3 \u00e0 Grok &#8211; Principes et int\u00e9r\u00eats de l&#8217;approche Grok<br \/>Installation des librairies compl\u00e9mentaires pour Grok<\/p><h3>Tutoriel de mise en oeuvre d&#8217;une application avec Grok<\/h3><p>Mod\u00e8le de donn\u00e9es (Model-View-Controler)<br \/>Formulaires auto-g\u00e9n\u00e9r\u00e9s<br \/>Pr\u00e9sentation : Classes de Browser View &amp; Templates<\/p><h3>Pour aller plus loin avec Zope<\/h3><p>L&#8217;API de Grok<br \/>Les interfaces R.E.S.T<\/p><\/li><\/ol><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Python est un\u00a0langage de programmation puissant et facile \u00e0 apprendre. Il dispose de structures de donn\u00e9es de haut niveau et permet une approche simple mais efficace de la programmation orient\u00e9e objet. Avec Python, on\u00a0peut\u00a0: cr\u00e9er et administrer un site Web. d\u00e9velopper des logiciels et des applications, aussi bien pour ordinateur\u00a0que\u00a0pour t\u00e9l\u00e9phone. automatiser des scripts syst\u00e8mes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12879","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages\/12879","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/comments?post=12879"}],"version-history":[{"count":17,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages\/12879\/revisions"}],"predecessor-version":[{"id":13492,"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/pages\/12879\/revisions\/13492"}],"wp:attachment":[{"href":"https:\/\/705consulting.com\/index.php\/wp-json\/wp\/v2\/media?parent=12879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}