Session du 06 mars 2025 à 21h00
TOSA & Certifications
Deviens membre Premium magic_button
Cette session de mentorat est réservée aux membres Premium. Rejoignez-nous pour accéder à toutes les rediffusions des sessions de mentorat !
Premium
- check +100h de formations
- check +180 exercices de code
- check +100h de mentorats en rediffusion
- check 20 projets
- check Mentorats groupés hebdomadaires
- check Support individuel avec nos mentors
Session de mentorat TOSA
Session de mentorat TOSA.
Nous allons revenir sur des questions TOSA, puis on va terminer par un peu d'asynchrone avec une libriarie moderne...
00:00:00 :C'est tout ce que j'avais à dire, je le redis mais bonsoir à tout le monde.Ce que je disais c'est qu'on va continuer la session sur le format en mode question TOSAet selon le temps qu'il nous reste, mais même je serai à la fin dans tous les cas,
00:00:21 :je vais vous montrer une librairie moderne que je trouvais assez cool.J'ai pas mis en application sur des projets concrets mais je pense que ça pourra bien me servir un jour.
00:00:33 :Et Arcel, petite question, ton site il est public ou tu partages pas encore ?Actuellement il est public, sauf que j'ai des trucs à remplir d'une base donnée.
00:00:57 :Ah ok d'accord, je me suis dit vas-y partage ton lien.C'est sûr que la semaine prochaine je pourrais partager les liens ou je pourrais partir directement dans les sondes de mentorat ?
00:01:11 :Ouais, même en parlant de mentorat au début si tu veux y'a pas de problème.D'accord.Pour ceux qui étaient pas là, je disais on a fait une soirée mise en production.
00:01:24 :Arcel avait quasiment tout fait, il y avait juste des petits bugs à régler.C'est vrai que la mise en production en local tout marche bien,et si je retourne en production c'est un bug par-ci par-là.
00:01:35 :Déjà si je partage mon écran c'est mieux.On voit bien si c'est assez gros pour vous.Là j'ai vachement grossi normalement.Là c'est un exercice, j'en avais déjà montré un un peu similaire mais il est quand même différent,il ressemble à rien qu'on avait vu une fois.
00:02:09 :Je vous laisse regarder un petit peu, il est pas très compliqué en soi.Je vous laisse regarder un tout petit peu la question,mais il peut être résolu en 30 secondes.
00:02:25 :Et j'ai vraiment fait, à la limite il n'y a peut-être même pas ça,mais bon, j'ai quand même mis une base on va dire.Vous me dites quand je peux baisser un peu le son.
00:02:42 :Je pense que c'est bon.Je pense que c'est bon.Je pense que c'est bon.Je pense que c'est bon.Vous me dites quand je peux baisser un peu le son.
00:02:54 :Il n'y a même pas besoin de chercher compliqué en plus sur celui-là,vraiment pas assez embêté.Est-ce qu'il y en a qui n'ont plus de vidéo ou pas du coup ?
00:03:14 :Ou pas du tout ?Est-ce que j'ai le chat là ?Vous savez que la question doit être expliquée.Vous savez que la question doit être expliquée.
00:03:40 :La question est ?Vous savez que la question doit être expliquée,parce que c'est quand même bizarre quand on dit que et des que.Alors en fait, pour ceux qui connaissent le module collection,là en plus ils ne parlent pas forcément du module collection en fait.
00:04:02 :Ils veulent vraiment que vous implémentiez votre méthode.Du coup, pour supprimer le premier élément de la liste en fait.En gros c'est ça leur truc.
00:04:15 :Mais ce n'est vraiment pas compliqué,parce qu'ils veulent juste que vous supprimez le premier élément de la liste.Et le retourner.Je ne sais plus les listes à retourner, je ne sais même plus.
00:04:27 :Par exemple, il y a marqué renvoi 1.Oui, on le retourne, c'est ça, renvoi 1.Et sinon le NA.Mais il y a un exercice qui est très très similaire.
00:04:38 :On l'a déjà vu une fois.Est-ce que vous avez une idée ?Franchement, il ne faut pas chercher loin.Il faut implémenter la méthode des que dans la dernière classe.
00:04:53 :En gros ça je l'avais préparé, sinon je crois que ça allait le mettre vide.Et en fait, Autosave, souvent comme ça, il vous met toujours un bout de code.
00:05:04 :Enfin toujours.Ça arrive qu'il vous mette un bout de code au-dessus.Vous ne devez jamais toucher.Et un bout de code en dessous, vous ne devez pas toucher en fait.
00:05:10 :Du coup, on peut l'utiliser.On peut faire juste un if is empty.If self.If self is empty, tu retrouves le NA.Moi, je vous suis.
00:05:26 :Alors, .isempty.Comme il est là, on en profite.J'ai fait une faute. Non, c'est bon.Et parenthèse.Deux points.Return NA.Il est écrit comment, sans majuscule ?
00:05:44 :Majuscule, oui.Et là, on utilise la méthode .pop.Bah, franchement, c'est ce que j'aurais fait.Je ne me serais pas embêté.Alors, c'est items.Je ne sais pas de conneries.
00:06:11 :Pop.Premier élément, zéro.Ouais.Bon, voilà.En gros, je ne me serais pas embêté.J'aurais fait un truc comme ça.On peut tester.Si je fais ça.
00:06:28 :Hop là.Je vais toujours copier directement.Normalement, c'est bon.Si je ne print pas, ouais.Hop là.Je me print.Voilà.Ça en renvoie un.
00:06:48 :Donc, pas très compliqué.Moi, perso, quand je l'avais fait, celui-là, j'avais fait quoi ?Un peu plus...J'avais fait comment déjà ?Alors, j'avais fait un truc comme ça.
00:07:03 :J'avais fait return.self.items.pop.0if self.items.J'avais fait un truc comme ça.Et sinon, je l'ai fait comme ça.else.nr.Mais bon, c'est bien.En plus, vous avez utilisé IsEmpty.
00:07:30 :Moi, en fait, vraiment direct comme ça, au premier abord,sans réfléchir, j'avais fait tac.Enchaîné comme ça.OK, voilà.Ça va.Ça ne vous paraît pas...
00:07:43 :Ça ne vous paraît pas trop...Oui, au départ, c'est un peu confus avec la...des queues, là.Des collections.Mais...C'est comme ça.Parce que j'ai l'air de lire tout de mon côté,puis de l'air de faire.
00:07:57 :Et j'avoue, quand j'ai lu, je fais...Qu'est-ce qu'ils cherchent absolument ?Alors, de queues, moi, je pensais à une collection et tout.Mais non, ça serait...
00:08:05 :Non, ça va se compliquer.Je me dis, bon, on peut pas faire ça.Est-ce que c'est bon pour tout le monde ?Yep.OK.Bon, celui-là.
00:08:14 :C'est bon.Comme ça, si vous tombez dessus.Je vous mets des questions un peu...Enfin, c'est simple, mais...Pour voir aussi ce qu'il peut y avoir.
00:08:25 :Sans chercher...Si y en a qui ont des petites idées.C'est ça, c'est ça.C'est ça, c'est ça.C'est ça, c'est ça.C'est ça, c'est ça.
00:08:35 :C'est ça, c'est ça.C'est ça, c'est ça.C'est ça, c'est ça.Si y en a qui ont des petites idées, là, direct.Oh, je l'ai vu, celle-là.
00:08:48 :Tu l'as vue ?Je l'ai...Je sais plus.Je sais pas si je l'ai vue, Léval.Mais elle me dit quelque chose.Moi, j'aime bien parce qu'elle amuse bien à te mettre une petite accession parallèle et tout.
00:09:00 :Ouais.Et je crois que, justement, je m'étais fait avoir sur la dernière.Sur la 2, 3, 4.Euh, 2, 3, 5, pardon.Y en a 5.
00:09:09 :Dites-moi, vas-y.2, 3, 5, pour moi.Pour toi, tu me dis, là, 2...2, 3 et 5.3, 5, ok.Euh, si, là...Hop là.
00:09:26 :Je l'avais mal vue, la dernière.C'est à cause du point blanc.C'est à cause du point blanc.C'est la même chose.Ouais.La même chose.
00:09:40 :Je sais pas si celle-là est arrivée dans le salon.Salut, celle-là.Je crois que si t'es là, je...Euh, il y en a d'autres qui ont...
00:09:54 :qui ont des idées là-dessus ?Moi, je comprends pas bien.Parce que ça parle des strings.Donc, du coup, y a que la 2.Ouais, alors...
00:10:09 :Justement, c'est ça, le truc.Le truc, je suis mort, quoi.Moi, je réponds que 2.Ok.Y en a 5 aussi, non ?Ok.Ouais, j'aurais dit la 2 et la dernière.
00:10:24 :Ok.Alors, je regarde un peu.Je sais pas si y en a encore, mais je regarde un peu les strings.Je sais pas si y en a encore, mais je regarde un peu les stats, là.
00:10:31 :Ouais.Ok.Celle-là n'est pas beaucoup revenue.Ça, c'est pas une s-string.Parce qu'ici, on utilise les méthodes format, quoi, l'ancienne.Ouais.Là, c'est une s-string.
00:10:42 :On est d'accord ?Ouais.Ouais.Là, y a une assignation parallèle.Et ici, y en a bien une s-string.Ouais, ok.Ouais, voilà.Enfin, ils font le petit truc...
00:10:57 :La question que j'avais eue, c'était les formatifs.Donc, ça comptait la format.Du coup, j'ai...Et j'avais pas mis la dernière.Je suis un putain de...
00:11:05 :J'avais pas mis la dernière à cause de...Je l'ai pas vue.J'ai pas vu le...Bon, voilà.C'était une question...Ouais, ouais.Je crois que j'ai vu quelqu'un qui avait vu l'évaluation et qui avait pas dû répondre.
00:11:20 :Celle-là aussi.Mais j'avoue qu'en fait, moi, je sais pas.Quand t'as posé la question, j'ai...Bon, s-string, ok.Je l'ai vu.Du coup, ça, ouais.
00:11:26 :La 3, elle est formatée.Mais c'est pas un s-string.Ça reste un littéral formaté, quoi.Je suis sûre.C'est bon.C'est pour ça qu'il faut bien dire.
00:11:33 :Il faut dire, ok.Et à chaque fois, je lui dirais, c'est bon.C'est bien que les s-strings.C'est sûr, alors.C'est sûr, certains.Pourquoi ils mettent ça ?
00:11:39 :Enfin, bon, voilà.Ouais, et puis en plus, l's-string, il est entre parenthèses.Alors que c'est vachement important.Ouais.Oui, oui, oui.Pour moi, quelque chose d'important n'est pas entre parenthèses.
00:11:52 :Oui, si c'est un élément crucial, oui, tu le mets entre parenthèses.Bah oui.Si c'est entre parenthèses, c'est un détail.Sinon, tu dis qu'on tient des chaînes littérales formatées de type s-string.
00:12:06 :Que tu le mets en.Voilà, ouais.Ouais, ouais.Oui, oui.C'est pour ça qu'il faut bien dire.C'est pour ça qu'il faut bien dire.C'est pour ça qu'il faut bien dire.
00:12:14 :Les questions de ce genre, en fait, il faut essayer d'arriver vraiment solide, quoi.Et pas se commencer à se poser trop de questions, défendant les questions.
00:12:20 :Je vais...Euh...Ok.Il y en avait une, je pense, sur laquelle, du coup...Elle est un peu spéciale.Non.Celle-là.Avant.Celle-là.Je vous laisse la lire en pire.
00:12:53 :Vous direz.Je dirais la ligne 8.Alors, c'est pour ça que celle-là, vous devez la voir parce que c'est...Les flottes valides.C'est des points faciles, mais c'est des points facilement perdus aussi là-dessus.
00:13:13 :Parce que c'est...Ouais.C'est des points faciles, mais c'est des points facilement perdus aussi là-dessus.Parce que c'est...Ouais.J'ai dit 1, 2, 3, 4, 5.
00:13:29 :Et 5 aussi.Moi, je dis 1, 2, 3, 4.Alors.1, 2, 3, 4.Ok.Moi, je dirais plutôt 8 et 12.Alors, attends.1, 2, 3.
00:13:49 :Tu parles en ligne.8.Oui.Et 12.Ok.Ok.Je ne sais pas si il y en a encore.6.La ligne 6.Le premier.
00:14:02 :Ouais.6, 8, 10 et 12.Ok.Je ne sais pas si il y en a qui voulaient encore dire ou pas.Je dirais la même chose, mais avec 14 en plus.
00:14:40 :Ok.Alors.Ça.C'est possible.On est bien sur un nombre à virgule ici.Ça c'est possible.Possible.On est bien sur un nombre flottant.Donc là, nombre flottant.
00:14:59 :Ouais.Ça.Celui-là.Si, si, si, si, si.C'est possible.Moi, il me fait bugger celui-là à chaque fois.Ça c'est possible.Parce qu'on met des petits séparateurs underscore, mais c'est possible.
00:15:15 :Et ici, en fait, c'est celui-là, moi,pareil, qui m'a fait un peu bugger.C'est juste qu'ici, il a une notation exponentielle.Voilà.Et puis les autres,ici, c'est pas bon parce qu'en plus,alors c'est pas un problème d'examiner d'ici mal,mais je crois qu'il faut en plus faire en exposant,
00:15:35 :quand on est en float.Là, c'est un entier.Puis là, c'est carrément possible.Donc voilà.Je ne sais plus, je m'étais amusé à faire,genre, si vous avez un float, par exemple,je ne sais pas, mon float, ça va être,donc,si on fait ça, par exemple,donc là, si je fais,
00:15:55 :on est bien d'accord,si on veut,on va avoir le kernel d'ici.Tac.On est bien sur un float.Il est possible de faire,on va laisser le print,en plus, j'ai découvert,il n'y a pas si longtemps que ça,alors, je ne m'en suis pas servi en concret,
00:16:13 :parce que pour l'instant,je n'ai pas encore de,je ne vois pas où je me servirais d'hexadécimal en soi,dans ce que j'ai fait jusqu'à maintenant,mais je sais que ça existe,c'est pas mal.
00:16:21 :Donc là, vous avez votre float,il y a une,alors, si on le retrouve,il y a une méthode qui existe,c'est hex, je crois,je crois que c'est hex,voilà.
00:16:33 :C'est ça,et vous pouvez le transformer en hexadécimal,du coup,pour le fun,mais c'est bon à savoir.Il est possible de transformer ici vos floats,comme ça, on va avoir l'hexadécimal qui correspond.
00:16:50 :Donc voilà,donc ça, ok.En fait,personne n'a mis une réponse fausse,en fait,c'est juste qu'il manquait de la bonne.Mais,attention,si vous mettez,genre ça,ça,ça,ça,vous en oubliez une,c'est tout faux.
00:17:11 :Les questions,elles sont comptées comme fausses,donc c'est pour ça.Donc voilà,c'est bon pour ça ou pas ?Yep.En plus,les questions,c'est facile de perdre des points,mais du coup,au moins.
00:17:27 :Bon,là,je voulais la mettre pour le fun,j'aime bien la réponse.Ok.Elle est sur Blockstream,celle-là.Je l'ai mise en quiz,ouais.Elle est sur Blockstream.
00:18:00 :Je l'ai mise en quiz,ouais.Je l'ai vue il n'y a pas longtemps,j'ai fait un truc il n'y a pas longtemps.Ouais.Je l'ai mise,je l'ai mise.
00:18:09 :Mais c'est cool.Moi,je ne vais pas répondre,tu vois.Ouais.Est-ce qu'il y en a qui savent ?Est-ce qu'il y en a qui savent ?
00:18:20 :Ici ou ?Il n'y a qu'une réponse possible,qui s'appelerait.C'est pour accélérer la vitesse,normalement,d'exécution.Ok.Il y en a d'autres ?J'aurais dit la même chose aussi.
00:18:39 :Ok.Et du coup, c'est la même chose.Ok.Bon, du coup,point facile aussi là-dessus.C'est bien,en effet,c'est pour accélérerla vitesse d'exécution.
00:19:00 :En gros,je ne sais pas,si vous l'avez déjà utilisé,mais je vais importerTime avec.On va voir si je peux m'en servir,mais on va déjà monter comme ça.
00:19:13 :Je ne sais pas si je faisLRU cache.Voilà.Ici,j'ai une fonction.On va utiliser un entier.Enfin,voilà.On va faire un Time.sleep.
00:19:29 :Voilà.On va la faire attendre,je ne sais pas,tac.Et puis, on va fairelimite le n,on s'en fichera presque.On va faire une somme.
00:19:40 :Voilà,c'est bon, pour vous dire,on va faire un calcul en plus.For i,in,around,tac,n.Voilà.Ici, du coup,je vais me faire un start.
00:19:54 :Time.time.Pour voir vraimentce qu'on va faire.Donc là,notre fonction,on va se faire un petit fou.On s'en fout,on peut mettre 1000,ce n'est pas grave,ça va prendre trois heures.
00:20:11 :Donc là,je print mon fouet à la fin,le n,c'est égal àTime.time.Et on va faireun printet on va fairele endmoinsstart.
00:20:30 :OK.Donc là,et celle-là,ensuite,je vais la réutiliser telle qu'elleet puis on varefaire un,on va faire un,on va faire ça,on va s'amuser à l'appeler deux fois.
00:20:43 :Mince.À l'appeler deux fois.Hop,et je vais mettre,on s'en fout,j'ai une oreille comme ça.OK.Donc là,il a bien pris deux secondesà me l'exécuter.
00:21:02 :Bon,ici,on n'est pas à sept secondes,on est bien en...Alors du coup,ça fait combien ça en...Ça fait combien ça en...Attends.
00:21:15 :Ça fait combien en secondes,du coup ?Il faut vraiment être infime.Mais,sur le principe,vu qu'on l'a déjà appelé une fois,ici,en fait,il ne va pas réexécuter le code,vous voyez,le résultat, quoi.
00:21:32 :Donc,alors ça fait,donc là,j'ai regardé,exposant ici,donc ça fait environ7.15 microsecondes.Donc ça fait 0,00000715.Voilà.Donc,on va dire quasiment 0 seconde ici.
00:21:47 :Et en gros,là,le résultat est OK.Donc,il exécute une fois le code.Ici,vu qu'on a le même argument,le même argument,il ne va pas réexécuter le code,mais il va réutiliserla valeur qui a étérenvoyée, en fait,la première fois.
00:22:06 :Voilà.C'est bon ou pas ?J'ai loupé la question.Hein ?Ah non, c'est bon, c'est la même.C'est bon.Ouais, ouais, ouais, non.C'est sur le...
00:22:16 :le LRU cache.Pratique, hein.Je ne m'en suis pas encore servi,mais je pense qu'il y a des endroitsoù j'aurais pu m'en servir,ça aurait été pratique.
00:22:25 :Parce que je disais que là...J'ai pu m'en servirpendant l'advent of code.C'était cool.Ah ouais ?Ouais.Ça ne m'étonne pas, oui.Surtout qu'il joue sur le temps aussi.
00:22:35 :Mais là,ce que je disais,c'est que sur le principe,là, j'ai un time.sleep.2,donc ça met au moins deux secondes.Mais on voit que la troisième fois,du coup,la deuxième fois que c'est exécuté,ça s'exécute direct, quoi.
00:22:45 :Là, ici,on est en microsecondes.Et donc,il fait juste renvoyer le résultatqui a déjà été calculé avant.Il n'exécute pas le code, quoi.
00:22:54 :Donc, voilà.Donc, très pratique.Pensez-y.Il y a Stéphanequi en avait parlé une foisdans le détail, je crois.C'est bon pour tout le monde ?
00:23:04 :Oui.OK.Alors.Ensuite.Allez,je vais finir sur jtpx.Je vous montre celui-là.Là, il faut bien prendre le tempsde le lire au calme.
00:23:30 :Alors,à ce moment-là,j'ai des idées.Alors, est-ce qu'il y en a qui ont des idées ?Il est marrant, celui-là.Je sens que tu allais le dire.
00:24:09 :Non, non.Voilà.Lesquels ?Les deux.Là ?OK.Il y en a d'autres ?Non, attends.Une réponse possible.Non, attends.Non, non, pas le deux.
00:24:32 :Non, non, il y a un break.Euh, un.Pardon.Je suis obligée de lire la ligne d'après.Il y en a d'autres ?Non.S'il y a un blocage,je passe direct.
00:25:06 :Vous le dites,il n'y a pas de problème.Mais dis-le,je sens que tu vas être lancé là.Moi, j'aurais dû la lire une.Ouais.
00:25:17 :Et ça me fume.Ouais.OK.Il y en a d'autresoù je passe au...directement.À la réponse.À la réponse.OK.Donc, c'est bien la 21.
00:25:33 :En gros, ici,en fait,il faut vraiment lire les conditionsen l'ordre.Si i,est inférieur à 10,qu'est-ce qu'on fait ?Ben, on repart au début de la boucle.
00:25:45 :Donc, 7,je repars au début de la boucle.Si, ici, notre i,donc là, le module 2,c'est pour voir si c'est un nombre impair.
00:25:53 :Qu'est-ce qu'on fait ?On l'ajoutedans notreliste ici.Et on break.Donc, en gros,7, on fait un continu.36,c'est bien,on continue la boucle.
00:26:07 :21,qui est bien supérieur à 10,il est impair.Du coup,on l'ajoute dans la liste,résulte,et on fait un break.Donc, on s'arrête là.
00:26:16 :Nous, on retourne la liste.Donc, voilà.C'est tout.C'est bon, du coup ?Oui,en fait,moi, c'est le contenuqui m'a fait un peu perdre.
00:26:27 :En fait,c'est quoi ?Le continu.Quand,bon,le continu,pour moi,il continuedans leifpour son place 2.Non, non, non.Le continu,c'est vraiment,tu pars au débutde ta boucle.
00:26:46 :Genre là,le continu,donc,7,7 est inférieur à 10.Tu continues,boum,en fait,tu ne passes pas la suite,tu repars au début de ta boucle.
00:26:59 :Pardon ?J'ai les sautes,le code,en fait,et il reprend la boucle.Ouais,il retourne au début de la boucle.Voilà.Ça va, ça va.
00:27:13 :Donc, voilà.C'est bon pour tout le monde,ou pas ?Ça va.On s'est expliqué,oui.Ok.Bon.On va peut-être parlerun peuasynchrone,alors.
00:27:31 :Je ne vais pas vous embêtertrop longtemps,je vais juste vous montrerquelque chose.Je vais appeler,on va s'arrêter.Alors,est-ce que,est-ce que vous connaissez,est-ce que j'ai mis,ça ?
00:27:49 :Non.Non.Alors,on va prendre ce nom.Est-ce que,est-ce que vous connaissez ça ?Ah, oui.Oui.Ok.Alors,j'ai un mec qui m'a fait découvrir çasur LinkedIn.
00:28:12 :Je ne sais plus,je fais un speak request,il me fait,il me fait voir pour mes requêtes,j'utilise HTTPX.Bon, je vais voir.Et quand on regarde,ça ressemble énormément,c'est .get,
00:28:22 :.statuscode,header,ok, texte,vous avez même du .json,bon, ça ressemble beaucoup.Et en fait,HTTPX,il supporte nativementla synchrone.Donc, en gros,j'avais préparéun code tout fait,j'avais fait avec,je ne sais plus où je l'ai mis,on va recommencer.
00:28:48 :Alors,déjà, de base,je sais que j'avais mis de côté,pour illustrer ça,on va continuer à faire appelà Chuck Norris.On va repartir avec Chuck Norris.
00:29:02 :Donc,en gros,on va voir la différence,si j'utilise,alors,ok,il y en aurait bien en gros,ça me fait chier de prendre mon truc,mais ce n'est pas grave,on va le faire ici.
00:29:16 :Je suis sourcé, là,je n'ai même plus,ah non, du coup,je n'ai pas de version virtuelle,ok.Hop.Hop.Yes, ok.Et si je relance mon,voilà.
00:29:35 :Hop.Donc, avec request,du coup,je vais vous montrer,du coup,l'intérêt, en fait,de HTTPX.On va,on va toujours utiliser,moi,j'aime bien,les prints,juste pour le,pour la mise en forme,en fait,et on va faire un import de taille aussi.
00:29:58 :Alors,là,c'est l'URL.On va se créer une fonction,ici,pour aller chercher l'URL.Donc, on va y mettre client,l'URL,vous allez voir à quoi,où je veux en venir.
00:30:12 :Et ici,ma réponse,ça va être égal àclient.getet l'URL.Et, ben,on va retournerla réponsesous forme de JSON.Voilà.Ensuite,je fais çaparce qu'on va passerà ce qu'on a derrière.
00:30:31 :Je vais avoir une fonction principale,OK.Et,on va faire un petitwithrequest.Donc,on va utiliser les sessions.Donc, je ne sais passi vous vous rendez compte,j'ai utilisé les sessions,en fait,ici,dans mon cas,ce n'est pas,je préfère utiliser du get direct,mais sessions,
00:30:52 :ça permet des foisde se configurer,en fait,des,comment dire,carrément des sessions,directement des sessions,et des élémentspréconfigurés,en fait,qu'on peut utiliser.
00:31:03 :Donc, là,on va l'utiliser de manière basique.Donc, j'ai mon client.On va se faireune liste,parce qu'après,je vais passer en asynchrone,on va faire comme ça.
00:31:16 :Ici,on peut préparer,en fait,toutes nos taffes.Donc,OK,donc là,je vais peut-être la finir,d'ailleurs.Hop.Et donc,là,je pense que l'API,ils vont crier,sinon,c'est qu'on va appeler,donc,20 blagues aléatoires,comme ça,et on va faire20 requêtes get,du coup,sur l'URL,
00:31:41 :OK ?Donc,résulte ici,hop,on vapointer notre résultat.Et on va,du coup,alors,tac,name,égal,hop,je vais faire des faux textes,là,tac,c'est bon,main,hop.
00:32:08 :Et ici,on va se faireun petit start,qui est égal àtime,point,time,un n,qui est égal à,euh,on ne peut même pas faire de n,je vais partir directementsur ma fonction principale,et,on va print,euh,time,point,point,time,moins,le start,
00:32:30 :voilà.Euh,et même,il y a encore un plus performant,je crois,d'ailleurs,ça prend bien son nom,c'est perf counter,je crois que c'est plus précis.
00:32:39 :On va faire ça,hop là.Ouais,voilà,c'est encore mieux.Donc là,je ferme les un requêtes,euh,ça va pour tout le monde ici,ou pas,pour l'instant ?
00:32:50 :Euh,ça va,ça va,ça va,ça va,ça va,ça va,ça va.Donc là,en fait,je vais utiliser le,le requête ici,et je vais simplement,en fait,donc,j'envoie ici ma session,en fait,comme un client,on va dire,dans mon guide URL ici,et donc,
00:33:11 :avec,euh,à chaque fois,je vais faire un guide,tout simplement faire un guide à chaque fois,sur les URL,le URL de chaque service.
00:33:18 :Donc,euh,je vais faire 20 fois.OK,alors,je n'ai pas fait de faute.Donc,il me l'a fait en,euh,1,1,1,4 secondes.Il m'a paru vachement rapide,par rapport à la,à ce que j'ai essayé.
00:33:32 :Hum,OK,il est assez rapide.Bon,là,il l'a fait en,1,4 secondes.Euh,maintenant,je vais faire un,hop là.Je pourrais faire,euh,on ne l'a plus comme ça.
00:33:46 :Hop là.Donc,il m'a fait,en,euh,1,1,1,4 secondes.Voilà.Et ici,j'ai mis où ?Donc,là,on peut directement,du coup,peut-être faire un,un port,http,je ne l'ai pas,je ne l'ai pas installé,pip install,http x.
00:34:07 :Voilà.Et donc,euh,moi,alors,je vais remplacer ça bien ici,parce que du coup,ce qu'on peut faire,on va le prendre doucement,on va l'utiliser comme ça,http,http,euh,x.
00:34:21 :Voilà.Et on va utiliser,je ne sais pas s'il y en a qui connaissent bien déjà,Asyncio,pour faire de la synchrone.Ça va ça,ou vous ne connaissez pas forcément ?
00:34:32 :C'est bon.Ok.Euh,quelqu'un dit non ?Moi.Ok.Bon,en gros ici,sur le principe,euh,comme en général avec Python,quand vous allez exécuter un script,ça va exécuter les tâches une par une.
00:34:48 :Donc là,quand tu fais ici un get url,chaque fois tu vas aller faire ton get,mais c'est vraiment une par une,ok ?Là,le but,c'est de pouvoir,en fait,de faire des get url,mais sans bloquer le script,c'est vraiment de le faire tout en même temps,
00:35:06 :si on veut.Ah,ok.Et donc,avec request,de manière native,ce n'est pas possible,peut-être qu'il existe des extensions,il me semble d'ailleurs,mais avec httpx,qui ressemble beaucoup,à request,on peut le faire.
00:35:20 :Il faut le combiner,du coup,avec asyncio,qui permet de faire de l'asynchrone avec Python.Et donc,on va,euh,on va utiliser print,tac,et on va toujours importer type.
00:35:32 :Alors,en gros,ici,comment ça se passe ?On va déclarer nos fonctions asynchrone.Donc là,on va avoir get url,comme on l'a fait tout à l'heure,couvrant un client,couvrant l'url qu'on veut envoyer,l'url que je veux aller copier, d'ailleurs.
00:35:54 :Euh,hop,ici.Et ce qu'on va faire,c'est qu'on va faire un await,parce qu'on va vouloir,en fait,qu'il,qu'il exécute notre,comment dire,qu'il exécute biennos différentes tâches en parallèle,on va dire quoi faire,et qu'il nous retourne le résultat.
00:36:18 :Donc,.get url,voilà.Et puis là,on retourne ce que j'ai fait.OK.Et on va simplement faire comme tout à l'heure,response .json.OK.
00:36:33 :Et là,où ça va changer aussi,on va avoir une fonction principale.OK.Et donc,là,ici,euh,on va partir en asynchrone,du coup,et on va faire,donc,un with httpx,.
00:36:54 :Ici,c'est async client,en fait,c'est pas,tout à l'heure,on le faisait avec session,avec xpx,c'est async client.Donc,il propose un objet asynchrone,asclient.
00:37:06 :Et là,c'est pareil,on va repartir dans une liste,et on va lui donner,en fait,nos urls,du coup,à l'étapé.Donc,on voit le client,l'url,et c'est pareil,on va faire un range de 20.
00:37:26 :Ici.Et donc,à partir de là,le résultat,on va utiliser asyncio,ici,et on va lui demander,justement,c'est asyncio.gether,je crois que c'est ça,et ici,on va lui envoyer toutes nos tâches,en fait,et il va aller les exécuter,quasiment au même temps,il ne va pas attendre,
00:37:51 :chaque fois,c'est une par une,il va nous les exécuter,et après,il va nous les retourner.Donc,ici,hop,tac,on va faire un pprint,notre résultat,et puis là,c'est parti,on va refaire comme tout à l'heure,par contre,là,je ne vais pas m'embêter,hop,on va faire le,
00:38:18 :j'ai mon PerfCounter,tac.Ça,c'est bon,et par contre,il faut penser à faire,c'est qu'il faut faire asyncio,utiliser asyncio,hop,.run,et ici,voilà,et comme ça,il va aller exécuter nos coroutines.
00:38:38 :Alors,je ne sais pas si avec 1.4,on va avoir beaucoup de différences,est-ce que je n'ai pas fait rien derrière,je crois que j'ai fait,non c'est bon.
00:38:45 :Vous voyez,tout à l'heure,il l'a fait en 1.5 secondes,1.6,là,il l'a fait en 0.22 secondes.Donc là,en fait,avec cette librairie-là,vous avez nativement du,de l'asynchrone,et au lieu,en fait,d'aller faire des requêtes,vraiment,une par une,attendre qu'elles terminent,vous pouvez envoyer tout d'un coup,
00:39:10 :c'est-à-dire,je vais m'enregistrer ce code-là,tout dans votre code,et,et comme ça,en fait,il va toujours,elle est tout exécutée,il va tout renvoyer.
00:39:19 :Est-ce qu'il y en a qui connaissaient ou pas,d'ailleurs,du coup,un petit peu,l'asynchrone,l'asynchio ou pas ?Non,pas du tout.Non,ouais,c'est vrai,c'est vrai,l'asynchio.
00:39:32 :Non,ouais,ok.Je pense,oui,Stéphane,une fois,il a fait un mentorat sur…Ah,oui,oui,parce que…Oui,j'ai vu le mentorat de Stéphane.
00:39:46 :Parce que j'avais fait un,oui,j'avais fait un mentorat,juste avant,sur multithreading,multiprocessing,et après,oui,on s'était arrangé,parce qu'à lui,ils avaient enchaîné là-dessus.
00:39:57 :Ouais,c'est ça.C'est ça,ok.Donc,voilà,en fait,quand vous utilisez,du coup,des fonctions asynchrones,comme ça,en fait,on va avoir ce qu'on appelledes coroutines,ça va être des tâches,ça va être des tâches,et quand vous allez appelerles coroutines,en fait,vous avez utilisé await,
00:40:17 :et vous allez utiliser,donc,asynchio.geyser,et comme ça,en fait,ça va vous gérerça,en fait,de manière asynchrone.C'est ce qu'on appelleles coroutines.
00:40:28 :Donc,de manière asynchrone.C'est toujours penséà utiliser asynchiopour le run,en fait.Donc,voilà,et c'est vraique,du coup,j'aime beaucoup,maintenant,j'avais jamais utilisé,et je l'ai testéla semaine dernière,pour la première fois.
00:40:45 :Donc,alors,après,je crache pas sur request,hein,request,franchement,c'est très,très bien,je m'en sers encore aussi,mais j'avoue,maintenant,j'ai tendanceOuais,c'est vachement rapide,hein,c'est plus que...
00:41:03 :Ouais,bah,du coup,oui,oui,tu peux toujours le rendre asynchrone,c'est quand même bien,c'est quand même plus rapide,ouais.Donc,voilà,donc,c'était pour faire justeune petite découverte,la découverte du jeu d'histoire,quoi.
00:41:19 :Trop cool.Merci quand même,hein,merci beaucoup.C'était gentil,merci.HTTPX.Ouais,c'est pas pire.Donc,voilà,je disais,en début,je sais pas si il y avait tout le monde,je vais reprendre des mentorats,aussi,je vais varier un peu,reprendre du Django,Django Rest Framework,un peu de Streamlit,
00:41:39 :aussi,d'ailleurs,et je pourrais même couplerDjango Rest Frameworket Streamlit,je l'ai fait hier,où j'ai créé une APIavec Django Rest Frameworket je l'ai consomméavec Streamlit,c'est tout à fait possible.
00:41:50 :Donc,voilà,donc,voilà,voilà,voilà,je sais pas si il y en aquand j'ai essayéde faire ce genre de choses-là,mais,ça marchait très bien,et je pourrais s'y parler,je sais plus si j'avais une autre idée.
00:42:07 :Peut-être qu'une fois,on fera peut-être du FastAPI,d'ailleurs,mais,donc,voilà.J'espère que ça vous a plu,je suis allé un peu vitesur HTTPX,d'ailleurs,sur TPK Synchron,mais,mais j'avais vraimentenvie de vous le montrer.
00:42:21 :Donc,voilà,est-ce qu'il y a des questions,ou ça va ?Ça va.OK.C'est bon.Merci beaucoup.Pas de problème.Comme ça,ça met un peu le pieddans la synchrone,et puis,ça montre vraimentdes exemples concrets,quoi,de ce qu'on peut faire avec.
00:42:38 :Est-ce qu'il y en a,pour cette hausse-là,là,qui vont êtredes questionsqui sontpeut-êtretrès,très,très,très,très,très,très,très bienłępour la race meterosa,là,qui vont passer,là,genre,très bientôt,très bientôt ?
00:43:00 :Je pense ici,là,la semaine prochaine,ouais.OK.On a envoyé une newsletterce matin,là,sur docstring,et,ça récapitulaitun peu toutce qui s'est faitces derniers temps.
Aucune occurrence trouvée pour « ».