Data types
Scalar and column data types
dtype
=True) ibis.dtype(value, nullable
Create a DataType object.
Parameters
Name | Type | Description | Default |
---|---|---|---|
value | The object to coerce to an Ibis DataType. Supported inputs include strings, python type annotations, numpy dtypes, pandas dtypes, and pyarrow types. | required | |
nullable | Whether the type should be nullable. Defaults to True. If value is a string prefixed by “!”, the type is always non-nullable. |
True |
Examples
>>> import ibis
>>> ibis.dtype("int32")
>>> ibis.dtype("!int32")
>>> ibis.dtype("array<float>")
DataType objects may also be created from Python types:
>>> ibis.dtype(int, nullable=False)
>>> ibis.dtype(list[float])
Or other type systems, like numpy/pandas/pyarrow types:
>>> import pyarrow as pa
>>> ibis.dtype(pa.int32())
DataType
**kwargs) DataType(
Base class for all data types.
Instances are immutable.
Attributes
Name | Description |
---|---|
name | Return the name of the data type. |
Methods
Name | Description |
---|---|
castable | Check whether this type is castable to another. |
from_numpy | Return the equivalent ibis datatype. |
from_pandas | Return the equivalent ibis datatype. |
from_polars | Return the equivalent ibis datatype. |
from_pyarrow | Return the equivalent ibis datatype. |
is_array | Return True if an instance of an Array type. |
is_binary | Return True if an instance of a Binary type. |
is_boolean | Return True if an instance of a Boolean type. |
is_date | Return True if an instance of a Date type. |
is_decimal | Return True if an instance of a Decimal type. |
is_enum | Return True if an instance of an Enum type. |
is_float16 | Return True if an instance of a Float16 type. |
is_float32 | Return True if an instance of a Float32 type. |
is_float64 | Return True if an instance of a Float64 type. |
is_floating | Return True if an instance of any Floating type. |
is_geospatial | Return True if an instance of a Geospatial type. |
is_inet | Return True if an instance of an Inet type. |
is_int16 | Return True if an instance of an Int16 type. |
is_int32 | Return True if an instance of an Int32 type. |
is_int64 | Return True if an instance of an Int64 type. |
is_int8 | Return True if an instance of an Int8 type. |
is_integer | Return True if an instance of any Integer type. |
is_interval | Return True if an instance of an Interval type. |
is_json | Return True if an instance of a JSON type. |
is_linestring | Return True if an instance of a LineString type. |
is_macaddr | Return True if an instance of a MACADDR type. |
is_map | Return True if an instance of a Map type. |
is_multilinestring | Return True if an instance of a MultiLineString type. |
is_multipoint | Return True if an instance of a MultiPoint type. |
is_multipolygon | Return True if an instance of a MultiPolygon type. |
is_nested | Return true if an instance of any nested (Array/Map/Struct) type. |
is_null | Return true if an instance of a Null type. |
is_numeric | Return true if an instance of a Numeric type. |
is_point | Return true if an instance of a Point type. |
is_polygon | Return true if an instance of a Polygon type. |
is_primitive | Return true if an instance of a Primitive type. |
is_signed_integer | Return true if an instance of a SignedInteger type. |
is_string | Return true if an instance of a String type. |
is_struct | Return true if an instance of a Struct type. |
is_temporal | Return true if an instance of a Temporal type. |
is_time | Return true if an instance of a Time type. |
is_timestamp | Return true if an instance of a Timestamp type. |
is_uint16 | Return true if an instance of a UInt16 type. |
is_uint32 | Return true if an instance of a UInt32 type. |
is_uint64 | Return true if an instance of a UInt64 type. |
is_uint8 | Return true if an instance of a UInt8 type. |
is_unknown | Return true if an instance of an Unknown type. |
is_unsigned_integer | Return true if an instance of an UnsignedInteger type. |
is_uuid | Return true if an instance of a UUID type. |
is_variadic | Return true if an instance of a Variadic type. |
to_numpy | Return the equivalent numpy datatype. |
to_pandas | Return the equivalent pandas datatype. |
to_polars | Return the equivalent polars datatype. |
to_pyarrow | Return the equivalent pyarrow datatype. |
castable
**kwargs) castable(to,
Check whether this type is castable to another.
from_numpy
=True) from_numpy(numpy_type, nullable
Return the equivalent ibis datatype.
from_pandas
=True) from_pandas(pandas_type, nullable
Return the equivalent ibis datatype.
from_polars
=True) from_polars(polars_type, nullable
Return the equivalent ibis datatype.
from_pyarrow
=True) from_pyarrow(arrow_type, nullable
Return the equivalent ibis datatype.
is_array
is_array()
Return True if an instance of an Array type.
is_binary
is_binary()
Return True if an instance of a Binary type.
is_boolean
is_boolean()
Return True if an instance of a Boolean type.
is_date
is_date()
Return True if an instance of a Date type.
is_decimal
is_decimal()
Return True if an instance of a Decimal type.
is_enum
is_enum()
Return True if an instance of an Enum type.
is_float16
is_float16()
Return True if an instance of a Float16 type.
is_float32
is_float32()
Return True if an instance of a Float32 type.
is_float64
is_float64()
Return True if an instance of a Float64 type.
is_floating
is_floating()
Return True if an instance of any Floating type.
is_geospatial
is_geospatial()
Return True if an instance of a Geospatial type.
is_inet
is_inet()
Return True if an instance of an Inet type.
is_int16
is_int16()
Return True if an instance of an Int16 type.
is_int32
is_int32()
Return True if an instance of an Int32 type.
is_int64
is_int64()
Return True if an instance of an Int64 type.
is_int8
is_int8()
Return True if an instance of an Int8 type.
is_integer
is_integer()
Return True if an instance of any Integer type.
is_interval
is_interval()
Return True if an instance of an Interval type.
is_json
is_json()
Return True if an instance of a JSON type.
is_linestring
is_linestring()
Return True if an instance of a LineString type.
is_macaddr
is_macaddr()
Return True if an instance of a MACADDR type.
is_map
is_map()
Return True if an instance of a Map type.
is_multilinestring
is_multilinestring()
Return True if an instance of a MultiLineString type.
is_multipoint
is_multipoint()
Return True if an instance of a MultiPoint type.
is_multipolygon
is_multipolygon()
Return True if an instance of a MultiPolygon type.
is_nested
is_nested()
Return true if an instance of any nested (Array/Map/Struct) type.
is_null
is_null()
Return true if an instance of a Null type.
is_numeric
is_numeric()
Return true if an instance of a Numeric type.
is_point
is_point()
Return true if an instance of a Point type.
is_polygon
is_polygon()
Return true if an instance of a Polygon type.
is_primitive
is_primitive()
Return true if an instance of a Primitive type.
is_signed_integer
is_signed_integer()
Return true if an instance of a SignedInteger type.
is_string
is_string()
Return true if an instance of a String type.
is_struct
is_struct()
Return true if an instance of a Struct type.
is_temporal
is_temporal()
Return true if an instance of a Temporal type.
is_time
is_time()
Return true if an instance of a Time type.
is_timestamp
is_timestamp()
Return true if an instance of a Timestamp type.
is_uint16
is_uint16()
Return true if an instance of a UInt16 type.
is_uint32
is_uint32()
Return true if an instance of a UInt32 type.
is_uint64
is_uint64()
Return true if an instance of a UInt64 type.
is_uint8
is_uint8()
Return true if an instance of a UInt8 type.
is_unknown
is_unknown()
Return true if an instance of an Unknown type.
is_unsigned_integer
is_unsigned_integer()
Return true if an instance of an UnsignedInteger type.
is_uuid
is_uuid()
Return true if an instance of a UUID type.
is_variadic
is_variadic()
Return true if an instance of a Variadic type.
to_numpy
to_numpy()
Return the equivalent numpy datatype.
to_pandas
to_pandas()
Return the equivalent pandas datatype.
to_polars
to_polars()
Return the equivalent polars datatype.
to_pyarrow
to_pyarrow()
Return the equivalent pyarrow datatype.
Array
**kwargs) Array(
Array values.
Binary
**kwargs) Binary(
A type representing a sequence of bytes.
Notes
Some databases treat strings and blobs of equally, and some do not.
For example, Impala doesn’t make a distinction between string and binary types but PostgreSQL has a TEXT
type and a BYTEA
type which are distinct types that have different behavior.
Boolean
**kwargs) Boolean(
Date
**kwargs) Date(
Date values.
Decimal
=None, scale=None, **kwargs) Decimal(precision
Fixed-precision decimal values.
Attributes
Name | Description |
---|---|
precision | The number of decimal places values of this type can hold. |
scale | The number of values after the decimal point. |
Float16
**kwargs) Float16(
16-bit floating point numbers.
Float32
**kwargs) Float32(
32-bit floating point numbers.
Float64
**kwargs) Float64(
64-bit floating point numbers.
INET
**kwargs) INET(
IP addresses.
Int16
**kwargs) Int16(
Signed 16-bit integers.
Int32
**kwargs) Int32(
Signed 32-bit integers.
Int64
**kwargs) Int64(
Signed 64-bit integers.
Int8
**kwargs) Int8(
Signed 8-bit integers.
Interval
**kwargs) Interval(
Interval values.
Attributes
Name | Description |
---|---|
resolution | The interval unit’s name. |
unit | The time unit of the interval. |
JSON
**kwargs) JSON(
JSON values.
Attributes
Name | Description |
---|---|
binary | True if JSON is stored as binary, e.g., JSONB in PostgreSQL. |
LineString
**kwargs) LineString(
A sequence of 2 or more points.
MACADDR
**kwargs) MACADDR(
Media Access Control (MAC) address of a network interface.
Map
**kwargs) Map(
Associative array values.
MultiLineString
**kwargs) MultiLineString(
A set of one or more line strings.
MultiPoint
**kwargs) MultiPoint(
A set of one or more points.
MultiPolygon
**kwargs) MultiPolygon(
A set of one or more polygons.
Null
**kwargs) Null(
Null values.
Point
**kwargs) Point(
A point described by two coordinates.
Polygon
**kwargs) Polygon(
A set of one or more closed line strings.
The first line string represents the shape (external ring) and the rest represent holes in that shape (internal rings).
String
**kwargs) String(
A type representing a string.
Notes
Because of differences in the way different backends handle strings, we cannot assume that strings are UTF-8 encoded.
Struct
**kwargs) Struct(
Structured values.
Methods
Name | Description |
---|---|
from_tuples | Construct a Struct type from pairs. |
names | Return the names of the struct’s fields. |
types | Return the types of the struct’s fields. |
from_tuples
=True) from_tuples(pairs, nullable
Construct a Struct
type from pairs.
Parameters
Name | Type | Description | Default |
---|---|---|---|
pairs | Iterable[tuple[str, str | DataType]] | An iterable of pairs of field name and type | required |
nullable | bool | Whether the type is nullable | True |
Returns
Name | Type | Description |
---|---|---|
Struct | Struct data type instance |
names
names()
Return the names of the struct’s fields.
types
types()
Return the types of the struct’s fields.
Time
**kwargs) Time(
Time values.
Timestamp
**kwargs) Timestamp(
Timestamp values.
Attributes
Name | Description |
---|---|
scale | The scale of the timestamp if known. |
timezone | The timezone of values of this type. |
unit | Return the unit of the timestamp. |
Methods
Name | Description |
---|---|
from_unit | Return a timestamp type with the given unit and timezone. |
from_unit
=None, nullable=True) from_unit(unit, timezone
Return a timestamp type with the given unit and timezone.
UInt16
**kwargs) UInt16(
Unsigned 16-bit integers.
UInt32
**kwargs) UInt32(
Unsigned 32-bit integers.
UInt64
**kwargs) UInt64(
Unsigned 64-bit integers.
UInt8
**kwargs) UInt8(
Unsigned 8-bit integers.
UUID
**kwargs) UUID(
A 128-bit number used to identify information in computer systems.