3
���h?) � @ s d Z ddlmZmZmZmZmZ ddlZddlj j
Z
ddlmZm
Z
mZ ddlmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ ddljjZ er�ddl!m"Z" e
j#Z#ee$d �d
d�Z%dd
� Z&dd� Z'dd� Z(de
e)ee) e)ee$ef d�dd�Z*dd� Z+dS )zM
Table Schema builders
https://specs.frictionlessdata.io/json-table-schema/
� )�
TYPE_CHECKING�Any�Dict�Optional�castN)�DtypeObj�
FrameOrSeries�JSONSerializable) �
is_bool_dtype�is_categorical_dtype�is_datetime64_dtype�is_datetime64tz_dtype�is_integer_dtype�is_numeric_dtype�is_period_dtype�is_string_dtype�is_timedelta64_dtype)�CategoricalDtype)� DataFrame)�
MultiIndex)�x�returnc C sl t | �rdS t| �rdS t| �r$dS t| �s<t| �s<t| �r@dS t| �rLdS t| �rXdS t| �rddS dS dS ) a�
Convert a NumPy / pandas type to its corresponding json_table.
Parameters
----------
x : np.dtype or ExtensionDtype
Returns
-------
str
the Table Schema data types
Notes
-----
This table shows the relationship between NumPy / pandas dtypes,
and Table Schema dtypes.
============== =================
Pandas type Table Schema type
============== =================
int64 integer
float64 number
bool boolean
datetime64[ns] datetime
timedelta64[ns] duration
object str
categorical any
=============== =================
�integer�boolean�number�datetime�duration�any�stringN) r r
r r r
r r r r )r � r �>/tmp/pip-build-5_djhm0z/pandas/pandas/io/json/_table_schema.py�as_json_table_type" |