dse.util
- Utilities
Functions
datetime_from_timestamp
(timestamp)Creates a timezone-agnostic datetime from timestamp (in seconds) in a consistent manner. Works around a Windows issue with large negative timestamps (PYTHON-119), and rounding differences in Python 3.4 (PYTHON-340).
- Parameters
-
timestamp – a unix timestamp, in seconds
utc_datetime_from_ms_timestamp
(timestamp)Creates a UTC datetime from a timestamp in milliseconds. See
datetime_from_timestamp()
.
Raises an OverflowError if the timestamp is out of range for
datetime
.
- Parameters
-
timestamp – timestamp, in milliseconds
ms_timestamp_from_datetime
(dt)Converts a datetime to a timestamp expressed in milliseconds.
- Parameters
-
dt – a
datetime.datetime
unix_time_from_uuid1
(uuid_arg)Converts a version 1 uuid.UUID
to a timestamp with the same precision
as time.time()
returns. This is useful for examining the
results of queries returning a v1 UUID
.
- Parameters
-
uuid_arg – a version 1
UUID
datetime_from_uuid1
(uuid_arg)Creates a timezone-agnostic datetime from the timestamp in the specified type-1 UUID.
- Parameters
-
uuid_arg – a version 1
UUID
min_uuid_from_time
(timestamp)Generates the minimum TimeUUID (type 1) for a given timestamp, as compared by Cassandra.
See uuid_from_time()
for argument and return types.
max_uuid_from_time
(timestamp)Generates the maximum TimeUUID (type 1) for a given timestamp, as compared by Cassandra.
See uuid_from_time()
for argument and return types.
uuid_from_time
(time_arg, node=None, clock_seq=None)Converts a datetime or timestamp to a type 1 uuid.UUID
.
- Parameters
-
-
time_arg – The time to use for the timestamp portion of the UUID. This can either be a
datetime
object or a timestamp in seconds (as returned fromtime.time()
). -
node (long) – None integer for the UUID (up to 48 bits). If not specified, this field is randomized.
-
clock_seq (int) – Clock sequence field for the UUID (up to 14 bits). If not specified, a random sequence is generated.
-
- Return type
-
uuid.UUID
Module Data
LOWEST_TIME_UUID
= UUID(‘00000000-0000-1000-8080-808080808080’)The lowest possible TimeUUID, as sorted by Cassandra.
HIGHEST_TIME_UUID
= UUID(‘ffffffff-ffff-1fff-bf7f-7f7f7f7f7f7f’)The highest possible TimeUUID, as sorted by Cassandra.
class SortedSet
A sorted set based on sorted list
A sorted set implementation is used in this case because it does not require its elements to be immutable/hashable.
#Not implemented: update functions, inplace operators
Attributes
sortedset
alias of dse.util.SortedSet
class OrderedMap
An ordered map that accepts non-hashable types for keys. It also maintains the insertion order of items, behaving as OrderedDict in that regard. These maps are constructed and read just as normal mapping types, exept that they may contain arbitrary collections and other non-hashable items as keys:
>>> od = OrderedMap([({'one': 1, 'two': 2}, 'value'),
... ({'three': 3, 'four': 4}, 'value2')])
>>> list(od.keys())
[{'two': 2, 'one': 1}, {'three': 3, 'four': 4}]
>>> list(od.values())
['value', 'value2']
These constructs are needed to support nested collections in Cassandra 2.1.3+, where frozen collections can be specified as parameters to others:
CREATE TABLE example (
...
value map<frozen<map<int, int>>, double>
...
)
This class derives from the (immutable) Mapping API. Objects in these maps are not intended be modified.
class OrderedMapSerializedKey
class Time
Idealized time, independent of day.
Up to nanosecond resolution
Initializer value can be:
-
integer_type: absolute nanoseconds in the day
-
datetime.time: built-in time
-
string_type: a string time of the form “HH:MM:SS[.mmmuuunnn]”
Attributes
hour
The hour component of this time (0-23)
minute
The minute component of this time (0-59)
second
The second component of this time (0-59)
nanosecond
The fractional seconds component of the time, in nanoseconds
Methods
time
()Return a built-in datetime.time (nanosecond precision truncated to micros).
class Date
Idealized date: year, month, day
Offers wider year range than datetime.date. For Dates that cannot be represented as a datetime.date (because datetime.MINYEAR, datetime.MAXYEAR), this type falls back to printing days_from_epoch offset.
Initializer value can be:
-
integer_type: absolute days from epoch (1970, 1, 1). Can be negative.
-
datetime.date: built-in date
-
string_type: a string time of the form “yyyy-mm-dd”
Attributes
seconds
Absolute seconds from epoch (can be negative)
Methods
date
()Return a built-in datetime.date for Dates falling in the years [datetime.MINYEAR, datetime.MAXYEAR]
ValueError is raised for Dates outside this range.
Functions
inet_ntop
(af, packed_ip)string formatted IP addressWindows doesn’t have socket.inet_pton and socket.inet_ntop until Python 3.4 This is an alternative impl using ctypes, based on this win_inet_pton project: https://github.com/hickeroar/win_inet_pton
class Point
Represents a point geometry for DSE
Attributes
x
= Nonex coordinate of the point
y
= Noney coordinate of the point
Static Methods
from_wkt
(s)Parse a Point geometry from a wkt string and return a new Point object.
class LineString
Represents a linestring geometry for DSE
‘coords`: a sequence of (x, y) coordinates of points in the linestring
Attributes
coords
= NoneTuple of (x, y) coordinates in the linestring
Static Methods
from_wkt
(s)Parse a LineString geometry from a wkt string and return a new LineString object.
class Polygon
Represents a polygon geometry for DSE
‘exterior`: a sequence of (x, y) coordinates of points in the linestring interiors: None, or a sequence of sequences or (x, y) coordinates of points describing interior linear rings
Attributes
exterior
= None_LinearRing representing the exterior of the polygon
interiors
= NoneTuple of _LinearRings representing interior holes in the polygon
Static Methods
from_wkt
(s)Parse a Polygon geometry from a wkt string and return a new Polygon object.
class Distance
Represents a Distance geometry for DSE
Attributes
x
= Nonex coordinate of the center point
y
= Noney coordinate of the center point
radius
= Noneradius to represent the distance from the center point
Static Methods
from_wkt
(s)Parse a Distance geometry from a wkt string and return a new Distance object.
class Duration
Cassandra Duration Type
class DateRangePrecision
An “enum” representing the valid values for DateRange.precision
.
Attributes
YEAR
= ‘YEAR’MONTH
= ‘MONTH’DAY
= ‘DAY’HOUR
= ‘HOUR’MINUTE
= ‘MINUTE’SECOND
= ‘SECOND’MILLISECOND
= ‘MILLISECOND’PRECISIONS
= (‘YEAR’, ‘MONTH’, ‘DAY’, ‘HOUR’, ‘MINUTE’, ‘SECOND’, ‘MILLISECOND’)class DateRangeBound
Represents a single date value and its precision for DateRange
.
Attributes
milliseconds
Integer representing milliseconds since the UNIX epoch. May be negative.
precision
String representing the precision of a bound. Must be a valid
DateRangePrecision
member.
DateRangeBound
uses a millisecond offset from the UNIX epoch to
allow DateRange
to represent values datetime.datetime cannot.
For such values, string representions will show this offset rather than the
CQL representation.
- Parameters
-
-
value – a value representing ms since the epoch. Accepts an integer or a datetime.
-
precision – a string representing precision
-
Methods
datetime
()Return milliseconds
as a datetime.datetime
if possible.
Raises an OverflowError if the value is out of range.
Class Methods
from_value
(value)Construct a new DateRangeBound
from a given value. If
possible, use the value[‘milliseconds’] and value[‘precision’] keys
of the argument. Otherwise, use the argument as a (milliseconds,
precision) iterable.
- Parameters
-
value – a dictlike or iterable object
Module Data
OPEN_BOUND
= DateRangeBound(milliseconds=None, precision=None)Represents *, an open value or bound for DateRange
.
class DateRange
DSE DateRange Type
Attributes
lower_bound
DateRangeBound
representing the lower bound of a bounded range.
upper_bound
DateRangeBound
representing the upper bound of a bounded range.
value
DateRangeBound
representing the value of a single-value range.
As noted in its documentation, DateRangeBound
uses a millisecond
offset from the UNIX epoch to allow DateRange
to represent values
datetime.datetime cannot. For such values, string representions will show
this offset rather than the CQL representation.
- Parameters
-
-
lower_bound – a
DateRangeBound
or object accepted byDateRangeBound.from_value()
to be used as alower_bound
. Mutually exclusive with value. If upper_bound is specified and this is not, thelower_bound
will be open. -
upper_bound – a
DateRangeBound
or object accepted byDateRangeBound.from_value()
to be used as aupper_bound
. Mutually exclusive with value. If lower_bound is specified and this is not, theupper_bound
will be open. -
value – a
DateRangeBound
or object accepted byDateRangeBound.from_value()
to be used asvalue
. Mutually exclusive with lower_bound and lower_bound.
-
class Version
Internal minimalist class to compare versions. A valid version is: <int>.<int>.<int>.<int or str>.
TODO: when python2 support is removed, use packaging.version.