zonza/systeme/__init__.py

19 lines
649 B
Python

"""Choisit la couche système selon la plateforme."""
import sys
def choisir_systeme(plateforme=None):
"""Rend l'implémentation du contrat Systeme pour cette machine.
`plateforme` est injectable pour tester les branches absentes de la machine
de développement.
"""
plateforme = plateforme or sys.platform
if plateforme.startswith("darwin"):
from systeme.macos import SystemeMacOS
return SystemeMacOS()
if plateforme.startswith("win32"):
from systeme.windows import SystemeWindows
return SystemeWindows()
raise NotImplementedError(f"Plateforme non prise en charge : {plateforme}")