apache_beam.utils.timestamp module

Timestamp utilities.

For internal use only; no backwards-compatibility guarantees.

class apache_beam.utils.timestamp.Timestamp(seconds=0, micros=0)[source]

Bases: object

Represents a Unix second timestamp with microsecond granularity.

Can be treated in common timestamp arithmetic operations as a numeric type.

Internally stores a time interval as an int of microseconds. This strategy is necessary since floating point values lose precision when storing values, especially after arithmetic operations (for example, 10000000 % 0.1 evaluates to 0.0999999994448885).

static of(seconds)[source]

Return the Timestamp for the given number of seconds.

If the input is already a Timestamp, the input itself will be returned.

Parameters:seconds – Number of seconds as int, float, long, or Timestamp.
Returns:Corresponding Timestamp object.
static now()[source]
classmethod from_utc_datetime(dt)[source]

Create a Timestamp instance from a datetime.datetime object.

Parameters:dt – A datetime.datetime object in UTC (offset-aware).
classmethod from_rfc3339(rfc3339)[source]

Create a Timestamp instance from an RFC 3339 compliant string.

Note

All timezones are implicitly converted to UTC.

Parameters:rfc3339 – String in RFC 3339 form.
seconds() → int[source]

Returns the timestamp in seconds.

predecessor()[source]

Returns the largest timestamp smaller than self.

to_utc_datetime()[source]
to_rfc3339()[source]
to_proto()[source]

Returns the google.protobuf.timestamp_pb2 representation.

static from_proto(timestamp_proto)[source]

Creates a Timestamp from a google.protobuf.timestamp_pb2.

Note that the google has a sub-second resolution of nanoseconds whereas this class has a resolution of microsends. This class will truncate the nanosecond resolution down to the microsecond.

class apache_beam.utils.timestamp.Duration(seconds=0, micros=0)[source]

Bases: object

Represents a second duration with microsecond granularity.

Can be treated in common arithmetic operations as a numeric type.

Internally stores a time interval as an int of microseconds. This strategy is necessary since floating point values lose precision when storing values, especially after arithmetic operations (for example, 10000000 % 0.1 evaluates to 0.0999999994448885).

static of(seconds)[source]

Return the Duration for the given number of seconds since Unix epoch.

If the input is already a Duration, the input itself will be returned.

Parameters:seconds – Number of seconds as int, float or Duration.
Returns:Corresponding Duration object.
to_proto()[source]

Returns the google.protobuf.duration_pb2 representation.

static from_proto(duration_proto)[source]

Creates a Duration from a google.protobuf.duration_pb2.

Note that the google has a sub-second resolution of nanoseconds whereas this class has a resolution of microsends. This class will truncate the nanosecond resolution down to the microsecond.