zonza/interface/__init__.py
Ralph Mayola 5cf8f448ed Un module plat par plateforme, pour les trois frontieres
interface/cocoa/overlay.py etait un sous-paquet quand systeme/macos.py et
moteur/mlx.py sont des modules plats. Rien n'expliquait la difference : la couche
Windows aurait eu a deviner lequel des deux motifs imiter, et aurait reproduit
l'incoherence dans un sens ou dans l'autre.

interface/cocoa.py est donc mis a plat, contenu inchange (diff vide), et la regle
est ecrite dans interface/__init__.py : un module plat par plateforme, sous-paquet
seulement le jour ou une plateforme exige plusieurs fichiers.

105 tests inchanges.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-23 18:33:35 +02:00

19 lines
802 B
Python

"""Choisit l'implémentation d'overlay selon la plateforme.
Convention des trois frontières (`moteur/`, `interface/`, `systeme/`) : **un module
plat par plateforme** — `interface/cocoa.py`, `systeme/macos.py`, `moteur/mlx.py`.
On ne passe à un sous-paquet que le jour où une plateforme exige réellement
plusieurs fichiers. Sans cette règle écrite, la couche Windows aurait eu à deviner
lequel des deux motifs imiter.
"""
import sys
def classe_overlay_pour(plateforme=None):
"""Rend la CLASSE d'overlay (pas une instance : Cocoa exige `alloc().init()`)."""
plateforme = plateforme or sys.platform
if plateforme.startswith("darwin"):
from interface.cocoa import PulseWindow
return PulseWindow
raise NotImplementedError(f"Aucune interface pour : {plateforme}")