nutools/lib/nulib/python/nulib/env.py

54 lines
2.0 KiB
Python

# -*- coding: utf-8 -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
"""Accès aux paramètres configurables de ulib/utools dans l'environnement.
"""
__all__ = ('get_default_encoding', 'get_input_encoding', 'get_output_encoding',
'get_editor', 'get_editor_options', 'get_editor_setrow', 'get_editor_encoding',
'get_pager',
)
from os import environ
from .encoding import get_encoding_or_default, UTF8
try: from nulib_config import DEFAULT_INPUT_ENCODING
except ImportError: DEFAULT_INPUT_ENCODING = UTF8
try: from nulib_config import DEFAULT_OUTPUT_ENCODING
except ImportError: DEFAULT_OUTPUT_ENCODING = UTF8
def get_default_encoding(encoding=None, default_encoding=DEFAULT_OUTPUT_ENCODING):
"""Si encoding est None, essayer de déterminer l'encoding par défaut avec
getlocale(), getdefaultlocale() puis DEFAULT_ENCODING.
"""
return get_encoding_or_default(encoding, default_encoding)
def get_input_encoding():
encoding = environ.get('UTOOLS_INPUT_ENCODING', None)
if encoding is None:
encoding = environ.get('UTOOLS_OUTPUT_ENCODING', None)
return get_default_encoding(encoding, DEFAULT_INPUT_ENCODING)
def get_output_encoding():
encoding = environ.get('UTOOLS_OUTPUT_ENCODING', None)
return get_default_encoding(encoding, DEFAULT_OUTPUT_ENCODING)
def get_editor():
return environ.get('UTOOLS_EDITOR', environ.get('EDITOR', None))
def get_editor_options():
return environ.get('UTOOLS_EDITOR_OPTIONS', None)
def get_editor_setrow():
return environ.get('UTOOLS_EDITOR_SETROW', None)
def get_editor_encoding():
encoding = environ.get('UTOOLS_EDITOR_ENCODING', None)
if encoding is None:
encoding = environ.get('UTOOLS_INPUT_ENCODING', None)
if encoding is None:
encoding = environ.get('UTOOLS_OUTPUT_ENCODING', None)
return get_default_encoding(encoding, DEFAULT_INPUT_ENCODING)
def get_pager():
return environ.get('UTOOLS_PAGER', environ.get('PAGER', None))
def get_pager_options():
return environ.get('UTOOLS_PAGER_OPTIONS', None)