options.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from clickhouse_connect.driver.exceptions import NotSupportedError
  2. pd_time_test = None
  3. pd_extended_dtypes = False
  4. try:
  5. import numpy as np
  6. except ImportError:
  7. np = None
  8. try:
  9. import pandas as pd
  10. pd_extended_dtypes = not pd.__version__.startswith('0')
  11. try:
  12. from pandas.core.dtypes.common import is_datetime64_dtype
  13. from pandas.core.dtypes.common import is_timedelta64_dtype
  14. def combined_test(arr_or_dtype):
  15. return is_datetime64_dtype(arr_or_dtype) or is_timedelta64_dtype(arr_or_dtype)
  16. pd_time_test = combined_test
  17. except ImportError:
  18. try:
  19. from pandas.core.dtypes.common import is_datetime_or_timedelta_dtype
  20. pd_time_test = is_datetime_or_timedelta_dtype
  21. except ImportError as ex:
  22. raise NotSupportedError('pandas version does not contain expected test for temporal types') from ex
  23. except ImportError:
  24. pd = None
  25. try:
  26. import pyarrow as arrow
  27. except ImportError:
  28. arrow = None
  29. def check_numpy():
  30. if np:
  31. return np
  32. raise NotSupportedError('Numpy package is not installed')
  33. def check_pandas():
  34. if pd:
  35. return pd
  36. raise NotSupportedError('Pandas package is not installed')
  37. def check_arrow():
  38. if arrow:
  39. return arrow
  40. raise NotSupportedError('PyArrow package is not installed')