MakeMake The Dwarf Planet is a feed agregator.

Abuser de yahi -un équivalent d'awstats- pour grapher des CSV

by jul from AFPy discuss

à propos de yahi

Alors qu’awstats annonce sa dernière version, yahi (le lien inclus un lien vers la démo de la sortie) est un équivalent installable par pip d’analyse de journaux web normalement destiné à sortir des stats d’aggrégation, maintenu.

Son usage est suffisamment versatile pour s’adresser à tout type de d’agrégation de serveur parsable par regexp.

détourner yahi pour grapher des CSV

Comme ce module est assez simple il peut être facilement détourné pour grapher des CSV.

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

détourner yahi (grapheur de journaux web) pour faire des graphs de CSV

by Jul from Linuxfr.org

Yahi

Yahi est un analogue de awstats qui a pour particularité de générer un fichier HTML tout en un (qui nécessite javascript) pour fournir les différentes pages de statistiques (essentiellement une carte geoip, des histogrammes et séries temporelles).

Mais, comme je suis un pervers pépère, je me suis amusé à voir si il n'était pas possible de l'utiliser aussi pour analyser des fichiers CSV.

Exemple 1: DONT: utilisation de regexp pour parser un CSV

Dans le cadre de mon bot bluesky je génère un CSV de stat qui a une structure sur laquelle on peut exceptionnellement appliquer une regexp :

timestamp (float), nombre de post français (int), nombre de posts totaux (int),?…

Le code est simple ::

from archery import mdict
from yahi import notch, shoot
from json import dump
import re


context=notch(
    off="user_agent,geo_ip",
    log_format="custom",
    output_format="json",
    date_pattern="%s",
    log_pattern="""^(?P<datetime>[^,]+),
    (?P<nb_fr>[^,]+),
    (?P<nb_total>[^,]+),?.*
    $""")

date_formater= lambda dt :"%s-%s-%s" % ( dt.year, dt.month, dt.day)
res= shoot(
        context,
        lambda data: mdict({
            "date_fr" :
                mdict({ date_formater(data["_datetime"]) : 
                    int(data["nb_fr"]) }),
            "hour_fr" : 
                mdict({ "%02d" % data["_datetime"].hour : 
                    int(data["nb_fr"]) }),
            "date_all" : 
                mdict({ date_formater(data["_datetime"]) : 
                    int(data["nb_total"]) }),
            "hour_all" : 
                mdict({ "%02d" % data["_datetime"].hour : 
                    int(data["nb_total"]) }),
            "total" : 1
        })
    )
dump(res,open("data.js","w"),  indent=4)

Ce code génère le fichier data.js dans les conventions qui suivent les attendus du fichier de données yahi

date_ … correspond à un histogramme de temps
hour_ … correspond à un histogramme par heure

Il suffit de faire :

yahi_all_in_one_maker && firefox aio.html
Pour voir les résultats dont ci joint sont deux exemples :

par heure pour les posts fr

par date pour les posts fr

Exemple 2: utilisation brutale avec CSV DictReader

Pour ce cas, j'ai pris le fichier CSV que m'a imprudemment envoyé france travail avec le listing des 10 000 chômeurs de mon coin ayant la structure suivante :

id opaque, civilité, prénom, nom, email du conseiller

pour bâtir les histogrammes de

  • combien chaque conseiller suit de chômeur,
  • quelle est la fréquence des prénoms (et ce que cela révèle)

Là encore, le code est assez simple :

from csv import DictReader
from json import dump
from archery import mdict

res=mdict()
with open("/home/jul/Téléchargements/GEMESCAPEG.csv") as f:
    for l in DictReader(f):
        res+=mdict(
            by_ref = mdict({l["Referent"]: 1}),
            by_prenom=mdict({l["Prenom"]:1}))

dump(res, open("data.js", "w"), indent=4)

Et là la magie de la convention de nommage indique que l'on veut des histogramme triés en forme de top 40

Il ne reste plus qu'à générer la page web …

yahi_all_in_one_maker && firefox aio.html
Et l'on à les graphs suivants :

(le premier est tronqué pour respecter le RGPD)

le nombre de chômeurs par conseiller

le nombre de chômeurs par conseiller

Ce qui nous apprend qu'un conseiller suit en moyenne 250 chômeurs, et que certains à plus de 500 risquent le burnout

la fréquence des prénoms

la fréquence des prénoms

Ce qui nous apprend quand on met en regard de quand les prénoms les plus courants avaient du succès que vaut mieux pas être vieux et au chômage (tarte à la crème) si on veut retrouver du boulot.

Voir la fréquence des prénoms suivants (source INSEE)
la fréquence des prénoms

la fréquence des prénoms

la fréquence des prénoms

Est-ce une bonne idée quand on est chômeur de faire du logiciel libre

J'en ai discuté avec ma conseillère qui m'a dit : pour ne pas être contrôler il est bien dans la partie mouchard projet de votre interface de france travail de rajouter des projets, le plus évitant les contrôles, et vous pouvez tout à fait rajouter vos contributions à du logiciel libre comme étant de l'auto-formation.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

PyConFR 2025, planning et inscriptions

by grewn0uille,Ysabeau 🧶 from Linuxfr.org

La PyConFR 2025 a lieu du jeudi 30 octobre au dimanche 2 novembre au Campus René Cassin à Lyon. Le planning est en ligne et les inscriptions sont ouvertes !

