Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The calculation of the lunar start date throws a TypeError exception for Thailand and Cambodia #1779

Closed
coderX-thinkerL opened this issue Apr 25, 2024 · 4 comments · Fixed by #1782
Assignees

Comments

@coderX-thinkerL
Copy link

version: 0.47
stack trace:
"python39\lib\site-packages\holidays\calendars\thai.py", line 233, in _get_start_date
return _ThaiLunisolar.START_DATE + td(days=delta_days)
TypeError: unsupported type for timedelta days component: numpy.int32

@arkid15r
Copy link
Collaborator

I'm not really sure if that's a PH bug as it involves numpy based on what I'm seeing.
Could you provide more information on how to reproduce the issue?

Thank you!

@coderX-thinkerL
Copy link
Author

I'm not really sure if that's a PH bug as it involves numpy based on what I'm seeing. Could you provide more information on how to reproduce the issue?

Thank you!

Apologies, I encountered a TypeError while using the 'get_holiday_names' method from the Prophet algorithm provided(version:1.1.5) by Facebook.
This error specifically occurred when calculating holidays for only Thailand and Cambodia among the available countries.
The numpy type is passed into the holidays code from Prophet.
I attempted to resolve the issue by modifying line 233, adding an integer type conversion, which prevents the error (return _ThaiLunisolar.START_DATE + td(days=int(delta_days)))

【Here is the full stack trace】
File "D:\Program Files (x86)\language\python39\lib\site-packages\prophet\forecaster.py", line 769, in add_country_holidays
for name in get_holiday_names(country_name):
File "D:\Program Files (x86)\language\python39\lib\site-packages\prophet\make_holidays.py", line 50, in get_holiday_names
return set(country_holidays(language="en_US", years=np.arange(1995, 2045)).values())
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\registry.py", line 207, in call
return cls(*args, **kwargs) # type: ignore[misc, operator]
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\countries\thailand.py", line 151, in init
super().init(*args, **kwargs)
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\observed_holiday_base.py", line 103, in init
super().init(*args, **kwargs)
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\holiday_base.py", line 372, in init
self._populate(year)
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\holiday_base.py", line 793, in _populate
self._populate_common_holidays()
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\observed_holiday_base.py", line 183, in _populate_common_holidays
super()._populate_common_holidays()
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\holiday_base.py", line 800, in _populate_common_holidays
pch_method()
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\countries\thailand.py", line 436, in _populate_public_holidays
makha_bucha_date = self._add_makha_bucha(tr("วันมาฆบูชา"))
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\groups\thai.py", line 138, in _add_makha_bucha
name, self._thai_calendar.makha_bucha_date(self._year, calendar)
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\calendars\thai.py", line 266, in makha_bucha_date
start_date = self._get_start_date(year)
File "D:\Program Files (x86)\language\python39\lib\site-packages\holidays\calendars\thai.py", line 233, in _get_start_date
return _ThaiLunisolar.START_DATE + td(days=delta_days)
TypeError: unsupported type for timedelta days component: numpy.int32

@PPsyrius
Copy link
Collaborator

Could be related to facebook/prophet#2563, but I'm not sure.

@arkid15r arkid15r self-assigned this Apr 29, 2024
@arkid15r
Copy link
Collaborator

@coderX-thinkerL thanks for providing more details. I'll look into our options here this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants