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

Add Thailand holidays localization: en_US, th #946

Merged
merged 16 commits into from
Feb 24, 2023

Conversation

PPsyrius
Copy link
Collaborator

@PPsyrius PPsyrius commented Feb 15, 2023

Hi, this is based on the work on #827 and #929, which has since been merged into the beta branch, although I've yet to get the .mo and .po files generated by the script.

@arkid15r If you have any idea how to get this working somehow, let me know so I can fill in the translated localisations. :)

holidays/countries/thailand.py Outdated Show resolved Hide resolved
holidays/countries/thailand.py Outdated Show resolved Hide resolved
holidays/countries/thailand.py Outdated Show resolved Hide resolved
holidays/countries/thailand.py Outdated Show resolved Hide resolved
holidays/countries/thailand.py Outdated Show resolved Hide resolved
holidays/countries/thailand.py Outdated Show resolved Hide resolved
@KJhellico
Copy link
Collaborator

@arkid15r If you have any idea how to get this working somehow, let me know so I can fill in the translated localisations. :)

Try to run make l10n and you will have TH.pot (in holidays\locale\pot). Then you can make TH.po based on it, for en and th.

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>
@PPsyrius
Copy link
Collaborator Author

I don't think that command worked for me, sadly @KJhellico

D:\[redacted]\python-holidays>make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
  File "D:\[redacted]\python-holidays\scripts\l10n\generate_po_files.py", line 90, in <module>
    pot_generator.run()
  File "D:\[redacted]\python-holidays\scripts\l10n\generate_po_files.py", line 85, in run
    self.process_countries()
  File "D:\[redacted]\python-holidays\scripts\l10n\generate_po_files.py", line 43, in process_countries
    importlib.import_module(module), inspect.isclass
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.752.0_x64__qbz5n2kfra8p0\Lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'holidays.countries.holidays\\countries\\albania'
make: *** [Makefile:28: l10n] Error 1

@KJhellico
Copy link
Collaborator

On Windows I could't do it too, so I did it on Linux :)

@PPsyrius
Copy link
Collaborator Author

PPsyrius commented Feb 15, 2023

I don't think I have much luck with make l10n on Windows 11's WSL mode either:

ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 90, in <module>
    pot_generator.run()
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 85, in run
    self.process_countries()
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 55, in process_countries
    subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pot-create'
make: *** [Makefile:28: l10n] Error 1

The PYTHONPATH variable is already set here:

ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ echo $PYTHONPATH
/mnt/d/[redacted]/python-holidays

@KJhellico
Copy link
Collaborator

FileNotFoundError: [Errno 2] No such file or directory: 'pot-create'

pot-create is from lingua package. Did you run pip install --requirement requirements/dev.txt ?

@arkid15r
Copy link
Collaborator

I don't think I have much luck with make l10n on Windows 11's WSL mode either:

ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 90, in <module>
    pot_generator.run()
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 85, in run
    self.process_countries()
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 55, in process_countries
    subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pot-create'
make: *** [Makefile:28: l10n] Error 1

The PYTHONPATH variable is already set here:

ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ echo $PYTHONPATH
/mnt/d/[redacted]/python-holidays

@PPsyrius
The errors you posted definitely indicate a lack of proper Windows support, sorry about that.
I'll try to figure out what can be done to improve it this week.

Copy link
Collaborator

@arkid15r arkid15r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your efforts to localize Thailand holidays.

It seems that your approach is a bit different from what we already have for other countries.
In general in a localized version I'd expect thailand.py to have holiday names in Thai (not English) language. Then .pot file is generated (make l10n) and added for each of languages you want to translate into. After the .po files are added and translated we can use .mo files (will done automatically).

The l10n support has just been added so there may be changes in the translation related code/processes.

@PPsyrius
Copy link
Collaborator Author

PPsyrius commented Feb 15, 2023

On the reason why I stick with en instead of th as default for Thailand's i18n implementation:

  • We've already tested all the functions for en implementation, but the same could not be said for th at the moment; once I can confirm that the translation works out fine, a quick switch for them all shouldn't hopefully be too hard to implement.
  • Due to how the Thai character works, we're likely need to use # noqa: E501 on most string declarations to suppress all the errors as Thai consonants and vowels are counted separately i.e. the HM King Bhumibol Adulyadej the Great's Birthday (48 chars long) would become วันคล้ายวันพระราชสมภพของพระบาทสมเด็จพระบรมชนกาธิเบศร มหาภูมิพลอดุลยเดชมหาราช (77 chars long). While this is one of the outlier examples, the point still stands.

Despite all the stated reasoning above, I don't mind switching the default ones to Thai as that would indeed help with standardization for the library as a whole.

@PPsyrius
Copy link
Collaborator Author

PPsyrius commented Feb 15, 2023

