- Précédent [1]
- Suivant
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 !
- lien nᵒ 1 : PyConFR 2026
- lien nᵒ 2 : Proposer un sujet à la PyConFR 2026
- lien nᵒ 3 : Supporter l’évènement
- lien nᵒ 4 : Association Francophone Python (AFPy)
- lien nᵒ 5 : Code de conduite de la PyConFR
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 !
Commentaires : voir le flux Atom ouvrir dans le navigateur
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
-
du code sur https://git.entrouvert.org/ avec par exemple https://git.entrouvert.org/entrouvert/combo (sorte de « CMS » pour faire des portails), https://git.entrouvert.org/entrouvert/wcs (outil de construction de formulaires) ou https://git.entrouvert.org/entrouvert/lingo (gestions des paiements et de la facturation)
-
un redmine pour gérer les tickets : https://dev.entrouvert.org/ avec par exemple https://dev.entrouvert.org/projects/combo, https://dev.entrouvert.org/projects/wcs ou https://dev.entrouvert.org/projects/lingo
-
l’offre commerciale correspondante à toutes ces lignes de code s’appelle Publik : https://publik.entrouvert.com/
-
ce que ça donne : https://services.nancy.fr/, https://mes-demarches.marseille.fr/, https://www.toodego.com/, https://services.cnil.fr/, — et de manière plus spécifique elles sont assemblées pour produire Publik Famille
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)
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, 2026AFPy
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 inclusMigrer nos services SMTP de Mailgun vers Scaleway.
by bearstech from Bearstech
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.
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.
- lien nᵒ 1 : Annonce
- lien nᵒ 2 : Démo
- lien nᵒ 3 : Dépêche sur la sortie 7.8
- lien nᵒ 4 : Documentation
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.

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.
Commentaires : voir le flux Atom ouvrir dans le navigateur
[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. :)
Commentaires : voir le flux Atom ouvrir dans le navigateur
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.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Pourquoi nous migrons de Mailgun vers Scaleway pour vous offrir une infrastructure e-mail 100% souveraine
by bearstech from Bearstech
- Précédent [1]
- Suivant