duration_field()function

Create a duration column specification.

USAGE

duration_field(
    min_duration=None,
    max_duration=None,
    nullable=False,
    null_probability=0.0,
    unique=False,
    generator=None,
)

Parameters

min_duration : str | timedelta | None = None

Minimum duration (inclusive). Can be string or timedelta object.

max_duration : str | timedelta | None = None

Maximum duration (inclusive). Can be string or timedelta object.

nullable : bool = False

Whether the column can contain null values. Default is False.

null_probability : float = 0.0

Probability of generating null when nullable=True. Default is 0.0.

unique : bool = False

Whether all values must be unique. Default is False.

generator : Callable[[], Any] | None = None

Custom callable that generates values. Overrides other settings.

Returns

DurationField

A duration field specification.

Examples


Define a schema with duration fields and generate test data:

import pointblank as pb
from datetime import timedelta

# Define a schema with duration field specifications
schema = pb.Schema(
    session_length=pb.duration_field(
        min_duration=timedelta(minutes=5),
        max_duration=timedelta(hours=2)
    ),
    wait_time=pb.duration_field(
        min_duration=timedelta(seconds=30),
        max_duration=timedelta(minutes=15)
    ),
)

# Generate 100 rows of test data
pb.generate_dataset(schema, n=100, seed=23)
shape: (100, 2)
session_lengthwait_time
duration[μs]duration[μs]
1h 51m 24s13m 48s
44m 34s5m 26s
1h 58m 16s14m 39s
16m 24s1m 55s
7m 19s47s
34m 48s4m 13s
40m 16s4m 54s
25m 24s3m 3s
19m 37s2m 19s
1h 29m 36s11m 4s

Duration values are uniformly distributed within the specified range.