#!/usr/bin/env python """Displays os.fpathconf values related to terminals. """ from __future__ import print_function import sys import os def display_fpathconf(): DISP_VALUES = ( ('PC_MAX_CANON', ('Max no. of bytes in a ' 'terminal canonical input line.')), ('PC_MAX_INPUT', ('Max no. of bytes for which ' 'space is available in a terminal input queue.')), ('PC_PIPE_BUF', ('Max no. of bytes which will ' 'be written atomically to a pipe.')), ('PC_VDISABLE', 'Terminal character disabling value.') ) FMT = '{name:<13} {value:<5} {description}' # column header print(FMT.format(name='name', value='value', description='description')) print(FMT.format(name=('-' * 13), value=('-' * 5), description=('-' * 11))) fd = sys.stdin.fileno() for name, description in DISP_VALUES: key = os.pathconf_names.get(name, None) if key is None: value = 'UNDEF' else: try: value = os.fpathconf(fd, name) except OSError as err: value = 'OSErrno {0.errno}'.format(err) if name == 'PC_VDISABLE': value = hex(value) print(FMT.format(name=name, value=value, description=description)) print() if __name__ == '__main__': display_fpathconf()