Timefold Solver is an AI constraint solver for Python to optimize the Vehicle Routing Problem, Employee Rostering, Maintenance Scheduling, Task Assignment, School Timetabling, Cloud Optimization, Conference Scheduling, Job Shop Scheduling, Bin Packing and many more planning problems.
Since there can only be one function signature in Python, and Java allows many, it might be the case that the top function signature in Python does not match its parent's function signature. Since the interface calls the parent's function signature, the wrong method would be called. To prevent this, we need to look up the 'canonical' method of the type, which is conveniently stored as an attribute on the type.
Fix a bug in function get descriptor; in particular, when called on a type, it should return the unbounded function instead of binding the function to the type.
Make the ABC check less strict. In particular, only collections.abc and Protocol are banned, since collections.abc contain classes that should be Protocols but are instead ABC, and Protocols only define the structure and do not play a part in type hierarchy.
Since there can only be one function signature in Python, and Java allows many, it might be the case that the top function signature in Python does not match its parent's function signature. Since the interface calls the parent's function signature, the wrong method would be called. To prevent this, we need to look up the 'canonical' method of the type, which is conveniently stored as an attribute on the type.
Fix a bug in function get descriptor; in particular, when called on a type, it should return the unbounded function instead of binding the function to the type.
Make the ABC check less strict. In particular, only collections.abc and Protocol are banned, since collections.abc contain classes that should be Protocols but are instead ABC, and Protocols only define the structure and do not play a part in type hierarchy.