23 lines
809 B
Python
23 lines
809 B
Python
"""v3 day capture: reservation search/detail/rate plus bounded primary summaries."""
|
|
from dataclasses import dataclass, field
|
|
|
|
from . import collect_arr_day as day, collect_arr_source as source, profile_summary
|
|
|
|
VERSION = "arr-api-capture/v3"
|
|
OPERATIONS = [*day.OPERATIONS, profile_summary.OPERATION]
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Options(day.Options):
|
|
max_profiles: int = field(kw_only=True)
|
|
|
|
def validate(self):
|
|
super().validate()
|
|
source.require(type(self.max_profiles) is int and 1 <= self.max_profiles <= self.max_records,
|
|
"invalid_profile_limit")
|
|
|
|
|
|
def collect(options, archive, reader, rates, profiles):
|
|
source.require(type(options) is Options, "invalid_named_day_options")
|
|
return day._collect(options, archive, reader, rates, profiles=profiles)
|