Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
)
)
class LocationEventCountsSchema(AggregationUnitMixin, BaseSchema):
# query_kind parameter is required here for claims validation
query_kind = fields.String(validate=OneOf(["location_event_counts"]))
start_date = ISODateTime(required=True)
end_date = ISODateTime(required=True)
interval = fields.String(
required=True, validate=OneOf(TotalLocationEvents.allowed_intervals)
)
direction = fields.String(
required=True, validate=OneOf(["in", "out", "both"])
) # TODO: use a globally defined enum for this
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = LocationEventCountsExposed
start=self.start,
stop=self.stop,
direction=self.direction,
tables=self.event_types,
subscriber_subset=self.subscriber_subset,
)
class EventCountSchema(BaseQueryWithSamplingSchema):
query_kind = fields.String(validate=OneOf(["event_count"]))
start = ISODateTime(required=True)
stop = ISODateTime(required=True)
direction = fields.String(
required=False, validate=OneOf(["in", "out", "both"]), default="both"
) # TODO: use a globally defined enum for this
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = EventCountExposed
self.start_date,
self.end_date,
spatial_unit=self.aggregation_unit,
table=self.event_types,
subscriber_subset=self.subscriber_subset,
)
)
)
class ConsecutiveTripsODMatrixSchema(AggregationUnitMixin, BaseSchema):
# query_kind parameter is required here for claims validation
query_kind = fields.String(validate=OneOf(["consecutive_trips_od_matrix"]))
start_date = ISODateTime(required=True)
end_date = ISODateTime(required=True)
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = ConsecutiveTripsODMatrixExposed
start=self.start,
stop=self.stop,
direction=self.direction,
tables=self.event_types,
subscriber_subset=self.subscriber_subset,
)
class SubscriberDegreeSchema(BaseQueryWithSamplingSchema):
query_kind = fields.String(validate=OneOf(["subscriber_degree"]))
start = ISODateTime(required=True)
stop = ISODateTime(required=True)
direction = fields.String(
required=False, validate=OneOf(["in", "out", "both"]), default="both"
) # TODO: use a globally defined enum for this
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = SubscriberDegreeExposed
"""
return ParetoInteractions(
start=self.start,
stop=self.stop,
proportion=self.proportion,
tables=self.event_types,
subscriber_subset=self.subscriber_subset,
)
class ParetoInteractionsSchema(BaseQueryWithSamplingSchema):
query_kind = fields.String(validate=OneOf(["pareto_interactions"]))
start = ISODateTime(required=True)
stop = ISODateTime(required=True)
proportion = fields.Float(required=True, validate=Range(min=0.0, max=1.0))
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = ParetoInteractionsExposed
return RedactedUniqueSubscriberCounts(
unique_subscriber_counts=UniqueSubscriberCounts(
start=self.start_date,
stop=self.end_date,
spatial_unit=self.aggregation_unit,
table=self.event_types,
)
)
class UniqueSubscriberCountsSchema(AggregationUnitMixin, BaseSchema):
# query_kind parameter is required here for claims validation
query_kind = fields.String(validate=OneOf(["unique_subscriber_counts"]))
start_date = ISODateTime(required=True)
end_date = ISODateTime(required=True)
event_types = EventTypes()
__model__ = UniqueSubscriberCountsExposed
Query
"""
return RadiusOfGyration(
start=self.start_date,
stop=self.end_date,
table=self.event_types,
subscriber_subset=self.subscriber_subset,
)
class RadiusOfGyrationSchema(BaseQueryWithSamplingSchema):
# query_kind parameter is required here for claims validation
query_kind = fields.String(validate=OneOf(["radius_of_gyration"]))
start_date = ISODateTime(required=True)
end_date = ISODateTime(required=True)
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = RadiusOfGyrationExposed
self.start_date,
self.end_date,
spatial_unit=self.aggregation_unit,
table=self.event_types,
subscriber_subset=self.subscriber_subset,
)
)
)
class TripsODMatrixSchema(AggregationUnitMixin, BaseSchema):
# query_kind parameter is required here for claims validation
query_kind = fields.String(validate=OneOf(["trips_od_matrix"]))
start_date = ISODateTime(required=True)
end_date = ISODateTime(required=True)
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = TripsODMatrixExposed
stop=self.stop,
hours=self.hours,
tables=self.event_types,
subscriber_subset=self.subscriber_subset,
)
class NocturnalEventsSchema(BaseQueryWithSamplingSchema):
query_kind = fields.String(validate=OneOf(["nocturnal_events"]))
start = ISODateTime(required=True)
stop = ISODateTime(required=True)
night_start_hour = fields.Integer(
validate=Range(0, 23)
) # Tuples aren't supported by apispec https://github.com/marshmallow-code/apispec/issues/399
night_end_hour = fields.Integer(validate=Range(0, 23))
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = NocturnalEventsExposed
"""
return daily_location(
date=self.date,
spatial_unit=self.aggregation_unit,
method=self.method,
table=self.event_types,
subscriber_subset=self.subscriber_subset,
)
class DailyLocationSchema(AggregationUnitMixin, BaseQueryWithSamplingSchema):
# query_kind parameter is required here for claims validation
query_kind = fields.String(validate=OneOf(["daily_location"]))
date = ISODateTime(required=True)
method = fields.String(required=True, validate=OneOf(["last", "most-common"]))
event_types = EventTypes()
subscriber_subset = SubscriberSubset()
__model__ = DailyLocationExposed