Did you run pip install --requirement requirements/dev.txt` ?

Yes, although I did have this warning for WSL

Defaulting to user installation because normal site-packages is not writeable

Edit: After reinstalling and using .venv, I still got struck at the exact location (sans the Defaulting to user installation), although after creating the \holidays\locale\pot manually, the code seems to be stuck here instead:

(.venv) ppsyrius@[redacted]:/mnt/d/[redacted]/python-holidays$ make l10n
scripts/l10n/generate_po_files.py
Traceback (most recent call last):
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 90, in <module>
    pot_generator.run()
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 85, in run
    self.process_countries()
  File "/mnt/d/[redacted]/python-holidays/scripts/l10n/generate_po_files.py", line 71, in process_countries
    subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.10/subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.10/subprocess.py", line 1845, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'msgmerge'

@KJhellico
Copy link
Collaborator

FileNotFoundError: [Errno 2] No such file or directory: 'msgmerge'

On Linux (Debian, Ubuntu) msgmerge is part of gettext package. Try apt install gettext -y in WSL. (Maybe sudo apt install gettext -y - I don't know much about WSL)

@PPsyrius
Copy link
Collaborator Author

PPsyrius commented Feb 16, 2023

On Linux (Debian, Ubuntu) msgmerge is part of gettext package. Try apt install gettext -y in WSL. (Maybe sudo apt install gettext -y - I don't know much about WSL)

This and manually creating additional holidays\locale\TH\LC_MESSAGES folder seem to finally get the script running, thanks again for all the help :)


So to recap for Windows users (could be useful for others)

  • Enable "Windows Subsystem for Linux" (WSL2)
    • wsl --install, select your repo of choice (I picked Ubuntu 22.04 LTS for this case)
    • After setting everything up, wsl ~ to enter WSL
  • Installing additional packages:
    • sudo apt update && sudo apt upgrade -y to update Linux distro.
    • sudo apt install gettext -y needed for localisation.
  • cd to the installed location: cd /mnt/[drive no]/[whatever folders]/python-holidays
  • Check echo $PYTHONPATH; if this is not set yet, run export PYTHONPATH=/mnt/[drive no]/[whatever folders]/python-holidays
  • Installing additional python requirements: pip install --requirement requirements/dev.txt
  • Creating the following files and folders (either in Windows Explorer's GUI or mkdir in the command line):
    • holidays/locale/pot
    • holidays/locale/[new_language_code]/LC_MESSAGES/[new_language_code].po ← (if new translation files, both for the new languages and in English folder)
  • You should now be able to run make l10n

@PPsyrius
Copy link
Collaborator Author

PPsyrius commented Feb 16, 2023

@arkid15r @KJhellico There seems to be some problems for non-ASCII msgid; it seems like defaulting to English may be a necessity here:

holidays/locale/pot/TH.pot:56: warning: The following msgid contains non-ASCII characters.
                                        This will cause problems to translators who use a character encoding
                                        different from yours. Consider using a pure ASCII msgid instead.
                                        Emergency Lockdown (Thai Military Coup d'état)

Same goes for using the Thai language as the default loc:

holidays/locale/pot/TH.pot:92: invalid multibyte sequence
holidays/locale/pot/TH.pot:92: invalid multibyte sequence

@PPsyrius PPsyrius requested a review from KJhellico February 16, 2023 08:42
@PPsyrius PPsyrius marked this pull request as ready for review February 16, 2023 08:50
@coveralls
Copy link

coveralls commented Feb 16, 2023

Coverage Status

Coverage: 100.0%. Remained the same when pulling a2c8638 on PPsyrius:thailand_i18n_support into b3254f0 on dr-prodigy:beta.

@mborsetti
Copy link
Contributor

Hi @arkid15r,

I am thinking of contributing Italian names for Italian holidays and am following this thread closely. I too am on Windows but don't know the technology/library used here, and am a bit worried as I don't really want to install WSL2. Also worrisome is the lack of support for UTF-8 (based on the error reported above) as it's required for Italian.

As the author of #827 and the make file that doesn't seem to work on Windows, do you have any input on where I should look to be able to contribute a Windows-native solution?

holidays/locale/th/LC_MESSAGES/TH.po Outdated Show resolved Hide resolved
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
@arkid15r
Copy link
Collaborator

  • We've already tested all the functions for en implementation, but the same could not be said for th at the moment; once I can confirm that the translation works out fine, a quick switch for them all shouldn't hopefully be too hard to implement.

Well, that's how l10n works. We have it working/tested for en and want it localized for th (also working and tested).

  • Due to how the Thai character works, we're likely need to use # noqa: E501 on most string declarations to suppress all the errors as Thai consonants and vowels are counted separately i.e. the HM King Bhumibol Adulyadej the Great's Birthday (48 chars long) would become วันคล้ายวันพระราชสมภพของพระบาทสมเด็จพระบรมชนกาธิเบศร มหาภูมิพลอดุลยเดชมหาราช (77 chars long). While this is one of the outlier examples, the point still stands.

There is a way to split long Python strings using "()". You can also suppress warnings on a per-file basis.

Despite all the stated reasoning above, I don't mind switching the default ones to Thai as that would indeed help with standardization for the library as a whole.

👍

@arkid15r
Copy link
Collaborator

holidays/locale/pot/TH.pot:56: warning: The following msgid contains non-ASCII characters.
                                        This will cause problems to translators who use a character encoding
                                        different from yours. Consider using a pure ASCII msgid instead.
                                        Emergency Lockdown (Thai Military Coup d'état)

It looks like a warning that can be ignored.

Same goes for using the Thai language as the default loc:

holidays/locale/pot/TH.pot:92: invalid multibyte sequence
holidays/locale/pot/TH.pot:92: invalid multibyte sequence

This one might be more serious but still can be fixable. The gettext l10n mechanism is widely used and tested.

@arkid15r
Copy link
Collaborator

Hi @arkid15r,

I am thinking of contributing Italian names for Italian holidays and am following this thread closely. I too am on Windows but don't know the technology/library used here, and am a bit worried as I don't really want to install WSL2. Also worrisome is the lack of support for UTF-8 (based on the error reported above) as it's required for Italian.

As the author of #827 and the make file that doesn't seem to work on Windows, do you have any input on where I should look to be able to contribute a Windows-native solution?

Hi @mborsetti, I've moved this to a separate issue

Copy link
Collaborator

@arkid15r arkid15r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This l10n PR looks good!
Just a couple of minot suggestions:

holidays/countries/thailand.py Outdated Show resolved Hide resolved
holidays/countries/thailand.py Show resolved Hide resolved
holidays/locale/en_US/LC_MESSAGES/TH.po Outdated Show resolved Hide resolved
holidays/locale/en_US/LC_MESSAGES/TH.po Outdated Show resolved Hide resolved
PPsyrius and others added 3 commits February 21, 2023 00:55
Co-authored-by: Arkadii Yakovets <ark@cho.red>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
@PPsyrius PPsyrius requested a review from arkid15r February 21, 2023 02:54
@PPsyrius PPsyrius requested a review from arkid15r February 22, 2023 05:43
holidays/countries/thailand.py Outdated Show resolved Hide resolved
tests/countries/test_thailand.py Outdated Show resolved Hide resolved
@arkid15r arkid15r added the l10n label Feb 22, 2023
@PPsyrius PPsyrius requested a review from arkid15r February 23, 2023 02:49
Copy link
Collaborator

@arkid15r arkid15r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🇹🇭 LGTM

@arkid15r arkid15r added the ready for beta Ready to merge on beta branch label Feb 23, 2023
@arkid15r arkid15r changed the title TH: modify Thailand code to support i18n Localize Thailand holidays: en_US Feb 23, 2023
@arkid15r arkid15r changed the title Localize Thailand holidays: en_US Add Thailand holidays localization: en_US, th Feb 23, 2023
@arkid15r arkid15r merged commit 19e063c into vacanza:beta Feb 24, 2023
@arkid15r arkid15r removed the ready for beta Ready to merge on beta branch label Feb 24, 2023
@arkid15r
Copy link
Collaborator

Great l10n work!

Additionally, thank you for the Windows environment setup instructions!

@PPsyrius PPsyrius deleted the thailand_i18n_support branch February 25, 2023 05:16
arkid15r added a commit to arkid15r/python-holidays that referenced this pull request Feb 25, 2023
* TH: modify Thailand code to support i18n

* TH: applying `KJhellico`'s suggestion, more accurate titles

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: non-ASCII `msgid` fixed

* TH: Thai translation localisations

* TH: fixed mismatch file title

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `set_locale` -> `set_language`

* TH: switch default loc to `th`

* TH: split string

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description (2)

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: avoid explicit `# noqa: E501` usage

* TH: improved national day trigger

* TH: avoid explicit `# noqa: E501` for testcases

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
arkid15r added a commit to arkid15r/python-holidays that referenced this pull request Feb 25, 2023
* TH: modify Thailand code to support i18n

* TH: applying `KJhellico`'s suggestion, more accurate titles

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: non-ASCII `msgid` fixed

* TH: Thai translation localisations

* TH: fixed mismatch file title

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `set_locale` -> `set_language`

* TH: switch default loc to `th`

* TH: split string

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description (2)

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: avoid explicit `# noqa: E501` usage

* TH: improved national day trigger

* TH: avoid explicit `# noqa: E501` for testcases

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
arkid15r added a commit to arkid15r/python-holidays that referenced this pull request Feb 27, 2023
* TH: modify Thailand code to support i18n

* TH: applying `KJhellico`'s suggestion, more accurate titles

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: non-ASCII `msgid` fixed

* TH: Thai translation localisations

* TH: fixed mismatch file title

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `set_locale` -> `set_language`

* TH: switch default loc to `th`

* TH: split string

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description (2)

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: avoid explicit `# noqa: E501` usage

* TH: improved national day trigger

* TH: avoid explicit `# noqa: E501` for testcases

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
arkid15r added a commit to arkid15r/python-holidays that referenced this pull request Feb 27, 2023
* TH: modify Thailand code to support i18n

* TH: applying `KJhellico`'s suggestion, more accurate titles

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: non-ASCII `msgid` fixed

* TH: Thai translation localisations

* TH: fixed mismatch file title

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `set_locale` -> `set_language`

* TH: switch default loc to `th`

* TH: split string

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description (2)

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: avoid explicit `# noqa: E501` usage

* TH: improved national day trigger

* TH: avoid explicit `# noqa: E501` for testcases

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
arkid15r added a commit that referenced this pull request Feb 27, 2023
* update spain.py with changes for year 2023

* update spain.py with changes for year 2023

* update spain.py with changes for year 2023

* Update holidays/countries/spain.py

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Montenegro optimization

* Add initial PR template.

* Update template.

* Update template.

* Change the template.

* add docstring with reference to Spain

* update Spain tests

* remove unused constants

* Add commnent with reference to Spain

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Init v.0.20 beta.

* Upgrade dependency: change black version from 22.12.0 to 23.1.0.

* Change holiday name separator from ", " to "; ".

* Update Australia holidays: fix 2020 QLD holidays.

* Jamaica holidays update

* Bosnia and Herzegovina holidays update

* Simplify if/else statement.

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Bolivia holidays update and refactoring

* Panama holidays added

* Refactor days offset calculation for recently added countries

* Change some of common.TestCase methods behavior:
  - `TestCase::assertHolidayName
  - `TestCase::assertHolidaysName`
  - `TestCase::assertNoHolidayName`

* Cuba holidays refactoring

* Hong Kong fix

* Thai Lunar Calendar added, exact start of holidays for historic use, refs, etc.

* In-code comment improvements for readability

* Add contact info in case future changes are needed

* Fixed syntax error

* TH Special Holidays code improvements

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH in lieu holiday trigger refactor

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: turns out <= <= is now a thing

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH testcases updated

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: case switch for standardizaton

* TH autoformatting from running `tox`

* TH: E266 comment block format adherence

* TH: E501 line too long format adherence (except link and Thai date names for now)

* TH: E501 cleanups. other final checks (for now)

* TH Sort testcase date

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Added tests for Thailand

* TH fixed Visakha Bucha trigger

* TH fixed wording, add missing special election holiday

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH fixes New Year's Eve (in lieu)

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH  Songkran special in lieu, fixes Queen Sirikit's bday error

No, you cannot simply changes your own birthday lmao, but the case is indeed correct for Mother's Day

* TH Asarnha-Buddhist Lent Day in lieu fixes

* TH: holiday limiter is ; not , (1)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: holiday limiter is ; not , (2)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (1)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (2)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (3)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (4)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove useless recursive call for `add_holiday`

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: improve test code

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (5)

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: add missing `self.observed`, remove all defunct codes

* TH: further simplify Asarnha Bucha trigger

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: improve test code (2)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Burundi holidays refactoring

* Fix Islamic holidays calculation
- fix for holidays that happen twice in a Gregorian year (primarily islamic New Year)
- years range checking more strictly

* Update environment:
  - Add Makefile, wrap common commands
  - Move all requirements file to `requirements` directory
  - Move tests from `test` to `tests` directory
  - Introduce `pytest-xdist`, make pytest running in parallel
  - Add local pre-push hook for tests
  - Format ci-cd.yml
  - Clean up pyproject.toml
  - Update tox.ini, make tox running in parallel
  - Update setup.cfg
  - Update CONTRIBUTION.rst instructions

* Add filter warnings comment.

* Fix utils tests.

* Set Python version for QA job.

* Run tests via 'make test'.

* TH: no `self.observed` needed if they already have special  in-lieus

* TH: adjust this for coverall tests

* docstring fix

* TH: Thai lunar calendar now works up to 1941, all trigger now starts in 1941

* TH: test case refractor + extend checks to 2030

Individual Holiday's test case:

- assertNoHoliday 1 year prior
- assertHoliday while exists
- assertNoHoliday 1 year post

- asserNoHoliday for holidays_no_observed for 2010-2030

* TH: Buddhist holiday extended testcases, applying suggestions

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* Tests update

* Update .pre-commit-config.yaml and tox.ini.

* Fix imports.

* Botswana observed holidays performance optimization

* Burundi observed holidays performance optimization

* Ukraine observed holidays performance optimization

* TH: remove `_en` suffix, `__init__(self, **kwargs):`

* TH: code improvements suggestions from @arkid15r

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: remove financial holiday stubs (this will be its own thing later)

* TH: move sources to 2nd row, `_ThaiLuniSolar` is now in util.py

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: add Atthami Bucha and Ok Phansa support for

* TH: fixed double `raeknakhwan` oversight

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `_ThaiLuniSolar` either returns date-type or None

* TH: `add_holiday` --> `_add_with_observed` for unified wording

* TH: `KJhellico`'s suggestions

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* Fix merge issues.

* TH: applying `arkid15r` 's suggestions

- Simplified __init__ section for Thailand's, removed for _ThaiLuniSolar
- Simplified _ThaiLuniSolar holiday codes
- _ThaiLuniSolar's comment are now docstrings
- Move all Thailand's holiday references to above limitations' section
- Remove Thailand's duplicate date checks (with TODO comments instead)
- Thailand's In Line comments are also moved to each holiday's header for better readability

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: in-line single instance holidays

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: forgot to re-sort this, oof

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: fixed duplicate var, other improvements

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: clean up comments

* TH: back to `@lru_cache()` again

* Simplify test classes setup.
Update documentation.

* Exclude tests from the MANIFEST.in.

* Add Marshall Islands (ISO-3666-1 code MH)

* Fix Northern Mariana Islands (ISO-3666-2 code US-MP)

* Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States

* isort fix

* add TODO

* Lost some pieces on the way...

* MH additional testing for coverall

* Update holidays/countries/united_states.py

Thanks...no idea what's happening with snippets of code!

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Add United States Minor Outlying Islands (ISO-3666-2 code US-UM) (#940)

* ISO 3166-1 for US subdivisions (#941)

* Add Marshall Islands (ISO-3666-1 code MH)

* Fix Northern Mariana Islands (ISO-3666-2 code US-MP)

* Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States

* isort fix

* add TODO

* Lost some pieces on the way...

* MH additional testing for coverall

* Update holidays/countries/united_states.py

Thanks...no idea what's happening with snippets of code!

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: dr-prodigy <dr.prodigy.github@gmail.com>

* Add International Women's Day for DE-MV (#936)

* Add internationaler Frauentag for DE-MV

* Remove trailing whitespace

* Remove .gitpod.yml

* Add .gitpod.yml to .gitignore

* Add tests for Frauentag in DE-MV

* CHANGES sync

* Return `None` explicitly. (#935)

* CHANGES sync

* Rework i18n.

* Update pre-commit settings.

* Fix Thailand related changes coverage decrease.

* Fix naming and minor issues in .pot files generator.

* Update translations.

* Add final fixes.

* Add additional cases.

* TH: additional testcases for the rest of Thai Lunar Holidays

* Fix Ukraine tests

* Fix ordering.

* Add missing cases.

* Rename dev env setup target.

* Suppress warnings for tests.

* Poland:
- added historical holidays
- added Ukrainian translation
- refactored tests

* header fix

* Optimize observed holidays for Mozambique, Namibia, Zambia, Zimbabwe

* Added test for Ukrainian

* Update Albania observed holidays

* National Day for Truth and Reconciliation in British Columbia (Canada)

* Optimize observed holidays for Angola, Eswatini, Kazakhstan, Kenya, Malawi, Singapore, South Africa

* fix

Co-authored-by: PPsyrius <19505219+PPsyrius@users.noreply.github.com>

* Localize ascii incompatible countries.
Add en_US localizatin for:
  - Armenia
  - Belarus
  - Bulgaria
  - Canada
  - Cyprus
  - Ethiopia
  - Georgia
  - Greece
  - Japan
  - Russia
  - Serbia
Update po generation files script.
Update MANIFEST.in.
Update README.rst.
Fix packaging.

* Fix headers.

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Fix mo cleanup process.

* Fix compatibility issue.

* Fix .po files related issues.

* Add .mo files generator. Rework `TestCase` base class l10n handling.

* Update Makefile.

* Re-enable fallback translation.

* Fix minor test issues.

* Update PR template.

* Update CHANGES.

* Update version format.

* Update CHANGES

* Bump mypy version. (#970)

* Fix readthedocs.io build: (#973)

- Add .readthedocs.yaml.
  - Update .gitignore.
  - Update .pre-commit-config.yaml.
  - Update Makefile.
  - Update tox.ini.

* Update CHANGES.

* Added Peru localization (es, en_US, uk)

* Update CHANGES

* Update .rst files.

* Add Thailand holidays localization: en_US, th (#946)

* TH: modify Thailand code to support i18n

* TH: applying `KJhellico`'s suggestion, more accurate titles

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: non-ASCII `msgid` fixed

* TH: Thai translation localisations

* TH: fixed mismatch file title

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `set_locale` -> `set_language`

* TH: switch default loc to `th`

* TH: split string

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description (2)

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: avoid explicit `# noqa: E501` usage

