-
-
Notifications
You must be signed in to change notification settings - Fork 109
Description
Hello there,
first of all thank you very much for this project which you share with us! I started the module recently and it worked fantastically in many cases! Thanks again for that!
I also saw that in some cases typehints went missing without any warning or error message. One instance you can see at https://conflowgen.readthedocs.io/en/latest/api.html#conflowgen.PortCallManager where in the method add_large_scheduled_vehicle
all parameters do not have typehints even though they are provided in the code. In the case of the method has_schedule
everything worked out fine again.
Here is the trimmed source code:
class PortCallManager:
def add_large_scheduled_vehicle(
self,
vehicle_type: ModeOfTransport,
service_name: str,
vehicle_arrives_at: datetime.date,
vehicle_arrives_at_time: datetime.time,
average_vehicle_capacity: int | float,
average_moved_capacity: int | float,
next_destinations: Union[List[Tuple[str, float]], None] = None,
vehicle_arrives_every_k_days: int | None = None
) -> None:
"""
Add the schedule of a ship of any size or a train. The concrete vehicle instances are automatically generated
when :meth:`.ContainerFlowGenerationManager.generate` is invoked.
Args:
vehicle_type: One of
:class:`ModeOfTransport.deep_sea_vessel`,
:class:`ModeOfTransport.feeder`,
:class:`ModeOfTransport.barge`, or
:class:`ModeOfTransport.train`
service_name:
The name of the service, i.e. the shipping line or rail freight line
vehicle_arrives_at:
A date the service would arrive at the terminal. This can e.g. point at the week day for weekly
services. In any case, this is combined with the parameter ``vehicle_arrives_every_k_days`` and only
arrivals within the time scope between ``start_date`` and ``end_date`` are considered.
vehicle_arrives_at_time:
A time at the day (between 00:00 and 23:59).
average_vehicle_capacity:
Number of TEU that can be transported with the vehicle at most.
average_moved_capacity:
Number of TEU which is imported.
next_destinations:
Pairs of destination and frequency of the destination being chosen.
vehicle_arrives_every_k_days:
Defaults to weekly services (arrival every 7 days). Other frequencies are possible as well.
In the special case of ``-1``, only a single arrival at the day ``vehicle_arrives_at`` is scheduled.
This arrival is only part of the generated container flow if that arrival lies between ``start_date``
and ``end_date``.
"""
pass
def has_schedule(
self,
service_name: str,
vehicle_type: ModeOfTransport
) -> bool:
"""
Args:
service_name: The name of the service which moves to a schedule that is sought for.
vehicle_type: The mode of transport to restrict the search to.
Returns: Whether the requested schedule already exist in the database
"""
pass
Once I changed the signature to Union
instead of |
, the documentation built again including the type hints.
def add_large_scheduled_vehicle(
self,
vehicle_type: ModeOfTransport,
service_name: str,
vehicle_arrives_at: datetime.date,
vehicle_arrives_at_time: datetime.time,
average_vehicle_capacity: Union[int, float],
average_moved_capacity: Union[int, float],
next_destinations: Union[List[Tuple[str, float]], None] = None,
vehicle_arrives_every_k_days: Optional[int] = None
) -> None:
So if the |
operator is not supported, this should be stated in the Readme and most preferably some kind of warning should be issued. Better even if the |
operator for type hints would be supported though. Would this be possible in one of the future releases?