|
1 | 1 | """Pretty-print tabular data.""" |
2 | 2 |
|
3 | | -from importlib.metadata import ( |
4 | | - PackageNotFoundError as _PackageNotFoundError, |
5 | | - version as _version, |
6 | | -) |
7 | | -from typing import Callable, Union |
8 | | - |
9 | | -try: |
10 | | - __version__ = _version("tabulate") # installed package |
11 | | -except _PackageNotFoundError: |
12 | | - try: |
13 | | - from ._version import version as __version__ # editable / source checkout |
14 | | - except ImportError: |
15 | | - __version__ = "unknown" |
16 | | - |
17 | 3 | from collections import namedtuple |
18 | 4 | from collections.abc import Iterable, Sized |
19 | 5 | import dataclasses |
20 | 6 | from dataclasses import dataclass |
21 | 7 | from decimal import Decimal |
22 | 8 | from functools import partial, reduce |
23 | 9 | from html import escape as htmlescape |
| 10 | +from importlib.metadata import PackageNotFoundError, version |
24 | 11 | import io |
25 | 12 | from itertools import chain, zip_longest as izip_longest |
26 | 13 | import math |
27 | 14 | import re |
28 | 15 | import sys |
29 | 16 | import textwrap |
| 17 | +from typing import Callable, Union |
30 | 18 | import warnings |
31 | 19 |
|
32 | 20 | try: |
33 | 21 | import wcwidth # optional wide-character (CJK) support |
34 | 22 | except ImportError: |
35 | 23 | wcwidth = None |
36 | 24 |
|
37 | | - |
38 | | -def _is_file(f): |
39 | | - return isinstance(f, io.IOBase) |
| 25 | +try: |
| 26 | + __version__ = version("tabulate") # installed package |
| 27 | +except PackageNotFoundError: |
| 28 | + try: |
| 29 | + from ._version import version as __version__ # editable / source checkout |
| 30 | + except ImportError: |
| 31 | + __version__ = "unknown" |
40 | 32 |
|
41 | 33 |
|
42 | 34 | __all__ = ["tabulate", "tabulate_formats", "simple_separated_format"] |
@@ -125,6 +117,10 @@ class DataRow: |
125 | 117 | ) |
126 | 118 |
|
127 | 119 |
|
| 120 | +def _is_file(f): |
| 121 | + return isinstance(f, io.IOBase) |
| 122 | + |
| 123 | + |
128 | 124 | def _is_separating_line_value(value): |
129 | 125 | return type(value) is str and value.strip() == SEPARATING_LINE |
130 | 126 |
|
|
0 commit comments