* TH: improved national day trigger

* TH: avoid explicit `# noqa: E501` for testcases

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Update Ireland holidays: St. Bridget's Day (#953)

* IE: Fixed St. Brigit's Day (Monday is the day itself, not `(observed)`)

Co-Authored-By: Kevin Gill <kevin@movieextras.ie>

* IE: applying code suggestions

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* IE: add testcase for St. Brigid's Day

* IE: [ ] --> ( )

Co-authored-by: Arkadii Yakovets <ark@cho.red>

---------

Co-authored-by: Kevin Gill <kevin@movieextras.ie>
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Update Azerbaijan holidays (#961)

* Update Saudi Arabia holidays (#962)

* Malaysia observed holidays performance optimization (#963)

* Update Japan holidays localization: en_US (#964)

* Fix Japan en_US translation

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

---------

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Added Colombia localization (es, en_US, uk) (#965)

* Added Monaco localization (en_US, fr, uk) (#966)

* Update Argentina holidays, added Ukrainian localization (#968)

* Refactor calendars: extract from `utils.py` to `calendars.py`. (#969)

* Optimize Nigeria observed holidays

---------

Co-authored-by: delaosa <delaosa@gmail.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>
Co-authored-by: PPsyrius <19505219+PPsyrius@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>
Co-authored-by: Mike Borsetti <mike@borsetti.com>
Co-authored-by: Mike Borsetti <26698111+mborsetti@users.noreply.github.com>
Co-authored-by: dr-prodigy <dr.prodigy.github@gmail.com>
Co-authored-by: Alexander Schulze <alexanderschulze@users.noreply.github.com>
Co-authored-by: Kevin Gill <kevin@movieextras.ie>
@arkid15r arkid15r mentioned this pull request Mar 6, 2023
arkid15r added a commit that referenced this pull request Mar 22, 2023
* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Bolivia holidays update and refactoring

* Panama holidays added

* Refactor days offset calculation for recently added countries

* Change some of common.TestCase methods behavior:
  - `TestCase::assertHolidayName
  - `TestCase::assertHolidaysName`
  - `TestCase::assertNoHolidayName`

* Cuba holidays refactoring

* Hong Kong fix

* Thai Lunar Calendar added, exact start of holidays for historic use, refs, etc.

* In-code comment improvements for readability

* Add contact info in case future changes are needed

* Fixed syntax error

* TH Special Holidays code improvements

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH in lieu holiday trigger refactor

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: turns out <= <= is now a thing

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH testcases updated

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: case switch for standardizaton

* TH autoformatting from running `tox`

* TH: E266 comment block format adherence

* TH: E501 line too long format adherence (except link and Thai date names for now)

* TH: E501 cleanups. other final checks (for now)

* TH Sort testcase date

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Added tests for Thailand

* TH fixed Visakha Bucha trigger

* TH fixed wording, add missing special election holiday

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH fixes New Year's Eve (in lieu)

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH  Songkran special in lieu, fixes Queen Sirikit's bday error

No, you cannot simply changes your own birthday lmao, but the case is indeed correct for Mother's Day

* TH Asarnha-Buddhist Lent Day in lieu fixes

* TH: holiday limiter is ; not , (1)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: holiday limiter is ; not , (2)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (1)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (2)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (3)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (4)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove useless recursive call for `add_holiday`

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: improve test code

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: remove redundant function (5)

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: add missing `self.observed`, remove all defunct codes

* TH: further simplify Asarnha Bucha trigger

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: improve test code (2)

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Burundi holidays refactoring

* Fix Islamic holidays calculation
- fix for holidays that happen twice in a Gregorian year (primarily islamic New Year)
- years range checking more strictly

* Update environment:
  - Add Makefile, wrap common commands
  - Move all requirements file to `requirements` directory
  - Move tests from `test` to `tests` directory
  - Introduce `pytest-xdist`, make pytest running in parallel
  - Add local pre-push hook for tests
  - Format ci-cd.yml
  - Clean up pyproject.toml
  - Update tox.ini, make tox running in parallel
  - Update setup.cfg
  - Update CONTRIBUTION.rst instructions

* Add filter warnings comment.

* Fix utils tests.

* Set Python version for QA job.

* Run tests via 'make test'.

* TH: no `self.observed` needed if they already have special  in-lieus

* TH: adjust this for coverall tests

* docstring fix

* TH: Thai lunar calendar now works up to 1941, all trigger now starts in 1941

* TH: test case refractor + extend checks to 2030

Individual Holiday's test case:

- assertNoHoliday 1 year prior
- assertHoliday while exists
- assertNoHoliday 1 year post

- asserNoHoliday for holidays_no_observed for 2010-2030

* TH: Buddhist holiday extended testcases, applying suggestions

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* Tests update

* Update .pre-commit-config.yaml and tox.ini.

* Fix imports.

* Botswana observed holidays performance optimization

* Burundi observed holidays performance optimization

* Ukraine observed holidays performance optimization

* TH: remove `_en` suffix, `__init__(self, **kwargs):`

* TH: code improvements suggestions from @arkid15r

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: remove financial holiday stubs (this will be its own thing later)

* TH: move sources to 2nd row, `_ThaiLuniSolar` is now in util.py

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: add Atthami Bucha and Ok Phansa support for

* TH: fixed double `raeknakhwan` oversight

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `_ThaiLuniSolar` either returns date-type or None

* TH: `add_holiday` --> `_add_with_observed` for unified wording

* TH: `KJhellico`'s suggestions

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* Fix merge issues.

* TH: applying `arkid15r` 's suggestions

- Simplified __init__ section for Thailand's, removed for _ThaiLuniSolar
- Simplified _ThaiLuniSolar holiday codes
- _ThaiLuniSolar's comment are now docstrings
- Move all Thailand's holiday references to above limitations' section
- Remove Thailand's duplicate date checks (with TODO comments instead)
- Thailand's In Line comments are also moved to each holiday's header for better readability

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: in-line single instance holidays

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: forgot to re-sort this, oof

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: fixed duplicate var, other improvements

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* TH: clean up comments

* TH: back to `@lru_cache()` again

* Simplify test classes setup.
Update documentation.

* Exclude tests from the MANIFEST.in.

* Add Marshall Islands (ISO-3666-1 code MH)

* Fix Northern Mariana Islands (ISO-3666-2 code US-MP)

* Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States

* isort fix

* add TODO

* Lost some pieces on the way...

* MH additional testing for coverall

* Update holidays/countries/united_states.py

Thanks...no idea what's happening with snippets of code!

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Add United States Minor Outlying Islands (ISO-3666-2 code US-UM) (#940)

* ISO 3166-1 for US subdivisions (#941)

* Add Marshall Islands (ISO-3666-1 code MH)

* Fix Northern Mariana Islands (ISO-3666-2 code US-MP)

* Adds ISO 3166-1 entries for countries that are also ISO 3166-2 subdivisions of the United States

* isort fix

* add TODO

* Lost some pieces on the way...

* MH additional testing for coverall

* Update holidays/countries/united_states.py

Thanks...no idea what's happening with snippets of code!

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: dr-prodigy <dr.prodigy.github@gmail.com>

* Add International Women's Day for DE-MV (#936)

* Add internationaler Frauentag for DE-MV

* Remove trailing whitespace

* Remove .gitpod.yml

* Add .gitpod.yml to .gitignore

* Add tests for Frauentag in DE-MV

* CHANGES sync

* Return `None` explicitly. (#935)

* CHANGES sync

* Rework i18n.

* Update pre-commit settings.

* Fix Thailand related changes coverage decrease.

* Fix naming and minor issues in .pot files generator.

* Update translations.

* Add final fixes.

* Add additional cases.

* TH: additional testcases for the rest of Thai Lunar Holidays

* Fix Ukraine tests

* Fix ordering.

* Add missing cases.

* Rename dev env setup target.

* Suppress warnings for tests.

* Poland:
- added historical holidays
- added Ukrainian translation
- refactored tests

* header fix

* Optimize observed holidays for Mozambique, Namibia, Zambia, Zimbabwe

* Added test for Ukrainian

* Update Albania observed holidays

* National Day for Truth and Reconciliation in British Columbia (Canada)

* Optimize observed holidays for Angola, Eswatini, Kazakhstan, Kenya, Malawi, Singapore, South Africa

* fix

Co-authored-by: PPsyrius <19505219+PPsyrius@users.noreply.github.com>

* Localize ascii incompatible countries.
Add en_US localizatin for:
  - Armenia
  - Belarus
  - Bulgaria
  - Canada
  - Cyprus
  - Ethiopia
  - Georgia
  - Greece
  - Japan
  - Russia
  - Serbia
Update po generation files script.
Update MANIFEST.in.
Update README.rst.
Fix packaging.

* Fix headers.

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Fix mo cleanup process.

* Fix compatibility issue.

* Fix .po files related issues.

* Add .mo files generator. Rework `TestCase` base class l10n handling.

* Update Makefile.

* Re-enable fallback translation.

* Fix minor test issues.

* Update PR template.

* Update CHANGES.

* Update version format.

* Update CHANGES

* Bump mypy version. (#970)

* Fix readthedocs.io build: (#973)

- Add .readthedocs.yaml.
  - Update .gitignore.
  - Update .pre-commit-config.yaml.
  - Update Makefile.
  - Update tox.ini.

* Update CHANGES.

* Added Peru localization (es, en_US, uk)

* Update CHANGES

* Update .rst files.

* Add Thailand holidays localization: en_US, th (#946)

* TH: modify Thailand code to support i18n

* TH: applying `KJhellico`'s suggestion, more accurate titles

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: non-ASCII `msgid` fixed

* TH: Thai translation localisations

* TH: fixed mismatch file title

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* TH: `set_locale` -> `set_language`

* TH: switch default loc to `th`

* TH: split string

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: adjust file description (2)

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* TH: avoid explicit `# noqa: E501` usage

* TH: improved national day trigger

* TH: avoid explicit `# noqa: E501` for testcases

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Update Ireland holidays: St. Bridget's Day (#953)

* IE: Fixed St. Brigit's Day (Monday is the day itself, not `(observed)`)

Co-Authored-By: Kevin Gill <kevin@movieextras.ie>

* IE: applying code suggestions

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* IE: add testcase for St. Brigid's Day

* IE: [ ] --> ( )

Co-authored-by: Arkadii Yakovets <ark@cho.red>

---------

Co-authored-by: Kevin Gill <kevin@movieextras.ie>
Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Update Azerbaijan holidays (#961)

* Update Saudi Arabia holidays (#962)

* Malaysia observed holidays performance optimization (#963)

* Update Japan holidays localization: en_US (#964)

* Fix Japan en_US translation

* fix

Co-authored-by: Arkadii Yakovets <ark@cho.red>

---------

Co-authored-by: Arkadii Yakovets <ark@cho.red>

* Added Colombia localization (es, en_US, uk) (#965)

* Added Monaco localization (en_US, fr, uk) (#966)

* Update Argentina holidays, added Ukrainian localization (#968)

* Refactor calendars: extract from `utils.py` to `calendars.py`. (#969)

* Thai loc for Canadian holidays

* Update CHANGES.

* Improve Argentina holidays (#988)

* Initial ARG revamped logic + testcases

* AR: Ukranian Loc Part 1

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: Ukranian Loc Part 2

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: en_US Loc Part 1

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: Ukranian Loc Part 3

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: improve trigger Part 1

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: improve test case

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: Veterans Day logic improvements

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: Belgrano/Flag Day logic improvements

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: San Martin Day special case for 2011 check

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* AR:  Malvinas Sovereignty Day logic improvements

Co-Authored-By: ~Jhellico <KJhellico@users.noreply.github.com>

* AR: Implemented Arkid15r's suggestions

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* AR: Stricter PEP 8 Adherance

Co-Authored-By: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Co-authored-by: Arkadii Yakovets <2201626+arkid15r@users.noreply.github.com>

* Added functions for relative weekdays calculation (#989)

* Add Chile holidays localization: en_US, es, uk (#990)

* Clean up tests module loading. (#992)

Remove unused code from `tests/countries/__init__.py`.

* Refactor `HolidayBase::get_named` (#991)

* Refactor `HolidayBase::get_named`:
  - Add `lookup` parameter.
  - Add `contains/iexact/icontains/iexact` lookup types.
  - Keep the current behavior with `icontains` as default lookup type.

* Optimize holiday name lookups.
Use exact lookup for holiday name assertions.

* Use the built-in library for time zone functions (#993)

* Use the built-in library for time zone functions

* Improve coverage

* Extend to JP

* Fixed tox.ini typo (#994)

* Clean up Thailand localization and in-line code comments (#995)

* Cleans up TH documentation & localization files

* TH: Stricter PEP 8 Adherance

* Refactored Malaysia tests (#996)

* Update PR template. (#997)

* Add tox-ini-fmt to .pre-commit-config.yaml (#999)

* Add tox-ini-fmt to .pre-commit-config.yaml.

* Bump the version.

* Fixed New Year observed calculation for NYSE (#1000)

* Update CHANGES.

* Simplify l10n business logic.

* Migrate more countries.

* Update holiday groups PR.

* Update l10n documentation.

* Update Lithuania and Ukraine.

* Rework l10n.

* Update l10n documentation.
Revert Paraguay changes.

* Update PY `_add_holiday`.

* Use gettext as `tr`.

* Use `HolidayBase::_add_holiday` in more countries.

* Clean up more countries.

* Update docs.

* Update holidays/countries/canada.py

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>

* Check Cuba and Monaco cases.

---------

Co-authored-by: ~Jhellico <KJhellico@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants