simonchabrol/python-projects
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
────────────────────────────────────────────────────────────────────────────────
┌────────────────────────────────────────────────────────────────────────────┐
│ REPOSITORY OVERVIEW │
└────────────────────────────────────────────────────────────────────────────┘
This repository is a curated collection of small, focused Python utilities
centred around document processing and graphical image transformation. Also
authored by Simon Chabrol and released under the MIT License, it is 100%
Python and currently contains 16 commits — a newer, more targeted effort
than the JavaScript repository.
Description: 'Several small Python projects (graphical transformation,
scraping...)'
URL: https://github.com/simonchabrol/python-projects
┌────────────────────────────────────────────────────────────────────────────┐
│ PURPOSE & DESIGN PHILOSOPHY │
└────────────────────────────────────────────────────────────────────────────┘
Where the JavaScript repository prioritises breadth across backend
engineering domains, python-projects prioritises depth within a narrower
niche: the programmatic manipulation of documents (PDFs) and images. This
reflects one of Python's greatest strengths — its extraordinary ecosystem
for file processing, image manipulation, and web scraping, embodied by
libraries like Pillow, PyMuPDF, and BeautifulSoup.
Each module solves a concrete, practical problem that a developer or non-
technical user might encounter in daily work: converting a scanned PDF to
grayscale before archiving, splitting a book PDF into chapters, or applying
an artistic filter to a photograph. This pragmatic focus makes the
repository immediately useful rather than purely academic.
┌────────────────────────────────────────────────────────────────────────────┐
│ MODULE DIRECTORY │
└────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────┬──────────────────────────────────────────────┐
│ MODULE │ DESCRIPTION │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ bw_transform_pdf │ Applies grayscale transformation to each PDF │
│ │ page, reducing file size and preparing │
│ │ documents for printing or archiving. │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ html_parsing_demo │ Demonstrates web scraping and HTML parsing │
│ │ techniques using Python libraries such as │
│ │ BeautifulSoup, extracting structured data │
│ │ from web pages. │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ linocut │ Applies artistic filters inspired by linocut │
│ │ printmaking — high-contrast edge detection │
│ │ and posterisation — to images using │
│ │ PIL/Pillow. │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ split_pdf_book │ Splits a multi-page PDF (e.g. a scanned │
│ │ book) into individual pages or logical │
│ │ sections for easier navigation or │
│ │ redistribution. │
└──────────────────────────────┴──────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────────────┐
│ KEY TECHNICAL HIGHLIGHTS │
└────────────────────────────────────────────────────────────────────────────┘
▸ PDF Processing
──────────────────
Two of the four modules — bw_transform_pdf and split_pdf_book — deal with
PDF manipulation. PDF is a notoriously complex format to work with
programmatically: it encodes page layout, fonts, and images in a binary
structure requiring specialised libraries to parse and transform. Their
presence signals proficiency with Python's document processing ecosystem,
likely via libraries such as PyMuPDF (fitz), pikepdf, or pypdf.
▸ Artistic Image Processing — the Linocut Effect
──────────────────────────────────────────────────
The linocut module is the most creatively distinctive project in the
repository. Linocut is a traditional printmaking technique that produces
high-contrast, graphic images with bold outlines and a limited tonal range.
Replicating this aesthetic in code requires a combination of techniques:
edge detection (Canny or Sobel filters), colour quantisation (palette
reduction), and potentially morphological operations to thicken lines. This
module demonstrates not only technical Python skills but also a genuine
understanding of digital image processing theory.
▸ Web Scraping
────────────────
The html_parsing_demo covers one of Python's most iconic use cases. HTML
parsing with BeautifulSoup or lxml is a foundational skill for data
extraction, automated testing, and building data pipelines from web sources.
Even as a demonstration, this module illustrates familiarity with the full
web scraping workflow: HTTP request handling, HTML tree traversal, data
extraction, and output formatting.
────────────────────────────────────────────────────────────────────────────────
┌────────────────────────────────────────────────────────────────────────────┐
│ PRÉSENTATION DU DÉPÔT │
└────────────────────────────────────────────────────────────────────────────┘
Ce dépôt est une collection de petits utilitaires Python focalisés, centrés
sur le traitement de documents et la transformation graphique d'images.
Également signé Simon Chabrol et distribué sous licence MIT, il est écrit à
100 % en Python et compte 16 commits — un effort plus récent et plus ciblé
que le dépôt JavaScript.
Description : 'Several small Python projects (graphical transformation,
scraping...)'
URL : https://github.com/simonchabrol/python-projects
┌────────────────────────────────────────────────────────────────────────────┐
│ OBJECTIF & PHILOSOPHIE DE CONCEPTION │
└────────────────────────────────────────────────────────────────────────────┘
Là où le dépôt JavaScript privilégie la largeur — couvrant un grand nombre
de domaines backend —, python-projects privilégie la profondeur dans une
niche plus étroite : la manipulation programmatique de documents PDF et
d'images. Cela reflète l'une des grandes forces de Python — son
extraordinaire écosystème pour le traitement de fichiers, la manipulation
d'images et le scraping web, incarné par des bibliothèques comme Pillow,
PyMuPDF ou BeautifulSoup.
Chaque module résout un problème concret et pratique qu'un développeur ou un
utilisateur non-technique pourrait rencontrer au quotidien : convertir un
PDF scanné en niveaux de gris avant archivage, découper un livre PDF en
chapitres, ou appliquer un filtre artistique à une photographie. Cette
orientation pragmatique rend le dépôt immédiatement utile plutôt que
purement académique.
┌────────────────────────────────────────────────────────────────────────────┐
│ RÉPERTOIRE DES MODULES │
└────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────┬──────────────────────────────────────────────┐
│ MODULE │ DESCRIPTION │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ bw_transform_pdf │ Applique une transformation en niveaux de │
│ │ gris à chaque page d'un PDF, réduisant la │
│ │ taille et préparant l'impression ou │
│ │ l'archivage. │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ html_parsing_demo │ Démontre le scraping web et le parsing HTML │
│ │ avec des bibliothèques comme BeautifulSoup │
│ │ pour extraire des données structurées. │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ linocut │ Applique des filtres artistiques inspirés de │
│ │ la linogravure (détection de contours, │
│ │ postérisation) à des images via PIL/Pillow. │
├──────────────────────────────┼──────────────────────────────────────────────┤
│ split_pdf_book │ Découpe un PDF multi-pages (ex. livre │
│ │ scanné) en pages individuelles ou sections │
│ │ logiques pour faciliter la navigation. │
└──────────────────────────────┴──────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────────────┐
│ POINTS TECHNIQUES SAILLANTS │
└────────────────────────────────────────────────────────────────────────────┘
▸ Traitement de PDF
─────────────────────
Deux des quatre modules — bw_transform_pdf et split_pdf_book — traitent de
la manipulation de PDF. Le format PDF est notoirement complexe à manipuler
par programme : il encode la mise en page, les polices et les images dans
une structure binaire nécessitant des bibliothèques spécialisées pour être
analysée et transformée. Leur présence signale une maîtrise de l'écosystème
de traitement de documents Python, vraisemblablement via des bibliothèques
comme PyMuPDF (fitz), pikepdf ou pypdf.
▸ Traitement d'image artistique — l'effet linogravure
───────────────────────────────────────────────────────
Le module linocut est le projet le plus distinctif créativement dans le
dépôt. La linogravure est une technique d'impression traditionnelle qui
produit des images graphiques à fort contraste, aux contours marqués et à la
gamme tonale limitée. Reproduire cet effet en code nécessite une combinaison
de techniques : détection de contours (filtres de Canny ou Sobel),
quantification des couleurs (réduction de la palette), et potentiellement
des opérations morphologiques pour épaissir les traits. Ce module démontre
non seulement des compétences Python techniques, mais aussi une véritable
compréhension de la théorie du traitement numérique de l'image.
▸ Scraping web
────────────────
Le module html_parsing_demo couvre l'un des cas d'usage les plus
emblématiques de Python. Le parsing HTML avec BeautifulSoup ou lxml est une
compétence fondamentale pour l'extraction de données, les tests automatisés
et la construction de pipelines de données à partir de sources web. Même en
tant que démo, ce module illustre la familiarité du développeur avec le
workflow complet du scraping web : gestion des requêtes HTTP, traversée de
l'arbre HTML, extraction de données et formatage des sorties.
────────────────────────────────────────────────────────────────────────────────