import os
import glob
[docs]mappings_lib = os.path.join(os.path.dirname(__file__), 'lib', 'mappings')
[docs]supported_models = [os.path.basename(x).split(".")[0] for x in glob.glob(mappings_lib + '/*/*.py') if
os.path.basename(x).split(".")[0] == os.path.dirname(x).split("/")[-1]]
[docs]cdm_tables = ['header', 'observations-at', 'observations-sst',
'observations-dpt', 'observations-wbt',
'observations-wd', 'observations-ws',
'observations-slp']
# DATA TYPES ------------------------------------------------------------------
[docs]numpy_integers = ['int8', 'int16', 'int32', 'int64', 'uint8', 'uint16', 'uint32', 'uint64']
[docs]numpy_floats = ['float16', 'float32', 'float64']
[docs]pandas_nan_integers = {'int8': 'Int8', 'int16': 'Int16', 'int32': 'Int32',
'int64': 'Int64', 'uint8': 'UInt8', 'uint16': 'UInt16',
'uint32': 'UInt32', 'uint64': 'UInt64'}
[docs]numeric_types = numpy_integers.copy()
numeric_types.extend(numpy_floats)
numeric_types.extend(pandas_nan_integers.values())
[docs]object_types = ['str', 'object', 'key', 'datetime']
[docs]data_types = object_types.copy()
data_types.extend(numpy_integers)
data_types.extend(numpy_floats)
# In pandas read --------------------------------------------------------------
# ....from input data attributes expected types
pandas_dtypes['from_atts'] = {}
for dtype in object_types:
pandas_dtypes['from_atts'][dtype] = 'object'
pandas_dtypes['from_atts'].update({x: x for x in numeric_types})
# ...from CDM table definitions psuedo-sql(...) --------------------------------
pandas_dtypes['from_sql'] = {}
pandas_dtypes['from_sql']['timestamp with timezone'] = 'object'
pandas_dtypes['from_sql']['numeric'] = 'float64'
pandas_dtypes['from_sql']['int'] = 'int'
# Some defaults ---------------------------------------------------------------
[docs]default_decimal_places = 5