#!/usr/bin/env python3 # -*- coding: utf-8 -*- """LE CORPUS NUMÉRIQUE EUROPÉEN — la donnée, séparée de la page. ⭐ POURQUOI DES DONNÉES ET PAS UNE PAGE ÉCRITE À LA MAIN. Le 8 juillet 2026, le règlement (UE) 2026/1744 a repoussé de SEIZE MOIS l'application des règles sur l'IA à haut risque. Une page rédigée à la main aurait continué d'annoncer le 2 août 2026 — et personne ne l'aurait vue, parce qu'une page fausse s'affiche exactement comme une page juste. Ici : une entrée par texte, un ELI par entrée, et `verifier-corpus.sh` va demander à EUR-Lex si chaque référence porte bien le numéro qu'on lui prête. ⚠️ RÈGLE DE LA MAISON APPLIQUÉE À NOUS-MÊMES : une date n'entre ici QUE si elle a été relevée à une source officielle, et la source est écrite à côté. Les textes dont nous n'avons pas daté l'application sont cités SANS date — jamais avec une date plausible. Un corpus qui invente une échéance est pire qu'un corpus incomplet : on agit sur une échéance. """ # Sources officielles consultées le 20/09/2026 : UE_PAYSAGE = "https://interoperable-europe.ec.europa.eu/eu-digital-regulations" UE_OMNIBUS_IA = "https://digital-strategy.ec.europa.eu/en/news/ai-omnibus-enters-force" UE_OMNIBUS_NUM = "https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX%3A52025PC0837" LEGI_DECRET = "https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000048178349" # ⚠️ Le Digital Omnibus (COM(2025) 837 du 19/11/2025) PROPOSE d'abroger ces # quatre textes. Proposition, pas droit : ils restent applicables aujourd'hui. ABROGATION_PROPOSEE = "abrogation proposée par le Digital Omnibus (COM(2025) 837) — encore applicable" CORPUS = [ # ── ACCESSIBILITÉ ──────────────────────────────────────────────────────────── dict(domaine="Accessibilité", nom="European Accessibility Act", ref="Directive (UE) 2019/882", eli="dir/2019/882", objet="Exigences d'accessibilité applicables aux produits et aux services.", qui="Entreprises fournissant au public un service couvert : commerce en ligne, " "services bancaires aux consommateurs, transport de voyageurs, communications " "électroniques, livres numériques. Microentreprises de services exemptées.", echeances=[("2022-06-28", "Transposition par les États membres", UE_PAYSAGE), ("2025-06-28", "Applicable aux services fournis à compter de cette date", UE_PAYSAGE)], france="Ordonnance n° 2023-859 du 6 septembre 2023 · décret n° 2023-931 du 9 octobre 2023 " "· arrêté du 9 octobre 2023", autorite="DGCCRF", sanction="Contravention de 5ᵉ classe (article R. 451-4 du code de la consommation), " "par manquement constaté.", sanction_src=LEGI_DECRET), dict(domaine="Accessibilité", nom="Accessibilité du secteur public", ref="Directive (UE) 2016/2102", eli="dir/2016/2102", objet="Accessibilité des sites internet et applications mobiles des organismes du secteur public.", qui="État, collectivités territoriales, établissements publics, délégataires de service public.", echeances=[], france="Loi n° 2005-102 du 11 février 2005, article 47 ; sanctions à l'article 47-1", autorite="ARCOM", sanction="50 000 € au maximum pour le manquement du I de l'article 47 ; 25 000 € pour ceux " "des III et IV ; renouvelable si le manquement perdure six mois après une sanction.", sanction_src="https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000809647/"), # ── DONNÉES PERSONNELLES ───────────────────────────────────────────────────── dict(domaine="Données personnelles", nom="RGPD", ref="Règlement (UE) 2016/679", eli="reg/2016/679", objet="Protection des personnes physiques à l'égard du traitement des données à caractère personnel.", qui="Tout responsable de traitement ou sous-traitant établi dans l'Union, et hors de " "l'Union lorsqu'il vise des personnes qui s'y trouvent.", echeances=[("2018-05-25", "Applicable", UE_PAYSAGE)], france="Loi n° 78-17 du 6 janvier 1978 modifiée", autorite="CNIL"), dict(domaine="Données personnelles", nom="ePrivacy — traceurs et communications", ref="Directive 2002/58/CE", eli=None, objet="Vie privée dans les communications électroniques : traceurs, cookies, prospection.", qui="Tout éditeur déposant ou lisant une information sur le terminal d'un utilisateur.", echeances=[], france="Article 82 de la loi n° 78-17", autorite="CNIL", note="Le Digital Omnibus propose d'en moderniser les règles sur les traceurs."), # ── DONNÉES NON PERSONNELLES & PARTAGE ─────────────────────────────────────── dict(domaine="Données & partage", nom="Data Act", ref="Règlement (UE) 2023/2854", eli="reg/2023/2854", objet="Règles équitables d'accès aux données et d'utilisation des données générées " "par les produits connectés.", qui="Fabricants, détenteurs de données, fournisseurs de services connexes, " "et les utilisateurs de produits connectés.", echeances=[("2024-01-11", "Entrée en vigueur", UE_PAYSAGE), ("2025-09-12", "Applicable — droits d'accès et de transmission", UE_PAYSAGE), ("2026-09-12", "Obligation de conception : produits mis sur le marché à compter " "de cette date", "https://temposystem.fr/data/12-septembre-2026.html")], autorite="à désigner par les États membres"), dict(domaine="Données & partage", nom="Data Governance Act", ref="Règlement (UE) 2022/868", eli="reg/2022/868", objet="Gouvernance européenne des données : réutilisation, intermédiation, altruisme.", qui="Organismes du secteur public, services d'intermédiation de données.", echeances=[("2023-09-24", "Applicable", UE_PAYSAGE)], statut=ABROGATION_PROPOSEE), dict(domaine="Données & partage", nom="Libre flux des données non personnelles", ref="Règlement (UE) 2018/1807", eli="reg/2018/1807", objet="Interdiction des exigences de localisation des données non personnelles.", qui="Fournisseurs et utilisateurs de services de traitement de données.", echeances=[], statut=ABROGATION_PROPOSEE), dict(domaine="Données & partage", nom="Données ouvertes", ref="Directive (UE) 2019/1024", eli="dir/2019/1024", objet="Données ouvertes et réutilisation des informations du secteur public.", qui="Organismes du secteur public et entreprises publiques.", echeances=[("2021-07-17", "Transposition", UE_PAYSAGE)], statut=ABROGATION_PROPOSEE), # ── PLATEFORMES & MARCHÉS ──────────────────────────────────────────────────── dict(domaine="Plateformes & marchés", nom="Digital Services Act", ref="Règlement (UE) 2022/2065", eli="reg/2022/2065", objet="Marché unique des services numériques : modération, transparence, signalement.", qui="Hébergeurs, places de marché, réseaux sociaux, moteurs de recherche.", echeances=[("2024-02-17", "Applicable à tous les services visés", UE_PAYSAGE)], autorite="ARCOM (coordinateur pour les services numériques en France)"), dict(domaine="Plateformes & marchés", nom="Digital Markets Act", ref="Règlement (UE) 2022/1925", eli="reg/2022/1925", objet="Marchés contestables et équitables dans le secteur numérique.", qui="Contrôleurs d'accès désignés par la Commission.", echeances=[("2023-05-02", "Applicable", UE_PAYSAGE)], autorite="Commission européenne"), dict(domaine="Plateformes & marchés", nom="Équité plateformes-entreprises (P2B)", ref="Règlement (UE) 2019/1150", eli="reg/2019/1150", objet="Équité et transparence pour les entreprises utilisatrices de services d'intermédiation.", qui="Places de marché, magasins d'applications, moteurs de recherche.", echeances=[], statut=ABROGATION_PROPOSEE), # ── INTELLIGENCE ARTIFICIELLE ──────────────────────────────────────────────── dict(domaine="Intelligence artificielle", nom="AI Act", ref="Règlement (UE) 2024/1689", eli="reg/2024/1689", objet="Règles harmonisées sur l'intelligence artificielle, par niveau de risque.", qui="Fournisseurs, déployeurs, importateurs et distributeurs de systèmes d'IA.", echeances=[ ("2025-02-02", "Pratiques interdites et obligation de littératie en IA", UE_PAYSAGE), ("2025-08-02", "Modèles à usage général et gouvernance", UE_PAYSAGE), ("2026-12-02", "Transparence des contenus générés par IA", UE_OMNIBUS_IA), ("2027-08-02", "Bacs à sable réglementaires nationaux", UE_OMNIBUS_IA), ("2027-12-02", "IA à haut risque autonome (annexe III) — reporté du 2 août 2026", UE_OMNIBUS_IA), ("2028-08-02", "IA à haut risque intégrée à un produit (annexe I)", UE_OMNIBUS_IA)], note="Modifié par le règlement (UE) 2026/1744 du 8 juillet 2026, en vigueur le 27 juillet 2026."), dict(domaine="Intelligence artificielle", nom="Digital Omnibus on AI", ref="Règlement (UE) 2026/1744", eli="reg/2026/1744", objet="Simplification de la mise en œuvre de l'AI Act ; report des règles sur le haut risque.", qui="Les mêmes acteurs que l'AI Act.", echeances=[("2026-07-27", "Entrée en vigueur", UE_OMNIBUS_IA)]), # ── CYBERSÉCURITÉ & RÉSILIENCE ─────────────────────────────────────────────── dict(domaine="Cybersécurité & résilience", nom="NIS 2", ref="Directive (UE) 2022/2555", eli="dir/2022/2555", objet="Niveau élevé commun de cybersécurité dans l'Union.", qui="Entités essentielles et importantes de dix-huit secteurs.", echeances=[("2024-10-17", "Transposition par les États membres", UE_PAYSAGE)], autorite="ANSSI"), dict(domaine="Cybersécurité & résilience", nom="Résilience des entités critiques (CER)", ref="Directive (UE) 2022/2557", eli="dir/2022/2557", objet="Résilience des entités critiques face aux perturbations, au-delà du numérique.", qui="Entités critiques désignées par les États membres.", echeances=[]), dict(domaine="Cybersécurité & résilience", nom="DORA", ref="Règlement (UE) 2022/2554", eli="reg/2022/2554", objet="Résilience opérationnelle numérique du secteur financier.", qui="Entités financières et leurs prestataires informatiques tiers critiques.", echeances=[], autorite="ACPR · AMF"), dict(domaine="Cybersécurité & résilience", nom="Cyber Resilience Act", ref="Règlement (UE) 2024/2847", eli="reg/2024/2847", objet="Exigences horizontales de cybersécurité pour les produits comportant des " "éléments numériques.", qui="Fabricants, importateurs et distributeurs de produits connectés et de logiciels.", echeances=[("2026-06-11", "Notification des organismes d'évaluation de la conformité", UE_PAYSAGE), ("2026-09-11", "Signalement des vulnérabilités activement exploitées", UE_PAYSAGE), ("2027-12-11", "Obligations principales", UE_PAYSAGE)]), dict(domaine="Cybersécurité & résilience", nom="Cybersecurity Act", ref="Règlement (UE) 2019/881", eli="reg/2019/881", objet="Mandat de l'ENISA et cadre européen de certification de cybersécurité.", qui="Fournisseurs de produits, services et processus TIC.", echeances=[]), # ── IDENTITÉ & CONFIANCE ───────────────────────────────────────────────────── dict(domaine="Identité & confiance", nom="eIDAS 2 — portefeuille européen d'identité", ref="Règlement (UE) 2024/1183", eli="reg/2024/1183", objet="Cadre européen d'identité numérique ; modifie le règlement (UE) n° 910/2014.", qui="États membres, prestataires de services de confiance, services exigeant " "une identification forte.", echeances=[("2014-09-17", "eIDAS 1 — applicable", UE_PAYSAGE)]), dict(domaine="Identité & confiance", nom="Interoperable Europe Act", ref="Règlement (UE) 2024/903", eli="reg/2024/903", objet="Interopérabilité des services publics numériques dans l'Union.", qui="Organismes du secteur public fournissant des services numériques transfrontaliers.", echeances=[("2024-04-11", "Entrée en vigueur", UE_PAYSAGE), ("2024-07-12", "Applicable", UE_PAYSAGE), ("2025-01-12", "Évaluations d'interopérabilité et partage de solutions", UE_PAYSAGE)]), # ── CONSOMMATION & CONTRATS ────────────────────────────────────────────────── dict(domaine="Consommation & contrats", nom="Contenus et services numériques", ref="Directive (UE) 2019/770", eli="dir/2019/770", objet="Contrats de fourniture de contenus et de services numériques, y compris " "lorsque le prix payé est la donnée personnelle.", qui="Tout professionnel fournissant un contenu ou un service numérique à un consommateur.", echeances=[], france="Code de la consommation, articles L. 224-25-1 et suivants"), dict(domaine="Consommation & contrats", nom="Vente de biens", ref="Directive (UE) 2019/771", eli="dir/2019/771", objet="Conformité des biens, y compris les biens comportant des éléments numériques " "et leurs mises à jour.", qui="Tout vendeur de biens à un consommateur.", echeances=[]), dict(domaine="Consommation & contrats", nom="Omnibus consommateurs", ref="Directive (UE) 2019/2161", eli="dir/2019/2161", objet="Modernisation des règles de protection des consommateurs : avis en ligne, " "classements, annonces de réduction de prix.", qui="Places de marché et commerçants en ligne.", echeances=[], autorite="DGCCRF"), # ── CRÉATION & MÉDIAS ──────────────────────────────────────────────────────── dict(domaine="Création & médias", nom="Droit d'auteur dans le marché unique numérique", ref="Directive (UE) 2019/790", eli="dir/2019/790", objet="Droit d'auteur et droits voisins ; fouille de textes et de données ; " "responsabilité des plateformes de partage.", qui="Plateformes de partage de contenus, éditeurs de presse, utilisateurs de " "fouille de données pour l'entraînement de modèles.", echeances=[], france="Code de la propriété intellectuelle"), dict(domaine="Création & médias", nom="Liberté des médias (EMFA)", ref="Règlement (UE) 2024/1083", eli="reg/2024/1083", objet="Cadre commun pour les services de médias dans le marché intérieur.", qui="Fournisseurs de services de médias et très grandes plateformes en ligne.", echeances=[]), ] DOMAINES = ["Accessibilité", "Données personnelles", "Données & partage", "Plateformes & marchés", "Intelligence artificielle", "Cybersécurité & résilience", "Identité & confiance", "Consommation & contrats", "Création & médias"] if __name__ == "__main__": n_d = sum(len(t["echeances"]) for t in CORPUS) n_e = sum(1 for t in CORPUS if t.get("eli")) print(f"{len(CORPUS)} textes · {n_e} porteurs d'un ELI vérifiable · {n_d} échéances datées") for d in DOMAINES: print(f" {d:<28} {sum(1 for t in CORPUS if t['domaine']==d)}") # ═══════════════════════════════════════════════════════════════════════════════ # L'ANGLAIS — pour temposystem.eu, qui est l'anglais par défaut depuis le 20/09/2026. # # ⚠️ CE QUI EST TRADUIT ICI EST NOTRE PROSE, JAMAIS LE DROIT. Les intitulés # officiels des textes ne sont pas retraduits : ils sont MOISSONNÉS sur EUR-Lex, # langue par langue (`moissonner-citations.py`). « Regulation (EU) » se dit # « Rialachán (AE) » en irlandais : ni le mot ni le sigle ne se devinent. # ═══════════════════════════════════════════════════════════════════════════════ EN = { "Directive (UE) 2019/882": dict( nom="European Accessibility Act", objet="Accessibility requirements for products and services.", qui="Companies supplying a covered service to the public: e-commerce, consumer banking, " "passenger transport, electronic communications, e-books. Microenterprises supplying " "services are exempt.", sanction="Fifth-class contravention (article R. 451-4 of the French consumer code), " "per breach found."), "Directive (UE) 2016/2102": dict( nom="Public sector accessibility", objet="Accessibility of public sector bodies' websites and mobile applications.", qui="The State, local authorities, public establishments and delegated public service operators.", sanction="Up to €50,000 for the breach under article 47 I; €25,000 for those under III and IV; " "renewable where the breach persists six months after a penalty."), "Règlement (UE) 2016/679": dict( nom="GDPR", objet="Protection of natural persons with regard to the processing of personal data.", qui="Any controller or processor established in the Union, and outside it where it targets " "people located there."), "Directive 2002/58/CE": dict( nom="ePrivacy — trackers and communications", objet="Privacy in electronic communications: trackers, cookies, direct marketing.", qui="Any publisher writing to or reading from a user's terminal."), "Règlement (UE) 2023/2854": dict( nom="Data Act", objet="Fair rules on access to and use of data generated by connected products.", qui="Manufacturers, data holders, related service providers, and users of connected products."), "Règlement (UE) 2022/868": dict( nom="Data Governance Act", objet="European data governance: re-use, intermediation, altruism.", qui="Public sector bodies and data intermediation services."), "Règlement (UE) 2018/1807": dict( nom="Free flow of non-personal data", objet="Prohibition of data localisation requirements for non-personal data.", qui="Providers and users of data processing services."), "Directive (UE) 2019/1024": dict( nom="Open data", objet="Open data and the re-use of public sector information.", qui="Public sector bodies and public undertakings."), "Règlement (UE) 2022/2065": dict( nom="Digital Services Act", objet="Single market for digital services: moderation, transparency, notice and action.", qui="Hosting services, marketplaces, social networks, search engines."), "Règlement (UE) 2022/1925": dict( nom="Digital Markets Act", objet="Contestable and fair markets in the digital sector.", qui="Gatekeepers designated by the Commission."), "Règlement (UE) 2019/1150": dict( nom="Platform-to-business fairness (P2B)", objet="Fairness and transparency for business users of intermediation services.", qui="Marketplaces, app stores, search engines."), "Règlement (UE) 2024/1689": dict( nom="AI Act", objet="Harmonised rules on artificial intelligence, by level of risk.", qui="Providers, deployers, importers and distributors of AI systems.", note="Amended by Regulation (EU) 2026/1744 of 8 July 2026, in force on 27 July 2026."), "Règlement (UE) 2026/1744": dict( nom="Digital Omnibus on AI", objet="Simplification of the AI Act's implementation; postponement of the high-risk rules.", qui="The same actors as the AI Act."), "Directive (UE) 2022/2555": dict( nom="NIS 2", objet="A high common level of cybersecurity across the Union.", qui="Essential and important entities across eighteen sectors."), "Directive (UE) 2022/2557": dict( nom="Critical entities resilience (CER)", objet="Resilience of critical entities against disruption, beyond the digital sphere.", qui="Critical entities designated by the Member States."), "Règlement (UE) 2022/2554": dict( nom="DORA", objet="Digital operational resilience for the financial sector.", qui="Financial entities and their critical third-party ICT providers."), "Règlement (UE) 2024/2847": dict( nom="Cyber Resilience Act", objet="Horizontal cybersecurity requirements for products with digital elements.", qui="Manufacturers, importers and distributors of connected products and software."), "Règlement (UE) 2019/881": dict( nom="Cybersecurity Act", objet="ENISA's mandate and the European cybersecurity certification framework.", qui="Providers of ICT products, services and processes."), "Règlement (UE) 2024/1183": dict( nom="eIDAS 2 — European Digital Identity Wallet", objet="European digital identity framework; amends Regulation (EU) No 910/2014.", qui="Member States, trust service providers, and services requiring strong authentication."), "Règlement (UE) 2024/903": dict( nom="Interoperable Europe Act", objet="Interoperability of public digital services across the Union.", qui="Public sector bodies providing cross-border digital services."), "Directive (UE) 2019/770": dict( nom="Digital content and services", objet="Contracts for the supply of digital content and services, including where the price " "paid is personal data.", qui="Any trader supplying digital content or a digital service to a consumer."), "Directive (UE) 2019/771": dict( nom="Sale of goods", objet="Conformity of goods, including goods with digital elements and their updates.", qui="Any seller of goods to a consumer."), "Directive (UE) 2019/2161": dict( nom="Consumer omnibus", objet="Modernisation of consumer protection: online reviews, rankings, price reduction announcements.", qui="Online marketplaces and traders."), "Directive (UE) 2019/790": dict( nom="Copyright in the digital single market", objet="Copyright and related rights; text and data mining; liability of content-sharing platforms.", qui="Content-sharing platforms, press publishers, and users of data mining for model training."), "Règlement (UE) 2024/1083": dict( nom="European Media Freedom Act", objet="A common framework for media services in the internal market.", qui="Media service providers and very large online platforms."), } # Les libellés d'échéance, traduits une fois pour toutes. EN_ECHEANCES = { "Transposition par les États membres": "Transposition by the Member States", "Applicable aux services fournis à compter de cette date": "Applies to services supplied from this date", "Applicable": "Applies", "Entrée en vigueur": "Entry into force", "Applicable — droits d'accès et de transmission": "Applies — access and transfer rights", "Obligation de conception : produits mis sur le marché à compter de cette date": "Design obligation: products placed on the market from this date", "Transposition": "Transposition", "Applicable à tous les services visés": "Applies to all covered services", "Pratiques interdites et obligation de littératie en IA": "Prohibited practices and AI literacy obligation", "Modèles à usage général et gouvernance": "General-purpose models and governance", "Transparence des contenus générés par IA": "Transparency of AI-generated content", "Bacs à sable réglementaires nationaux": "National regulatory sandboxes", "IA à haut risque autonome (annexe III) — reporté du 2 août 2026": "Stand-alone high-risk AI (Annex III) — postponed from 2 August 2026", "IA à haut risque intégrée à un produit (annexe I)": "High-risk AI embedded in a product (Annex I)", "Notification des organismes d'évaluation de la conformité": "Notification of conformity assessment bodies", "Signalement des vulnérabilités activement exploitées": "Reporting of actively exploited vulnerabilities", "Obligations principales": "Main obligations", "eIDAS 1 — applicable": "eIDAS 1 — applies", "Évaluations d'interopérabilité et partage de solutions": "Interoperability assessments and solution sharing", } EN_DOMAINES = { "Accessibilité": "Accessibility", "Données personnelles": "Personal data", "Données & partage": "Data & sharing", "Plateformes & marchés": "Platforms & markets", "Intelligence artificielle": "Artificial intelligence", "Cybersécurité & résilience": "Cybersecurity & resilience", "Identité & confiance": "Identity & trust", "Consommation & contrats": "Consumers & contracts", "Création & médias": "Creation & media", } EN_STATUT = ("repeal proposed by the Digital Omnibus (COM(2025) 837) — still applicable")