MakeMake The Dwarf Planet is a feed agregator.

PyConFR 2026, à Biarritz du 29 octobre au 1 novembre

by ReiNula,Benoît Sibaud from Linuxfr.org

L’Association Francophone Python (AFPy) organise la PyConFR 2026 du jeudi 29 octobre au dimanche 1 novembre. Pour cette 17e édition, nous sommes accueillis par l'école ESTIA de Biarritz !

Logo de la PyConFR 2026

La PyConFR, c’est un évènement gratuit sur 4 jours autour du langage de programmation Python. Elle est composée deux jours de développements participatifs (sprints), puis de deux jours de conférences et ateliers.

L’appel à propositions est ouvert jusqu’au 31 juillet 2026. Peu importe votre niveau en Python, vous pouvez proposer un sujet de sprint, de conférence ou d’atelier ! Venez parler de développement logiciel, de diversité, de communauté, faire un retour d’expérience sur un outil, présenter votre projet, un domaine d’activité…

Comme tous les ans, nous proposons aux personnes habituellement peu représentées en conférence de l’aide pour trouver un sujet, rédiger la proposition de conférence, rédiger le support de conférence et pour répéter. Vous pouvez nous contacter à l’adresse diversite@afpy.org si vous pensez en avoir besoin.

Enfin, la PyConFR est entièrement financée par les sponsors. Si vous connaissez des sponsors potentiels, n’hésitez pas à leur parler de l’évènement !

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Entr'ouvert recrute un·e développeur·euse Python/Django [Paris, Lyon, télétravail]

by thomasnoel from AFPy discuss

Entr’ouvert est un éditeur de logiciels libres dont l’activité s’est développée autour de la gestion de la relation usager. Notre mission, c’est de simplifier les démarches des citoyens puis de les proposer en ligne… en ce moment cela a un certain succès.

Entr’ouvert est une SCOP fonctionnant depuis 2002 de manière démocratique, détenue intégralement et à parts égales par ses salarié·es et où chacun, en tant qu’associé·e, participe aux prises de décision. Et parce que nous ne faisons pas les choses à moitié, nous avons institué la stricte égalité salariale.

Nous sommes actuellement 29 : 13 développeuses·eurs, 13 fonctionnel·le·s, 2 administrateurs·rices systèmes, une responsable administratif et pratiquement aucun raton laveur.

Nous n’utilisons et ne produisons que des logiciels libres. Nous avons développé une relation de confiance avec nos clients, basée sur la qualité, l’importance accordée aux détails, le travail bien fait. Et cela ne nous empêche pas de rigoler, c’est même recommandé, l’esprit de sérieux étant un mauvais esprit. Au-delà des compétences professionnelles, nous recherchons des personnes qui sauront intégrer notre équipe et s’impliquer dans notre structure coopérative.

Nous cherchons un·e développeur·euse

  • Vous connaissez bien Django, vous possédez des connaissances basiques en HTML, CSS et Javascript.

  • Vous savez faire un git commit et un git push (sans -f).

  • Vous êtes à l’aise avec l’écriture de tests, unitaires ou fonctionnels.

  • On suit les recommandations PEP8, on aime le code propre et maintenable et on espère que vous aussi.

  • Vous savez exprimer une situation ou une solution à vos collègues et aux clients.

  • Vous appréciez la relation directe avec les client·e·s afin de bien cerner leurs demandes.

  • Vous savez gérer les priorités et aimez tenir vos échéances.

  • La programmation non assistée par un LLM ne vous fait pas peur : les contributions générées par intelligence artificielle sont interdites dans nos logiciels.

  • A priori pour savoir faire tout cela, vous avez déjà quelques années d’expérience.

  • … et au minimum une certaine sensibilité aux logiciels libres.

Votre mission

  • Après un temps de formation avec l’équipe, vous travaillerez à l’amélioration et sur les évolutions de Publik suivant les tickets et la roadmap.

  • Vous relirez des patches proposés par les collègues, chercherez à les améliorer, bref, vous ferez du code review.

  • Selon les projets vous serez développeur·euse ou chef·fe de projet technique (c’est-à-dire en charge de la coordination des développements et de la relation technique avec le client).

Quelques exemples de notre quotidien

Les conditions de travail

  • CDI de 52 000 € brut annuel, soit environ 3300 € net par mois — même salaire pour tout le monde.

  • 99% des bénéfices répartis à parts égales entre les travailleuses·eurs, sous forme de participation, intéressement, primes (voir pappers.fr pour vous donner une idée).

  • Organisation du temps de travail sur 4 jours de la semaine.

  • Travail à Paris XIVème ou à Lyon, télétravail possible depuis partout en France.

  • Horaires souples.

  • Mutuelle familiale.

  • 8½ semaines de congés payés.

  • 50% de la carte Navigo, café, thé et chocolat inclus dans les bureaux parisiens et lyonnais.

  • Un bon ThinkPad, accompagné d’un grand écran, avec un beau clavier et une souris optique qui brille dans le noir (sans oublier un budget annuel pour tout type de matériel utile pour le télétravail).

  • Coopératrice·teur, associé·e de la SCOP, à part égale de tous les autres.

C’est trop beau

Si vous avez lu notre annonce jusqu’ici et que vous vous dites, « c’est trop beau un job pareil, où est le piège ? », quelques éléments sur les difficultés à travailler dans une société comme Entr’ouvert :

  • Nous sommes tous partiellement patrons de notre entreprise, ce qui est souvent synonyme d’un engagement plus conséquent que si nous n’étions que salarié·es.

  • Ne pas avoir de patrons dans une entreprise à n coopérateurs·rices, cela veut dire avoir n-1 « quasi-patrons » avec qui échanger : de bonnes capacités de communication, voire de diplomatie, sont nécessaires.

  • Pour les personnes en télétravail, la frontière est parfois ténue entre autonomie et isolement.

Vous avez l’impression de ne pas correspondre entièrement au profil, cette annonce vous fait très envie mais vous doutez de vos capacités ? Écoutez votre cœur et postulez ! Les offres d’emploi décrivent toujours une personne qui n’existe pas : vous avez toutes vos chances.

Le processus de recrutement

Les candidatures doivent être envoyées avant le dimanche 7 juin 2026 à 23h59. Le déroulé est ensuite l’organisation d’un entretien de présentation mutuelle, suivi de l’envoi d’un court test technique puis un second entretien de débrief et discussion avec des membres de l’équipe technique. Les deux entretiens auront lieu par visio-conférence. Le processus complet prend du temps, la décision finale de l’embauche devrait être prise autour du lundi 13 juillet.

Pour postuler, rendez-vous sur ce formulaire.


Post-scriptum : merci aux cabinets de recrutement de ne pas nous contacter ; nous recherchons des coopératrices·eurs voulant s’impliquer dans notre structure et non des salarié·es proposés sur catalogue.

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

AFPy

by AFPy - Mastodon from AFPy - Mastodon

Promotional image for PyConFR 2026 in Biarritz at the ESTIA campus, and announcement of the Call for Proposals, open through July 31, 2026

Lire la suite…

AFPy

by AFPy - Mastodon from AFPy - Mastodon

Image d'annonce de la PyConFR 2026 à Biarrtiz au campus ESTIA et annonce de l''ouverture du Call for Proposals jusqu'au 31 juillet 2026 inclus

Lire la suite…

Sortie de Tryton 8.0

by Cédric Krier,Maxime Richez,Nicolas Évrard,Xavier Teyssier from Linuxfr.org

Le 20 avril 2026 est sortie la version 8.0 de long support de Tryton un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

La version 8.0 de Tryton s'inscrit dans la continuité des versions précédentes en améliorant la stabilité, les performances et les fonctionnalités (dont ci-dessous les principales).
Cette version a un support long de cinq ans comparé à une année pour version précédentes.

Interface et usage quotidien

Quand un champ a été modifié par les actions de l'utilisateur, il est identifié afin de permettre une vérification visuelle avant de sauvegarder.

Champ langue du tiers modifié

Les onglets peuvent être réorganisés maintenant aussi pour le client web et l'action de déconnexion est désormais dans le même menu qui contient déjà les notifications et les préférences utilisateurs afin de donner encore plus d'espace dans l'entête pour les onglets.

Modules métiers

Sur le plan fonctionnel, la version 8.0 s'enrichit avec de nouveaux modules : gestion des chèques, gestion des accises et suivi d’alcool ainsi que le suivi de la vente de service par des tâches de projet.

Les modules comptables espagnols et allemands ont été sortis du dépôt standard afin d'être gérés plus simplement par la communauté.

Administration et développement

La version 8.0 ajoute le support de Python 3.14 et arrête celui de Python 3.9.
La librairie psycopg est mise à jour à la version 3 ce qui permet d'envoyer les requêtes SQL et leurs paramètres séparément et ainsi lever les limitations sur la taille des paramètres (entre autre le nombre d'IDs dans les clause column IN (...)).

Il est maintenant possible de définir des champs Function (c-à-d calculés par l'ORM) uniquement par une expression SQL. Cette expression sera utilisée pour la lecture, la recherche et le tri.

La définition des modules a été améliorée pour permettre l'utilisation de sous-répertoires plus facilement. En effet, on peut maintenant créer un fichier tryton.cfg dans un sous-répertoire et utiliser un chemin relatif depuis celui-ci vers ses fichiers ressources.

Une API REST a été ajoutée au serveur et une librairie cliente naiad a été publiée. Elle permet de remplacer l'utilisation du module trytond directement pour la création d'applications connexes telles que des sites web. C'est une architecture plus flexible que celle utilisée jusqu'à maintenant comme dans le module flask-tryton.

Les sessions pour le client web sont maintenant stockées comme cookie pour plus de sécurité.
Le client web utilise à présent uniquement des chemins relatifs, ce qui permet de le servir depuis un sous-répertoire.

Appel à sponsor

Pour préparer l'obligation de facturation électronique en France, un appel à sponsor a été lancé pour intégrer la plateforme agrée SUPER PDP.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

[POC] microprofilage en python avec yahi

by Jul from Linuxfr.org

User story

J'utilise profile de python et j'aimerais ne voir que les fonctions appelées dans un fichier et sortir les graphs correspondants.

Et accessoirement, t'as envie de montrer comment yahi peut s'utiliser pour d'autres graphs que les analyses de pages web.

Résultat

Le résultat est ici sous forme de page web

 Le chemin

Patcher profile

D'abord, il faut commencer à patcher profile de la stdlib pour sortir les données sous forme d'un log « regexpable » :

+++ mprofile/__init__.py    2026-05-24 09:24:37.185491502 +0200
@@ -330,6 +330,7 @@
             callers[pfn] = 1

         timings[rfn] = cc, ns - 1, tt + rit, ct, callers
+        print(f"{time.time()} {rfn} {rit} {ct} {pfn}")

         return 1

NB : je n'ai absolument pas compris ce que je renvoyais comme données.

Pour moi :

rfn = fonction appelée
rit = temps passé dans le frame où la fonction est appelée
ct = temps passé dans le frame parent (?????)
pfn = fonction appelante

Écrire un script spécifique à yahi

Ensuite après avoir récupéré les journaux d'un profilage, il faut écrire un script de sélection des données.

Ici ; on ne souhaite qu'inclure les entrées dont le chemin vers le fichier qui contient la fonction contient archery.

#!/usr/bin/env python
from yahi import notch, shoot
from json import dumps
from archery import mdict

date_formater= lambda dt :"%s-%02d-%02d %02d-%02d-%02d.%02d" % ( 
    dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.microsecond
    )


######################## Setting UP ##################################
# parsing command line & default settings. Return a not fully qualified object
context=notch(
    log_format="custom",
    off="geo_ip,user_agent",
    output_format="json",
# ne sélectionner que les fonction dans le fichier archery/trait.py
    include='''{ "from_callee" : ".*archery/trait.py" }''',
    date_pattern="%s",
# datetime en format timestamp (spécifique à yahi) 
    log_pattern="""^(?P<datetime>\S+)\s
    \('(?P<from_callee>[^']+)',\s
    (?P<lineno_callee>[^']+),\s
    '(?P<callee>[^']+)'\)\s
    (?P<time>\S+)\s
    (?P<ctime>\S+)\s
    \('(?P<from_caller>[^']+)',\s
    (?P<lineno_caller>[^']+),\s
    '(?P<caller>[^']+)'\)$""")
# log sample
# 1779465928.7602208 ('<frozen importlib._bootstrap>', 911, '_load_unlocked') 1 1.267900000000155e-05 0.0015263490000001073 ('<frozen importlib._bootstrap>', 1304, '_find_and_load_unlocked')

##### OKAY, now we can do the job ##########################################

context.output_file.write(
    dumps(
        shoot(
            context,
            lambda data : mdict({
                'date_calls': 
                     mdict({ date_formater(data["_datetime"])
                : float(data["time"]) }),
                "by_overhead_callee" : mdict({ data["callee"]: float(data["ctime"])  }),
                "by_overhead_caller" : mdict({ data["caller"]: float(data["ctime"])  }),
                "by_time_callee" : mdict({ data["callee"]: float(data["time"])  }),
                "by_time_caller" : mdict({ data["caller"]: float(data["time"])  }),
                'by_callee': mdict({ data["callee"] : 1 }),
                'by_caller': mdict({ data["caller"] : 1 }),
                'by_transition' : mdict({ "%(caller)s=>%(callee)s" % data : 1 }),
                'by_transition_time' : 
                    mdict({ "%(caller)s=>%(callee)s" % data : float(data["ctime"]) }),
                'total_line' : 1,
            }),
        ),
        indent=4
    )
)

Ensuite une petite invocation de yahi suffit

python mprofile.py  < ../mprofile.log > data.js && yahi_all_in_one_maker && firefox aio.html

Conclusion

Ben, j'ai été le premier surpris par la simplicité de l'exercice, et j'ai trouvé ça gratifiant.

Yahi est peut être utile pour faire de l'aggrégation de données. :)

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

NeoMeca

by AinsiParlaitZarathoustra from Linuxfr.org

Plus de 25 ans après le lancement du fameux logiciel Aviméca, utilisé partout en physique-chimie au lycée, 18 ans après l'échec retentissant de PyMeca, je vous annonce avec grand plaisir que je lance le logiciel
NeoMeca, dans sa première version.

En voici le lien github (qui mène à sa page de téléchargement) :
Se rendre sur le Repo NeoMeca

Ce qu'offre NeoMeca par rapport à ses prédécesseurs :

1) Support natif du .MP4, .MOV, .AVI (rétrocompatibilité)
2) Interface plus esthétique bien qu'encore imparfaite
3) Export de données plus facile

Je suis conscient de n'en être qu'à la première version (1.0.0)

Je travaille activement sur une version 1.5 qui corrigera la majeure partie des bugs de la première version et améliorera l'interface.

PS : Le logiciel est codé en python sur +22,000 lignes. L'exécutable pèse 8Mo, +130 avec ses dépendances. Ce qui est un coût nécessaire au vu de ses performances.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…