Open a file or ``sys.stdout`` depending on the provided filename. Args: filename (str): The path to the file that should be opened. If ``None`` or ``'-'``, ``sys.stdout`` or ``sys.stdin`` is returned depending on the desired mode. Defaults to ``None``. mo
(filename=None, mode='r')
| 58 | |
| 59 | @contextmanager |
| 60 | def _open(filename=None, mode='r'): |
| 61 | """Open a file or ``sys.stdout`` depending on the provided filename. |
| 62 | |
| 63 | Args: |
| 64 | filename (str): The path to the file that should be opened. If |
| 65 | ``None`` or ``'-'``, ``sys.stdout`` or ``sys.stdin`` is |
| 66 | returned depending on the desired mode. Defaults to ``None``. |
| 67 | mode (str): The mode that should be used to open the file. |
| 68 | |
| 69 | Yields: |
| 70 | A file handle. |
| 71 | |
| 72 | """ |
| 73 | if not filename or filename == '-': |
| 74 | if not mode or 'r' in mode: |
| 75 | file = sys.stdin |
| 76 | elif 'w' in mode: |
| 77 | file = sys.stdout |
| 78 | else: |
| 79 | raise ValueError('Invalid mode for file: {}'.format(mode)) |
| 80 | else: |
| 81 | file = open(filename, mode) |
| 82 | |
| 83 | try: |
| 84 | yield file |
| 85 | finally: |
| 86 | if file not in (sys.stdin, sys.stdout): |
| 87 | file.close() |
| 88 | |
| 89 | |
| 90 | def get_all_imports( |
no outgoing calls
no test coverage detected