def __init__(self, endpoint, *args, **kwargs): ResourceUri.__init__(self, *args, **kwargs) ResourceUtc.__init__(self) self.endpoint = endpoint self.parsers["get"] = reqparse.RequestParser(argument_class=ArgumentDoc) parser_get = self.parsers["get"] parser_get.add_argument("filter", type=six.text_type) parser_get.add_argument("from_datetime", type=DateTimeFormat(), default=None, help="The datetime from which you want the schedules") parser_get.add_argument("until_datetime", type=DateTimeFormat(), default=None, help="The datetime until which you want the schedules") parser_get.add_argument("duration", type=int, default=3600 * 24, help="Maximum duration between datetime and the retrieved stop time") parser_get.add_argument("depth", type=depth_argument, default=2) parser_get.add_argument("count", type=default_count_arg_type, default=10, help="Number of schedules per page") parser_get.add_argument("start_page", type=int, default=0, help="The current page") parser_get.add_argument("max_date_times", type=UnsignedInteger(), deprecated=True, help="DEPRECATED, replaced by `items_per_schedule`") parser_get.add_argument("forbidden_id[]", type=six.text_type, deprecated=True, help="DEPRECATED, replaced by `forbidden_uris[]`", dest="__temporary_forbidden_id[]", default=[], action='append', schema_metadata={'format': 'pt-object'}) parser_get.add_argument("forbidden_uris[]", type=six.text_type, help="forbidden uris", dest="forbidden_uris[]", default=[], action='append', schema_metadata={'format': 'pt-object'}) parser_get.add_argument("calendar", type=six.text_type, help="Id of the calendar") parser_get.add_argument("distance", type=int, default=200, help="Distance range of the query. Used only if a coord is in the query") parser_get.add_argument("show_codes", type=BooleanType(), default=False, help="show more identification codes") #Note: no default param for data freshness, the default depends on the API parser_get.add_argument("data_freshness", help='freshness of the data. ' 'base_schedule is the long term planned schedule. ' 'adapted_schedule is for planned ahead disruptions (strikes, ' 'maintenances, ...). ' 'realtime is to have the freshest possible data', type=OptionValue(['base_schedule', 'adapted_schedule', 'realtime'])) parser_get.add_argument("_current_datetime", type=DateTimeFormat(), schema_metadata={'default': 'now'}, hidden=True, default=datetime.utcnow(), help='The datetime considered as "now". Used for debug, default is ' 'the moment of the request. It will mainly change the output ' 'of the disruptions.') parser_get.add_argument("items_per_schedule", type=UnsignedInteger(), default=10000, help="maximum number of date_times per schedule") parser_get.add_argument("disable_geojson", type=BooleanType(), default=False, help="remove geojson from the response") self.get_decorators.insert(0, ManageError()) self.get_decorators.insert(1, get_obj_serializer(self)) self.get_decorators.append(complete_links(self))
def __init__(self): super( GraphicalIsochrone, self).__init__(output_type_serializer=GraphicalIsrochoneSerializer) parser_get = self.parsers["get"] parser_get.add_argument("min_duration", type=UnsignedInteger(), default=0) parser_get.add_argument("boundary_duration[]", type=UnsignedInteger(), action="append")
def __init__(self): super(GraphicalIsochrone, self).__init__(output_type_serializer=None ) #TODO implement and change to a real one parser_get = self.parsers["get"] parser_get.add_argument("min_duration", type=UnsignedInteger(), default=0) parser_get.add_argument("boundary_duration[]", type=UnsignedInteger(), action="append")
def get_valid_unsigned_int(str): assert str != "" try: return UnsignedInteger()(str) except ValueError: assert False
def __init__(self): super(HeatMap, self).__init__(output_type_serializer=HeatMapSerializer) parser_get = self.parsers["get"] parser_get.add_argument("resolution", type=UnsignedInteger(), default=500)
def __init__(self, output_type_serializer): ResourceUri.__init__(self, authentication=False, output_type_serializer=output_type_serializer) ResourceUtc.__init__(self) modes = ["walking", "car", "bike", "bss"] types = { "all": "All types", "best": "The best journey", "rapid": "A good trade off between duration, changes and constraint respect", 'no_train': "Journey without train", 'comfort': "A journey with less changes and walking", 'car': "A journey with car to get to the public transport", 'less_fallback_walk': "A journey with less walking", 'less_fallback_bike': "A journey with less biking", 'less_fallback_bss': "A journey with less bss", 'fastest': "A journey with minimum duration", 'non_pt_walk': "A journey without public transport, only walking", 'non_pt_bike': "A journey without public transport, only biking", 'non_pt_bss': "A journey without public transport, only bike sharing", } data_freshnesses = { 'base_schedule': 'Use theoric schedule information', 'realtime': 'Use all realtime information', 'adapted_schedule': 'Use of adapted schedule information (like strike adjusting, etc.). ' 'Prefer `realtime` for traveler information as it will also contain ' 'adapted information schedule.' } parser_get = self.parsers["get"] parser_get.add_argument( "from", type=six.text_type, dest="origin", help='The id of the departure of your journey. ' 'If not provided an isochrone is computed.') parser_get.add_argument("to", type=six.text_type, dest="destination", help='The id of the arrival of your journey. ' 'If not provided an isochrone is computed.') parser_get.add_argument( "datetime", type=DateTimeFormat(), help='Date and time to go/arrive (see `datetime_represents`).\n' 'Note: the datetime must be in the coverage’s publication period.') parser_get.add_argument( "datetime_represents", dest="clockwise", type=DatetimeRepresents(), default=True, help="Determine how datetime is handled.\n\n" "Possible values:\n" " * 'departure' - Compute journeys starting after datetime\n" " * 'arrival' - Compute journeys arriving before datetime") parser_get.add_argument("max_transfers", type=int, default=42, hidden=True, deprecated=True) parser_get.add_argument( "max_nb_transfers", type=int, dest="max_transfers", help='Maximum number of transfers in each journey') parser_get.add_argument( "min_nb_transfers", type=int, default=0, help='Minimum number of transfers in each journey') parser_get.add_argument( "first_section_mode[]", type=OptionValue(modes), dest="origin_mode", action="append", help='Force the first section mode ' 'if the first section is not a public transport one.\n' '`bss` stands for bike sharing system.\n' 'Note 1: It’s an array, you can give multiple modes.\n' 'Note 2: Choosing `bss` implicitly allows the walking mode since ' 'you might have to walk to the bss station.\n' 'Note 3: The parameter is inclusive, not exclusive, ' 'so if you want to forbid a mode, you need to add all the other modes. ' 'Eg: If you never want to use a car, you need: ' '`first_section_mode[]=walking&first_section_mode[]=bss&' 'first_section_mode[]=bike&last_section_mode[]=walking&' 'last_section_mode[]=bss&last_section_mode[]=bike`') parser_get.add_argument( "last_section_mode[]", type=OptionValue(modes), dest="destination_mode", action="append", help='Same as first_section_mode but for the last section.') # for retrocompatibility purpose, we duplicate (without []): parser_get.add_argument("first_section_mode", hidden=True, deprecated=True, type=OptionValue(modes), action="append") parser_get.add_argument("last_section_mode", hidden=True, deprecated=True, type=OptionValue(modes), action="append") parser_get.add_argument( "max_duration_to_pt", type=int, help="Maximal duration of non public transport in second") parser_get.add_argument( "max_walking_duration_to_pt", type=int, help="Maximal duration of walking on public transport in second") parser_get.add_argument( "max_bike_duration_to_pt", type=int, help="Maximal duration of bike on public transport in second") parser_get.add_argument( "max_bss_duration_to_pt", type=int, help="Maximal duration of bss on public transport in second") parser_get.add_argument( "max_car_duration_to_pt", type=int, help="Maximal duration of car on public transport in second") parser_get.add_argument( "walking_speed", type=float_gt_0, help='Walking speed for the fallback sections.\n' 'Speed unit must be in meter/second') parser_get.add_argument( "bike_speed", type=float_gt_0, help='Biking speed for the fallback sections.\n' 'Speed unit must be in meter/second') parser_get.add_argument( "bss_speed", type=float_gt_0, help='Speed while using a bike from a bike sharing system for the ' 'fallback sections.\n' 'Speed unit must be in meter/second') parser_get.add_argument( "car_speed", type=float_gt_0, help='Driving speed for the fallback sections.\n' 'Speed unit must be in meter/second') parser_get.add_argument( "forbidden_uris[]", type=six.text_type, action="append", help='If you want to avoid lines, modes, networks, etc.\n' 'Note: the forbidden_uris[] concern only the public transport objects. ' 'You can’t for example forbid the use of the bike with them, ' 'you have to set the fallback modes for this ' '(first_section_mode[] and last_section_mode[])') parser_get.add_argument( "allowed_id[]", type=six.text_type, action="append", help='If you want to use only a small subset of ' 'the public transport objects in your solution.\n' 'Note: The constraint intersects with forbidden_uris[]. ' 'For example, if you ask for ' '`allowed_id[]=line:A&forbidden_uris[]=physical_mode:Bus`, ' 'only vehicles of the line A that are not buses will be used.') parser_get.add_argument("type", type=DescribedOptionValue(types), default="all", deprecated=True, help='DEPRECATED, desired type of journey.', hidden=True) parser_get.add_argument( "disruption_active", type=BooleanType(), default=False, deprecated=True, help='DEPRECATED, replaced by `data_freshness`.\n' 'If true the algorithm takes the disruptions into account, ' 'and thus avoid disrupted public transport.\n' 'Nota: `disruption_active=true` <=> `data_freshness=realtime`') # no default value for data_freshness because we need to maintain retrocomp with disruption_active parser_get.add_argument( "data_freshness", type=DescribedOptionValue(data_freshnesses), help="Define the freshness of data to use to compute journeys.\n" "When using the following parameter `&data_freshness=base_schedule` " "you can get disrupted journeys in the response. " "You can then display the disruption message to the traveler and " "make a `realtime` request to get a new undisrupted solution.") parser_get.add_argument( "max_duration", type=UnsignedInteger(), help='Maximum duration of journeys in secondes.\n' 'Really useful when computing an isochrone.') parser_get.add_argument( "wheelchair", type=BooleanType(), default=None, help='If true the traveler is considered to be using a wheelchair, ' 'thus only accessible public transport are used.\n' 'Be warned: many data are currently too faint to provide ' 'acceptable answers with this parameter on.') parser_get.add_argument( "traveler_type", type=OptionValue(acceptable_traveler_types), help= 'Define speeds and accessibility values for different kind of people.\n' 'Each profile also automatically determines appropriate first and ' 'last section modes to the covered area.\n' 'Note: this means that you might get car, bike, etc. fallback routes ' 'even if you set `forbidden_uris[]`!\n' 'You can overload all parameters ' '(especially speeds, distances, first and last modes) by setting ' 'all of them specifically.\n' 'We advise that you don’t rely on the traveler_type’s fallback modes ' '(`first_section_mode[]` and `last_section_mode[]`) ' 'and set them yourself.') parser_get.add_argument( "_current_datetime", hidden=True, type=DateTimeFormat(), default=datetime.utcnow(), help="The datetime used to consider the state of the pt object.\n" "Default is the current date and it is used for debug.\n" "Note: it will mainly change the disruptions that concern " "the object. The timezone should be specified in the format, " "else we consider it as UTC") parser_get.add_argument( "direct_path", type=OptionValue(['indifferent', 'only', 'none']), default='indifferent', help="Specify if direct path should be suggested")
def __init__(self): super(HeatMap, self).__init__(output_type_serializer=None) #TODO implement and change to a real one parser_get = self.parsers["get"] parser_get.add_argument("resolution", type=UnsignedInteger(), default=500)