Comme toujours, l’évènement est gratuit et l’inscription est obligatoire.

Les deux premiers jours de la conférence seront occupés par les sprints. Et les deux jours suivants seront dédiés aux conférences (longues et courtes) et ateliers.

Trois keynotes sont au programme :

  • Embracing Weird Code, d’Ivana Kellyer
  • Le rêve de tout enfant - devenir DBA ?, de Karen Jex
  • Être un·e allié·e du numérique pour tou·te·s en environnement hostile, de Morgane Rozenn Hauguel

Un atelier de programmation pour les enfants (à partir d’environ 7 ans) a lieu le samedi après-midi.

Un espace enfants (de 3 ans à 12 ans) est aussi mis à disposition le samedi et dimanche gratuitement et sur inscription.

Un déjeuner PyLadies a également lieu durant la conférence. Un des objectifs est de tisser des liens entre la communauté PyLadies et le reste de la communauté Python francophone.

En plus du traditionnel repas du samedi soir, des visites guidées de Lyon sont aussi possibles les jeudi et vendredi soir, toujours sur inscription.

Enfin, le dimanche matin, l’AFPy tient son assemblée générale. Si vous souhaitez y voter, assurez-vous d’être à jour de cotisation.

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Contributions à des logiciels libres par l'équipe Yaal Coop durant l'été 2025

by Éloi Rivard <eloi@yaal.coop> from Yaal

Mécénat

Magic-Wormhole

Obtenir des fichiers d'un ordinateur à l'autre, en toute sécurité

authlib

La bibliothèque Python ultime pour construire des clients et serveurs OAuth, OpenID Connect. JWS, JWE, JWK, JWA, JWT inclus.

pytest-iam

Un serveur OAuth2 / OpenID Connect (OIDC) / SCIM léger et entièrement fonctionnel à utiliser dans les suites de tests.

scim2-client

Construire des requêtes SCIM et analyser les réponses SCIM de manière pythonique

scim2-models

Sérialisation et validation de ressources SCIM avec Pydantic

scim2-server

Prototype de serveur SCIM2 léger

scim2-tester

Vérificateur de conformité serveur aux RFC SCIM

Lire la suite…

Summer 2025 FOSS contributions from by the Yaal Coop team

by Éloi Rivard <eloi@yaal.coop> from Yaal

Sponsoring

Magic-Wormhole

Get files from one computer to another, safely

authlib

The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.

pytest-iam

A lightweight and fully functional OAuth2 / OpenID Connect (OIDC) / SCIM server to be used in test suites.

scim2-client

Pythonically build SCIM requests and parse SCIM responses

scim2-models

SCIM resources serialization and validation with Pydantic

scim2-server

Lightweight SCIM2 server prototype

scim2-tester

SCIM RFCs server compliance checker

Lire la suite…

Renouvellement du Comité Directeur

by grewn0uille from AFPy discuss

Bonjour tout le monde,

La PyConFR approche, et donc la traditionnelle assemblée générale de l’AFPy avec le renouvellement du Comité Directeur !

Le Comité Directeur est composé de 9 personnes, actuellement : @debnet, @entwanne, @ReiNula, @pierre.bousquie, @Mindiell, @tut-tuuut, @Chadys, @CaptainKro et moi-même. Lors de chaque assemblée générale, un tiers du comité est renouvelé.

Le Comité Directeur est l’organe qui administre l’association au quotidien et organise la PyConFR.

Si vous avez envie de participer à animer la communauté Python et à organiser l’édition 2026 de la PyConFR, pourquoi pas rejoindre le Comité Directeur ? :slight_smile:

Comment ça se passe à l’assemblée générale ?

Pour vous présenter, vous devez être membre de l’association (n’oubliez pas votre adhésion).
Les personnes intéressées pour rejoindre le comité se présentent, puis un vote a lieu.

Les personnes élues rejoignent alors le comité, qui propose alors un·e Président·e. Cette proposition est aussi soumise au vote de l’assemblée (n’oubliez pas votre adhésion).

Les différents autres postes du bureau sont attribués lors de la réunion du comité après l’assemblée.

Comment ça se passe au Comité Directeur ?

Le comité se réunit une fois par mois en visio pour traiter les différents sujets.

Certains postes ont des tâches spécifiques :

  • Le·la président·e dirige l’association au niveau global et suit l’ensemble des sujets.
  • Le·la trésorier·e gère l’argent de l’association, répond aux demandes de bourses concernant la PyConFR et édite les factures.
  • Le·la secrétaire s’occupe de la prise de notes lors des réunions, de la publication des compte-rendus / dépôt des documents auprès de la préfecture et de l’envoi des lettres d’invitation pour les demandes de visa pour la PyConFR.

Chacun de ses postes est complété par un·e adjoint·e qui le supplée en cas d’absence.

Ça m’intéresse grave de rejoindre

Si vous êtes intéressé·es pour rejoindre le comité, vous pouvez participer à une des prochaines réunions pour voir comment ça se passe. Elles sont le 9 et 21 octobre.

Si vous voulez savoir ce qui se raconte en réunion, tous les documents de gestion de l’association sont disponibles sur le dépôt Gitea AFPy/gestion: Documents administratifs de l’AFPy. - La forge de l’AFPy.

Si vous avez des questions sur le Comité Directeur, son fonctionnement etc, n’hésitez pas à les poser !

afpy-we_want_u

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…