microsoft / hummingbird

Hummingbird compiles trained ML models into tensor computation for faster inference.
MIT License
3.32k stars 274 forks source link

Compilation issue in Prophet #704

Closed interesaaat closed 6 months ago

interesaaat commented 1 year ago

The build in main currently fails with the error TypeError: object.__init__() takes exactly one argument (the instance to initialize)

ksaur commented 1 year ago

See also https://github.com/facebook/prophet/issues/2430

ksaur commented 1 year ago

It seems that issue was patched. todo: unpin ours

ksaur commented 1 year ago

New holidays error based on the way we import prophet:

_____________________________________________________________________________________________________ ERROR collecting tests/test_prophet.py _____________________________________________________________________________________________________
test_prophet.py:8: in <module>
    from hummingbird.ml._utils import pandas_installed, prophet_installed, onnx_runtime_installed
../hummingbird/ml/__init__.py:15: in <module>
    from . import supported as hummingbird_constants
../hummingbird/ml/supported.py:513: in <module>
    prophet_operator_list = _build_prophet_operator_list()
../hummingbird/ml/supported.py:377: in _build_prophet_operator_list
    if prophet_installed():
../hummingbird/ml/_utils.py:191: in prophet_installed
    from prophet import Prophet
../../.local/lib/python3.8/site-packages/prophet/__init__.py:8: in <module>
    from prophet.forecaster import Prophet
../../.local/lib/python3.8/site-packages/prophet/forecaster.py:17: in <module>
    from prophet.make_holidays import get_holiday_names, make_holidays_df
../../.local/lib/python3.8/site-packages/prophet/make_holidays.py:14: in <module>
    import prophet.hdays as hdays_part2
../../.local/lib/python3.8/site-packages/prophet/hdays.py:683: in <module>
    class TU(Turkey):
../../.local/lib/python3.8/site-packages/holidays/registry.py:177: in __init__
    raise TypeError(
E   TypeError: This is a python-holidays entity loader class. For entity inheritance purposes please import a class you want to derive from directly: e.g., `from holidays.countries import Entity` or `from holidays.financial import Entity`.
============================================================================================================ short test summary info =============================================================================================================
ERROR test_prophet.py - TypeError: This is a python-holidays entity loader class. For entity inheritance purposes please import a class you want to derive from directly: e.g., `from holidays.countries import Entity` or `from holidays.finan...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================================================================================ 1 error in 2.74s ============================================================
ksaur commented 1 year ago

Need to leave pinned for now, no quick fix as i see it See https://github.com/facebook/prophet/issues/2432 , suggests to keep holidays pinned.