Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@tharu-jwd
Copy link

Summary

This PR addresses issue #1717 by adding comprehensive documentation for holiday categories.

Changes Made

  • Created docs/holiday_categories.md: Complete documentation covering all available holiday categories including:

    • Official status categories (PUBLIC, GOVERNMENT, WORKDAY, UNOFFICIAL)
    • Institutional categories (BANK, SCHOOL, ARMED_FORCES)
    • Religious categories (CATHOLIC, ISLAMIC, HINDU, ORTHODOX, etc.)
    • Ethnic/cultural categories (ARMENIAN, TURKISH, SERBIAN, etc.)
    • Special categories (OPTIONAL, MANDATORY, HALF_DAY)
  • Enhanced docs/examples.md: Improved the holiday categories section with practical usage examples and reference link to detailed documentation

  • Added contributor: Added name to CONTRIBUTORS file

Documentation Features

  • Comprehensive category definitions with explanations
  • Practical code examples for single and multiple category usage
  • Implementation guidelines for contributors
  • Country-specific usage examples

Test Coverage

This is a documentation-only change. All examples have been tested to ensure they work correctly.

Closes #1717

- Create detailed holiday_categories.md documentation
- Enhance examples.md with improved category usage examples
- Add professional documentation for all 25+ category types
- Include usage examples and implementation guidelines
- Add contributor name to CONTRIBUTORS file

Addresses issue vacanza#1717
@Copilot Copilot AI review requested due to automatic review settings August 22, 2025 19:11
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 22, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive Holiday Categories guide covering taxonomy, defaults, per-country supported categories, and contributing/implementation guidance, with cross-links.
    • Overhauled examples to demonstrate single and multiple category filtering (including religious categories), case-sensitive matching, and country-specific supported categories, with updated usage snippets.
  • Chores
    • Added “Tharupahan Jayawardana” to the CONTRIBUTORS list.

Walkthrough

Adds comprehensive holiday category documentation (docs/holiday_categories.md), expands category examples in docs/examples.md, and appends a new entry to CONTRIBUTORS. No code, API, or runtime changes.

Changes

Cohort / File(s) Summary
Documentation: Holiday categories
docs/holiday_categories.md
New doc detailing category taxonomy (official, institutional, special, religious, ethnic/cultural), meanings, defaults, per-country supported_categories, usage examples, and contributor guidance.
Documentation: Examples updated
docs/examples.md
Reworked Holiday categories examples: single vs iterable categories, case-sensitivity, recommended constants, multi-category merging, religious filters, and per-country supported_categories samples.
Repository metadata
CONTRIBUTORS
Added contributor entry: Tharupahan Jayawardana.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Assessment against linked issues

Objective Addressed Explanation
Document holiday categories and provide explanatory examples [#1717]
Define and clarify the UNOFFICIAL category/criteria [#1717]
Provide examples across multiple entities/countries [#1717]

Out-of-scope changes

Code Change Explanation
Added contributor entry (CONTRIBUTORS) Metadata change unrelated to the documentation objectives in #1717; does not affect category documentation or examples.

Suggested reviewers

  • arkid15r
  • KJhellico
  • PPsyrius

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbit in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbit in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbit gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbit read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbit help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbit ignore or @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbit summary or @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbit or @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added the doc label Aug 22, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds comprehensive documentation for holiday categories in the holidays library, addressing issue #1717. The changes provide users with detailed guidance on filtering holidays by their official status, religious significance, and institutional relevance.

  • Created complete holiday categories documentation with definitions and usage examples
  • Enhanced existing examples documentation with practical category filtering examples
  • Added contributor information

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
docs/holiday_categories.md New comprehensive documentation covering all holiday category types with definitions, examples, and implementation guidelines
docs/examples.md Enhanced holiday categories section with practical usage examples and reference to detailed documentation
CONTRIBUTORS Added new contributor name to the contributors list

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Address Copilot feedback:
- Use constants format (BANK, PUBLIC) instead of strings ('bank', 'public')
- Add proper imports for holidays.constants
- Ensure consistent format across all examples
- All examples tested and verified to work correctly
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/holiday_categories.md (1)

1-289: Fix markdownlint MD032 and minor spacing.

Multiple lists are missing blank lines above/below (MD032). Sweep the file to ensure every bulleted list is surrounded by a blank line and remove any stray double-spaces flagged by LanguageTool.

docs/examples.md (2)

173-191: Belgium example is helpful; consider noting that merged categories may include sector-only days (e.g., Bank Holiday).

This sets user expectation when combining categories.

 >>> # Get both public and bank holidays for Belgium
 >>> for dt, name in sorted(holidays.BE(years=2023, language="en_US", categories=('bank', 'public')).items()):
->>>     print(dt, name)
+>>>     print(dt, name)  # Note: sector-only bank closures appear alongside public holidays.

146-224: Add note on accepted input types and case-sensitive matching

• In docs/examples.md, under “Basic Category Usage” (around line 150), insert:

 ### Basic Category Usage

+ categories accepts a single string (e.g., 'public') or an iterable of strings; matching is case-sensitive.

This clarifies that you can pass either one category or several, and that the library expects exact, lowercase category names.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 5079f5d and 2720aee.

📒 Files selected for processing (3)
  • CONTRIBUTORS (1 hunks)
  • docs/examples.md (2 hunks)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (11)
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-24T04:59:38.436Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:1-12
Timestamp: 2025-04-24T04:59:38.436Z
Learning: The holidays library uses a standard file header across country implementation files that includes copyright information, authors, website, and license details. New country implementation files should follow this same header format.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-06T14:40:31.932Z
Learnt from: KJhellico
PR: vacanza/holidays#2593
File: holidays/countries/senegal.py:66-110
Timestamp: 2025-06-06T14:40:31.932Z
Learning: In the holidays library, within the _populate_public_holidays method, holidays should be arranged by calendar type (Islamic holidays first, then Gregorian holidays) without additional type grouping comments. The organization by calendar type is sufficient and follows the project's established conventions.

Applied to files:

  • docs/holiday_categories.md
🪛 LanguageTool
docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly. ## Category Types ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly. ## Category Types ### Official Status Categories PUBLIC O...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ry Types ### Official Status Categories PUBLIC Official holidays recognized by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: There might be a mistake here.
Context: ...# Official Status Categories PUBLIC Official holidays recognized by the gove...

(QB_NEW_EN)


[grammar] ~14-~14: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most count...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~16-~16: There might be a mistake here.
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN)


[grammar] ~17-~17: There might be a mistake here.
Context: ...ples: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN)


[grammar] ~19-~19: Use correct spacing
Context: ...tmas Day in Christian-majority countries GOVERNMENT Holidays observed by govern...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~21-~21: There might be a mistake here.
Context: ...stian-majority countries GOVERNMENT Holidays observed by government institut...

(QB_NEW_EN)


[grammar] ~22-~22: Use correct spacing
Context: ...rovide general time off for all workers. Examples: - Flag Day in some jurisdictio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~24-~24: There might be a mistake here.
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...amples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~26-~26: Use correct spacing
Context: ...- Government-specific commemorative days WORKDAY Holidays that are officially r...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~29-~29: Use correct spacing
Context: ...n ceremonial or commemorative in nature. Examples: - Constitution Day in some cou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~31-~31: There might be a mistake here.
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN)


[grammar] ~32-~32: There might be a mistake here.
Context: ...es: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)


[grammar] ~33-~33: Use correct spacing
Context: ... are observed but not as public holidays UNOFFICIAL Commonly celebrated cultura...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~35-~35: There might be a mistake here.
Context: ...t not as public holidays UNOFFICIAL Commonly celebrated cultural holidays wi...

(QB_NEW_EN)


[grammar] ~36-~36: Use correct spacing
Context: ...rnment recognition or mandated time off. Examples: - Valentine's Day - Saint Patr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: There might be a mistake here.
Context: ...gnition or mandated time off. Examples: - Valentine's Day - Saint Patrick's Day ...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...d time off. Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### I...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~41-~41: Use correct spacing
Context: ... Day - Saint Patrick's Day - Halloween ### Institutional Categories BANK Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~43-~43: Use correct spacing
Context: ... Halloween ### Institutional Categories BANK Holidays specifically observed by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~45-~45: There might be a mistake here.
Context: ... ### Institutional Categories BANK Holidays specifically observed by bankin...

(QB_NEW_EN)


[style] ~46-~46: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in ...

(GENERAL_XX)


[grammar] ~46-~46: Use correct spacing
Context: ...may differ from general public holidays. Examples: - Good Friday (in some countri...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~48-~48: There might be a mistake here.
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...mples: - Good Friday (in some countries) - Additional banking-specific closures **...

(QB_NEW_EN)


[grammar] ~50-~50: Use correct spacing
Context: ...) - Additional banking-specific closures SCHOOL Holidays specific to educationa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~52-~52: There might be a mistake here.
Context: ...al banking-specific closures SCHOOL Holidays specific to educational institu...

(QB_NEW_EN)


[grammar] ~53-~53: Use correct spacing
Context: ...ys specific to educational institutions. Examples: - Teacher's Day - Education-sp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~55-~55: There might be a mistake here.
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN)


[grammar] ~56-~56: There might be a mistake here.
Context: ...institutions. Examples: - Teacher's Day - Education-specific observances **ARMED_...

(QB_NEW_EN)


[grammar] ~57-~57: Use correct spacing
Context: ...r's Day - Education-specific observances ARMED_FORCES Holidays specific to mili...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~59-~59: There might be a mistake here.
Context: ...n-specific observances ARMED_FORCES Holidays specific to military personnel ...

(QB_NEW_EN)


[grammar] ~60-~60: Use correct spacing
Context: ... to military personnel and institutions. Examples: - Armed Forces Day - Military ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~62-~62: There might be a mistake here.
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN)


[grammar] ~63-~63: There might be a mistake here.
Context: ...titutions. Examples: - Armed Forces Day - Military commemoration days ### Special...

(QB_NEW_EN)


[grammar] ~64-~64: Use correct spacing
Context: ...Forces Day - Military commemoration days ### Special Categories OPTIONAL Holiday...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~66-~66: Use correct spacing
Context: ...mmemoration days ### Special Categories OPTIONAL Holidays that individuals or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~68-~68: There might be a mistake here.
Context: ...ys ### Special Categories OPTIONAL Holidays that individuals or organizatio...

(QB_NEW_EN)


[grammar] ~69-~69: Use correct spacing
Context: ...ften with flexibility in implementation. Examples: - Religious holidays for minor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~71-~71: There might be a mistake here.
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN)


[grammar] ~72-~72: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)


[grammar] ~73-~73: Use correct spacing
Context: ...al observances with optional recognition MANDATORY Holidays that must be observ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~75-~75: There might be a mistake here.
Context: ...with optional recognition MANDATORY Holidays that must be observed by law in...

(QB_NEW_EN)


[grammar] ~76-~76: Use correct spacing
Context: ...be observed by law in specific contexts. HALF_DAY Holidays that are observed fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~78-~78: There might be a mistake here.
Context: ... law in specific contexts. HALF_DAY Holidays that are observed for only part...

(QB_NEW_EN)


[grammar] ~79-~79: Use correct spacing
Context: ...t are observed for only part of the day. Examples: - Christmas Eve (afternoon onl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~81-~81: There might be a mistake here.
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...amples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~83-~83: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories CATHOLIC Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~85-~85: Use correct spacing
Context: ...fternoon only) ### Religious Categories CATHOLIC Holidays specific to the Cath...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~87-~87: There might be a mistake here.
Context: ... ### Religious Categories CATHOLIC Holidays specific to the Catholic Christ...

(QB_NEW_EN)


[grammar] ~88-~88: Use correct spacing
Context: ...fic to the Catholic Christian tradition. Examples: - Feast of the Immaculate Conc...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~90-~90: There might be a mistake here.
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...es: - Feast of the Immaculate Conception - Corpus Christi CHRISTIAN General Ch...

(QB_NEW_EN)


[grammar] ~92-~92: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi CHRISTIAN General Christian holidays o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~94-~94: There might be a mistake here.
Context: ...nception - Corpus Christi CHRISTIAN General Christian holidays observed acro...

(QB_NEW_EN)


[grammar] ~95-~95: Use correct spacing
Context: ... holidays observed across denominations. Examples: - Easter Sunday - Christmas Da...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~97-~97: There might be a mistake here.
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day **ORTHODO...

(QB_NEW_EN)


[grammar] ~98-~98: There might be a mistake here.
Context: ...enominations. Examples: - Easter Sunday - Christmas Day ORTHODOX Holidays spe...

(QB_NEW_EN)


[grammar] ~99-~99: Use correct spacing
Context: ...xamples: - Easter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~101-~101: There might be a mistake here.
Context: ...ter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox Christian ...

(QB_NEW_EN)


[grammar] ~102-~102: Use correct spacing
Context: ...ecific to Orthodox Christian traditions. Examples: - Orthodox Easter - Orthodox C...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~104-~104: There might be a mistake here.
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas **...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...traditions. Examples: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays...

(QB_NEW_EN)


[grammar] ~106-~106: Use correct spacing
Context: ...: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic trad...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~108-~108: There might be a mistake here.
Context: ...Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic tradition. Ex...

(QB_NEW_EN)


[grammar] ~109-~109: Use correct spacing
Context: ...C** Holidays from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha *...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~111-~111: There might be a mistake here.
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Hol...

(QB_NEW_EN)


[grammar] ~112-~112: There might be a mistake here.
Context: ...amic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the...

(QB_NEW_EN)


[grammar] ~113-~113: Use correct spacing
Context: .... Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu traditio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~115-~115: There might be a mistake here.
Context: ...: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu tradition. Exam...

(QB_NEW_EN)


[grammar] ~116-~116: Use correct spacing
Context: ...NDU** Holidays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~118-~118: There might be a mistake here.
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from ...

(QB_NEW_EN)


[grammar] ~119-~119: There might be a mistake here.
Context: ...the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewis...

(QB_NEW_EN)


[grammar] ~120-~120: Use correct spacing
Context: ...du tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~122-~122: There might be a mistake here.
Context: .... Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradition. Exa...

(QB_NEW_EN)


[grammar] ~123-~123: Use correct spacing
Context: ...EW** Holidays from the Jewish tradition. Examples: - Yom Kippur - Passover **CHI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~125-~125: There might be a mistake here.
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover CHINESE Holid...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ...ewish tradition. Examples: - Yom Kippur - Passover CHINESE Holidays from Chin...

(QB_NEW_EN)


[grammar] ~127-~127: Use correct spacing
Context: ...tion. Examples: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~129-~129: There might be a mistake here.
Context: ...es: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural and relig...

(QB_NEW_EN)


[grammar] ~130-~130: Use correct spacing
Context: ...inese cultural and religious traditions. Examples: - Chinese New Year - Mid-Autum...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~132-~132: There might be a mistake here.
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN)


[grammar] ~133-~133: There might be a mistake here.
Context: ...raditions. Examples: - Chinese New Year - Mid-Autumn Festival SABIAN Holidays...

(QB_NEW_EN)


[grammar] ~134-~134: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~136-~136: There might be a mistake here.
Context: ...w Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian religiou...

(QB_NEW_EN)


[grammar] ~137-~137: Use correct spacing
Context: ...cific to the Sabian religious tradition. YAZIDI Holidays specific to the Yazidi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~139-~139: There might be a mistake here.
Context: ... Sabian religious tradition. YAZIDI Holidays specific to the Yazidi religiou...

(QB_NEW_EN)


[grammar] ~140-~140: Use correct spacing
Context: ...cific to the Yazidi religious tradition. ### Ethnic and Cultural Categories **ARMENI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~142-~142: Use correct spacing
Context: ...ion. ### Ethnic and Cultural Categories ARMENIAN Holidays specific to Armenian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~144-~144: There might be a mistake here.
Context: ...ic and Cultural Categories ARMENIAN Holidays specific to Armenian culture an...

(QB_NEW_EN)


[grammar] ~145-~145: Use correct spacing
Context: ...ific to Armenian culture and traditions. ALBANIAN Holidays specific to Albanian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~147-~147: There might be a mistake here.
Context: ...an culture and traditions. ALBANIAN Holidays specific to Albanian culture an...

(QB_NEW_EN)


[grammar] ~148-~148: Use correct spacing
Context: ...ific to Albanian culture and traditions. BOSNIAN Holidays specific to Bosnian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: There might be a mistake here.
Context: ...ian culture and traditions. BOSNIAN Holidays specific to Bosnian culture and...

(QB_NEW_EN)


[grammar] ~151-~151: Use correct spacing
Context: ...cific to Bosnian culture and traditions. SERBIAN Holidays specific to Serbian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~153-~153: There might be a mistake here.
Context: ...ian culture and traditions. SERBIAN Holidays specific to Serbian culture and...

(QB_NEW_EN)


[grammar] ~154-~154: Use correct spacing
Context: ...cific to Serbian culture and traditions. TURKISH Holidays specific to Turkish c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~156-~156: There might be a mistake here.
Context: ...ian culture and traditions. TURKISH Holidays specific to Turkish culture and...

(QB_NEW_EN)


[grammar] ~157-~157: Use correct spacing
Context: ...cific to Turkish culture and traditions. ROMA Holidays specific to Roma culture...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~159-~159: There might be a mistake here.
Context: ...urkish culture and traditions. ROMA Holidays specific to Roma culture and tr...

(QB_NEW_EN)


[grammar] ~160-~160: Use correct spacing
Context: ...specific to Roma culture and traditions. VLACH Holidays specific to Vlach cultu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~162-~162: There might be a mistake here.
Context: ... Roma culture and traditions. VLACH Holidays specific to Vlach culture and t...

(QB_NEW_EN)


[grammar] ~163-~163: Use correct spacing
Context: ...pecific to Vlach culture and traditions. ## Usage Examples ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~165-~165: Use correct spacing
Context: ...lture and traditions. ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~167-~167: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~169-~169: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays # Get only public holidays for the United States us_public = holidays.UnitedStates(categories='public', years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~179-~179: Use correct spacing
Context: ...`` ### Filtering by Multiple Categories Get holidays from multiple categories: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~181-~181: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=('public', 'bank'), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~192-~192: Use correct spacing
Context: ...e}") ### Religious Category Example python import holidays # Get only Catholic holidays in Germany germany_catholic = holidays.Germany(categories='catholic', years=2024) for date, name in sorted(germany_catholic.items()): print(f"{date}: {name}") ### Unofficial Holidays Example python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~203-~203: Use correct spacing
Context: ...}") ### Unofficial Holidays Example python import holidays # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories='unofficial', years=2024) for date, name in sorted(us_unofficial.items()): print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ``` ## Country-Specific Support Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~215-~215: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~217-~217: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~219-~219: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~234-~234: Use correct spacing
Context: ..., 'public') ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~236-~236: There might be a mistake here.
Context: ...Examples by Country United States: ('government', 'public', 'unofficial') - Supports federal holidays, state holiday...

(QB_NEW_EN)


[grammar] ~237-~237: Use correct spacing
Context: ...state holidays, and cultural observances Germany: ('catholic', 'public') - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~239-~239: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~240-~240: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~242-~242: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~243-~243: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~245-~245: There might be a mistake here.
Context: ...al regional observances Argentina: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') - Supports multiple religious traditions a...

(QB_NEW_EN)


[grammar] ~246-~246: There might be a mistake here.
Context: ... traditions and institutional categories ## Implementation Guidelines ### When Defi...

(QB_NEW_EN_OTHER)


[grammar] ~248-~248: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~250-~250: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~252-~252: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~257-~257: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~257-~257: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~259-~259: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~261-~261: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~262-~262: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~263-~263: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~264-~264: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~265-~265: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~266-~266: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)


[grammar] ~268-~268: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~270-~270: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories='public', years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~280-~280: Use correct spacing
Context: ...ublic', years=2024) ``` ## Contributing When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~282-~282: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~284-~284: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)


[grammar] ~285-~285: There might be a mistake here.
Context: ...dentify which categories are appropriate 3. Classify each holiday according to its o...

(QB_NEW_EN_OTHER)


[grammar] ~286-~286: There might be a mistake here.
Context: ...fficial status and cultural significance 4. Document the reasoning for category assi...

(QB_NEW_EN_OTHER)


[grammar] ~287-~287: There might be a mistake here.
Context: ...t the reasoning for category assignments 5. Provide examples in tests demonstrating ...

(QB_NEW_EN_OTHER)


[grammar] ~288-~288: There might be a mistake here.
Context: ...es in tests demonstrating category usage

(QB_NEW_EN_OTHER)

docs/examples.md

[grammar] ~146-~146: Use correct spacing
Context: ...ignificance, or institutional relevance. ### Basic Category Usage To get holidays fr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: Use correct spacing
Context: ...nal relevance. ### Basic Category Usage To get holidays from specific categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: Use correct spacing
Context: ...o get holidays from specific categories: python >>> import holidays >>> # Get only public holidays >>> us_public = holidays.UnitedStates(categories='public', years=2024) >>> len(us_public) 11 >>> # Get only unofficial holidays (cultural celebrations) >>> us_unofficial = holidays.UnitedStates(categories='unofficial', years=2024) >>> for date, name in sorted(us_unofficial.items()): >>> print(date, name) 2024-02-14 Valentine's Day 2024-03-17 Saint Patrick's Day 2024-10-31 Halloween ### Multiple Categories You can specify mul...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~168-~168: Use correct spacing
Context: ...1 Halloween ``` ### Multiple Categories You can specify multiple categories to g...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~170-~170: Use correct spacing
Context: ...ories to get a combined set of holidays: python >>> # Get both public and bank holidays for Belgium >>> for dt, name in sorted(holidays.BE(years=2023, language="en_US", categories=('bank', 'public')).items()): >>> print(dt, name) 2023-01-01 New Year's Day 2023-04-07 Good Friday 2023-04-09 Easter Sunday 2023-04-10 Easter Monday 2023-05-01 Labor Day 2023-05-18 Ascension Day 2023-05-19 Friday after Ascension Day 2023-05-28 Whit Sunday 2023-05-29 Whit Monday 2023-07-21 National Day 2023-08-15 Assumption Day 2023-11-01 All Saints' Day 2023-11-11 Armistice Day 2023-12-25 Christmas Day 2023-12-26 Bank Holiday ### Religious Categories Many countries sup...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~193-~193: Use correct spacing
Context: ...nk Holiday ``` ### Religious Categories Many countries support religious categor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~195-~195: Use correct spacing
Context: ...olidays specific to certain communities: python >>> # Get Catholic holidays in Germany >>> de_catholic = holidays.Germany(categories='catholic', years=2024) >>> for date, name in sorted(de_catholic.items()): >>> print(date, name) 2024-08-15 Mariä Himmelfahrt ### Checking Supported Categories Each coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~205-~205: Use correct spacing
Context: ...t ``` ### Checking Supported Categories Each country defines which categories it...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~207-~207: Use correct spacing
Context: ...ry defines which categories it supports: python >>> us = holidays.UnitedStates() >>> print("US categories:", us.supported_categories) US categories: ('government', 'public', 'unofficial') >>> de = holidays.Germany() >>> print("Germany categories:", de.supported_categories) Germany categories: ('catholic', 'public') >>> ar = holidays.Argentina() >>> print("Argentina categories:", ar.supported_categories) Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') For detailed information about all avail...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~223-~223: Use correct spacing
Context: ...s](holiday_categories.md) documentation. ## Working day-related calculations To che...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
docs/holiday_categories.md

17-17: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


25-25: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


39-39: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-49: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


63-63: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


72-72: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


82-82: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


91-91: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


98-98: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


105-105: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


112-112: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


119-119: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


126-126: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


133-133: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


237-237: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


240-240: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


243-243: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


246-246: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🔇 Additional comments (3)
CONTRIBUTORS (1)

156-156: LGTM: contributor added in correct alpha order.

Name insertion between Tewodros Meshesha and Thomas Bøvith preserves first-name alphabetical sorting. No formatting issues spotted.

docs/holiday_categories.md (1)

28-34: WORKDAY category validated

Confirmed that WORKDAY appears in the supported_categories tuple of the country classes (per your inventory of declared categories). It’s a real, implemented category, so the documentation snippet is correct as-is. No further changes needed.

docs/examples.md (1)

146-147: Nice addition; section purpose is clear.

The intro succinctly explains why categories matter.

Comment on lines 35 to 42
**UNOFFICIAL**
Commonly celebrated cultural holidays with no official government recognition or mandated time off.

Examples:
- Valentine's Day
- Saint Patrick's Day
- Halloween

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Document explicit inclusion/exclusion policy for UNOFFICIAL.

Issue #1717 asks to clarify which community/novelty days are included. Add crisp criteria and an explicit exclusion note (e.g., National Fruitcake Toss Day).

Apply this diff:

 **UNOFFICIAL**
 Commonly celebrated cultural holidays with no official government recognition or mandated time off.
 
 Examples:
 - Valentine's Day
 - Saint Patrick's Day  
 - Halloween
+
+Policy:
+- Include only widely observed, long-standing cultural observances with broad public recognition (e.g., commonly shown on mainstream calendars, widely covered by national media, or entrenched in custom).
+- Exclude novelty/internet/marketing “national days” and ephemeral observances (for example, National Fruitcake Toss Day), unless country maintainers explicitly justify inclusion with reliable sources.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**UNOFFICIAL**
Commonly celebrated cultural holidays with no official government recognition or mandated time off.
Examples:
- Valentine's Day
- Saint Patrick's Day
- Halloween
**UNOFFICIAL**
Commonly celebrated cultural holidays with no official government recognition or mandated time off.
Examples:
- Valentine’s Day
- Saint Patrick’s Day
- Halloween
Policy:
- Include only widely observed, long-standing cultural observances with broad public recognition (e.g., commonly shown on mainstream calendars, widely covered by national media, or entrenched in custom).
- Exclude novelty/internet/marketing “national days” and ephemeral observances (for example, National Fruitcake Toss Day), unless country maintainers explicitly justify inclusion with reliable sources.
🧰 Tools
🪛 LanguageTool

[grammar] ~35-~35: There might be a mistake here.
Context: ...t not as public holidays UNOFFICIAL Commonly celebrated cultural holidays wi...

(QB_NEW_EN)


[grammar] ~36-~36: Use correct spacing
Context: ...rnment recognition or mandated time off. Examples: - Valentine's Day - Saint Patr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: There might be a mistake here.
Context: ...gnition or mandated time off. Examples: - Valentine's Day - Saint Patrick's Day ...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...d time off. Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### I...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~41-~41: Use correct spacing
Context: ... Day - Saint Patrick's Day - Halloween ### Institutional Categories BANK Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)

39-39: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🤖 Prompt for AI Agents
In docs/holiday_categories.md around lines 35 to 42, the UNOFFICIAL section
needs a clear inclusion/exclusion policy: add a short criteria sentence listing
what counts (widely observed cultural/folk celebrations with recurring annual
observance, significant public participation or cultural relevance, but lacking
government recognition or mandated time off) and an explicit exclusion sentence
listing trivial, one-off, niche or novelty observances (e.g., National Fruitcake
Toss Day, obscure social-media micro-hashtags, product-promotion "days") that
should not be considered UNOFFICIAL; keep the wording crisp, 1–2 sentences for
inclusion and 1 sentence for exclusions, and append a brief note that entries
should be evaluated for recurring public participation before classification.

@codecov
Copy link

codecov bot commented Aug 22, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (5079f5d) to head (3def422).
⚠️ Report is 17 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##               dev     #2851    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files          287       292     +5     
  Lines        17090     17330   +240     
  Branches      2228      2259    +31     
==========================================
+ Hits         17090     17330   +240     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/holiday_categories.md (1)

286-293: Contributing/tests: note that localization tests must include all categories.

Tests like assertLocalizedHolidays require the full set across categories, not only PUBLIC.

 When contributing new countries or updating existing ones:
@@
-5. Provide examples in tests demonstrating category usage
+5. Provide examples in tests demonstrating category usage
+6. In localization tests, include holidays from all supported categories (not just PUBLIC) so assertions cover the complete set.
♻️ Duplicate comments (7)
docs/holiday_categories.md (5)

35-42: Document clear inclusion/exclusion policy for UNOFFICIAL and fix trailing spaces.

Add crisp criteria and explicitly exclude novelty “national day” items; also remove the double space at the end of “Saint Patrick’s Day”.

 **UNOFFICIAL**
-Commonly celebrated cultural holidays with no official government recognition or mandated time off.
+Commonly celebrated cultural holidays with no official government recognition or mandated time off.
+
+Policy:
+- Include only widely observed, recurring cultural observances with broad public recognition (e.g., present on mainstream calendars or widely covered by national media).
+- Exclude novelty/internet/marketing “national days” and ephemeral observances (for example, National Fruitcake Toss Day), unless country maintainers explicitly justify inclusion with reliable sources.

 Examples:
 - Valentine's Day
-- Saint Patrick's Day  
+- Saint Patrick's Day
 - Halloween

136-141: SABIAN and YAZIDI entries need at least one example or a pointer.

Provide one representative holiday or a short note on locales/communities where these occur; if uncertain, add a “See also” pointer to countries using them.

 **SABIAN**
 Holidays specific to the Sabian religious tradition.
+Examples:
+- Mandaean New Year (Dehwa Rabba) — observed by Mandaean communities.

 **YAZIDI**
 Holidays specific to the Yazidi religious tradition.
+Examples:
+- Feast of the Assembly (Cejna Cemaiya) — observed by Yazidi communities.

142-164: Ethnic/cultural categories lack discoverability; add one example or a “used in” pointer per entry.

Add a single representative example or link readers to countries that currently use these categories to reduce guesswork.

 **ARMENIAN**
 Holidays specific to Armenian culture and traditions.
+Examples:
+- Armenian Genocide Remembrance Day — used in countries with Armenian communities.

 **ALBANIAN**
 Holidays specific to Albanian culture and traditions.
+Examples:
+- Used in countries/regions with Albanian communities.

 **BOSNIAN**
 Holidays specific to Bosnian culture and traditions.
+Examples:
+- Used in Bosnia and Herzegovina and diaspora contexts.

 **SERBIAN**
 Holidays specific to Serbian culture and traditions.
+Examples:
+- Serbian Statehood Day — Serbia.

 **TURKISH**
 Holidays specific to Turkish culture and traditions.
+Examples:
+- Republic Day — Turkey.

 **ROMA**
 Holidays specific to Roma culture and traditions.
+Examples:
+- International Romani Day — widely observed by Roma communities.

 **VLACH**
 Holidays specific to Vlach culture and traditions.
+Examples:
+- St. George’s Day traditions — Vlach communities (Balkans).

225-236: Avoid hard-coded “Output:” tuples; add a stability note or remove them.

These will drift as implementations evolve. Prefer a note indicating outputs may vary.

 us = holidays.UnitedStates()
 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
 
 de = holidays.Germany()
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Note: Exact values may change over time; check at runtime.

272-282: Tighten default behavior wording.

Say definitively that PUBLIC is the default unless categories are specified.

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the `categories` parameter.
 
 ```python
 import holidays
 
-# These are equivalent for most countries
+# These are equivalent:
 us_default = holidays.UnitedStates(years=2024)
 us_public = holidays.UnitedStates(categories='public', years=2024)

</blockquote></details>
<details>
<summary>docs/examples.md (2)</summary><blockquote>

`150-158`: **Avoid brittle numeric output; mark as illustrative or remove exact count.**

The fixed “11” will drift. Make the count non-normative.  



```diff
 >>> # Get only public holidays
 >>> us_public = holidays.UnitedStates(categories='public', years=2024)
->>> len(us_public)
-11
+>>> # Count depends on the year and observance rules; illustrative only.
+>>> len(us_public)

210-222: supported_categories output may change; add a stability note.

Keep the example but signal non-normative outputs to prevent future drift.

 >>> ar = holidays.Argentina()
 >>> print("Argentina categories:", ar.supported_categories)
 Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')

+# Note: Exact values may change over time; check at runtime.


</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: ASSERTIVE

**Plan**: Pro

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 2720aee8b1fef0c1ebef7b5c3d25414908badabc and f59a107144a9105e01aac183004ab66171135371.

</details>

<details>
<summary>📒 Files selected for processing (2)</summary>

* `docs/examples.md` (2 hunks)
* `docs/holiday_categories.md` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧠 Learnings (20)</summary>

<details>
<summary>📚 Learning: 2025-05-04T10:29:46.780Z</summary>

Learnt from: KJhellico
PR: #2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the supported_categories tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from supported_categories.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-19T05:54:49.792Z</summary>

Learnt from: PPsyrius
PR: #2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-04-08T14:46:10.656Z</summary>

Learnt from: KJhellico
PR: #2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify supported_categories = (PUBLIC,) when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-03-04T11:32:45.095Z</summary>

Learnt from: PPsyrius
PR: #2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (government, mandatory, and public), which are utilized by syntactic sugar methods.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-03-04T11:32:45.095Z</summary>

Learnt from: PPsyrius
PR: #2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like special_government_holidays, special_mandatory_holidays, and special_public_holidays), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-18T13:06:16.919Z</summary>

Learnt from: KJhellico
PR: #2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The assertLocalizedHolidays method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-06-16T11:42:28.293Z</summary>

Learnt from: PPsyrius
PR: #2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-04-23T09:22:41.753Z</summary>

Learnt from: PPsyrius
PR: #2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-07-17T11:07:04.986Z</summary>

Learnt from: KJhellico
PR: #2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-03T12:59:53.286Z</summary>

Learnt from: KJhellico
PR: #2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-16T15:48:48.680Z</summary>

Learnt from: PPsyrius
PR: #2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (class Test{Country}(CommonCountryTests, TestCase):) without docstrings. This is an established codebase convention that should be maintained for consistency.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-08-08T10:33:55.695Z</summary>

Learnt from: KJhellico
PR: #2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*(' to avoid overcounting non-entry quoted lines. As of PR #2763, this yields 227 entries.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-07-15T15:00:32.728Z</summary>

Learnt from: KJhellico
PR: #2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.


**Applied to files:**
- `docs/holiday_categories.md`
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-16T12:28:31.641Z</summary>

Learnt from: PPsyrius
PR: #2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-08-03T13:48:11.910Z</summary>

Learnt from: KJhellico
PR: #2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-03-04T11:41:56.389Z</summary>

Learnt from: PPsyrius
PR: #2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.


**Applied to files:**
- `docs/holiday_categories.md`

</details>
<details>
<summary>📚 Learning: 2025-07-24T15:21:31.632Z</summary>

Learnt from: PPsyrius
PR: #2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is test_no_holidays, not more descriptive names like test_no_holidays_before_1990. This is a consistent naming convention across country test files like France and Germany.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-06T14:40:31.932Z</summary>

Learnt from: KJhellico
PR: #2593
File: holidays/countries/senegal.py:66-110
Timestamp: 2025-06-06T14:40:31.932Z
Learning: In the holidays library, within the _populate_public_holidays method, holidays should be arranged by calendar type (Islamic holidays first, then Gregorian holidays) without additional type grouping comments. The organization by calendar type is sufficient and follows the project's established conventions.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-07-10T03:36:16.461Z</summary>

Learnt from: PPsyrius
PR: #2706
File: holidays/countries/cayman_islands.py:80-97
Timestamp: 2025-07-10T03:36:16.461Z
Learning: In the holidays library, date dictionaries that map years to specific dates (like queens_birthday_dates, special holiday dates, etc.) are typically defined within the _populate_public_holidays method rather than as module-level constants. This is the established library-wide pattern and should be maintained for consistency.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-07-10T03:36:16.461Z</summary>

Learnt from: PPsyrius
PR: #2706
File: holidays/countries/cayman_islands.py:80-97
Timestamp: 2025-07-10T03:36:16.461Z
Learning: In the holidays library, date dictionaries that map years to specific dates (like queens_birthday_dates, spring_bank_dates, thanksgiving_day_dates, etc.) are typically defined within the _populate_public_holidays method rather than as module-level constants. This is the established library-wide pattern seen across multiple country implementations including United Kingdom, United States, Sri Lanka, and others.


**Applied to files:**
- `docs/examples.md`

</details>

</details><details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>docs/holiday_categories.md</summary>

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories  The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance.  ## Overview  Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance.  ## Overview  Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly.  ## Category Types  ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly.  ## Category Types  ### Official Status Categories  **PUBLIC** O...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~11-~11: Use correct spacing
Context: ...ry Types  ### Official Status Categories  **PUBLIC** Official holidays recognized by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~13-~13: There might be a mistake here.
Context: ...# Official Status Categories  **PUBLIC** Official holidays recognized by the gove...

(QB_NEW_EN)

---

[grammar] ~14-~14: Use correct spacing
Context: ...k and school for the general population.  Examples: - New Year's Day in most count...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~16-~16: There might be a mistake here.
Context: ...l for the general population.  Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN)

---

[grammar] ~17-~17: There might be a mistake here.
Context: ...ples: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN)

---

[grammar] ~18-~18: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN)

---

[grammar] ~19-~19: Use correct spacing
Context: ...tmas Day in Christian-majority countries  **GOVERNMENT** Holidays observed by govern...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~21-~21: There might be a mistake here.
Context: ...stian-majority countries  **GOVERNMENT** Holidays observed by government institut...

(QB_NEW_EN)

---

[grammar] ~22-~22: Use correct spacing
Context: ...rovide general time off for all workers.  Examples: - Flag Day in some jurisdictio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~24-~24: There might be a mistake here.
Context: ...ral time off for all workers.  Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN)

---

[grammar] ~25-~25: There might be a mistake here.
Context: ...amples: - Flag Day in some jurisdictions - Government-specific commemorative days  ...

(QB_NEW_EN)

---

[grammar] ~26-~26: Use correct spacing
Context: ...- Government-specific commemorative days  **WORKDAY** Holidays that are officially r...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~29-~29: Use correct spacing
Context: ...n ceremonial or commemorative in nature.  Examples: - Constitution Day in some cou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~31-~31: There might be a mistake here.
Context: ...l or commemorative in nature.  Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN)

---

[grammar] ~32-~32: There might be a mistake here.
Context: ...es: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)

---

[grammar] ~33-~33: Use correct spacing
Context: ... are observed but not as public holidays  **UNOFFICIAL** Commonly celebrated cultura...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~35-~35: There might be a mistake here.
Context: ...t not as public holidays  **UNOFFICIAL** Commonly celebrated cultural holidays wi...

(QB_NEW_EN)

---

[grammar] ~36-~36: Use correct spacing
Context: ...rnment recognition or mandated time off.  Examples: - Valentine's Day - Saint Patr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~38-~38: There might be a mistake here.
Context: ...gnition or mandated time off.  Examples: - Valentine's Day - Saint Patrick's Day   ...

(QB_NEW_EN)

---

[grammar] ~39-~39: There might be a mistake here.
Context: ...d time off.  Examples: - Valentine's Day - Saint Patrick's Day   - Halloween  ### I...

(QB_NEW_EN)

---

[grammar] ~40-~40: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day   - Halloween  ### Institutional Categories ...

(QB_NEW_EN)

---

[grammar] ~41-~41: Use correct spacing
Context: ... Day - Saint Patrick's Day   - Halloween  ### Institutional Categories  **BANK** Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~43-~43: Use correct spacing
Context: ... Halloween  ### Institutional Categories  **BANK** Holidays specifically observed by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~45-~45: There might be a mistake here.
Context: ...  ### Institutional Categories  **BANK** Holidays specifically observed by bankin...

(QB_NEW_EN)

---

[style] ~46-~46: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays.  Examples: - Good Friday (in ...

(GENERAL_XX)

---

[grammar] ~46-~46: Use correct spacing
Context: ...may differ from general public holidays.  Examples: - Good Friday (in some countri...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~48-~48: There might be a mistake here.
Context: ...from general public holidays.  Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN)

---

[grammar] ~49-~49: There might be a mistake here.
Context: ...mples: - Good Friday (in some countries) - Additional banking-specific closures  **...

(QB_NEW_EN)

---

[grammar] ~50-~50: Use correct spacing
Context: ...) - Additional banking-specific closures  **SCHOOL** Holidays specific to educationa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~52-~52: There might be a mistake here.
Context: ...al banking-specific closures  **SCHOOL** Holidays specific to educational institu...

(QB_NEW_EN)

---

[grammar] ~53-~53: Use correct spacing
Context: ...ys specific to educational institutions.  Examples: - Teacher's Day - Education-sp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~55-~55: There might be a mistake here.
Context: ... to educational institutions.  Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN)

---

[grammar] ~56-~56: There might be a mistake here.
Context: ...institutions.  Examples: - Teacher's Day - Education-specific observances  **ARMED_...

(QB_NEW_EN)

---

[grammar] ~57-~57: Use correct spacing
Context: ...r's Day - Education-specific observances  **ARMED_FORCES** Holidays specific to mili...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~59-~59: There might be a mistake here.
Context: ...n-specific observances  **ARMED_FORCES** Holidays specific to military personnel ...

(QB_NEW_EN)

---

[grammar] ~60-~60: Use correct spacing
Context: ... to military personnel and institutions.  Examples: - Armed Forces Day - Military ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~62-~62: There might be a mistake here.
Context: ...y personnel and institutions.  Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN)

---

[grammar] ~63-~63: There might be a mistake here.
Context: ...titutions.  Examples: - Armed Forces Day - Military commemoration days  ### Special...

(QB_NEW_EN)

---

[grammar] ~64-~64: Use correct spacing
Context: ...Forces Day - Military commemoration days  ### Special Categories  **OPTIONAL** Holiday...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~66-~66: Use correct spacing
Context: ...mmemoration days  ### Special Categories  **OPTIONAL** Holidays that individuals or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~68-~68: There might be a mistake here.
Context: ...ys  ### Special Categories  **OPTIONAL** Holidays that individuals or organizatio...

(QB_NEW_EN)

---

[grammar] ~69-~69: Use correct spacing
Context: ...ften with flexibility in implementation.  Examples: - Religious holidays for minor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~71-~71: There might be a mistake here.
Context: ...lexibility in implementation.  Examples: - Religious holidays for minority populati...

(QB_NEW_EN)

---

[grammar] ~72-~72: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)

---

[grammar] ~73-~73: Use correct spacing
Context: ...al observances with optional recognition  **MANDATORY** Holidays that must be observ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~75-~75: There might be a mistake here.
Context: ...with optional recognition  **MANDATORY** Holidays that must be observed by law in...

(QB_NEW_EN)

---

[grammar] ~76-~76: Use correct spacing
Context: ...be observed by law in specific contexts.  **HALF_DAY** Holidays that are observed fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~78-~78: There might be a mistake here.
Context: ... law in specific contexts.  **HALF_DAY** Holidays that are observed for only part...

(QB_NEW_EN)

---

[grammar] ~79-~79: Use correct spacing
Context: ...t are observed for only part of the day.  Examples: - Christmas Eve (afternoon onl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~81-~81: There might be a mistake here.
Context: ...ved for only part of the day.  Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN)

---

[grammar] ~82-~82: There might be a mistake here.
Context: ...amples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only)  ### Rel...

(QB_NEW_EN)

---

[grammar] ~83-~83: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only)  ### Religious Categories  **CATHOLIC** Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~85-~85: Use correct spacing
Context: ...fternoon only)  ### Religious Categories  **CATHOLIC** Holidays specific to the Cath...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~87-~87: There might be a mistake here.
Context: ...  ### Religious Categories  **CATHOLIC** Holidays specific to the Catholic Christ...

(QB_NEW_EN)

---

[grammar] ~88-~88: Use correct spacing
Context: ...fic to the Catholic Christian tradition.  Examples: - Feast of the Immaculate Conc...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~90-~90: There might be a mistake here.
Context: ...Catholic Christian tradition.  Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN)

---

[grammar] ~91-~91: There might be a mistake here.
Context: ...es: - Feast of the Immaculate Conception - Corpus Christi  **CHRISTIAN** General Ch...

(QB_NEW_EN)

---

[grammar] ~92-~92: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi  **CHRISTIAN** General Christian holidays o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~94-~94: There might be a mistake here.
Context: ...nception - Corpus Christi  **CHRISTIAN** General Christian holidays observed acro...

(QB_NEW_EN)

---

[grammar] ~95-~95: Use correct spacing
Context: ... holidays observed across denominations.  Examples: - Easter Sunday - Christmas Da...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~97-~97: There might be a mistake here.
Context: ...bserved across denominations.  Examples: - Easter Sunday - Christmas Day  **ORTHODO...

(QB_NEW_EN)

---

[grammar] ~98-~98: There might be a mistake here.
Context: ...enominations.  Examples: - Easter Sunday - Christmas Day  **ORTHODOX** Holidays spe...

(QB_NEW_EN)

---

[grammar] ~99-~99: Use correct spacing
Context: ...xamples: - Easter Sunday - Christmas Day  **ORTHODOX** Holidays specific to Orthodox...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~101-~101: There might be a mistake here.
Context: ...ter Sunday - Christmas Day  **ORTHODOX** Holidays specific to Orthodox Christian ...

(QB_NEW_EN)

---

[grammar] ~102-~102: Use correct spacing
Context: ...ecific to Orthodox Christian traditions.  Examples: - Orthodox Easter - Orthodox C...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~104-~104: There might be a mistake here.
Context: ...rthodox Christian traditions.  Examples: - Orthodox Easter - Orthodox Christmas  **...

(QB_NEW_EN)

---

[grammar] ~105-~105: There might be a mistake here.
Context: ...traditions.  Examples: - Orthodox Easter - Orthodox Christmas  **ISLAMIC** Holidays...

(QB_NEW_EN)

---

[grammar] ~106-~106: Use correct spacing
Context: ...: - Orthodox Easter - Orthodox Christmas  **ISLAMIC** Holidays from the Islamic trad...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~108-~108: There might be a mistake here.
Context: ...Easter - Orthodox Christmas  **ISLAMIC** Holidays from the Islamic tradition.  Ex...

(QB_NEW_EN)

---

[grammar] ~109-~109: Use correct spacing
Context: ...C** Holidays from the Islamic tradition.  Examples: - Eid al-Fitr - Eid al-Adha  *...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~111-~111: There might be a mistake here.
Context: ...s from the Islamic tradition.  Examples: - Eid al-Fitr - Eid al-Adha  **HINDU** Hol...

(QB_NEW_EN)

---

[grammar] ~112-~112: There might be a mistake here.
Context: ...amic tradition.  Examples: - Eid al-Fitr - Eid al-Adha  **HINDU** Holidays from the...

(QB_NEW_EN)

---

[grammar] ~113-~113: Use correct spacing
Context: ....  Examples: - Eid al-Fitr - Eid al-Adha  **HINDU** Holidays from the Hindu traditio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~115-~115: There might be a mistake here.
Context: ...: - Eid al-Fitr - Eid al-Adha  **HINDU** Holidays from the Hindu tradition.  Exam...

(QB_NEW_EN)

---

[grammar] ~116-~116: Use correct spacing
Context: ...NDU** Holidays from the Hindu tradition.  Examples: - Diwali - Holi  **HEBREW** Ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~118-~118: There might be a mistake here.
Context: ...ays from the Hindu tradition.  Examples: - Diwali - Holi  **HEBREW** Holidays from ...

(QB_NEW_EN)

---

[grammar] ~119-~119: There might be a mistake here.
Context: ...the Hindu tradition.  Examples: - Diwali - Holi  **HEBREW** Holidays from the Jewis...

(QB_NEW_EN)

---

[grammar] ~120-~120: Use correct spacing
Context: ...du tradition.  Examples: - Diwali - Holi  **HEBREW** Holidays from the Jewish tradit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~122-~122: There might be a mistake here.
Context: ....  Examples: - Diwali - Holi  **HEBREW** Holidays from the Jewish tradition.  Exa...

(QB_NEW_EN)

---

[grammar] ~123-~123: Use correct spacing
Context: ...EW** Holidays from the Jewish tradition.  Examples: - Yom Kippur - Passover  **CHI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~125-~125: There might be a mistake here.
Context: ...ys from the Jewish tradition.  Examples: - Yom Kippur - Passover  **CHINESE** Holid...

(QB_NEW_EN)

---

[grammar] ~126-~126: There might be a mistake here.
Context: ...ewish tradition.  Examples: - Yom Kippur - Passover  **CHINESE** Holidays from Chin...

(QB_NEW_EN)

---

[grammar] ~127-~127: Use correct spacing
Context: ...tion.  Examples: - Yom Kippur - Passover  **CHINESE** Holidays from Chinese cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~129-~129: There might be a mistake here.
Context: ...es: - Yom Kippur - Passover  **CHINESE** Holidays from Chinese cultural and relig...

(QB_NEW_EN)

---

[grammar] ~130-~130: Use correct spacing
Context: ...inese cultural and religious traditions.  Examples: - Chinese New Year - Mid-Autum...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~132-~132: There might be a mistake here.
Context: ...ral and religious traditions.  Examples: - Chinese New Year - Mid-Autumn Festival  ...

(QB_NEW_EN)

---

[grammar] ~133-~133: There might be a mistake here.
Context: ...raditions.  Examples: - Chinese New Year - Mid-Autumn Festival  **SABIAN** Holidays...

(QB_NEW_EN)

---

[grammar] ~134-~134: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival  **SABIAN** Holidays specific to the Sabian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~136-~136: There might be a mistake here.
Context: ...w Year - Mid-Autumn Festival  **SABIAN** Holidays specific to the Sabian religiou...

(QB_NEW_EN)

---

[grammar] ~137-~137: Use correct spacing
Context: ...cific to the Sabian religious tradition.  **YAZIDI** Holidays specific to the Yazidi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~139-~139: There might be a mistake here.
Context: ... Sabian religious tradition.  **YAZIDI** Holidays specific to the Yazidi religiou...

(QB_NEW_EN)

---

[grammar] ~140-~140: Use correct spacing
Context: ...cific to the Yazidi religious tradition.  ### Ethnic and Cultural Categories  **ARMENI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~142-~142: Use correct spacing
Context: ...ion.  ### Ethnic and Cultural Categories  **ARMENIAN** Holidays specific to Armenian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~144-~144: There might be a mistake here.
Context: ...ic and Cultural Categories  **ARMENIAN** Holidays specific to Armenian culture an...

(QB_NEW_EN)

---

[grammar] ~145-~145: Use correct spacing
Context: ...ific to Armenian culture and traditions.  **ALBANIAN** Holidays specific to Albanian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~147-~147: There might be a mistake here.
Context: ...an culture and traditions.  **ALBANIAN** Holidays specific to Albanian culture an...

(QB_NEW_EN)

---

[grammar] ~148-~148: Use correct spacing
Context: ...ific to Albanian culture and traditions.  **BOSNIAN** Holidays specific to Bosnian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~150-~150: There might be a mistake here.
Context: ...ian culture and traditions.  **BOSNIAN** Holidays specific to Bosnian culture and...

(QB_NEW_EN)

---

[grammar] ~151-~151: Use correct spacing
Context: ...cific to Bosnian culture and traditions.  **SERBIAN** Holidays specific to Serbian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~153-~153: There might be a mistake here.
Context: ...ian culture and traditions.  **SERBIAN** Holidays specific to Serbian culture and...

(QB_NEW_EN)

---

[grammar] ~154-~154: Use correct spacing
Context: ...cific to Serbian culture and traditions.  **TURKISH** Holidays specific to Turkish c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~156-~156: There might be a mistake here.
Context: ...ian culture and traditions.  **TURKISH** Holidays specific to Turkish culture and...

(QB_NEW_EN)

---

[grammar] ~157-~157: Use correct spacing
Context: ...cific to Turkish culture and traditions.  **ROMA** Holidays specific to Roma culture...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~159-~159: There might be a mistake here.
Context: ...urkish culture and traditions.  **ROMA** Holidays specific to Roma culture and tr...

(QB_NEW_EN)

---

[grammar] ~160-~160: Use correct spacing
Context: ...specific to Roma culture and traditions.  **VLACH** Holidays specific to Vlach cultu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~162-~162: There might be a mistake here.
Context: ... Roma culture and traditions.  **VLACH** Holidays specific to Vlach culture and t...

(QB_NEW_EN)

---

[grammar] ~163-~163: Use correct spacing
Context: ...pecific to Vlach culture and traditions.  ## Usage Examples  ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~165-~165: Use correct spacing
Context: ...lture and traditions.  ## Usage Examples  ### Filtering by Single Category  Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~167-~167: Use correct spacing
Context: ...amples  ### Filtering by Single Category  Get only public holidays:  ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~169-~169: Use correct spacing
Context: ...ngle Category  Get only public holidays:  ```python import holidays from holidays.constants import PUBLIC  # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ```  ### Filtering by Multiple Categories  Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~180-~180: Use correct spacing
Context: ...``  ### Filtering by Multiple Categories  Get holidays from multiple categories:  ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~182-~182: Use correct spacing
Context: ...  Get holidays from multiple categories:  ```python import holidays from holidays.constants import PUBLIC, BANK  # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()):     print(f"{date}: {name}") ```  ### Religious Category Example  ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~194-~194: Use correct spacing
Context: ...e}") ```  ### Religious Category Example  ```python import holidays from holidays.constants import CATHOLIC  # Get only Catholic holidays in Germany germany_catholic = holidays.Germany(categories=CATHOLIC, years=2024) for date, name in sorted(germany_catholic.items()):     print(f"{date}: {name}") ```  ### Unofficial Holidays Example  ```python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~206-~206: Use correct spacing
Context: ...}") ```  ### Unofficial Holidays Example  ```python import holidays from holidays.constants import UNOFFICIAL  # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) for date, name in sorted(us_unofficial.items()):     print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ```  ## Country-Specific Support  Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~219-~219: Use correct spacing
Context: ...n, etc. ```  ## Country-Specific Support  Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~221-~221: Use correct spacing
Context: ...sed on its legal and cultural framework.  ### Checking Supported Categories  ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~223-~223: Use correct spacing
Context: ...work.  ### Checking Supported Categories  ```python import holidays  # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial')  de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') ```  ### Examples by Country  **United States**: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~238-~238: Use correct spacing
Context: ..., 'public') ```  ### Examples by Country  **United States**: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~240-~240: There might be a mistake here.
Context: ...Examples by Country  **United States**: `('government', 'public', 'unofficial')` - Supports federal holidays, state holiday...

(QB_NEW_EN)

---

[grammar] ~241-~241: Use correct spacing
Context: ...state holidays, and cultural observances  **Germany**: `('catholic', 'public')` - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~243-~243: There might be a mistake here.
Context: ... and cultural observances  **Germany**: `('catholic', 'public')` - Supports public holidays and Catholic re...

(QB_NEW_EN)

---

[grammar] ~244-~244: Use correct spacing
Context: ...ic religious holidays in certain regions  **India**: `('optional', 'public')` - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~246-~246: There might be a mistake here.
Context: ...holidays in certain regions  **India**: `('optional', 'public')` - Supports national holidays and optional ...

(QB_NEW_EN)

---

[grammar] ~247-~247: Use correct spacing
Context: ...lidays and optional regional observances  **Argentina**: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~249-~249: There might be a mistake here.
Context: ...al regional observances  **Argentina**: `('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')` - Supports multiple religious traditions a...

(QB_NEW_EN)

---

[grammar] ~250-~250: There might be a mistake here.
Context: ... traditions and institutional categories  ## Implementation Guidelines  ### When Defi...

(QB_NEW_EN_OTHER)

---

[grammar] ~252-~252: Use correct spacing
Context: ...categories  ## Implementation Guidelines  ### When Defining New Countries  When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~254-~254: Use correct spacing
Context: ...delines  ### When Defining New Countries  When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~256-~256: Use correct spacing
Context: ...ing support for a new country, consider:  1. **Official Status**: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~261-~261: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances?  ### Categor...

(QB_NEW_EN_OTHER)

---

[grammar] ~261-~261: Use correct spacing
Context: ...or government have specific observances?  ### Category Selection Principles  - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~263-~263: Use correct spacing
Context: ...nces?  ### Category Selection Principles  - **PUBLIC**: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~265-~265: There might be a mistake here.
Context: ...ys mandated by law with general time off - **GOVERNMENT**: Official observances witho...

(QB_NEW_EN)

---

[grammar] ~266-~266: There might be a mistake here.
Context: ...ial observances without general time off - **WORKDAY**: Recognized but working holida...

(QB_NEW_EN)

---

[grammar] ~267-~267: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - **UNOFFICIAL**: Widely celebrated but not ...

(QB_NEW_EN)

---

[grammar] ~268-~268: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - **Religious categories**: Use specific tra...

(QB_NEW_EN)

---

[grammar] ~269-~269: There might be a mistake here.
Context: ...holidays apply to particular communities - **Institutional categories**: Use when hol...

(QB_NEW_EN_OTHER)

---

[grammar] ~270-~270: There might be a mistake here.
Context: ... when holidays apply to specific sectors  ## Default Behavior  When no categories are...

(QB_NEW_EN_OTHER)

---

[grammar] ~272-~272: Use correct spacing
Context: ...to specific sectors  ## Default Behavior  When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~274-~274: Use correct spacing
Context: ...ct when asking for a country's holidays.  ```python import holidays  # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories='public', years=2024) ```  ## Contributing  When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~284-~284: Use correct spacing
Context: ...ublic', years=2024) ```  ## Contributing  When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~286-~286: Use correct spacing
Context: ...new countries or updating existing ones:  1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~288-~288: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)

---

[grammar] ~289-~289: There might be a mistake here.
Context: ...dentify which categories are appropriate 3. Classify each holiday according to its o...

(QB_NEW_EN_OTHER)

---

[grammar] ~290-~290: There might be a mistake here.
Context: ...fficial status and cultural significance 4. Document the reasoning for category assi...

(QB_NEW_EN_OTHER)

---

[grammar] ~291-~291: There might be a mistake here.
Context: ...t the reasoning for category assignments 5. Provide examples in tests demonstrating ...

(QB_NEW_EN_OTHER)

---

[grammar] ~292-~292: There might be a mistake here.
Context: ...es in tests demonstrating category usage 

(QB_NEW_EN_OTHER)

</details>
<details>
<summary>docs/examples.md</summary>

[grammar] ~146-~146: Use correct spacing
Context: ...ignificance, or institutional relevance.  ### Basic Category Usage  To get holidays fr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~148-~148: Use correct spacing
Context: ...nal relevance.  ### Basic Category Usage  To get holidays from specific categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~150-~150: Use correct spacing
Context: ...o get holidays from specific categories:  ``` python >>> import holidays >>> # Get only public holidays >>> us_public = holidays.UnitedStates(categories='public', years=2024) >>> len(us_public) 11  >>> # Get only unofficial holidays (cultural celebrations) >>> us_unofficial = holidays.UnitedStates(categories='unofficial', years=2024) >>> for date, name in sorted(us_unofficial.items()): >>>     print(date, name) 2024-02-14 Valentine's Day 2024-03-17 Saint Patrick's Day 2024-10-31 Halloween ```  ### Multiple Categories  You can specify mul...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~168-~168: Use correct spacing
Context: ...1 Halloween ```  ### Multiple Categories  You can specify multiple categories to g...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~170-~170: Use correct spacing
Context: ...ories to get a combined set of holidays:  ``` python >>> # Get both public and bank holidays for Belgium >>> from holidays.constants import BANK, PUBLIC >>> for dt, name in sorted(holidays.BE(years=2023, language="en_US", categories=(BANK, PUBLIC)).items()): >>>     print(dt, name) 2023-01-01 New Year's Day 2023-04-07 Good Friday 2023-04-09 Easter Sunday 2023-04-10 Easter Monday 2023-05-01 Labor Day 2023-05-18 Ascension Day 2023-05-19 Friday after Ascension Day 2023-05-28 Whit Sunday 2023-05-29 Whit Monday 2023-07-21 National Day 2023-08-15 Assumption Day 2023-11-01 All Saints' Day 2023-11-11 Armistice Day 2023-12-25 Christmas Day 2023-12-26 Bank Holiday ```  ### Religious Categories  Many countries sup...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~194-~194: Use correct spacing
Context: ...nk Holiday ```  ### Religious Categories  Many countries support religious categor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~196-~196: Use correct spacing
Context: ...olidays specific to certain communities:  ``` python >>> # Get Catholic holidays in Germany >>> de_catholic = holidays.Germany(categories='catholic', years=2024) >>> for date, name in sorted(de_catholic.items()): >>>     print(date, name) 2024-08-15 Mariä Himmelfahrt ```  ### Checking Supported Categories  Each coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~206-~206: Use correct spacing
Context: ...t ```  ### Checking Supported Categories  Each country defines which categories it...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~208-~208: Use correct spacing
Context: ...ry defines which categories it supports:  ``` python >>> us = holidays.UnitedStates() >>> print("US categories:", us.supported_categories) US categories: ('government', 'public', 'unofficial')  >>> de = holidays.Germany() >>> print("Germany categories:", de.supported_categories) Germany categories: ('catholic', 'public')  >>> ar = holidays.Argentina() >>> print("Argentina categories:", ar.supported_categories) Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') ```  For detailed information about all avail...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

---

[grammar] ~224-~224: Use correct spacing
Context: ...s](holiday_categories.md) documentation.  ## Working day-related calculations  To che...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

</details>

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (1)</summary><blockquote>

<details>
<summary>docs/holiday_categories.md (1)</summary><blockquote>

`28-34`: **WORKDAY and HALF_DAY are valid and supported**

Great news—both constants are defined in `holidays/constants.py` (lines 44 & 50) and actively used by many country modules (e.g., Australia, Turkey, Switzerland, China, etc.). The documentation for these categories is accurate, so no changes are needed.

</blockquote></details>

</blockquote></details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment on lines +258 to +271
1. **Official Status**: Which holidays are legally mandated public holidays?
2. **Religious Diversity**: What religious communities have recognized holidays?
3. **Cultural Significance**: Are there widely celebrated unofficial holidays?
4. **Institutional Needs**: Do banks, schools, or government have specific observances?

### Category Selection Principles

- **PUBLIC**: Holidays mandated by law with general time off
- **GOVERNMENT**: Official observances without general time off
- **WORKDAY**: Recognized but working holidays
- **UNOFFICIAL**: Widely celebrated but not official
- **Religious categories**: Use specific tradition names when holidays apply to particular communities
- **Institutional categories**: Use when holidays apply to specific sectors

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add guidance for supported_categories composition (PUBLIC included when others exist).

Capture the established rule so contributors don’t omit PUBLIC incorrectly.

 ### Category Selection Principles
+- When a country uses additional categories beyond PUBLIC, include PUBLIC in `supported_categories` alongside the others.
+- If PUBLIC is the only category in use, you may omit `supported_categories` entirely (PUBLIC is the default inherited category).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off
 - **WORKDAY**: Recognized but working holidays
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1. **Official Status**: Which holidays are legally mandated public holidays?
2. **Religious Diversity**: What religious communities have recognized holidays?
3. **Cultural Significance**: Are there widely celebrated unofficial holidays?
4. **Institutional Needs**: Do banks, schools, or government have specific observances?
### Category Selection Principles
- **PUBLIC**: Holidays mandated by law with general time off
- **GOVERNMENT**: Official observances without general time off
- **WORKDAY**: Recognized but working holidays
- **UNOFFICIAL**: Widely celebrated but not official
- **Religious categories**: Use specific tradition names when holidays apply to particular communities
- **Institutional categories**: Use when holidays apply to specific sectors
### Category Selection Principles
- When a country uses additional categories beyond PUBLIC, include PUBLIC in `supported_categories` alongside the others.
- If PUBLIC is the only category in use, you may omit `supported_categories` entirely (PUBLIC is the default inherited category).
- **PUBLIC**: Holidays mandated by law with general time off
- **GOVERNMENT**: Official observances without general time off
- **WORKDAY**: Recognized but working holidays
- **UNOFFICIAL**: Widely celebrated but not official
- **Religious categories**: Use specific tradition names when holidays apply to particular communities
- **Institutional categories**: Use when holidays apply to specific sectors
🧰 Tools
🪛 LanguageTool

[grammar] ~261-~261: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~261-~261: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~263-~263: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~265-~265: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~266-~266: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~267-~267: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~268-~268: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~269-~269: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~270-~270: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)

🤖 Prompt for AI Agents
In docs/holiday_categories.md around lines 258 to 271, add a clear rule under
"Category Selection Principles" that when composing supported_categories, if any
non-PUBLIC category is listed (e.g., GOVERNMENT, WORKDAY, UNOFFICIAL, religious
or institutional categories), PUBLIC must also be included; update the bullet
list to explicitly state this composition rule and provide one short example
(one line) showing a supported_categories array that includes PUBLIC alongside
other categories to prevent contributors from omitting PUBLIC.

- Add concrete examples for SABIAN and YAZIDI categories
- Clarify UNOFFICIAL category criteria (exclude novelty/marketing days)
- Add examples for all ethnic/cultural categories (ARMENIAN, ALBANIAN, etc.)
- Add stability warning about category tuples changing over time
- Add note about case-sensitive category matching
- Improve overall documentation completeness per review feedback
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (8)
docs/holiday_categories.md (5)

192-205: Clarify both syntaxes (strings vs constants) in examples.

Readers see constants here and strings in examples.md. Add one sentence to preempt confusion.

 ### Filtering by Single Category
 
-Get only public holidays:
+Get only public holidays:
+You can pass categories as strings (e.g., 'public') or via constants from `holidays.constants` (e.g., `PUBLIC`). Both are equivalent.
 
 ```python
 import holidays
 from holidays.constants import PUBLIC

267-280: Mark “Examples by Country” as illustrative.

Add a stability note to prevent readers from assuming these tuples are contractual.

 ### Examples by Country
+_Note: The tuples below are illustrative and may change over time. Always check `supported_categories` at runtime._
 
 **United States**: `('government', 'public', 'unofficial')`
 - Supports federal holidays, state holidays, and cultural observances

301-311: Tighten wording on default behavior and example comment.

The library defaults to PUBLIC; remove “most countries” ambiguity.

 ## Default Behavior
 
-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the `categories` parameter.
 
 ```python
 import holidays
 
-# These are equivalent for most countries
+# These are equivalent
 us_default = holidays.UnitedStates(years=2024)
 us_public = holidays.UnitedStates(categories='public', years=2024)

---

`292-300`: **Capture the PUBLIC-composition rule in guidelines.**

Per maintainers’ guidance, PUBLIC must be included when any other category exists; omit `supported_categories` when PUBLIC is the only one.



```diff
 ### Category Selection Principles
+- When a country uses additional categories beyond PUBLIC, include `PUBLIC` in `supported_categories` alongside the others.
+- If PUBLIC is the only category, you may omit `supported_categories` entirely (PUBLIC is inherited by default).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off

35-41: Spell out UNOFFICIAL inclusion/exclusion policy.

Issue #1717 asks for explicit criteria. Add a short “Policy” block to prevent novelty days from creeping in and to guide contributors.

 **UNOFFICIAL**
-Commonly celebrated cultural holidays with no official government recognition or mandated time off. These are widely observed cultural celebrations, but exclude novelty, internet, or marketing "national days."
+Commonly celebrated cultural holidays with no official government recognition or mandated time off.
+
+Policy:
+- Include only widely observed, recurring cultural observances with broad public recognition (e.g., shown on mainstream calendars, widely covered by national media, or entrenched in custom).
+- Exclude novelty/internet/marketing “national days” and other ephemeral observances (for example, National Fruitcake Toss Day), unless maintainers justify inclusion with reliable sources.
 
 Examples:
docs/examples.md (3)

158-160: Avoid brittle numeric outputs (len == 11).

Exact counts drift as rules change. Mark as illustrative or drop the value.

 >>> # Get only public holidays
 >>> us_public = holidays.UnitedStates(categories='public', years=2024)
->>> len(us_public)
-11
+>>> # Count depends on the year and observance rules; output below is illustrative.
+>>> len(us_public)

213-224: Don’t freeze supported_categories tuple outputs.

Add a stability note right after the block so these examples don’t go stale.

 >>> ar = holidays.Argentina()
 >>> print("Argentina categories:", ar.supported_categories)
 Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')

-For detailed information about all available categories and their meanings, see the Holiday Categories documentation.
+For detailed information about all available categories and their meanings, see the Holiday Categories documentation.
+
+Note: The printed tuples are illustrative and may change over time; check supported_categories at runtime for current values.


---

`146-152`: **State explicitly that strings and constants are both supported.**

Add one sentence so readers understand why this page uses strings while other docs show constants.



```diff
 ### Basic Category Usage
-Categories accept a single string (e.g., 'public') or an iterable of strings; matching is case-sensitive.
+Categories accept a single string (e.g., 'public') or an iterable of strings; matching is case-sensitive. You can also use constants from `holidays.constants` (e.g., `PUBLIC`, `UNOFFICIAL`) — both forms are equivalent.
 
 To get holidays from specific categories:
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between f59a107 and 4db1c48.

📒 Files selected for processing (2)
  • docs/examples.md (2 hunks)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (22)
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-04-23T09:22:41.753Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:32:15.760Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-17T11:07:04.986Z
Learnt from: KJhellico
PR: vacanza/holidays#2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-08-03T12:59:53.286Z
Learnt from: KJhellico
PR: vacanza/holidays#2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-06-16T15:48:48.680Z
Learnt from: PPsyrius
PR: vacanza/holidays#2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (`class Test{Country}(CommonCountryTests, TestCase):`) without docstrings. This is an established codebase convention that should be maintained for consistency.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-08T10:33:55.695Z
Learnt from: KJhellico
PR: vacanza/holidays#2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*\(' to avoid overcounting non-entry quoted lines. As of PR vacanza/holidays#2763, this yields 227 entries.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-07-15T15:00:32.728Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-06-16T12:28:31.641Z
Learnt from: PPsyrius
PR: vacanza/holidays#2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-05T02:35:03.298Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:278-377
Timestamp: 2025-03-05T02:35:03.298Z
Learning: For Macau holiday implementations, it's preferable to maintain separate methods for different holiday categories (MANDATORY, GOVERNMENT, PUBLIC) as they are based on different sets of laws, making the code easier to maintain despite having multiple year-based conditionals.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/holiday_categories.md
  • docs/examples.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-24T15:21:31.632Z
Learnt from: PPsyrius
PR: vacanza/holidays#2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-06-06T14:40:31.932Z
Learnt from: KJhellico
PR: vacanza/holidays#2593
File: holidays/countries/senegal.py:66-110
Timestamp: 2025-06-06T14:40:31.932Z
Learning: In the holidays library, within the _populate_public_holidays method, holidays should be arranged by calendar type (Islamic holidays first, then Gregorian holidays) without additional type grouping comments. The organization by calendar type is sufficient and follows the project's established conventions.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-07-10T03:36:16.461Z
Learnt from: PPsyrius
PR: vacanza/holidays#2706
File: holidays/countries/cayman_islands.py:80-97
Timestamp: 2025-07-10T03:36:16.461Z
Learning: In the holidays library, date dictionaries that map years to specific dates (like queens_birthday_dates, special holiday dates, etc.) are typically defined within the _populate_public_holidays method rather than as module-level constants. This is the established library-wide pattern and should be maintained for consistency.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-07-10T03:36:16.461Z
Learnt from: PPsyrius
PR: vacanza/holidays#2706
File: holidays/countries/cayman_islands.py:80-97
Timestamp: 2025-07-10T03:36:16.461Z
Learning: In the holidays library, date dictionaries that map years to specific dates (like queens_birthday_dates, spring_bank_dates, thanksgiving_day_dates, etc.) are typically defined within the _populate_public_holidays method rather than as module-level constants. This is the established library-wide pattern seen across multiple country implementations including United Kingdom, United States, Sri Lanka, and others.

Applied to files:

  • docs/examples.md
🪛 LanguageTool
docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly. ## Category Types ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly. ## Category Types ### Official Status Categories PUBLIC O...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ry Types ### Official Status Categories PUBLIC Official holidays recognized by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: There might be a mistake here.
Context: ...# Official Status Categories PUBLIC Official holidays recognized by the gove...

(QB_NEW_EN)


[grammar] ~14-~14: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most count...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~16-~16: There might be a mistake here.
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN)


[grammar] ~17-~17: There might be a mistake here.
Context: ...ples: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN)


[grammar] ~19-~19: Use correct spacing
Context: ...tmas Day in Christian-majority countries GOVERNMENT Holidays observed by govern...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~21-~21: There might be a mistake here.
Context: ...stian-majority countries GOVERNMENT Holidays observed by government institut...

(QB_NEW_EN)


[grammar] ~22-~22: Use correct spacing
Context: ...rovide general time off for all workers. Examples: - Flag Day in some jurisdictio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~24-~24: There might be a mistake here.
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...amples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~26-~26: Use correct spacing
Context: ...- Government-specific commemorative days WORKDAY Holidays that are officially r...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~29-~29: Use correct spacing
Context: ...n ceremonial or commemorative in nature. Examples: - Constitution Day in some cou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~31-~31: There might be a mistake here.
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN)


[grammar] ~32-~32: There might be a mistake here.
Context: ...es: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)


[grammar] ~33-~33: Use correct spacing
Context: ... are observed but not as public holidays UNOFFICIAL Commonly celebrated cultura...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~36-~36: Use commas correctly
Context: ...re widely observed cultural celebrations, but exclude novelty, internet, or marke...

(QB_NEW_EN_OTHER_ERROR_IDS_33)


[grammar] ~36-~36: Use correct spacing
Context: ... internet, or marketing "national days." Examples: - Valentine's Day - Saint Patr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: There might be a mistake here.
Context: ...or marketing "national days." Examples: - Valentine's Day - Saint Patrick's Day ...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...onal days." Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### I...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~41-~41: Use correct spacing
Context: ... Day - Saint Patrick's Day - Halloween ### Institutional Categories BANK Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~43-~43: Use correct spacing
Context: ... Halloween ### Institutional Categories BANK Holidays specifically observed by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~45-~45: There might be a mistake here.
Context: ... ### Institutional Categories BANK Holidays specifically observed by bankin...

(QB_NEW_EN)


[style] ~46-~46: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in ...

(GENERAL_XX)


[grammar] ~46-~46: Use correct spacing
Context: ...may differ from general public holidays. Examples: - Good Friday (in some countri...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~48-~48: There might be a mistake here.
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...mples: - Good Friday (in some countries) - Additional banking-specific closures **...

(QB_NEW_EN)


[grammar] ~50-~50: Use correct spacing
Context: ...) - Additional banking-specific closures SCHOOL Holidays specific to educationa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~52-~52: There might be a mistake here.
Context: ...al banking-specific closures SCHOOL Holidays specific to educational institu...

(QB_NEW_EN)


[grammar] ~53-~53: Use correct spacing
Context: ...ys specific to educational institutions. Examples: - Teacher's Day - Education-sp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~55-~55: There might be a mistake here.
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN)


[grammar] ~56-~56: There might be a mistake here.
Context: ...institutions. Examples: - Teacher's Day - Education-specific observances **ARMED_...

(QB_NEW_EN)


[grammar] ~57-~57: Use correct spacing
Context: ...r's Day - Education-specific observances ARMED_FORCES Holidays specific to mili...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~59-~59: There might be a mistake here.
Context: ...n-specific observances ARMED_FORCES Holidays specific to military personnel ...

(QB_NEW_EN)


[grammar] ~60-~60: Use correct spacing
Context: ... to military personnel and institutions. Examples: - Armed Forces Day - Military ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~62-~62: There might be a mistake here.
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN)


[grammar] ~63-~63: There might be a mistake here.
Context: ...titutions. Examples: - Armed Forces Day - Military commemoration days ### Special...

(QB_NEW_EN)


[grammar] ~64-~64: Use correct spacing
Context: ...Forces Day - Military commemoration days ### Special Categories OPTIONAL Holiday...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~66-~66: Use correct spacing
Context: ...mmemoration days ### Special Categories OPTIONAL Holidays that individuals or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~68-~68: There might be a mistake here.
Context: ...ys ### Special Categories OPTIONAL Holidays that individuals or organizatio...

(QB_NEW_EN)


[grammar] ~69-~69: Use correct spacing
Context: ...ften with flexibility in implementation. Examples: - Religious holidays for minor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~71-~71: There might be a mistake here.
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN)


[grammar] ~72-~72: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)


[grammar] ~73-~73: Use correct spacing
Context: ...al observances with optional recognition MANDATORY Holidays that must be observ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~75-~75: There might be a mistake here.
Context: ...with optional recognition MANDATORY Holidays that must be observed by law in...

(QB_NEW_EN)


[grammar] ~76-~76: Use correct spacing
Context: ...be observed by law in specific contexts. HALF_DAY Holidays that are observed fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~78-~78: There might be a mistake here.
Context: ... law in specific contexts. HALF_DAY Holidays that are observed for only part...

(QB_NEW_EN)


[grammar] ~79-~79: Use correct spacing
Context: ...t are observed for only part of the day. Examples: - Christmas Eve (afternoon onl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~81-~81: There might be a mistake here.
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...amples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~83-~83: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories CATHOLIC Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~85-~85: Use correct spacing
Context: ...fternoon only) ### Religious Categories CATHOLIC Holidays specific to the Cath...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~87-~87: There might be a mistake here.
Context: ... ### Religious Categories CATHOLIC Holidays specific to the Catholic Christ...

(QB_NEW_EN)


[grammar] ~88-~88: Use correct spacing
Context: ...fic to the Catholic Christian tradition. Examples: - Feast of the Immaculate Conc...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~90-~90: There might be a mistake here.
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...es: - Feast of the Immaculate Conception - Corpus Christi CHRISTIAN General Ch...

(QB_NEW_EN)


[grammar] ~92-~92: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi CHRISTIAN General Christian holidays o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~94-~94: There might be a mistake here.
Context: ...nception - Corpus Christi CHRISTIAN General Christian holidays observed acro...

(QB_NEW_EN)


[grammar] ~95-~95: Use correct spacing
Context: ... holidays observed across denominations. Examples: - Easter Sunday - Christmas Da...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~97-~97: There might be a mistake here.
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day **ORTHODO...

(QB_NEW_EN)


[grammar] ~98-~98: There might be a mistake here.
Context: ...enominations. Examples: - Easter Sunday - Christmas Day ORTHODOX Holidays spe...

(QB_NEW_EN)


[grammar] ~99-~99: Use correct spacing
Context: ...xamples: - Easter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~101-~101: There might be a mistake here.
Context: ...ter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox Christian ...

(QB_NEW_EN)


[grammar] ~102-~102: Use correct spacing
Context: ...ecific to Orthodox Christian traditions. Examples: - Orthodox Easter - Orthodox C...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~104-~104: There might be a mistake here.
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas **...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...traditions. Examples: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays...

(QB_NEW_EN)


[grammar] ~106-~106: Use correct spacing
Context: ...: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic trad...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~108-~108: There might be a mistake here.
Context: ...Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic tradition. Ex...

(QB_NEW_EN)


[grammar] ~109-~109: Use correct spacing
Context: ...C** Holidays from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha *...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~111-~111: There might be a mistake here.
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Hol...

(QB_NEW_EN)


[grammar] ~112-~112: There might be a mistake here.
Context: ...amic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the...

(QB_NEW_EN)


[grammar] ~113-~113: Use correct spacing
Context: .... Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu traditio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~115-~115: There might be a mistake here.
Context: ...: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu tradition. Exam...

(QB_NEW_EN)


[grammar] ~116-~116: Use correct spacing
Context: ...NDU** Holidays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~118-~118: There might be a mistake here.
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from ...

(QB_NEW_EN)


[grammar] ~119-~119: There might be a mistake here.
Context: ...the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewis...

(QB_NEW_EN)


[grammar] ~120-~120: Use correct spacing
Context: ...du tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~122-~122: There might be a mistake here.
Context: .... Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradition. Exa...

(QB_NEW_EN)


[grammar] ~123-~123: Use correct spacing
Context: ...EW** Holidays from the Jewish tradition. Examples: - Yom Kippur - Passover **CHI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~125-~125: There might be a mistake here.
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover CHINESE Holid...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ...ewish tradition. Examples: - Yom Kippur - Passover CHINESE Holidays from Chin...

(QB_NEW_EN)


[grammar] ~127-~127: Use correct spacing
Context: ...tion. Examples: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~129-~129: There might be a mistake here.
Context: ...es: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural and relig...

(QB_NEW_EN)


[grammar] ~130-~130: Use correct spacing
Context: ...inese cultural and religious traditions. Examples: - Chinese New Year - Mid-Autum...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~132-~132: There might be a mistake here.
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN)


[grammar] ~133-~133: There might be a mistake here.
Context: ...raditions. Examples: - Chinese New Year - Mid-Autumn Festival SABIAN Holidays...

(QB_NEW_EN)


[grammar] ~134-~134: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~136-~136: There might be a mistake here.
Context: ...w Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian religiou...

(QB_NEW_EN)


[grammar] ~137-~137: Use correct spacing
Context: ...cific to the Sabian religious tradition. Examples: - Used in Iraq for Sabian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~139-~139: There might be a mistake here.
Context: ...e Sabian religious tradition. Examples: - Used in Iraq for Sabian community holida...

(QB_NEW_EN)


[grammar] ~140-~140: Use correct spacing
Context: ...ed in Iraq for Sabian community holidays YAZIDI Holidays specific to the Yazidi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~142-~142: There might be a mistake here.
Context: ...or Sabian community holidays YAZIDI Holidays specific to the Yazidi religiou...

(QB_NEW_EN)


[grammar] ~143-~143: Use correct spacing
Context: ...cific to the Yazidi religious tradition. Examples: - Used in Iraq for Yazidi co...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~145-~145: There might be a mistake here.
Context: ...e Yazidi religious tradition. Examples: - Used in Iraq for Yazidi community holida...

(QB_NEW_EN)


[grammar] ~146-~146: Use correct spacing
Context: ...ed in Iraq for Yazidi community holidays ### Ethnic and Cultural Categories **ARMENI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: Use correct spacing
Context: ...days ### Ethnic and Cultural Categories ARMENIAN Holidays specific to Armenian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: There might be a mistake here.
Context: ...ic and Cultural Categories ARMENIAN Holidays specific to Armenian culture an...

(QB_NEW_EN)


[grammar] ~151-~151: Use correct spacing
Context: ...ific to Armenian culture and traditions. Examples: - Used in Argentina for Armeni...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~153-~153: There might be a mistake here.
Context: ...enian culture and traditions. Examples: - Used in Argentina for Armenian community...

(QB_NEW_EN)


[grammar] ~154-~154: Use correct spacing
Context: ...rgentina for Armenian community holidays ALBANIAN Holidays specific to Albanian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~156-~156: There might be a mistake here.
Context: ...rmenian community holidays ALBANIAN Holidays specific to Albanian culture an...

(QB_NEW_EN)


[grammar] ~157-~157: Use correct spacing
Context: ...ific to Albanian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~159-~159: There might be a mistake here.
Context: ...anian culture and traditions. Examples: - Used in North Macedonia for Albanian com...

(QB_NEW_EN)


[grammar] ~160-~160: Use correct spacing
Context: ...acedonia for Albanian community holidays BOSNIAN Holidays specific to Bosnian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~162-~162: There might be a mistake here.
Context: ...Albanian community holidays BOSNIAN Holidays specific to Bosnian culture and...

(QB_NEW_EN)


[grammar] ~163-~163: Use correct spacing
Context: ...cific to Bosnian culture and traditions. Examples: - Used in Bosnia and Herzegovi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~165-~165: There might be a mistake here.
Context: ...snian culture and traditions. Examples: - Used in Bosnia and Herzegovina for Bosni...

(QB_NEW_EN)


[grammar] ~166-~166: Use correct spacing
Context: ...rzegovina for Bosnian community holidays SERBIAN Holidays specific to Serbian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~168-~168: There might be a mistake here.
Context: ... Bosnian community holidays SERBIAN Holidays specific to Serbian culture and...

(QB_NEW_EN)


[grammar] ~169-~169: Use correct spacing
Context: ...cific to Serbian culture and traditions. Examples: - Used in Montenegro and Bosni...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~171-~171: There might be a mistake here.
Context: ...rbian culture and traditions. Examples: - Used in Montenegro and Bosnia for Serbia...

(QB_NEW_EN)


[grammar] ~172-~172: Use correct spacing
Context: ...nd Bosnia for Serbian community holidays TURKISH Holidays specific to Turkish c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~174-~174: There might be a mistake here.
Context: ... Serbian community holidays TURKISH Holidays specific to Turkish culture and...

(QB_NEW_EN)


[grammar] ~175-~175: Use correct spacing
Context: ...cific to Turkish culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~177-~177: There might be a mistake here.
Context: ...rkish culture and traditions. Examples: - Used in North Macedonia for Turkish comm...

(QB_NEW_EN)


[grammar] ~178-~178: Use correct spacing
Context: ...Macedonia for Turkish community holidays ROMA Holidays specific to Roma culture...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~180-~180: There might be a mistake here.
Context: ...for Turkish community holidays ROMA Holidays specific to Roma culture and tr...

(QB_NEW_EN)


[grammar] ~181-~181: Use correct spacing
Context: ...specific to Roma culture and traditions. Examples: - Used in various European cou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~183-~183: There might be a mistake here.
Context: ... Roma culture and traditions. Examples: - Used in various European countries for R...

(QB_NEW_EN)


[grammar] ~184-~184: Use correct spacing
Context: ...an countries for Roma community holidays VLACH Holidays specific to Vlach cultu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~186-~186: There might be a mistake here.
Context: ...s for Roma community holidays VLACH Holidays specific to Vlach culture and t...

(QB_NEW_EN)


[grammar] ~187-~187: Use correct spacing
Context: ...pecific to Vlach culture and traditions. Examples: - Used in Romania and other Ba...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~189-~189: There might be a mistake here.
Context: ...Vlach culture and traditions. Examples: - Used in Romania and other Balkan countri...

(QB_NEW_EN)


[grammar] ~190-~190: Use correct spacing
Context: ...n countries for Vlach community holidays ## Usage Examples ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~192-~192: Use correct spacing
Context: ...ch community holidays ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~194-~194: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~196-~196: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays from holidays.constants import PUBLIC # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~207-~207: Use correct spacing
Context: ...`` ### Filtering by Multiple Categories Get holidays from multiple categories: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~209-~209: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays from holidays.constants import PUBLIC, BANK # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~221-~221: Use correct spacing
Context: ...e}") ### Religious Category Example python import holidays from holidays.constants import CATHOLIC # Get only Catholic holidays in Germany germany_catholic = holidays.Germany(categories=CATHOLIC, years=2024) for date, name in sorted(germany_catholic.items()): print(f"{date}: {name}") ### Unofficial Holidays Example python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~233-~233: Use correct spacing
Context: ...}") ### Unofficial Holidays Example python import holidays from holidays.constants import UNOFFICIAL # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) for date, name in sorted(us_unofficial.items()): print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ``` ## Country-Specific Support Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~246-~246: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~248-~248: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~250-~250: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') # Note: The category tuples shown are examples and may change as countries update their holiday frameworks. ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~267-~267: Use correct spacing
Context: ...frameworks. ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~269-~269: There might be a mistake here.
Context: ...Examples by Country United States: ('government', 'public', 'unofficial') - Supports federal holidays, state holiday...

(QB_NEW_EN)


[grammar] ~270-~270: Use correct spacing
Context: ...state holidays, and cultural observances Germany: ('catholic', 'public') - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~272-~272: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~273-~273: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~275-~275: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~276-~276: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~278-~278: There might be a mistake here.
Context: ...al regional observances Argentina: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') - Supports multiple religious traditions a...

(QB_NEW_EN)


[grammar] ~279-~279: There might be a mistake here.
Context: ... traditions and institutional categories ## Implementation Guidelines ### When Defi...

(QB_NEW_EN_OTHER)


[grammar] ~281-~281: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~283-~283: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~285-~285: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~290-~290: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~290-~290: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~292-~292: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~294-~294: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~295-~295: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~296-~296: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~297-~297: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~298-~298: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~299-~299: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)


[grammar] ~301-~301: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~303-~303: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories='public', years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~313-~313: Use correct spacing
Context: ...ublic', years=2024) ``` ## Contributing When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~315-~315: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~317-~317: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)


[grammar] ~318-~318: There might be a mistake here.
Context: ...dentify which categories are appropriate 3. Classify each holiday according to its o...

(QB_NEW_EN_OTHER)


[grammar] ~319-~319: There might be a mistake here.
Context: ...fficial status and cultural significance 4. Document the reasoning for category assi...

(QB_NEW_EN_OTHER)


[grammar] ~320-~320: There might be a mistake here.
Context: ...t the reasoning for category assignments 5. Provide examples in tests demonstrating ...

(QB_NEW_EN_OTHER)


[grammar] ~321-~321: There might be a mistake here.
Context: ...es in tests demonstrating category usage

(QB_NEW_EN_OTHER)

docs/examples.md

[grammar] ~146-~146: Use correct spacing
Context: ...ignificance, or institutional relevance. ### Basic Category Usage Categories accept ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: Use correct spacing
Context: ...nal relevance. ### Basic Category Usage Categories accept a single string (e.g.,...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: Use correct spacing
Context: ... of strings; matching is case-sensitive. To get holidays from specific categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~152-~152: Use correct spacing
Context: ...o get holidays from specific categories: python >>> import holidays >>> # Get only public holidays >>> us_public = holidays.UnitedStates(categories='public', years=2024) >>> len(us_public) 11 >>> # Get only unofficial holidays (cultural celebrations) >>> us_unofficial = holidays.UnitedStates(categories='unofficial', years=2024) >>> for date, name in sorted(us_unofficial.items()): >>> print(date, name) 2024-02-14 Valentine's Day 2024-03-17 Saint Patrick's Day 2024-10-31 Halloween ### Multiple Categories You can specify mul...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~170-~170: Use correct spacing
Context: ...1 Halloween ``` ### Multiple Categories You can specify multiple categories to g...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~172-~172: Use correct spacing
Context: ...ories to get a combined set of holidays: python >>> # Get both public and bank holidays for Belgium >>> from holidays.constants import BANK, PUBLIC >>> for dt, name in sorted(holidays.BE(years=2023, language="en_US", categories=(BANK, PUBLIC)).items()): >>> print(dt, name) 2023-01-01 New Year's Day 2023-04-07 Good Friday 2023-04-09 Easter Sunday 2023-04-10 Easter Monday 2023-05-01 Labor Day 2023-05-18 Ascension Day 2023-05-19 Friday after Ascension Day 2023-05-28 Whit Sunday 2023-05-29 Whit Monday 2023-07-21 National Day 2023-08-15 Assumption Day 2023-11-01 All Saints' Day 2023-11-11 Armistice Day 2023-12-25 Christmas Day 2023-12-26 Bank Holiday ### Religious Categories Many countries sup...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~196-~196: Use correct spacing
Context: ...nk Holiday ``` ### Religious Categories Many countries support religious categor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~198-~198: Use correct spacing
Context: ...olidays specific to certain communities: python >>> # Get Catholic holidays in Germany >>> de_catholic = holidays.Germany(categories='catholic', years=2024) >>> for date, name in sorted(de_catholic.items()): >>> print(date, name) 2024-08-15 Mariä Himmelfahrt ### Checking Supported Categories Each coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~208-~208: Use correct spacing
Context: ...t ``` ### Checking Supported Categories Each country defines which categories it...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~210-~210: Use correct spacing
Context: ...ry defines which categories it supports: python >>> us = holidays.UnitedStates() >>> print("US categories:", us.supported_categories) US categories: ('government', 'public', 'unofficial') >>> de = holidays.Germany() >>> print("Germany categories:", de.supported_categories) Germany categories: ('catholic', 'public') >>> ar = holidays.Argentina() >>> print("Argentina categories:", ar.supported_categories) Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') For detailed information about all avail...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~226-~226: Use correct spacing
Context: ...s](holiday_categories.md) documentation. ## Working day-related calculations To che...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
docs/holiday_categories.md

17-17: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


25-25: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


39-39: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-49: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


63-63: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


72-72: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


82-82: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


91-91: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


98-98: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


105-105: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


112-112: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


119-119: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


126-126: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


133-133: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


140-140: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


146-146: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


154-154: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


160-160: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


166-166: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


172-172: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


178-178: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


184-184: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


190-190: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


270-270: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


273-273: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


276-276: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


279-279: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

docs/examples.md

146-146: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


154-154: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


160-160: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


166-166: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


172-172: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🔇 Additional comments (1)
docs/examples.md (1)

175-177: Minor consistency note.

This block imports constants while “Basic Category Usage” uses strings. Keeping both is fine once the new note (strings vs constants) is added; no change required.

@tharu-jwd
Copy link
Author

Hi @arkid15r, @KJhellico, @PPsyrius
Please check if it needs any changes. Thanks!

- Replace string category values with constants from holidays.constants for better maintainability
- Fix Germany Catholic holidays example to specify Saxony subdivision (SN) since Catholic holidays only apply to specific German states
- Update ethnic community examples to consistently reference North Macedonia:
  - Bosnian category: Changed from Bosnia and Herzegovina to North Macedonia
  - Serbian category: Changed from Montenegro and Bosnia to North Macedonia
  - Roma category: Changed from various European countries to North Macedonia
  - Vlach category: Changed from Romania and other Balkan countries to North Macedonia
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ Duplicate comments (6)
docs/holiday_categories.md (4)

267-280: Mark “Examples by Country” as illustrative to avoid drift.

Add a non‑normative note immediately under the heading.

 ### Examples by Country
+_Note: The tuples shown below are examples and may change over time. Always check `supported_categories` at runtime._
 
 **United States**: `('government', 'public', 'unofficial')`

292-300: Document supported_categories composition rule (include PUBLIC when others exist).

This is a frequent contributor pitfall; codify the rule here.

 ### Category Selection Principles
+- When a country uses any additional categories beyond PUBLIC, include PUBLIC in `supported_categories` alongside the others.
+- If PUBLIC is the only category in use, you may omit `supported_categories` (PUBLIC is the default).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off
 - **WORKDAY**: Recognized but working holidays

192-205: State explicitly that both strings and constants are supported (align with examples.md).

Add a one-liner to pre‑empt confusion across docs.

 ## Usage Examples
+
+You can pass categories as strings (e.g., 'public') or via constants from `holidays.constants` (e.g., `PUBLIC`). Both forms are supported; this page uses constants for readability.

233-244: Avoid asserting fixed outputs in examples; mark them as illustrative.

Replace hard-coded “Output:” lines with non‑normative notes to prevent drift.

 for date, name in sorted(us_unofficial.items()):
     print(f"{date}: {name}")
-# Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
+# Example output — varies by year and locale.
 us = holidays.UnitedStates()
 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
+# Example output — may vary by version.
 
 de = holidays.Germany()
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Example output — may vary by version.

Also applies to: 256-263

docs/examples.md (2)

214-226: Don’t freeze supported_categories tuples; add stability note inline.

Match the approach in the main doc to avoid drift.

 >>> us = holidays.UnitedStates()
 >>> print("US categories:", us.supported_categories)
 US categories: ('government', 'public', 'unofficial')
 
 >>> de = holidays.Germany()
 >>> print("Germany categories:", de.supported_categories)
 Germany categories: ('catholic', 'public')
 
 >>> ar = holidays.Argentina()
 >>> print("Argentina categories:", ar.supported_categories)
 Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')
+>>> # Note: Exact values may change over time; check at runtime.

148-161: Avoid brittle numeric output; mark as illustrative.

The exact count can change; don’t imply a contract.

 >>> # Get only public holidays
 >>> us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)
->>> len(us_public)
-11
+>>> # Count depends on year and observance rules; example below is illustrative.
+>>> len(us_public)
+11
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4db1c48 and 48fe7b8.

📒 Files selected for processing (2)
  • docs/examples.md (2 hunks)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (31)
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-07-24T15:21:31.632Z
Learnt from: PPsyrius
PR: vacanza/holidays#2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-06-06T14:40:31.932Z
Learnt from: KJhellico
PR: vacanza/holidays#2593
File: holidays/countries/senegal.py:66-110
Timestamp: 2025-06-06T14:40:31.932Z
Learning: In the holidays library, within the _populate_public_holidays method, holidays should be arranged by calendar type (Islamic holidays first, then Gregorian holidays) without additional type grouping comments. The organization by calendar type is sufficient and follows the project's established conventions.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-07-10T03:36:16.461Z
Learnt from: PPsyrius
PR: vacanza/holidays#2706
File: holidays/countries/cayman_islands.py:80-97
Timestamp: 2025-07-10T03:36:16.461Z
Learning: In the holidays library, date dictionaries that map years to specific dates (like queens_birthday_dates, special holiday dates, etc.) are typically defined within the _populate_public_holidays method rather than as module-level constants. This is the established library-wide pattern and should be maintained for consistency.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-07-10T03:36:16.461Z
Learnt from: PPsyrius
PR: vacanza/holidays#2706
File: holidays/countries/cayman_islands.py:80-97
Timestamp: 2025-07-10T03:36:16.461Z
Learning: In the holidays library, date dictionaries that map years to specific dates (like queens_birthday_dates, spring_bank_dates, thanksgiving_day_dates, etc.) are typically defined within the _populate_public_holidays method rather than as module-level constants. This is the established library-wide pattern seen across multiple country implementations including United Kingdom, United States, Sri Lanka, and others.

Applied to files:

  • docs/examples.md
📚 Learning: 2025-08-24T11:55:06.800Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: README.md:108-108
Timestamp: 2025-08-24T11:55:06.800Z
Learning: The actual count of countries in the holidays library should always be verified by counting entries in the COUNTRIES dictionary in holidays/registry.py using `grep -E '^\s*"[a-z_]+"\s*:' holidays/registry.py | wc -l`, rather than making assumptions about incremental changes.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-08-08T10:33:55.695Z
Learnt from: KJhellico
PR: vacanza/holidays#2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*\(' to avoid overcounting non-entry quoted lines. As of PR vacanza/holidays#2763, this yields 227 entries.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-07-17T11:07:04.986Z
Learnt from: KJhellico
PR: vacanza/holidays#2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-08-03T12:59:53.286Z
Learnt from: KJhellico
PR: vacanza/holidays#2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-07-15T15:00:32.728Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.

Applied to files:

  • docs/examples.md
  • docs/holiday_categories.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T09:22:41.753Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:32:15.760Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T15:48:48.680Z
Learnt from: PPsyrius
PR: vacanza/holidays#2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (`class Test{Country}(CommonCountryTests, TestCase):`) without docstrings. This is an established codebase convention that should be maintained for consistency.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T12:28:31.641Z
Learnt from: PPsyrius
PR: vacanza/holidays#2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-05T02:35:03.298Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:278-377
Timestamp: 2025-03-05T02:35:03.298Z
Learning: For Macau holiday implementations, it's preferable to maintain separate methods for different holiday categories (MANDATORY, GOVERNMENT, PUBLIC) as they are based on different sets of laws, making the code easier to maintain despite having multiple year-based conditionals.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-03T12:36:41.201Z
Learnt from: PPsyrius
PR: vacanza/holidays#2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:
```python
# reason why goes here
if start_year <= self._year <= end_year:
    # Holiday name
    self._add_holiday_function(tr("Holiday Name"))
```

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-11T10:14:28.517Z
Learnt from: PPsyrius
PR: vacanza/holidays#2794
File: holidays/groups/christian.py:328-343
Timestamp: 2025-08-11T10:14:28.517Z
Learning: For Ethiopian holidays in the `holidays/groups/christian.py` file, docstring wording should maintain source-accurate phrasing (e.g., "in coincidence of" for Ethiopian New Year/Enkutatash), even when it might read awkwardly in English, to ensure consistency with official Ethiopian documentation.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-10T12:43:10.577Z
Learnt from: ankushhKapoor
PR: vacanza/holidays#2601
File: holidays/calendars/mongolian.py:1-1
Timestamp: 2025-06-10T12:43:10.577Z
Learning: The holidays project's calendar files (in holidays/calendars/) follow a consistent pattern of NOT having module-level docstrings. They only use class-level docstrings for their main classes. When reviewing calendar files, maintain this consistency and do not suggest adding module docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:02:13.815Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T02:34:18.382Z
Learnt from: PPsyrius
PR: vacanza/holidays#2643
File: holidays/countries/mauritius.py:144-169
Timestamp: 2025-06-19T02:34:18.382Z
Learning: Custom holiday classes that extend _CustomHinduHolidays, _CustomIslamicHolidays, _CustomBuddhistHolidays, etc. in the holidays library do not use docstrings. They follow a pattern of using only inline comments above date dictionaries, as seen in Malaysia, Singapore, UAE, and other country implementations.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-19T21:22:13.125Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:22:13.125Z
Learning: In the holidays library, message comments directly above holiday addition methods must match the holiday name exactly without any additions, modifications, or explanatory text. For example, if the holiday name is "Eid al-Fitr Holiday", the comment should be "# Eid al-Fitr Holiday." with no extra context.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-21T16:30:12.749Z
Learnt from: KJhellico
PR: vacanza/holidays#2654
File: holidays/countries/cape_verde.py:1-12
Timestamp: 2025-06-21T16:30:12.749Z
Learning: The holidays project does not use module docstrings in country holiday files. All country files start directly with the copyright header comment block without module docstrings, maintaining a consistent coding style across the project.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T14:55:35.504Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:22-26
Timestamp: 2025-04-23T14:55:35.504Z
Learning: References in holidays classes should only be included if they're used for test case cross-checks or provide historical context about when holidays were added/removed, not just for the sake of having more references.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
🪛 LanguageTool
docs/examples.md

[grammar] ~146-~146: Use correct spacing
Context: ...ignificance, or institutional relevance. ### Basic Category Usage Categories accept ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: Use correct spacing
Context: ...nal relevance. ### Basic Category Usage Categories accept a single string (e.g.,...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: Use correct spacing
Context: ...tainability; matching is case-sensitive. To get holidays from specific categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~152-~152: Use correct spacing
Context: ...o get holidays from specific categories: python >>> import holidays >>> from holidays.constants import PUBLIC, UNOFFICIAL >>> # Get only public holidays >>> us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) >>> len(us_public) 11 >>> # Get only unofficial holidays (cultural celebrations) >>> us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) >>> for date, name in sorted(us_unofficial.items()): >>> print(date, name) 2024-02-14 Valentine's Day 2024-03-17 Saint Patrick's Day 2024-10-31 Halloween ### Multiple Categories You can specify mul...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~171-~171: Use correct spacing
Context: ...1 Halloween ``` ### Multiple Categories You can specify multiple categories to g...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~173-~173: Use correct spacing
Context: ...ories to get a combined set of holidays: python >>> # Get both public and bank holidays for Belgium >>> from holidays.constants import BANK, PUBLIC >>> for dt, name in sorted(holidays.BE(years=2023, language="en_US", categories=(BANK, PUBLIC)).items()): >>> print(dt, name) 2023-01-01 New Year's Day 2023-04-07 Good Friday 2023-04-09 Easter Sunday 2023-04-10 Easter Monday 2023-05-01 Labor Day 2023-05-18 Ascension Day 2023-05-19 Friday after Ascension Day 2023-05-28 Whit Sunday 2023-05-29 Whit Monday 2023-07-21 National Day 2023-08-15 Assumption Day 2023-11-01 All Saints' Day 2023-11-11 Armistice Day 2023-12-25 Christmas Day 2023-12-26 Bank Holiday ### Religious Categories Many countries sup...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~197-~197: Use correct spacing
Context: ...nk Holiday ``` ### Religious Categories Many countries support religious categor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~199-~199: Use correct spacing
Context: ...olidays specific to certain communities: python >>> from holidays.constants import CATHOLIC >>> # Get Catholic holidays in Germany (Saxony subdivision) >>> de_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024) >>> for date, name in sorted(de_catholic.items()): >>> print(date, name) 2024-08-15 Mariä Himmelfahrt ### Checking Supported Categories Each coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~210-~210: Use correct spacing
Context: ...t ``` ### Checking Supported Categories Each country defines which categories it...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~212-~212: Use correct spacing
Context: ...ry defines which categories it supports: python >>> us = holidays.UnitedStates() >>> print("US categories:", us.supported_categories) US categories: ('government', 'public', 'unofficial') >>> de = holidays.Germany() >>> print("Germany categories:", de.supported_categories) Germany categories: ('catholic', 'public') >>> ar = holidays.Argentina() >>> print("Argentina categories:", ar.supported_categories) Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') For detailed information about all avail...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~228-~228: Use correct spacing
Context: ...s](holiday_categories.md) documentation. ## Working day-related calculations To che...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly. ## Category Types ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly. ## Category Types ### Official Status Categories PUBLIC O...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ry Types ### Official Status Categories PUBLIC Official holidays recognized by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: There might be a mistake here.
Context: ...# Official Status Categories PUBLIC Official holidays recognized by the gove...

(QB_NEW_EN)


[grammar] ~14-~14: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most count...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~16-~16: There might be a mistake here.
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN)


[grammar] ~17-~17: There might be a mistake here.
Context: ...ples: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN)


[grammar] ~19-~19: Use correct spacing
Context: ...tmas Day in Christian-majority countries GOVERNMENT Holidays observed by govern...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~21-~21: There might be a mistake here.
Context: ...stian-majority countries GOVERNMENT Holidays observed by government institut...

(QB_NEW_EN)


[grammar] ~22-~22: Use correct spacing
Context: ...rovide general time off for all workers. Examples: - Flag Day in some jurisdictio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~24-~24: There might be a mistake here.
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...amples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~26-~26: Use correct spacing
Context: ...- Government-specific commemorative days WORKDAY Holidays that are officially r...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~29-~29: Use correct spacing
Context: ...n ceremonial or commemorative in nature. Examples: - Constitution Day in some cou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~31-~31: There might be a mistake here.
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN)


[grammar] ~32-~32: There might be a mistake here.
Context: ...es: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)


[grammar] ~33-~33: Use correct spacing
Context: ... are observed but not as public holidays UNOFFICIAL Commonly celebrated cultura...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~36-~36: Use commas correctly
Context: ...re widely observed cultural celebrations, but exclude novelty, internet, or marke...

(QB_NEW_EN_OTHER_ERROR_IDS_33)


[grammar] ~36-~36: Use correct spacing
Context: ... internet, or marketing "national days." Examples: - Valentine's Day - Saint Patr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: There might be a mistake here.
Context: ...or marketing "national days." Examples: - Valentine's Day - Saint Patrick's Day ...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...onal days." Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### I...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~41-~41: Use correct spacing
Context: ... Day - Saint Patrick's Day - Halloween ### Institutional Categories BANK Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~43-~43: Use correct spacing
Context: ... Halloween ### Institutional Categories BANK Holidays specifically observed by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~45-~45: There might be a mistake here.
Context: ... ### Institutional Categories BANK Holidays specifically observed by bankin...

(QB_NEW_EN)


[style] ~46-~46: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in ...

(GENERAL_XX)


[grammar] ~46-~46: Use correct spacing
Context: ...may differ from general public holidays. Examples: - Good Friday (in some countri...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~48-~48: There might be a mistake here.
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...mples: - Good Friday (in some countries) - Additional banking-specific closures **...

(QB_NEW_EN)


[grammar] ~50-~50: Use correct spacing
Context: ...) - Additional banking-specific closures SCHOOL Holidays specific to educationa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~52-~52: There might be a mistake here.
Context: ...al banking-specific closures SCHOOL Holidays specific to educational institu...

(QB_NEW_EN)


[grammar] ~53-~53: Use correct spacing
Context: ...ys specific to educational institutions. Examples: - Teacher's Day - Education-sp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~55-~55: There might be a mistake here.
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN)


[grammar] ~56-~56: There might be a mistake here.
Context: ...institutions. Examples: - Teacher's Day - Education-specific observances **ARMED_...

(QB_NEW_EN)


[grammar] ~57-~57: Use correct spacing
Context: ...r's Day - Education-specific observances ARMED_FORCES Holidays specific to mili...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~59-~59: There might be a mistake here.
Context: ...n-specific observances ARMED_FORCES Holidays specific to military personnel ...

(QB_NEW_EN)


[grammar] ~60-~60: Use correct spacing
Context: ... to military personnel and institutions. Examples: - Armed Forces Day - Military ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~62-~62: There might be a mistake here.
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN)


[grammar] ~63-~63: There might be a mistake here.
Context: ...titutions. Examples: - Armed Forces Day - Military commemoration days ### Special...

(QB_NEW_EN)


[grammar] ~64-~64: Use correct spacing
Context: ...Forces Day - Military commemoration days ### Special Categories OPTIONAL Holiday...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~66-~66: Use correct spacing
Context: ...mmemoration days ### Special Categories OPTIONAL Holidays that individuals or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~68-~68: There might be a mistake here.
Context: ...ys ### Special Categories OPTIONAL Holidays that individuals or organizatio...

(QB_NEW_EN)


[grammar] ~69-~69: Use correct spacing
Context: ...ften with flexibility in implementation. Examples: - Religious holidays for minor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~71-~71: There might be a mistake here.
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN)


[grammar] ~72-~72: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)


[grammar] ~73-~73: Use correct spacing
Context: ...al observances with optional recognition MANDATORY Holidays that must be observ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~75-~75: There might be a mistake here.
Context: ...with optional recognition MANDATORY Holidays that must be observed by law in...

(QB_NEW_EN)


[grammar] ~76-~76: Use correct spacing
Context: ...be observed by law in specific contexts. HALF_DAY Holidays that are observed fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~78-~78: There might be a mistake here.
Context: ... law in specific contexts. HALF_DAY Holidays that are observed for only part...

(QB_NEW_EN)


[grammar] ~79-~79: Use correct spacing
Context: ...t are observed for only part of the day. Examples: - Christmas Eve (afternoon onl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~81-~81: There might be a mistake here.
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...amples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~83-~83: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories CATHOLIC Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~85-~85: Use correct spacing
Context: ...fternoon only) ### Religious Categories CATHOLIC Holidays specific to the Cath...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~87-~87: There might be a mistake here.
Context: ... ### Religious Categories CATHOLIC Holidays specific to the Catholic Christ...

(QB_NEW_EN)


[grammar] ~88-~88: Use correct spacing
Context: ...fic to the Catholic Christian tradition. Examples: - Feast of the Immaculate Conc...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~90-~90: There might be a mistake here.
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...es: - Feast of the Immaculate Conception - Corpus Christi CHRISTIAN General Ch...

(QB_NEW_EN)


[grammar] ~92-~92: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi CHRISTIAN General Christian holidays o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~94-~94: There might be a mistake here.
Context: ...nception - Corpus Christi CHRISTIAN General Christian holidays observed acro...

(QB_NEW_EN)


[grammar] ~95-~95: Use correct spacing
Context: ... holidays observed across denominations. Examples: - Easter Sunday - Christmas Da...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~97-~97: There might be a mistake here.
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day **ORTHODO...

(QB_NEW_EN)


[grammar] ~98-~98: There might be a mistake here.
Context: ...enominations. Examples: - Easter Sunday - Christmas Day ORTHODOX Holidays spe...

(QB_NEW_EN)


[grammar] ~99-~99: Use correct spacing
Context: ...xamples: - Easter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~101-~101: There might be a mistake here.
Context: ...ter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox Christian ...

(QB_NEW_EN)


[grammar] ~102-~102: Use correct spacing
Context: ...ecific to Orthodox Christian traditions. Examples: - Orthodox Easter - Orthodox C...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~104-~104: There might be a mistake here.
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas **...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...traditions. Examples: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays...

(QB_NEW_EN)


[grammar] ~106-~106: Use correct spacing
Context: ...: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic trad...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~108-~108: There might be a mistake here.
Context: ...Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic tradition. Ex...

(QB_NEW_EN)


[grammar] ~109-~109: Use correct spacing
Context: ...C** Holidays from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha *...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~111-~111: There might be a mistake here.
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Hol...

(QB_NEW_EN)


[grammar] ~112-~112: There might be a mistake here.
Context: ...amic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the...

(QB_NEW_EN)


[grammar] ~113-~113: Use correct spacing
Context: .... Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu traditio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~115-~115: There might be a mistake here.
Context: ...: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu tradition. Exam...

(QB_NEW_EN)


[grammar] ~116-~116: Use correct spacing
Context: ...NDU** Holidays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~118-~118: There might be a mistake here.
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from ...

(QB_NEW_EN)


[grammar] ~119-~119: There might be a mistake here.
Context: ...the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewis...

(QB_NEW_EN)


[grammar] ~120-~120: Use correct spacing
Context: ...du tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~122-~122: There might be a mistake here.
Context: .... Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradition. Exa...

(QB_NEW_EN)


[grammar] ~123-~123: Use correct spacing
Context: ...EW** Holidays from the Jewish tradition. Examples: - Yom Kippur - Passover **CHI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~125-~125: There might be a mistake here.
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover CHINESE Holid...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ...ewish tradition. Examples: - Yom Kippur - Passover CHINESE Holidays from Chin...

(QB_NEW_EN)


[grammar] ~127-~127: Use correct spacing
Context: ...tion. Examples: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~129-~129: There might be a mistake here.
Context: ...es: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural and relig...

(QB_NEW_EN)


[grammar] ~130-~130: Use correct spacing
Context: ...inese cultural and religious traditions. Examples: - Chinese New Year - Mid-Autum...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~132-~132: There might be a mistake here.
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN)


[grammar] ~133-~133: There might be a mistake here.
Context: ...raditions. Examples: - Chinese New Year - Mid-Autumn Festival SABIAN Holidays...

(QB_NEW_EN)


[grammar] ~134-~134: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~136-~136: There might be a mistake here.
Context: ...w Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian religiou...

(QB_NEW_EN)


[grammar] ~137-~137: Use correct spacing
Context: ...cific to the Sabian religious tradition. Examples: - Used in Iraq for Sabian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~139-~139: There might be a mistake here.
Context: ...e Sabian religious tradition. Examples: - Used in Iraq for Sabian community holida...

(QB_NEW_EN)


[grammar] ~140-~140: Use correct spacing
Context: ...ed in Iraq for Sabian community holidays YAZIDI Holidays specific to the Yazidi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~142-~142: There might be a mistake here.
Context: ...or Sabian community holidays YAZIDI Holidays specific to the Yazidi religiou...

(QB_NEW_EN)


[grammar] ~143-~143: Use correct spacing
Context: ...cific to the Yazidi religious tradition. Examples: - Used in Iraq for Yazidi co...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~145-~145: There might be a mistake here.
Context: ...e Yazidi religious tradition. Examples: - Used in Iraq for Yazidi community holida...

(QB_NEW_EN)


[grammar] ~146-~146: Use correct spacing
Context: ...ed in Iraq for Yazidi community holidays ### Ethnic and Cultural Categories **ARMENI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: Use correct spacing
Context: ...days ### Ethnic and Cultural Categories ARMENIAN Holidays specific to Armenian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: There might be a mistake here.
Context: ...ic and Cultural Categories ARMENIAN Holidays specific to Armenian culture an...

(QB_NEW_EN)


[grammar] ~151-~151: Use correct spacing
Context: ...ific to Armenian culture and traditions. Examples: - Used in Argentina for Armeni...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~153-~153: There might be a mistake here.
Context: ...enian culture and traditions. Examples: - Used in Argentina for Armenian community...

(QB_NEW_EN)


[grammar] ~154-~154: Use correct spacing
Context: ...rgentina for Armenian community holidays ALBANIAN Holidays specific to Albanian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~156-~156: There might be a mistake here.
Context: ...rmenian community holidays ALBANIAN Holidays specific to Albanian culture an...

(QB_NEW_EN)


[grammar] ~157-~157: Use correct spacing
Context: ...ific to Albanian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~159-~159: There might be a mistake here.
Context: ...anian culture and traditions. Examples: - Used in North Macedonia for Albanian com...

(QB_NEW_EN)


[grammar] ~160-~160: Use correct spacing
Context: ...acedonia for Albanian community holidays BOSNIAN Holidays specific to Bosnian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~162-~162: There might be a mistake here.
Context: ...Albanian community holidays BOSNIAN Holidays specific to Bosnian culture and...

(QB_NEW_EN)


[grammar] ~163-~163: Use correct spacing
Context: ...cific to Bosnian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~165-~165: There might be a mistake here.
Context: ...snian culture and traditions. Examples: - Used in North Macedonia for Bosnian comm...

(QB_NEW_EN)


[grammar] ~166-~166: Use correct spacing
Context: ...Macedonia for Bosnian community holidays SERBIAN Holidays specific to Serbian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~168-~168: There might be a mistake here.
Context: ... Bosnian community holidays SERBIAN Holidays specific to Serbian culture and...

(QB_NEW_EN)


[grammar] ~169-~169: Use correct spacing
Context: ...cific to Serbian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~171-~171: There might be a mistake here.
Context: ...rbian culture and traditions. Examples: - Used in North Macedonia for Serbian comm...

(QB_NEW_EN)


[grammar] ~172-~172: Use correct spacing
Context: ...Macedonia for Serbian community holidays TURKISH Holidays specific to Turkish c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~174-~174: There might be a mistake here.
Context: ... Serbian community holidays TURKISH Holidays specific to Turkish culture and...

(QB_NEW_EN)


[grammar] ~175-~175: Use correct spacing
Context: ...cific to Turkish culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~177-~177: There might be a mistake here.
Context: ...rkish culture and traditions. Examples: - Used in North Macedonia for Turkish comm...

(QB_NEW_EN)


[grammar] ~178-~178: Use correct spacing
Context: ...Macedonia for Turkish community holidays ROMA Holidays specific to Roma culture...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~180-~180: There might be a mistake here.
Context: ...for Turkish community holidays ROMA Holidays specific to Roma culture and tr...

(QB_NEW_EN)


[grammar] ~181-~181: Use correct spacing
Context: ...specific to Roma culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~183-~183: There might be a mistake here.
Context: ... Roma culture and traditions. Examples: - Used in North Macedonia for Roma communi...

(QB_NEW_EN)


[grammar] ~184-~184: Use correct spacing
Context: ...th Macedonia for Roma community holidays VLACH Holidays specific to Vlach cultu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~186-~186: There might be a mistake here.
Context: ...a for Roma community holidays VLACH Holidays specific to Vlach culture and t...

(QB_NEW_EN)


[grammar] ~187-~187: Use correct spacing
Context: ...pecific to Vlach culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~189-~189: There might be a mistake here.
Context: ...Vlach culture and traditions. Examples: - Used in North Macedonia for Vlach commun...

(QB_NEW_EN)


[grammar] ~190-~190: Use correct spacing
Context: ...h Macedonia for Vlach community holidays ## Usage Examples ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~192-~192: Use correct spacing
Context: ...ch community holidays ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~194-~194: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~196-~196: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays from holidays.constants import PUBLIC # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~207-~207: Use correct spacing
Context: ...`` ### Filtering by Multiple Categories Get holidays from multiple categories: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~209-~209: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays from holidays.constants import PUBLIC, BANK # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~221-~221: Use correct spacing
Context: ...e}") ### Religious Category Example python import holidays from holidays.constants import CATHOLIC # Get only Catholic holidays in Germany (Saxony subdivision) germany_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024) for date, name in sorted(germany_catholic.items()): print(f"{date}: {name}") ### Unofficial Holidays Example python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~233-~233: Use correct spacing
Context: ...}") ### Unofficial Holidays Example python import holidays from holidays.constants import UNOFFICIAL # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) for date, name in sorted(us_unofficial.items()): print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ``` ## Country-Specific Support Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~246-~246: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~248-~248: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~250-~250: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') # Note: The category tuples shown are examples and may change as countries update their holiday frameworks. ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~267-~267: Use correct spacing
Context: ...frameworks. ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~269-~269: There might be a mistake here.
Context: ...Examples by Country United States: ('government', 'public', 'unofficial') - Supports federal holidays, state holiday...

(QB_NEW_EN)


[grammar] ~270-~270: Use correct spacing
Context: ...state holidays, and cultural observances Germany: ('catholic', 'public') - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~272-~272: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~273-~273: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~275-~275: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~276-~276: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~278-~278: There might be a mistake here.
Context: ...al regional observances Argentina: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') - Supports multiple religious traditions a...

(QB_NEW_EN)


[grammar] ~279-~279: There might be a mistake here.
Context: ... traditions and institutional categories ## Implementation Guidelines ### When Defi...

(QB_NEW_EN_OTHER)


[grammar] ~281-~281: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~283-~283: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~285-~285: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~290-~290: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~290-~290: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~292-~292: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~294-~294: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~295-~295: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~296-~296: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~297-~297: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~298-~298: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~299-~299: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)


[grammar] ~301-~301: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~303-~303: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays from holidays.constants import PUBLIC # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~314-~314: Use correct spacing
Context: ...PUBLIC, years=2024) ``` ## Contributing When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~316-~316: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~318-~318: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)


[grammar] ~319-~319: There might be a mistake here.
Context: ...dentify which categories are appropriate 3. Classify each holiday according to its o...

(QB_NEW_EN_OTHER)


[grammar] ~320-~320: There might be a mistake here.
Context: ...fficial status and cultural significance 4. Document the reasoning for category assi...

(QB_NEW_EN_OTHER)


[grammar] ~321-~321: There might be a mistake here.
Context: ...t the reasoning for category assignments 5. Provide examples in tests demonstrating ...

(QB_NEW_EN_OTHER)


[grammar] ~322-~322: There might be a mistake here.
Context: ...es in tests demonstrating category usage

(QB_NEW_EN_OTHER)

🪛 markdownlint-cli2 (0.17.2)
docs/examples.md

146-146: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


154-154: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


160-160: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


166-166: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


172-172: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

docs/holiday_categories.md

17-17: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


25-25: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


39-39: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-49: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


63-63: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


72-72: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


82-82: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


91-91: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


98-98: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


105-105: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


112-112: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


119-119: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


126-126: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


133-133: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


140-140: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


146-146: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


154-154: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


160-160: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


166-166: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


172-172: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


178-178: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


184-184: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


190-190: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


270-270: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


273-273: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


276-276: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


279-279: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🔇 Additional comments (3)
docs/holiday_categories.md (1)

272-274: Constrain Germany’s Catholic example to the actual subdivisions.

Minor clarity: Catholic category applies in Saxony (SN) and Thuringia (TH).

-**Germany**: `('catholic', 'public')`
-- Supports public holidays and Catholic religious holidays in certain regions
+**Germany**: `('catholic', 'public')`
+- Supports public holidays and Catholic religious holidays in certain regions (notably SN and TH)

Likely an incorrect or invalid review comment.

docs/examples.md (2)

148-153: Good: explicitly allows strings or constants and recommends constants.

Clear guidance; aligns with maintainers’ preference.


201-208: Nice: Germany Catholic example scoped to Saxony (SN).

Accurate subdivision usage in this snippet.

Comment on lines +301 to +312
## Default Behavior

When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.

```python
import holidays
from holidays.constants import PUBLIC

# These are equivalent for most countries
us_default = holidays.UnitedStates(years=2024)
us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)
```
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Tighten default behavior wording; it’s not “most countries,” it’s the library default.

Make this precise and align with project convention.

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the categories parameter.
-# These are equivalent for most countries
+# These are equivalent
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Default Behavior
When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
```python
import holidays
from holidays.constants import PUBLIC
# These are equivalent for most countries
us_default = holidays.UnitedStates(years=2024)
us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)
```
## Default Behavior
When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the categories parameter.
🧰 Tools
🪛 LanguageTool

[grammar] ~301-~301: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~303-~303: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays from holidays.constants import PUBLIC # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🤖 Prompt for AI Agents
In docs/holiday_categories.md around lines 301 to 312, the text incorrectly says
"most countries default to returning PUBLIC holidays"; change the wording to
state the library's default behavior instead — e.g., that when no categories are
specified the library defaults to PUBLIC holidays. Update the sentence and
example caption to reflect "library default" and align with project convention
for precise, unambiguous phrasing.

@tharu-jwd
Copy link
Author

Made the changes. @KJhellico Please review.
Thanks !

- Add periods to all code comments for consistency
- Fix PUBLIC section formatting with proper spacing
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (12)
docs/holiday_categories.md (7)

13-15: Use proper headings instead of bold for category titles (fixes MD036, improves scanability).

Bold lines render inconsistently as “pseudo-headings.” Convert to H4 headings for all category labels.

-**PUBLIC**
+#### PUBLIC
@@
-**GOVERNMENT**
+#### GOVERNMENT
@@
-**WORKDAY**
+#### WORKDAY
@@
-**UNOFFICIAL**
+#### UNOFFICIAL
@@
-**BANK**
+#### BANK
@@
-**SCHOOL**
+#### SCHOOL
@@
-**ARMED_FORCES**
+#### ARMED_FORCES
@@
-**OPTIONAL**
+#### OPTIONAL
@@
-**MANDATORY**
+#### MANDATORY
@@
-**HALF_DAY**
+#### HALF_DAY
@@
-**CATHOLIC**
+#### CATHOLIC
@@
-**CHRISTIAN**
+#### CHRISTIAN
@@
-**ORTHODOX**
+#### ORTHODOX
@@
-**ISLAMIC**
+#### ISLAMIC
@@
-**HINDU**
+#### HINDU
@@
-**HEBREW**
+#### HEBREW
@@
-**CHINESE**
+#### CHINESE
@@
-**SABIAN**
+#### SABIAN
@@
-**YAZIDI**
+#### YAZIDI
@@
-**ARMENIAN**
+#### ARMENIAN
@@
-**ALBANIAN**
+#### ALBANIAN
@@
-**BOSNIAN**
+#### BOSNIAN
@@
-**SERBIAN**
+#### SERBIAN
@@
-**TURKISH**
+#### TURKISH
@@
-**ROMA**
+#### ROMA
@@
-**VLACH**
+#### VLACH

Also applies to: 22-24, 29-31, 36-38, 46-48, 53-55, 60-62, 69-71, 76-78, 79-81, 88-90, 95-97, 102-104, 109-111, 116-118, 123-125, 130-132, 137-139, 143-145, 151-153, 157-159, 163-165, 169-171, 175-177, 181-183, 187-189


293-301: Document supported_categories composition rule (include PUBLIC alongside other categories).

Avoid contributors omitting PUBLIC when adding other categories.

 ### Category Selection Principles
+- When a country uses any non-PUBLIC category, include PUBLIC in `supported_categories` alongside the others.
+- If PUBLIC is the only category in use, omit `supported_categories` (PUBLIC is the default inherited category).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off
 - **WORKDAY**: Recognized but working holidays

76-79: Clarify MANDATORY scope or add a cautionary note.

MANDATORY is currently niche (notably Macau). Consider adding a one-liner so users don’t overgeneralize its availability.

-#### MANDATORY
-Holidays that must be observed by law in specific contexts.
+#### MANDATORY
+Holidays that must be observed by law in specific contexts.
+Note: Usage is limited (e.g., Macau’s statutory holidays) and may evolve by jurisdiction.

Would maintainers prefer documenting intended future policy (phase-out vs. keep)? Happy to adjust language after consensus.


259-264: Don’t freeze supported_categories tuples; mark as example output.

Exact tuples evolve. Flag them as non-normative.

 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
+# Example output — may vary by version.
@@
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Example output — may vary by version.

244-245: Avoid fixed outputs in examples; mark as illustrative.

Console output varies by year/locale. Replace with a non-normative note.

-# Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
+# Example output — varies by year and locale.

304-313: Correct default behavior wording (library default is PUBLIC).

It’s not “most countries”; the library returns PUBLIC by default when categories are not specified. Adjust code comment for clarity.

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. Additional categories are excluded unless explicitly requested.
@@
-# These are equivalent for most countries
+# These are equivalent

37-41: Crisp inclusion/exclusion policy for UNOFFICIAL (aligns with issue #1717).

Tighten the definition to explicitly include recurring, widely observed cultural observances and exclude novelty/marketing “national days.”

-Commonly celebrated cultural holidays with no official government recognition or mandated time off. These are widely observed cultural celebrations, but exclude novelty, internet, or marketing "national days."
+Commonly celebrated cultural observances with no official government recognition or mandated time off. Include only widely observed, recurring cultural traditions; exclude novelty, internet, or marketing “national days.”
docs/examples.md (5)

146-151: Minor clarity: state both forms are supported (strings vs constants).

You hint at this already in docs/holiday_categories.md. Mirror a short, explicit line here to preempt confusion.

 ### Basic Category Usage
-Categories accept a single string (e.g., 'public') or an iterable of strings, but it's recommended to use constants from `holidays.constants` for better maintainability; matching is case-sensitive.
+Categories accept a single string (e.g., 'public') or an iterable of strings; constants from `holidays.constants` (e.g., PUBLIC) are equivalent and recommended for maintainability. Matching is case-sensitive.

166-169: Label unofficial-holiday lines as example output.

Results vary by locale/year; annotate accordingly.

 >>> for date, name in sorted(us_unofficial.items()):
 >>>     print(date, name)
-2024-02-14 Valentine's Day
-2024-03-17 Saint Patrick's Day
-2024-10-31 Halloween
+# Example output — varies by year and locale:
+2024-02-14 Valentine's Day
+2024-03-17 Saint Patrick's Day
+2024-10-31 Halloween

215-226: supported_categories outputs should be non-normative.

Add a stability note so tuples aren’t perceived as fixed contracts.

 >>> us = holidays.UnitedStates()
 >>> print("US categories:", us.supported_categories)
 US categories: ('government', 'public', 'unofficial')
@@
 >>> print("Argentina categories:", ar.supported_categories)
 Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')
+>>> # Note: Exact values may change over time; check at runtime.

199-208: Subdivision accuracy note for Germany CATHOLIC example.

Good use of SN. Consider a brief note to mention TH also supports CATHOLIC, to guide users browsing subdivisions.

 >>> # Get Catholic holidays in Germany (Saxony subdivision).
 >>> de_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024)
 >>> for date, name in sorted(de_catholic.items()):
     print(date, name)
 2024-08-15 Mariä Himmelfahrt
+>>> # Note: Thuringia (TH) has CATHOLIC entries as well.

150-161: Avoid brittle numeric output; mark count as illustrative.

Hardcoding “11” will drift. Precede with a note so readers don’t treat it as stable.

 >>> # Get only public holidays.
 >>> us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)
->>> len(us_public)
-11
+>>> # Count depends on rules and the year; output below is illustrative.
+>>> len(us_public)
+11

Based on maintainer discussion, MANDATORY category is planned for deprecation
in favor of OPTIONAL category to improve clarity and consistency.
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/holiday_categories.md (1)

315-324: Contributing: add testing guidance for cross‑category coverage

Document the project requirement that localization tests cover all categories, not just the default.

 When contributing new countries or updating existing ones:
@@
 4. Document the reasoning for category assignments
 5. Provide examples in tests demonstrating category usage
+6. Ensure tests (e.g., `assertLocalizedHolidays`) include holidays from all supported categories for that country, not only PUBLIC.

If you want, I can add a short snippet to the testing guide showing how to assert multiple categories.

♻️ Duplicate comments (9)
docs/holiday_categories.md (9)

17-21: Surround “Examples:” lists with blank lines and remove forced breaks (MD032, spacing)

Add a blank line before and after each “Examples:” block and remove trailing double spaces that force hard line breaks. Below is a representative set; apply the same pattern to the remaining sections in this file.

 Examples:
- - New Year's Day in most countries
- - Independence Day in the United States
- - Christmas Day in Christian-majority countries
+
+- New Year's Day in most countries
+- Independence Day in the United States
+- Christmas Day in Christian-majority countries

@@
 Examples:
- - Flag Day in some jurisdictions
- - Government-specific commemorative days
+
+- Flag Day in some jurisdictions
+- Government-specific commemorative days

@@
 Examples:
- - Constitution Day in some countries
- - Memorial days that are observed but not as public holidays
+
+- Constitution Day in some countries
+- Memorial days that are observed but not as public holidays

@@
-Examples:
-- Valentine's Day
-- Saint Patrick's Day  
-- Halloween
+Examples:
+
+- Valentine's Day
+- Saint Patrick's Day
+- Halloween

Also applies to: 25-28, 32-35, 39-43, 49-52, 56-59, 63-66, 72-75, 82-85, 91-94, 98-101, 105-108, 112-115, 119-122, 126-129, 133-136, 140-142, 146-148, 154-156, 160-162, 166-168, 172-174, 178-180, 184-186, 190-192


253-266: Don’t freeze outputs in docs; mark them as illustrative

Replace hard-coded “Output:” lines with non‑normative notes and keep the example future‑proof.

 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
+# Example output — may vary by version.

 de = holidays.Germany()
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Example output — may vary by version.
 
-# Note: The category tuples shown are examples and may change as countries update their holiday frameworks.
+# Note: Values are examples and may change as countries update their holiday frameworks. Always check at runtime.

268-281: Add stability note to “Examples by Country” to prevent drift

Insert a short non‑normative note under the heading so future tuple changes don’t invalidate the doc.

 ### Examples by Country
+_Note: The tuples shown below are illustrative and may change over time. Always check `supported_categories` at runtime._

236-245: Unofficial example: avoid fixed outputs and add variability note

Output names vary by year/subdiv; don’t assert a fixed list.

 for date, name in sorted(us_unofficial.items()):
     print(f"{date}: {name}")
-# Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
+# Example output — varies by year and locale.

302-313: Default behavior: say “library default,” not “most countries”

Be precise: the library returns PUBLIC by default; the two constructor forms are equivalent.

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the `categories` parameter.
@@
-# These are equivalent for most countries
+# These are equivalent
 us_default = holidays.UnitedStates(years=2024)
 us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)

293-301: Document supported_categories composition rule (include PUBLIC when others exist)

Capture the established rule so contributors don’t omit PUBLIC incorrectly.

 ### Category Selection Principles
+- When a country uses additional categories beyond PUBLIC, include PUBLIC in `supported_categories` alongside the others.
+- If PUBLIC is the only category in use, omit `supported_categories` (PUBLIC is inherited by default).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off
 - **WORKDAY**: Recognized but working holidays

195-206: Clarify strings vs constants in examples for consistency with examples.md

State explicitly that both string names and constants are accepted; this avoids confusion across docs.

 ### Filtering by Single Category
-
-Get only public holidays:
+You can pass categories as strings (e.g., `'public'`) or via constants from `holidays.constants` (e.g., `PUBLIC`). Both forms are supported. This page uses constants; `docs/examples.md` shows string usage.
+
+Get only public holidays:

Also applies to: 208-220, 222-233


234-266: Remove hard-coded “Output:” notes and trailing double spaces in docs/holiday_categories.md

A quick scan shows several hard-coded outputs and stray double spaces that bite you when examples drift. Cleaning these up (and adding a markdown-lint or pre-commit check) will keep docs tidy.

Locations to fix:

  • Hard-coded outputs
    • docs/holiday_categories.md:244 – # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
    • docs/holiday_categories.md:259 – # Output: ('government', 'public', 'unofficial')
    • docs/holiday_categories.md:263 – # Output: ('catholic', 'public')
  • Trailing double spaces (Markdown line breaks)
    • docs/holiday_categories.md:41 – - Saint Patrick's Day
    • docs/holiday_categories.md:146 – Examples:

Suggested next steps:

  • Remove or convert those # Output: lines to fenced-code comments or generate them dynamically.
  • Strip trailing spaces (or enforce via markdown-lint).
  • Consider adding a CI/pre-commit check (e.g., markdownlint, prettier) to catch “Output:” patterns and trailing spaces automatically.

36-43: UNOFFICIAL: add explicit inclusion/exclusion policy and fix formatting

Issue #1717 requires crisp criteria. Add a short “Policy” with clear include/exclude bullets and avoid novelty “days” (e.g., National Fruitcake Toss Day). Also insert a blank line before the list and remove the stray double-spaces after “Saint Patrick’s Day”.

 **UNOFFICIAL**
-Commonly celebrated cultural holidays with no official government recognition or mandated time off. These are widely observed cultural celebrations, but exclude novelty, internet, or marketing "national days."
-
-Examples:
-- Valentine's Day
-- Saint Patrick's Day  
-- Halloween
+Commonly celebrated cultural holidays with no official government recognition or mandated time off. Include only widely observed, recurring cultural observances; exclude novelty, internet, or marketing “national days.”
+
+Policy:
+- Include: long‑standing, broadly recognized cultural observances with recurring public participation (e.g., shown on mainstream calendars, covered by national media).
+- Exclude: novelty/internet/marketing “national days” and ephemeral observances (e.g., National Fruitcake Toss Day), unless a maintainer documents strong, country‑specific justification with reliable sources.
+
+Examples:
+
+- Valentine's Day
+- Saint Patrick's Day
+- Halloween
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between df34f4f and 406df4a.

📒 Files selected for processing (1)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (36)
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T22:13:30.270Z
Learnt from: KJhellico
PR: vacanza/holidays#2854
File: README.md:1557-1562
Timestamp: 2025-08-25T22:13:30.270Z
Learning: Sudan holidays implementation inherits from IslamicHolidays but does not expose an ISLAMIC category in its supported_categories attribute. The Supported Categories column in README.md should remain blank for Sudan.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T09:22:41.753Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T09:57:22.263Z
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.263Z
Learning: In the holidays package, when adding contextual comments about holiday establishment dates, avoid making claims about specific laws, parliamentary acts, or government decisions unless they can be verified from authoritative sources like official government legal databases, gazettes, or parliamentary records. Unverified legal claims should not be added to comments even if they seem plausible.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-24T11:55:06.800Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: README.md:108-108
Timestamp: 2025-08-24T11:55:06.800Z
Learning: The actual count of countries in the holidays library should always be verified by counting entries in the COUNTRIES dictionary in holidays/registry.py using `grep -E '^\s*"[a-z_]+"\s*:' holidays/registry.py | wc -l`, rather than making assumptions about incremental changes.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-17T11:07:04.986Z
Learnt from: KJhellico
PR: vacanza/holidays#2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T12:59:53.286Z
Learnt from: KJhellico
PR: vacanza/holidays#2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T15:48:48.680Z
Learnt from: PPsyrius
PR: vacanza/holidays#2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (`class Test{Country}(CommonCountryTests, TestCase):`) without docstrings. This is an established codebase convention that should be maintained for consistency.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-08T10:33:55.695Z
Learnt from: KJhellico
PR: vacanza/holidays#2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*\(' to avoid overcounting non-entry quoted lines. As of PR vacanza/holidays#2763, this yields 227 entries.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-15T15:00:32.728Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T12:28:31.641Z
Learnt from: PPsyrius
PR: vacanza/holidays#2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-05T02:35:03.298Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:278-377
Timestamp: 2025-03-05T02:35:03.298Z
Learning: For Macau holiday implementations, it's preferable to maintain separate methods for different holiday categories (MANDATORY, GOVERNMENT, PUBLIC) as they are based on different sets of laws, making the code easier to maintain despite having multiple year-based conditionals.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-03T12:36:41.201Z
Learnt from: PPsyrius
PR: vacanza/holidays#2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:
```python
# reason why goes here
if start_year <= self._year <= end_year:
    # Holiday name
    self._add_holiday_function(tr("Holiday Name"))
```

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:32:15.760Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-11T10:14:28.517Z
Learnt from: PPsyrius
PR: vacanza/holidays#2794
File: holidays/groups/christian.py:328-343
Timestamp: 2025-08-11T10:14:28.517Z
Learning: For Ethiopian holidays in the `holidays/groups/christian.py` file, docstring wording should maintain source-accurate phrasing (e.g., "in coincidence of" for Ethiopian New Year/Enkutatash), even when it might read awkwardly in English, to ensure consistency with official Ethiopian documentation.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-10T12:43:10.577Z
Learnt from: ankushhKapoor
PR: vacanza/holidays#2601
File: holidays/calendars/mongolian.py:1-1
Timestamp: 2025-06-10T12:43:10.577Z
Learning: The holidays project's calendar files (in holidays/calendars/) follow a consistent pattern of NOT having module-level docstrings. They only use class-level docstrings for their main classes. When reviewing calendar files, maintain this consistency and do not suggest adding module docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:02:13.815Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T02:34:18.382Z
Learnt from: PPsyrius
PR: vacanza/holidays#2643
File: holidays/countries/mauritius.py:144-169
Timestamp: 2025-06-19T02:34:18.382Z
Learning: Custom holiday classes that extend _CustomHinduHolidays, _CustomIslamicHolidays, _CustomBuddhistHolidays, etc. in the holidays library do not use docstrings. They follow a pattern of using only inline comments above date dictionaries, as seen in Malaysia, Singapore, UAE, and other country implementations.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-19T21:22:13.125Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:22:13.125Z
Learning: In the holidays library, message comments directly above holiday addition methods must match the holiday name exactly without any additions, modifications, or explanatory text. For example, if the holiday name is "Eid al-Fitr Holiday", the comment should be "# Eid al-Fitr Holiday." with no extra context.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T14:55:35.504Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:22-26
Timestamp: 2025-04-23T14:55:35.504Z
Learning: References in holidays classes should only be included if they're used for test case cross-checks or provide historical context about when holidays were added/removed, not just for the sake of having more references.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-25T10:12:30.448Z
Learnt from: PPsyrius
PR: vacanza/holidays#2676
File: holidays/countries/tunisia.py:25-25
Timestamp: 2025-06-25T10:12:30.448Z
Learning: The holidays library intentionally duplicates label strings like `estimated_label` across country modules rather than centralizing them. This duplication is the established library-wide approach and should not be suggested for refactoring.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.711Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.711Z
Learning: In the holidays library, countries with localization support DO use tr() wrappers around holiday names when calling _add_* methods. This is the correct pattern for l10n-enabled country implementations, contrary to previous learning about translation being handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-24T15:21:31.632Z
Learnt from: PPsyrius
PR: vacanza/holidays#2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.711Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.711Z
Learning: In the holidays library, countries with localization support consistently use tr() wrappers around holiday names when calling _add_* methods (e.g., self._add_new_years_day(tr("Holiday Name"))). This is the established pattern across United States, Thailand, and other l10n-enabled countries, contrary to any suggestion that translation is handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-13T15:17:45.519Z
Learnt from: PPsyrius
PR: vacanza/holidays#2349
File: tests/countries/test_taiwan.py:0-0
Timestamp: 2025-03-13T15:17:45.519Z
Learning: For Taiwan's holiday system, different categories (GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY) have distinct uses and contexts, justifying separate instances rather than parameterization in tests.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T14:38:15.029Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/locale/zh_CN/LC_MESSAGES/MO.po:230-234
Timestamp: 2025-03-04T14:38:15.029Z
Learning: For Macau holidays localization, official Macau government sources (e.g., gov.mo) should be the reference for correct terminology, even when it differs from mainland Chinese standards.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-21T16:30:12.749Z
Learnt from: KJhellico
PR: vacanza/holidays#2654
File: holidays/countries/cape_verde.py:1-12
Timestamp: 2025-06-21T16:30:12.749Z
Learning: The holidays project does not use module docstrings in country holiday files. All country files start directly with the copyright header comment block without module docstrings, maintaining a consistent coding style across the project.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T10:51:08.023Z
Learnt from: PPsyrius
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:21-30
Timestamp: 2025-08-25T10:51:08.023Z
Learning: In the holidays library, references in country/market holiday implementations should be ordered as follows: Wikipedia links for the country/market holidays first, then country-specific official sources for newer implementations, then Wikipedia links for each individual non-standard holiday if any are required. Official government sources should not be placed first ahead of Wikipedia links.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
🪛 LanguageTool
docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly. ## Category Types ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly. ## Category Types ### Official Status Categories PUBLIC ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ry Types ### Official Status Categories PUBLIC Official holidays recognized b...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ...### Official Status Categories PUBLIC Official holidays recognized by the gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most count...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: There might be a mistake here.
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...ples: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN)


[grammar] ~20-~20: Use correct spacing
Context: ...tmas Day in Christian-majority countries GOVERNMENT Holidays observed by govern...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~22-~22: There might be a mistake here.
Context: ...stian-majority countries GOVERNMENT Holidays observed by government institut...

(QB_NEW_EN)


[grammar] ~23-~23: Use correct spacing
Context: ...rovide general time off for all workers. Examples: - Flag Day in some jurisdictio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~25-~25: There might be a mistake here.
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...amples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~27-~27: Use correct spacing
Context: ...- Government-specific commemorative days WORKDAY Holidays that are officially r...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~30-~30: Use correct spacing
Context: ...n ceremonial or commemorative in nature. Examples: - Constitution Day in some cou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~32-~32: There might be a mistake here.
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN)


[grammar] ~33-~33: There might be a mistake here.
Context: ...es: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)


[grammar] ~34-~34: Use correct spacing
Context: ... are observed but not as public holidays UNOFFICIAL Commonly celebrated cultura...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~37-~37: Use commas correctly
Context: ...re widely observed cultural celebrations, but exclude novelty, internet, or marke...

(QB_NEW_EN_OTHER_ERROR_IDS_33)


[grammar] ~37-~37: Use correct spacing
Context: ... internet, or marketing "national days." Examples: - Valentine's Day - Saint Patr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~39-~39: There might be a mistake here.
Context: ...or marketing "national days." Examples: - Valentine's Day - Saint Patrick's Day ...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ...onal days." Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### I...

(QB_NEW_EN)


[grammar] ~41-~41: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~42-~42: Use correct spacing
Context: ... Day - Saint Patrick's Day - Halloween ### Institutional Categories BANK Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~44-~44: Use correct spacing
Context: ... Halloween ### Institutional Categories BANK Holidays specifically observed by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~46-~46: There might be a mistake here.
Context: ... ### Institutional Categories BANK Holidays specifically observed by bankin...

(QB_NEW_EN)


[style] ~47-~47: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in ...

(GENERAL_XX)


[grammar] ~47-~47: Use correct spacing
Context: ...may differ from general public holidays. Examples: - Good Friday (in some countri...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~49-~49: There might be a mistake here.
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN)


[grammar] ~50-~50: There might be a mistake here.
Context: ...mples: - Good Friday (in some countries) - Additional banking-specific closures **...

(QB_NEW_EN)


[grammar] ~51-~51: Use correct spacing
Context: ...) - Additional banking-specific closures SCHOOL Holidays specific to educationa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~53-~53: There might be a mistake here.
Context: ...al banking-specific closures SCHOOL Holidays specific to educational institu...

(QB_NEW_EN)


[grammar] ~54-~54: Use correct spacing
Context: ...ys specific to educational institutions. Examples: - Teacher's Day - Education-sp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~56-~56: There might be a mistake here.
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...institutions. Examples: - Teacher's Day - Education-specific observances **ARMED_...

(QB_NEW_EN)


[grammar] ~58-~58: Use correct spacing
Context: ...r's Day - Education-specific observances ARMED_FORCES Holidays specific to mili...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~60-~60: There might be a mistake here.
Context: ...n-specific observances ARMED_FORCES Holidays specific to military personnel ...

(QB_NEW_EN)


[grammar] ~61-~61: Use correct spacing
Context: ... to military personnel and institutions. Examples: - Armed Forces Day - Military ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~63-~63: There might be a mistake here.
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN)


[grammar] ~64-~64: There might be a mistake here.
Context: ...titutions. Examples: - Armed Forces Day - Military commemoration days ### Special...

(QB_NEW_EN)


[grammar] ~65-~65: Use correct spacing
Context: ...Forces Day - Military commemoration days ### Special Categories OPTIONAL Holiday...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~67-~67: Use correct spacing
Context: ...mmemoration days ### Special Categories OPTIONAL Holidays that individuals or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~69-~69: There might be a mistake here.
Context: ...ys ### Special Categories OPTIONAL Holidays that individuals or organizatio...

(QB_NEW_EN)


[grammar] ~70-~70: Use correct spacing
Context: ...ften with flexibility in implementation. Examples: - Religious holidays for minor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~72-~72: There might be a mistake here.
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN)


[grammar] ~73-~73: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)


[grammar] ~74-~74: Use correct spacing
Context: ...al observances with optional recognition MANDATORY (Planned for deprecation) ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~77-~77: Use correct spacing
Context: ...ONAL to improve clarity and consistency. HALF_DAY Holidays that are observed fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~79-~79: There might be a mistake here.
Context: ...e clarity and consistency. HALF_DAY Holidays that are observed for only part...

(QB_NEW_EN)


[grammar] ~80-~80: Use correct spacing
Context: ...t are observed for only part of the day. Examples: - Christmas Eve (afternoon onl...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~82-~82: There might be a mistake here.
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN)


[grammar] ~83-~83: There might be a mistake here.
Context: ...amples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~84-~84: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories CATHOLIC Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~86-~86: Use correct spacing
Context: ...fternoon only) ### Religious Categories CATHOLIC Holidays specific to the Cath...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~88-~88: There might be a mistake here.
Context: ... ### Religious Categories CATHOLIC Holidays specific to the Catholic Christ...

(QB_NEW_EN)


[grammar] ~89-~89: Use correct spacing
Context: ...fic to the Catholic Christian tradition. Examples: - Feast of the Immaculate Conc...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~91-~91: There might be a mistake here.
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN)


[grammar] ~92-~92: There might be a mistake here.
Context: ...es: - Feast of the Immaculate Conception - Corpus Christi CHRISTIAN General Ch...

(QB_NEW_EN)


[grammar] ~93-~93: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi CHRISTIAN General Christian holidays o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~95-~95: There might be a mistake here.
Context: ...nception - Corpus Christi CHRISTIAN General Christian holidays observed acro...

(QB_NEW_EN)


[grammar] ~96-~96: Use correct spacing
Context: ... holidays observed across denominations. Examples: - Easter Sunday - Christmas Da...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~98-~98: There might be a mistake here.
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day **ORTHODO...

(QB_NEW_EN)


[grammar] ~99-~99: There might be a mistake here.
Context: ...enominations. Examples: - Easter Sunday - Christmas Day ORTHODOX Holidays spe...

(QB_NEW_EN)


[grammar] ~100-~100: Use correct spacing
Context: ...xamples: - Easter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~102-~102: There might be a mistake here.
Context: ...ter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox Christian ...

(QB_NEW_EN)


[grammar] ~103-~103: Use correct spacing
Context: ...ecific to Orthodox Christian traditions. Examples: - Orthodox Easter - Orthodox C...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~105-~105: There might be a mistake here.
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas **...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...traditions. Examples: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays...

(QB_NEW_EN)


[grammar] ~107-~107: Use correct spacing
Context: ...: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic trad...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~109-~109: There might be a mistake here.
Context: ...Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic tradition. Ex...

(QB_NEW_EN)


[grammar] ~110-~110: Use correct spacing
Context: ...C** Holidays from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha *...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~112-~112: There might be a mistake here.
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Hol...

(QB_NEW_EN)


[grammar] ~113-~113: There might be a mistake here.
Context: ...amic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the...

(QB_NEW_EN)


[grammar] ~114-~114: Use correct spacing
Context: .... Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu traditio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~116-~116: There might be a mistake here.
Context: ...: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu tradition. Exam...

(QB_NEW_EN)


[grammar] ~117-~117: Use correct spacing
Context: ...NDU** Holidays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~119-~119: There might be a mistake here.
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from ...

(QB_NEW_EN)


[grammar] ~120-~120: There might be a mistake here.
Context: ...the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewis...

(QB_NEW_EN)


[grammar] ~121-~121: Use correct spacing
Context: ...du tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~123-~123: There might be a mistake here.
Context: .... Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradition. Exa...

(QB_NEW_EN)


[grammar] ~124-~124: Use correct spacing
Context: ...EW** Holidays from the Jewish tradition. Examples: - Yom Kippur - Passover **CHI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~126-~126: There might be a mistake here.
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover CHINESE Holid...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...ewish tradition. Examples: - Yom Kippur - Passover CHINESE Holidays from Chin...

(QB_NEW_EN)


[grammar] ~128-~128: Use correct spacing
Context: ...tion. Examples: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~130-~130: There might be a mistake here.
Context: ...es: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural and relig...

(QB_NEW_EN)


[grammar] ~131-~131: Use correct spacing
Context: ...inese cultural and religious traditions. Examples: - Chinese New Year - Mid-Autum...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~133-~133: There might be a mistake here.
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...raditions. Examples: - Chinese New Year - Mid-Autumn Festival SABIAN Holidays...

(QB_NEW_EN)


[grammar] ~135-~135: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~137-~137: There might be a mistake here.
Context: ...w Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian religiou...

(QB_NEW_EN)


[grammar] ~138-~138: Use correct spacing
Context: ...cific to the Sabian religious tradition. Examples: - Used in Iraq for Sabian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~140-~140: There might be a mistake here.
Context: ...e Sabian religious tradition. Examples: - Used in Iraq for Sabian community holida...

(QB_NEW_EN)


[grammar] ~141-~141: Use correct spacing
Context: ...ed in Iraq for Sabian community holidays YAZIDI Holidays specific to the Yazidi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~143-~143: There might be a mistake here.
Context: ...or Sabian community holidays YAZIDI Holidays specific to the Yazidi religiou...

(QB_NEW_EN)


[grammar] ~144-~144: Use correct spacing
Context: ...cific to the Yazidi religious tradition. Examples: - Used in Iraq for Yazidi co...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~146-~146: There might be a mistake here.
Context: ...e Yazidi religious tradition. Examples: - Used in Iraq for Yazidi community holida...

(QB_NEW_EN)


[grammar] ~147-~147: Use correct spacing
Context: ...ed in Iraq for Yazidi community holidays ### Ethnic and Cultural Categories **ARMENI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~149-~149: Use correct spacing
Context: ...days ### Ethnic and Cultural Categories ARMENIAN Holidays specific to Armenian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~151-~151: There might be a mistake here.
Context: ...ic and Cultural Categories ARMENIAN Holidays specific to Armenian culture an...

(QB_NEW_EN)


[grammar] ~152-~152: Use correct spacing
Context: ...ific to Armenian culture and traditions. Examples: - Used in Argentina for Armeni...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~154-~154: There might be a mistake here.
Context: ...enian culture and traditions. Examples: - Used in Argentina for Armenian community...

(QB_NEW_EN)


[grammar] ~155-~155: Use correct spacing
Context: ...rgentina for Armenian community holidays ALBANIAN Holidays specific to Albanian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~157-~157: There might be a mistake here.
Context: ...rmenian community holidays ALBANIAN Holidays specific to Albanian culture an...

(QB_NEW_EN)


[grammar] ~158-~158: Use correct spacing
Context: ...ific to Albanian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~160-~160: There might be a mistake here.
Context: ...anian culture and traditions. Examples: - Used in North Macedonia for Albanian com...

(QB_NEW_EN)


[grammar] ~161-~161: Use correct spacing
Context: ...acedonia for Albanian community holidays BOSNIAN Holidays specific to Bosnian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~163-~163: There might be a mistake here.
Context: ...Albanian community holidays BOSNIAN Holidays specific to Bosnian culture and...

(QB_NEW_EN)


[grammar] ~164-~164: Use correct spacing
Context: ...cific to Bosnian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~166-~166: There might be a mistake here.
Context: ...snian culture and traditions. Examples: - Used in North Macedonia for Bosnian comm...

(QB_NEW_EN)


[grammar] ~167-~167: Use correct spacing
Context: ...Macedonia for Bosnian community holidays SERBIAN Holidays specific to Serbian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~169-~169: There might be a mistake here.
Context: ... Bosnian community holidays SERBIAN Holidays specific to Serbian culture and...

(QB_NEW_EN)


[grammar] ~170-~170: Use correct spacing
Context: ...cific to Serbian culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~172-~172: There might be a mistake here.
Context: ...rbian culture and traditions. Examples: - Used in North Macedonia for Serbian comm...

(QB_NEW_EN)


[grammar] ~173-~173: Use correct spacing
Context: ...Macedonia for Serbian community holidays TURKISH Holidays specific to Turkish c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~175-~175: There might be a mistake here.
Context: ... Serbian community holidays TURKISH Holidays specific to Turkish culture and...

(QB_NEW_EN)


[grammar] ~176-~176: Use correct spacing
Context: ...cific to Turkish culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~178-~178: There might be a mistake here.
Context: ...rkish culture and traditions. Examples: - Used in North Macedonia for Turkish comm...

(QB_NEW_EN)


[grammar] ~179-~179: Use correct spacing
Context: ...Macedonia for Turkish community holidays ROMA Holidays specific to Roma culture...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~181-~181: There might be a mistake here.
Context: ...for Turkish community holidays ROMA Holidays specific to Roma culture and tr...

(QB_NEW_EN)


[grammar] ~182-~182: Use correct spacing
Context: ...specific to Roma culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~184-~184: There might be a mistake here.
Context: ... Roma culture and traditions. Examples: - Used in North Macedonia for Roma communi...

(QB_NEW_EN)


[grammar] ~185-~185: Use correct spacing
Context: ...th Macedonia for Roma community holidays VLACH Holidays specific to Vlach cultu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~187-~187: There might be a mistake here.
Context: ...a for Roma community holidays VLACH Holidays specific to Vlach culture and t...

(QB_NEW_EN)


[grammar] ~188-~188: Use correct spacing
Context: ...pecific to Vlach culture and traditions. Examples: - Used in North Macedonia for ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~190-~190: There might be a mistake here.
Context: ...Vlach culture and traditions. Examples: - Used in North Macedonia for Vlach commun...

(QB_NEW_EN)


[grammar] ~191-~191: Use correct spacing
Context: ...h Macedonia for Vlach community holidays ## Usage Examples ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~193-~193: Use correct spacing
Context: ...ch community holidays ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~195-~195: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~197-~197: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays from holidays.constants import PUBLIC # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~208-~208: Use correct spacing
Context: ...`` ### Filtering by Multiple Categories Get holidays from multiple categories: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~210-~210: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays from holidays.constants import PUBLIC, BANK # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~222-~222: Use correct spacing
Context: ...e}") ### Religious Category Example python import holidays from holidays.constants import CATHOLIC # Get only Catholic holidays in Germany (Saxony subdivision) germany_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024) for date, name in sorted(germany_catholic.items()): print(f"{date}: {name}") ### Unofficial Holidays Example python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~234-~234: Use correct spacing
Context: ...}") ### Unofficial Holidays Example python import holidays from holidays.constants import UNOFFICIAL # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) for date, name in sorted(us_unofficial.items()): print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ``` ## Country-Specific Support Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~247-~247: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~249-~249: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~251-~251: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') # Note: The category tuples shown are examples and may change as countries update their holiday frameworks. ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~268-~268: Use correct spacing
Context: ...frameworks. ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~270-~270: There might be a mistake here.
Context: ...Examples by Country United States: ('government', 'public', 'unofficial') - Supports federal holidays, state holiday...

(QB_NEW_EN)


[grammar] ~271-~271: Use correct spacing
Context: ...state holidays, and cultural observances Germany: ('catholic', 'public') - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~273-~273: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~274-~274: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~276-~276: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~277-~277: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~279-~279: There might be a mistake here.
Context: ...al regional observances Argentina: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') - Supports multiple religious traditions a...

(QB_NEW_EN)


[grammar] ~280-~280: There might be a mistake here.
Context: ... traditions and institutional categories ## Implementation Guidelines ### When Defi...

(QB_NEW_EN_OTHER)


[grammar] ~282-~282: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~284-~284: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~286-~286: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~291-~291: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~291-~291: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~293-~293: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~295-~295: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~296-~296: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~297-~297: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~298-~298: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~299-~299: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~300-~300: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)


[grammar] ~302-~302: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~304-~304: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays from holidays.constants import PUBLIC # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~315-~315: Use correct spacing
Context: ...PUBLIC, years=2024) ``` ## Contributing When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~317-~317: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~319-~319: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)


[grammar] ~320-~320: There might be a mistake here.
Context: ...dentify which categories are appropriate 3. Classify each holiday according to its o...

(QB_NEW_EN_OTHER)


[grammar] ~321-~321: There might be a mistake here.
Context: ...fficial status and cultural significance 4. Document the reasoning for category assi...

(QB_NEW_EN_OTHER)


[grammar] ~322-~322: There might be a mistake here.
Context: ...t the reasoning for category assignments 5. Provide examples in tests demonstrating ...

(QB_NEW_EN_OTHER)


[grammar] ~323-~323: There might be a mistake here.
Context: ...es in tests demonstrating category usage

(QB_NEW_EN_OTHER)

🪛 markdownlint-cli2 (0.17.2)
docs/holiday_categories.md

13-13: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


18-18: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


26-26: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


33-33: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


40-40: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


50-50: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


57-57: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


64-64: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


73-73: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


83-83: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


92-92: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


99-99: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


106-106: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


113-113: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


120-120: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


127-127: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


134-134: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


141-141: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


147-147: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


155-155: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


161-161: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


167-167: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


173-173: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


179-179: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


185-185: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


191-191: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


271-271: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


274-274: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


277-277: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


280-280: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

♻️ Duplicate comments (9)
docs/holiday_categories.md (9)

293-306: Optional: auto-generate tuples during docs build to avoid drift.

Consider generating the per-country tuples via a tiny script at doc-build time instead of hardcoding.

If helpful, I can provide a small script snippet to render current supported_categories into the docs during the build.


13-22: Use proper headings and fix list spacing (MD036/MD032).

Convert bold labels to level-4 headings and surround all “Examples:” lists with blank lines. This stabilizes anchors/ToC and fixes markdownlint errors.

Apply the pattern below and repeat for all category entries in the selected ranges:

-**PUBLIC**
+#### PUBLIC
@@
-Examples:
-
-- New Year's Day in most countries
-- Independence Day in the United States
-- Christmas Day in Christian-majority countries
+Examples:
+
+- New Year's Day in most countries
+- Independence Day in the United States
+- Christmas Day in Christian-majority countries
+
-**GOVERNMENT**
+#### GOVERNMENT
@@
-Examples:
-
-- Flag Day in some jurisdictions
-- Government-specific commemorative days
+Examples:
+
+- Flag Day in some jurisdictions
+- Government-specific commemorative days
+
-**WORKDAY**
+#### WORKDAY
@@
-Examples:
-
-- Constitution Day in some countries
-- Memorial days that are observed but not as public holidays
+Examples:
+
+- Constitution Day in some countries
+- Memorial days that are observed but not as public holidays
+
-**UNOFFICIAL**
+#### UNOFFICIAL
@@
-Examples:
-
-- Valentine's Day
-- Saint Patrick's Day
-- Halloween
+Examples:
+
+- Valentine's Day
+- Saint Patrick's Day
+- Halloween
+
-**BANK**
+#### BANK
@@
-Examples:
-
-- Good Friday (in some countries)
-- Additional banking-specific closures
+Examples:
+
+- Good Friday (in some countries)
+- Additional banking-specific closures
+
-**SCHOOL**
+#### SCHOOL
@@
-Examples:
-
-- Teacher's Day
-- Education-specific observances
+Examples:
+
+- Teacher's Day
+- Education-specific observances
+
-**ARMED_FORCES**
+#### ARMED_FORCES
@@
-Examples:
-
-- Armed Forces Day
-- Military commemoration days
+Examples:
+
+- Armed Forces Day
+- Military commemoration days
+
-**OPTIONAL**
+#### OPTIONAL
@@
-**MANDATORY** *(Planned for deprecation)*
+#### MANDATORY *(planned for deprecation)*
@@
-**HALF_DAY**
+#### HALF_DAY
@@
-Examples:
-
-- Christmas Eve (afternoon only)
-- New Year's Eve (afternoon only)
+Examples:
+
+- Christmas Eve (afternoon only)
+- New Year's Eve (afternoon only)
+
-**CATHOLIC**
+#### CATHOLIC
@@
-Examples:
-
-- Feast of the Immaculate Conception
-- Corpus Christi
+Examples:
+
+- Feast of the Immaculate Conception
+- Corpus Christi
+
-**CHRISTIAN**
+#### CHRISTIAN
@@
-Examples:
-
-- Easter Sunday
-- Christmas Day
+Examples:
+
+- Easter Sunday
+- Christmas Day
+
-**ORTHODOX**
+#### ORTHODOX
@@
-Examples:
-
-- Orthodox Easter
-- Orthodox Christmas
+Examples:
+
+- Orthodox Easter
+- Orthodox Christmas
+
-**ISLAMIC**
+#### ISLAMIC
@@
-Examples:
-
-- Eid al-Fitr
-- Eid al-Adha
+Examples:
+
+- Eid al-Fitr
+- Eid al-Adha
+
-**HINDU**
+#### HINDU
@@
-Examples:
-
-- Diwali
-- Holi
+Examples:
+
+- Diwali
+- Holi
+
-**HEBREW**
+#### HEBREW
@@
-Examples:
-
-- Yom Kippur
-- Passover
+Examples:
+
+- Yom Kippur
+- Passover
+
-**CHINESE**
+#### CHINESE
@@
-Examples:
-
-- Chinese New Year
-- Mid-Autumn Festival
+Examples:
+
+- Chinese New Year
+- Mid-Autumn Festival
+
-**SABIAN**
+#### SABIAN
@@
-Examples:
-
-- Used in Iraq for Sabian community holidays
+Examples:
+
+- Used in Iraq for Sabian community holidays
+
-**YAZIDI**
+#### YAZIDI
@@
-Examples:
-
-- Used in Iraq for Yazidi community holidays
+Examples:
+
+- Used in Iraq for Yazidi community holidays
+
-**ARMENIAN**
+#### ARMENIAN
@@
-Examples:
-
-- Used in Argentina for Armenian community holidays
+Examples:
+
+- Used in Argentina for Armenian community holidays
+
-**ALBANIAN**
+#### ALBANIAN
@@
-Examples:
-
-- Used in North Macedonia for Albanian community holidays
+Examples:
+
+- Used in North Macedonia for Albanian community holidays
+
-**BOSNIAN**
+#### BOSNIAN
@@
-Examples:
-
-- Used in North Macedonia for Bosnian community holidays
+Examples:
+
+- Used in North Macedonia for Bosnian community holidays
+
-**SERBIAN**
+#### SERBIAN
@@
-Examples:
-
-- Used in North Macedonia for Serbian community holidays
+Examples:
+
+- Used in North Macedonia for Serbian community holidays
+
-**TURKISH**
+#### TURKISH
@@
-Examples:
-
-- Used in North Macedonia for Turkish community holidays
+Examples:
+
+- Used in North Macedonia for Turkish community holidays
+
-**ROMA**
+#### ROMA
@@
-Examples:
-
-- Used in North Macedonia for Roma community holidays
+Examples:
+
+- Used in North Macedonia for Roma community holidays
+
-**VLACH**
+#### VLACH
@@
-Examples:
-
-- Used in North Macedonia for Vlach community holidays
+Examples:
+
+- Used in North Macedonia for Vlach community holidays
+

Also applies to: 23-30, 31-38, 39-47, 50-57, 58-65, 66-73, 76-83, 84-87, 87-94, 97-104, 105-112, 113-120, 121-128, 129-136, 137-144, 145-152, 153-160, 160-166, 169-176, 176-182, 183-189, 190-196, 197-203, 204-210, 211-217


84-87: MANDATORY: soften wording and steer away from new usage.

Avoid brittle “currently only used by” phrasing; give contributor guidance.

-#### MANDATORY *(planned for deprecation)*
-Holidays that must be observed by law in specific contexts. Currently only used by Macau. This category may be phased out in favor of OPTIONAL to improve clarity and consistency.
+#### MANDATORY *(planned for deprecation)*
+Holidays that must be observed by law in specific contexts. Historically used by Macau. Avoid using this category in new implementations; prefer mapping such days to `OPTIONAL` (or country‑specific categories) for clarity and consistency.

259-270: Replace fixed output with a non-normative note.

Avoid asserting exact names; they vary by year/locale.

 for date, name in sorted(us_unofficial.items()):
     print(f"{date}: {name}")
-# Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
+# Example output — varies by year and locale.

327-338: Tighten default behavior wording; reflect library default.

Remove “most countries” ambiguity and fix the inline comment.

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the `categories` parameter.
@@
-# These are equivalent for most countries
+# These are equivalent

318-326: Document composition rule for supported_categories (include PUBLIC).

Codify established practice so contributors don’t omit PUBLIC when others exist.

 ### Category Selection Principles
+- When a country uses additional categories beyond PUBLIC, include `PUBLIC` in `supported_categories` alongside the others.
+- If `PUBLIC` is the only category in use, you may omit `supported_categories` entirely (PUBLIC is the default).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off
 - **WORKDAY**: Recognized but working holidays

293-306: Examples by Country: add non-normative note and blank lines.

Add a stability disclaimer and ensure spacing for readability.

-### Examples by Country
+### Examples by Country
+_Note: The tuples below are illustrative and may change over time. Always check `supported_categories` at runtime._
 
 **United States**: `('government', 'public', 'unofficial')`
 - Supports federal holidays, state holidays, and cultural observances
+
 **Germany**: `('catholic', 'public')`
 - Supports public holidays and Catholic religious holidays in certain regions
+
 **India**: `('optional', 'public')`
 - Supports national holidays and optional regional observances
+
 **Argentina**: `('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')`
 - Supports multiple religious traditions and institutional categories

276-291: Do not freeze supported_categories tuples in examples.

Swap “Output:” lines for non-normative comments and add a stability note.

 us = holidays.UnitedStates()
 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
+# Example output — may vary by version.
 
 de = holidays.Germany()
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Example output — may vary by version.
 
-# Note: The category tuples shown are examples and may change as countries update their holiday frameworks.
+# Note: Values are illustrative and may change as countries update their holiday frameworks. Check at runtime.

218-231: Clarify constants vs. strings in examples.

State both syntaxes are supported and intentional; keeps this page consistent with docs/examples.md.

-### Filtering by Single Category
-
-Get only public holidays:
+### Filtering by Single Category
+
+You can pass categories as strings (e.g., `'public'`) or via constants from `holidays.constants` (e.g., `PUBLIC`). Both forms are supported; this page uses constants, while `docs/examples.md` shows string usage.
+
+Get only public holidays:
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 406df4a and dcce215.

📒 Files selected for processing (1)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (37)
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T22:13:30.270Z
Learnt from: KJhellico
PR: vacanza/holidays#2854
File: README.md:1557-1562
Timestamp: 2025-08-25T22:13:30.270Z
Learning: Sudan holidays implementation inherits from IslamicHolidays but does not expose an ISLAMIC category in its supported_categories attribute. The Supported Categories column in README.md should remain blank for Sudan.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T12:28:31.641Z
Learnt from: PPsyrius
PR: vacanza/holidays#2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-24T04:59:38.436Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:1-12
Timestamp: 2025-04-24T04:59:38.436Z
Learning: The holidays library uses a standard file header across country implementation files that includes copyright information, authors, website, and license details. New country implementation files should follow this same header format.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T09:22:41.753Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T09:57:22.263Z
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.263Z
Learning: In the holidays package, when adding contextual comments about holiday establishment dates, avoid making claims about specific laws, parliamentary acts, or government decisions unless they can be verified from authoritative sources like official government legal databases, gazettes, or parliamentary records. Unverified legal claims should not be added to comments even if they seem plausible.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:32:15.760Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-24T11:55:06.800Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: README.md:108-108
Timestamp: 2025-08-24T11:55:06.800Z
Learning: The actual count of countries in the holidays library should always be verified by counting entries in the COUNTRIES dictionary in holidays/registry.py using `grep -E '^\s*"[a-z_]+"\s*:' holidays/registry.py | wc -l`, rather than making assumptions about incremental changes.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-17T11:07:04.986Z
Learnt from: KJhellico
PR: vacanza/holidays#2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T12:59:53.286Z
Learnt from: KJhellico
PR: vacanza/holidays#2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T15:48:48.680Z
Learnt from: PPsyrius
PR: vacanza/holidays#2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (`class Test{Country}(CommonCountryTests, TestCase):`) without docstrings. This is an established codebase convention that should be maintained for consistency.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-08T10:33:55.695Z
Learnt from: KJhellico
PR: vacanza/holidays#2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*\(' to avoid overcounting non-entry quoted lines. As of PR vacanza/holidays#2763, this yields 227 entries.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-15T15:00:32.728Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-05T02:35:03.298Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:278-377
Timestamp: 2025-03-05T02:35:03.298Z
Learning: For Macau holiday implementations, it's preferable to maintain separate methods for different holiday categories (MANDATORY, GOVERNMENT, PUBLIC) as they are based on different sets of laws, making the code easier to maintain despite having multiple year-based conditionals.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-03T12:36:41.201Z
Learnt from: PPsyrius
PR: vacanza/holidays#2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:
```python
# reason why goes here
if start_year <= self._year <= end_year:
    # Holiday name
    self._add_holiday_function(tr("Holiday Name"))
```

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-11T10:14:28.517Z
Learnt from: PPsyrius
PR: vacanza/holidays#2794
File: holidays/groups/christian.py:328-343
Timestamp: 2025-08-11T10:14:28.517Z
Learning: For Ethiopian holidays in the `holidays/groups/christian.py` file, docstring wording should maintain source-accurate phrasing (e.g., "in coincidence of" for Ethiopian New Year/Enkutatash), even when it might read awkwardly in English, to ensure consistency with official Ethiopian documentation.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-10T12:43:10.577Z
Learnt from: ankushhKapoor
PR: vacanza/holidays#2601
File: holidays/calendars/mongolian.py:1-1
Timestamp: 2025-06-10T12:43:10.577Z
Learning: The holidays project's calendar files (in holidays/calendars/) follow a consistent pattern of NOT having module-level docstrings. They only use class-level docstrings for their main classes. When reviewing calendar files, maintain this consistency and do not suggest adding module docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:02:13.815Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T02:34:18.382Z
Learnt from: PPsyrius
PR: vacanza/holidays#2643
File: holidays/countries/mauritius.py:144-169
Timestamp: 2025-06-19T02:34:18.382Z
Learning: Custom holiday classes that extend _CustomHinduHolidays, _CustomIslamicHolidays, _CustomBuddhistHolidays, etc. in the holidays library do not use docstrings. They follow a pattern of using only inline comments above date dictionaries, as seen in Malaysia, Singapore, UAE, and other country implementations.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-19T21:22:13.125Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:22:13.125Z
Learning: In the holidays library, message comments directly above holiday addition methods must match the holiday name exactly without any additions, modifications, or explanatory text. For example, if the holiday name is "Eid al-Fitr Holiday", the comment should be "# Eid al-Fitr Holiday." with no extra context.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T14:55:35.504Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:22-26
Timestamp: 2025-04-23T14:55:35.504Z
Learning: References in holidays classes should only be included if they're used for test case cross-checks or provide historical context about when holidays were added/removed, not just for the sake of having more references.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-25T10:12:30.448Z
Learnt from: PPsyrius
PR: vacanza/holidays#2676
File: holidays/countries/tunisia.py:25-25
Timestamp: 2025-06-25T10:12:30.448Z
Learning: The holidays library intentionally duplicates label strings like `estimated_label` across country modules rather than centralizing them. This duplication is the established library-wide approach and should not be suggested for refactoring.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.711Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.711Z
Learning: In the holidays library, countries with localization support DO use tr() wrappers around holiday names when calling _add_* methods. This is the correct pattern for l10n-enabled country implementations, contrary to previous learning about translation being handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-24T15:21:31.632Z
Learnt from: PPsyrius
PR: vacanza/holidays#2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.711Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.711Z
Learning: In the holidays library, countries with localization support consistently use tr() wrappers around holiday names when calling _add_* methods (e.g., self._add_new_years_day(tr("Holiday Name"))). This is the established pattern across United States, Thailand, and other l10n-enabled countries, contrary to any suggestion that translation is handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-13T15:17:45.519Z
Learnt from: PPsyrius
PR: vacanza/holidays#2349
File: tests/countries/test_taiwan.py:0-0
Timestamp: 2025-03-13T15:17:45.519Z
Learning: For Taiwan's holiday system, different categories (GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY) have distinct uses and contexts, justifying separate instances rather than parameterization in tests.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T14:38:15.029Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/locale/zh_CN/LC_MESSAGES/MO.po:230-234
Timestamp: 2025-03-04T14:38:15.029Z
Learning: For Macau holidays localization, official Macau government sources (e.g., gov.mo) should be the reference for correct terminology, even when it differs from mainland Chinese standards.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-21T16:30:12.749Z
Learnt from: KJhellico
PR: vacanza/holidays#2654
File: holidays/countries/cape_verde.py:1-12
Timestamp: 2025-06-21T16:30:12.749Z
Learning: The holidays project does not use module docstrings in country holiday files. All country files start directly with the copyright header comment block without module docstrings, maintaining a consistent coding style across the project.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T10:51:08.023Z
Learnt from: PPsyrius
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:21-30
Timestamp: 2025-08-25T10:51:08.023Z
Learning: In the holidays library, references in country/market holiday implementations should be ordered as follows: Wikipedia links for the country/market holidays first, then country-specific official sources for newer implementations, then Wikipedia links for each individual non-standard holiday if any are required. Official government sources should not be placed first ahead of Wikipedia links.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
🪛 LanguageTool
docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly. ## Category Types ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly. ## Category Types ### Official Status Categories PUBLIC ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ry Types ### Official Status Categories PUBLIC Official holidays recognized b...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ...### Official Status Categories PUBLIC Official holidays recognized by the gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: Use correct spacing
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~19-~19: There might be a mistake here.
Context: ...les: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN_OTHER)


[grammar] ~20-~20: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN_OTHER)


[grammar] ~21-~21: Use correct spacing
Context: ...tmas Day in Christian-majority countries GOVERNMENT Holidays observed by govern...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~23-~23: There might be a mistake here.
Context: ...stian-majority countries GOVERNMENT Holidays observed by government institut...

(QB_NEW_EN)


[grammar] ~24-~24: Use correct spacing
Context: ...rovide general time off for all workers. Examples: - Flag Day in some jurisdicti...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~26-~26: Use correct spacing
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~28-~28: There might be a mistake here.
Context: ...mples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~29-~29: Use correct spacing
Context: ...- Government-specific commemorative days WORKDAY Holidays that are officially r...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~32-~32: Use correct spacing
Context: ...n ceremonial or commemorative in nature. Examples: - Constitution Day in some co...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~34-~34: Use correct spacing
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~36-~36: There might be a mistake here.
Context: ...s: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)


[grammar] ~37-~37: Use correct spacing
Context: ... are observed but not as public holidays UNOFFICIAL Commonly celebrated cultura...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~40-~40: Use commas correctly
Context: ...re widely observed cultural celebrations, but exclude novelty, internet, or marke...

(QB_NEW_EN_OTHER_ERROR_IDS_33)


[grammar] ~40-~40: Use correct spacing
Context: ... internet, or marketing "national days." Examples: - Valentine's Day - Saint Pat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~42-~42: Use correct spacing
Context: ...or marketing "national days." Examples: - Valentine's Day - Saint Patrick's Day - ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~44-~44: There might be a mistake here.
Context: ...nal days." Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### Ins...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~46-~46: Use correct spacing
Context: ...'s Day - Saint Patrick's Day - Halloween ### Institutional Categories BANK Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~48-~48: Use correct spacing
Context: ... Halloween ### Institutional Categories BANK Holidays specifically observed by...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~50-~50: There might be a mistake here.
Context: ... ### Institutional Categories BANK Holidays specifically observed by bankin...

(QB_NEW_EN)


[style] ~51-~51: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in...

(GENERAL_XX)


[grammar] ~51-~51: Use correct spacing
Context: ...may differ from general public holidays. Examples: - Good Friday (in some countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~53-~53: Use correct spacing
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~55-~55: There might be a mistake here.
Context: ...ples: - Good Friday (in some countries) - Additional banking-specific closures **...

(QB_NEW_EN)


[grammar] ~56-~56: Use correct spacing
Context: ...) - Additional banking-specific closures SCHOOL Holidays specific to educationa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~58-~58: There might be a mistake here.
Context: ...al banking-specific closures SCHOOL Holidays specific to educational institu...

(QB_NEW_EN)


[grammar] ~59-~59: Use correct spacing
Context: ...ys specific to educational institutions. Examples: - Teacher's Day - Education-s...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~61-~61: Use correct spacing
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~63-~63: There might be a mistake here.
Context: ...nstitutions. Examples: - Teacher's Day - Education-specific observances **ARMED_...

(QB_NEW_EN)


[grammar] ~64-~64: Use correct spacing
Context: ...r's Day - Education-specific observances ARMED_FORCES Holidays specific to mili...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~66-~66: There might be a mistake here.
Context: ...n-specific observances ARMED_FORCES Holidays specific to military personnel ...

(QB_NEW_EN)


[grammar] ~67-~67: Use correct spacing
Context: ... to military personnel and institutions. Examples: - Armed Forces Day - Military...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~69-~69: Use correct spacing
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~71-~71: There might be a mistake here.
Context: ...itutions. Examples: - Armed Forces Day - Military commemoration days ### Special...

(QB_NEW_EN)


[grammar] ~72-~72: Use correct spacing
Context: ...Forces Day - Military commemoration days ### Special Categories OPTIONAL Holiday...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~74-~74: Use correct spacing
Context: ...mmemoration days ### Special Categories OPTIONAL Holidays that individuals or ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ys ### Special Categories OPTIONAL Holidays that individuals or organizatio...

(QB_NEW_EN)


[grammar] ~77-~77: Use correct spacing
Context: ...ften with flexibility in implementation. Examples: - Religious holidays for mino...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~79-~79: Use correct spacing
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~81-~81: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)


[grammar] ~82-~82: Use correct spacing
Context: ...al observances with optional recognition MANDATORY (Planned for deprecation) ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~85-~85: Use correct spacing
Context: ...ONAL to improve clarity and consistency. HALF_DAY Holidays that are observed fo...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~87-~87: There might be a mistake here.
Context: ...e clarity and consistency. HALF_DAY Holidays that are observed for only part...

(QB_NEW_EN)


[grammar] ~88-~88: Use correct spacing
Context: ...t are observed for only part of the day. Examples: - Christmas Eve (afternoon on...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~90-~90: Use correct spacing
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~92-~92: There might be a mistake here.
Context: ...mples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~93-~93: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories CATHOLIC Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~95-~95: Use correct spacing
Context: ...fternoon only) ### Religious Categories CATHOLIC Holidays specific to the Cath...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~97-~97: There might be a mistake here.
Context: ... ### Religious Categories CATHOLIC Holidays specific to the Catholic Christ...

(QB_NEW_EN)


[grammar] ~98-~98: Use correct spacing
Context: ...fic to the Catholic Christian tradition. Examples: - Feast of the Immaculate Con...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~100-~100: Use correct spacing
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~102-~102: There might be a mistake here.
Context: ...s: - Feast of the Immaculate Conception - Corpus Christi CHRISTIAN General Ch...

(QB_NEW_EN)


[grammar] ~103-~103: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi CHRISTIAN General Christian holidays o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~105-~105: There might be a mistake here.
Context: ...nception - Corpus Christi CHRISTIAN General Christian holidays observed acro...

(QB_NEW_EN)


[grammar] ~106-~106: Use correct spacing
Context: ... holidays observed across denominations. Examples: - Easter Sunday - Christmas D...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~108-~108: Use correct spacing
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day **ORTHODO...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~110-~110: There might be a mistake here.
Context: ...nominations. Examples: - Easter Sunday - Christmas Day ORTHODOX Holidays spe...

(QB_NEW_EN)


[grammar] ~111-~111: Use correct spacing
Context: ...amples: - Easter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~113-~113: There might be a mistake here.
Context: ...ter Sunday - Christmas Day ORTHODOX Holidays specific to Orthodox Christian ...

(QB_NEW_EN)


[grammar] ~114-~114: Use correct spacing
Context: ...ecific to Orthodox Christian traditions. Examples: - Orthodox Easter - Orthodox ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~116-~116: Use correct spacing
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas **...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~118-~118: There might be a mistake here.
Context: ...raditions. Examples: - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays...

(QB_NEW_EN)


[grammar] ~119-~119: Use correct spacing
Context: ... - Orthodox Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic trad...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~121-~121: There might be a mistake here.
Context: ...Easter - Orthodox Christmas ISLAMIC Holidays from the Islamic tradition. Ex...

(QB_NEW_EN)


[grammar] ~122-~122: Use correct spacing
Context: ...C** Holidays from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~124-~124: Use correct spacing
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Hol...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~126-~126: There might be a mistake here.
Context: ...mic tradition. Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the...

(QB_NEW_EN)


[grammar] ~127-~127: Use correct spacing
Context: ... Examples: - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu traditio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~129-~129: There might be a mistake here.
Context: ... - Eid al-Fitr - Eid al-Adha HINDU Holidays from the Hindu tradition. Exam...

(QB_NEW_EN)


[grammar] ~130-~130: Use correct spacing
Context: ...NDU** Holidays from the Hindu tradition. Examples: - Diwali - Holi HEBREW H...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~132-~132: Use correct spacing
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~134-~134: There might be a mistake here.
Context: ...he Hindu tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewis...

(QB_NEW_EN)


[grammar] ~135-~135: Use correct spacing
Context: ...u tradition. Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~137-~137: There might be a mistake here.
Context: ... Examples: - Diwali - Holi HEBREW Holidays from the Jewish tradition. Exa...

(QB_NEW_EN)


[grammar] ~138-~138: Use correct spacing
Context: ...EW** Holidays from the Jewish tradition. Examples: - Yom Kippur - Passover **CH...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~140-~140: Use correct spacing
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover CHINESE Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~142-~142: There might be a mistake here.
Context: ...wish tradition. Examples: - Yom Kippur - Passover CHINESE Holidays from Chin...

(QB_NEW_EN)


[grammar] ~143-~143: Use correct spacing
Context: ...ion. Examples: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~145-~145: There might be a mistake here.
Context: ...s: - Yom Kippur - Passover CHINESE Holidays from Chinese cultural and relig...

(QB_NEW_EN)


[grammar] ~146-~146: Use correct spacing
Context: ...inese cultural and religious traditions. Examples: - Chinese New Year - Mid-Autu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: Use correct spacing
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~150-~150: There might be a mistake here.
Context: ...aditions. Examples: - Chinese New Year - Mid-Autumn Festival SABIAN Holidays...

(QB_NEW_EN)


[grammar] ~151-~151: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~153-~153: There might be a mistake here.
Context: ...w Year - Mid-Autumn Festival SABIAN Holidays specific to the Sabian religiou...

(QB_NEW_EN)


[grammar] ~154-~154: Use correct spacing
Context: ...cific to the Sabian religious tradition. Examples: - Used in Iraq for Sabian com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~156-~156: Use correct spacing
Context: ...e Sabian religious tradition. Examples: - Used in Iraq for Sabian community holida...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~158-~158: Use correct spacing
Context: ...ed in Iraq for Sabian community holidays YAZIDI Holidays specific to the Yazidi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~160-~160: There might be a mistake here.
Context: ...or Sabian community holidays YAZIDI Holidays specific to the Yazidi religiou...

(QB_NEW_EN)


[grammar] ~161-~161: Use correct spacing
Context: ...cific to the Yazidi religious tradition. Examples: - Used in Iraq for Yazidi com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~163-~163: Use correct spacing
Context: ...e Yazidi religious tradition. Examples: - Used in Iraq for Yazidi community holida...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~165-~165: Use correct spacing
Context: ...ed in Iraq for Yazidi community holidays ### Ethnic and Cultural Categories **ARMENI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~167-~167: Use correct spacing
Context: ...days ### Ethnic and Cultural Categories ARMENIAN Holidays specific to Armenian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~169-~169: There might be a mistake here.
Context: ...ic and Cultural Categories ARMENIAN Holidays specific to Armenian culture an...

(QB_NEW_EN)


[grammar] ~170-~170: Use correct spacing
Context: ...ific to Armenian culture and traditions. Examples: - Used in Argentina for Armen...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~172-~172: Use correct spacing
Context: ...enian culture and traditions. Examples: - Used in Argentina for Armenian community...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~174-~174: Use correct spacing
Context: ...rgentina for Armenian community holidays ALBANIAN Holidays specific to Albanian...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~176-~176: There might be a mistake here.
Context: ...rmenian community holidays ALBANIAN Holidays specific to Albanian culture an...

(QB_NEW_EN)


[grammar] ~177-~177: Use correct spacing
Context: ...ific to Albanian culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~179-~179: Use correct spacing
Context: ...anian culture and traditions. Examples: - Used in North Macedonia for Albanian com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~181-~181: Use correct spacing
Context: ...acedonia for Albanian community holidays BOSNIAN Holidays specific to Bosnian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~183-~183: There might be a mistake here.
Context: ...Albanian community holidays BOSNIAN Holidays specific to Bosnian culture and...

(QB_NEW_EN)


[grammar] ~184-~184: Use correct spacing
Context: ...cific to Bosnian culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~186-~186: Use correct spacing
Context: ...snian culture and traditions. Examples: - Used in North Macedonia for Bosnian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~188-~188: Use correct spacing
Context: ...Macedonia for Bosnian community holidays SERBIAN Holidays specific to Serbian c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~190-~190: There might be a mistake here.
Context: ... Bosnian community holidays SERBIAN Holidays specific to Serbian culture and...

(QB_NEW_EN)


[grammar] ~191-~191: Use correct spacing
Context: ...cific to Serbian culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~193-~193: Use correct spacing
Context: ...rbian culture and traditions. Examples: - Used in North Macedonia for Serbian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~195-~195: Use correct spacing
Context: ...Macedonia for Serbian community holidays TURKISH Holidays specific to Turkish c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~197-~197: There might be a mistake here.
Context: ... Serbian community holidays TURKISH Holidays specific to Turkish culture and...

(QB_NEW_EN)


[grammar] ~198-~198: Use correct spacing
Context: ...cific to Turkish culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~200-~200: Use correct spacing
Context: ...rkish culture and traditions. Examples: - Used in North Macedonia for Turkish comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~202-~202: Use correct spacing
Context: ...Macedonia for Turkish community holidays ROMA Holidays specific to Roma culture...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~204-~204: There might be a mistake here.
Context: ...for Turkish community holidays ROMA Holidays specific to Roma culture and tr...

(QB_NEW_EN)


[grammar] ~205-~205: Use correct spacing
Context: ...specific to Roma culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~207-~207: Use correct spacing
Context: ... Roma culture and traditions. Examples: - Used in North Macedonia for Roma communi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~209-~209: Use correct spacing
Context: ...th Macedonia for Roma community holidays VLACH Holidays specific to Vlach cultu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~211-~211: There might be a mistake here.
Context: ...a for Roma community holidays VLACH Holidays specific to Vlach culture and t...

(QB_NEW_EN)


[grammar] ~212-~212: Use correct spacing
Context: ...pecific to Vlach culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~214-~214: Use correct spacing
Context: ...Vlach culture and traditions. Examples: - Used in North Macedonia for Vlach commun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~216-~216: Use correct spacing
Context: ...h Macedonia for Vlach community holidays ## Usage Examples ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~218-~218: Use correct spacing
Context: ...ch community holidays ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~220-~220: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~222-~222: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays from holidays.constants import PUBLIC # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~233-~233: Use correct spacing
Context: ...`` ### Filtering by Multiple Categories Get holidays from multiple categories: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~235-~235: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays from holidays.constants import PUBLIC, BANK # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~247-~247: Use correct spacing
Context: ...e}") ### Religious Category Example python import holidays from holidays.constants import CATHOLIC # Get only Catholic holidays in Germany (Saxony subdivision) germany_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024) for date, name in sorted(germany_catholic.items()): print(f"{date}: {name}") ### Unofficial Holidays Example python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~259-~259: Use correct spacing
Context: ...}") ### Unofficial Holidays Example python import holidays from holidays.constants import UNOFFICIAL # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) for date, name in sorted(us_unofficial.items()): print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ``` ## Country-Specific Support Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~272-~272: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~274-~274: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~276-~276: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') # Note: The category tuples shown are examples and may change as countries update their holiday frameworks. ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~293-~293: Use correct spacing
Context: ...frameworks. ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~295-~295: There might be a mistake here.
Context: ...Examples by Country United States: ('government', 'public', 'unofficial') - Supports federal holidays, state holiday...

(QB_NEW_EN)


[grammar] ~296-~296: Use correct spacing
Context: ...state holidays, and cultural observances Germany: ('catholic', 'public') - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~298-~298: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~299-~299: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~301-~301: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~302-~302: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~304-~304: There might be a mistake here.
Context: ...al regional observances Argentina: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') - Supports multiple religious traditions a...

(QB_NEW_EN)


[grammar] ~305-~305: There might be a mistake here.
Context: ... traditions and institutional categories ## Implementation Guidelines ### When Defi...

(QB_NEW_EN_OTHER)


[grammar] ~307-~307: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~309-~309: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~311-~311: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~316-~316: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~316-~316: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~318-~318: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~320-~320: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~321-~321: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~322-~322: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~323-~323: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~324-~324: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~325-~325: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)


[grammar] ~327-~327: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~329-~329: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays from holidays.constants import PUBLIC # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~340-~340: Use correct spacing
Context: ...PUBLIC, years=2024) ``` ## Contributing When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~342-~342: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~344-~344: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)


[grammar] ~345-~345: There might be a mistake here.
Context: ...dentify which categories are appropriate 3. Classify each holiday according to its o...

(QB_NEW_EN_OTHER)


[grammar] ~346-~346: There might be a mistake here.
Context: ...fficial status and cultural significance 4. Document the reasoning for category assi...

(QB_NEW_EN_OTHER)


[grammar] ~347-~347: There might be a mistake here.
Context: ...t the reasoning for category assignments 5. Provide examples in tests demonstrating ...

(QB_NEW_EN_OTHER)


[grammar] ~348-~348: There might be a mistake here.
Context: ...es in tests demonstrating category usage

(QB_NEW_EN_OTHER)

🪛 markdownlint-cli2 (0.17.2)
docs/holiday_categories.md

13-13: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


296-296: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


299-299: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


302-302: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


305-305: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🔇 Additional comments (1)
docs/holiday_categories.md (1)

1-8: Strong addition.

This page fills a long-standing gap: category taxonomy, examples, contributor guidance. Nice work.

Comment on lines +272 to +276
## Country-Specific Support

Not all countries support all categories. Each country defines its own supported categories based on its legal and cultural framework.

### Checking Supported Categories
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Minor: add a one-liner linking to API surface.

A short pointer to where supported_categories and categories= are defined in the API would help discovery (README or Country classes overview).

I can propose an exact anchor once you confirm the preferred target (README section vs. API reference).

🧰 Tools
🪛 LanguageTool

[grammar] ~272-~272: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~274-~274: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~276-~276: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') # Note: The category tuples shown are examples and may change as countries update their holiday frameworks. ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🤖 Prompt for AI Agents
In docs/holiday_categories.md around lines 272-276, add a single-line pointer
linking readers to the API surface where supported_categories and the
categories= parameter are defined (either the README section or the Country
classes API reference). Insert a concise sentence like “See [API
reference/README - Country classes] for definitions of supported_categories and
categories=” with the appropriate anchor/URL; if you prefer the README, use that
anchor, otherwise link to the Country classes overview in the API docs.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (10)
docs/holiday_categories.md (10)

258-271: Multi‑category example: mention string tuple option.

Mirror the constants/strings guidance here as well.

Apply:

 ### Filtering by Multiple Categories
 
+Note: You can pass strings instead of constants, e.g., `categories=('public', 'bank')`.
+
 Get holidays from multiple categories:
 
 ```python
 import holidays
 from holidays.constants import PUBLIC, BANK
 
 # Get both public and bank holidays for Belgium
 belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024)
 for date, name in sorted(belgium_holidays.items()):
     print(f"{date}: {name}")
+# Alternatively:
+# belgium_holidays = holidays.Belgium(categories=('public', 'bank'), years=2024)

---

`243-256`: **Examples: clarify constants vs strings and show the alternate form.**

Reflect both supported syntaxes to align with examples.md.

Apply:

```diff
 ### Filtering by Single Category
 
 Get only public holidays:
 
 ```python
 import holidays
 from holidays.constants import PUBLIC
 
 # Get only public holidays for the United States
 us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)
 print(f"US public holidays in 2024: {len(us_public)}")
+# Alternatively (strings are also supported):
+# us_public = holidays.UnitedStates(categories='public', years=2024)

---

`272-283`: **Religious example: add strings note for parity.**

Keep examples consistent across sections.

Apply:

```diff
 ### Religious Category Example
+
+Note: Strings work too, e.g., `categories='catholic'`.
 
 ```python
 import holidays
 from holidays.constants import CATHOLIC
 
 # Get only Catholic holidays in Germany (Saxony subdivision)
 germany_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024)
 for date, name in sorted(germany_catholic.items()):
     print(f"{date}: {name}")
+# Alternatively:
+# germany_catholic = holidays.Germany(subdiv='SN', categories='catholic', years=2024)

---

`91-95`: **MANDATORY: future‑proof deprecation wording and guidance.**

Avoid brittle “currently only used by Macau”; steer contributors away from new usage.

Apply:

```diff
-#### MANDATORY *(Planned for deprecation)*
+#### MANDATORY *(planned for deprecation)*
 
-Holidays that must be observed by law in specific contexts. Currently only used by Macau. This category may be phased out in favor of OPTIONAL to improve clarity and consistency.
+Holidays that must be observed by law in specific contexts. Historically used for Macau. Avoid using this category in new implementations; prefer mapping such days to `OPTIONAL` (or country‑specific categories) for clarity and consistency.

286-295: Replace hard-coded output list with a non‑normative note.

Outputs vary by year/locale; avoid freezing an example list in docs.

Apply:

 for date, name in sorted(us_unofficial.items()):
     print(f"{date}: {name}")
-# Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
+# Example output — varies by year and locale.

352-363: Fix default-behavior wording and caption (library default, not “most countries”).

The library defaults to PUBLIC when categories aren’t provided. Also drop “for most countries” in the caption.

Apply:

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. If a country supports additional categories, those are excluded unless explicitly requested via the categories parameter.
@@
-# These are equivalent for most countries
+# These are equivalent

343-351: Document composition rule for supported_categories (include PUBLIC).

Codify the established rule to prevent omissions and PR churn.

Apply:

 ### Category Selection Principles
+- When a country uses additional categories beyond PUBLIC, include PUBLIC in `supported_categories` alongside the others.
+- If PUBLIC is the only category, you may omit `supported_categories` entirely (PUBLIC is the default).
+- Example: `supported_categories = (PUBLIC, GOVERNMENT, UNOFFICIAL)`
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off
 - **WORKDAY**: Recognized but working holidays
 - **UNOFFICIAL**: Widely celebrated but not official
 - **Religious categories**: Use specific tradition names when holidays apply to particular communities
 - **Institutional categories**: Use when holidays apply to specific sectors

303-316: Don’t freeze supported_categories tuples; add API pointer.

Swap “Output:” for non‑normative notes and add a short link pointer to where these are defined.

Apply:

-```python
+See README (Country classes) for where `supported_categories` and the `categories=` parameter are defined.
+
+```python
 import holidays
 
 # Check which categories a country supports
 us = holidays.UnitedStates()
 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
+# Example output — may vary by version.
 
 de = holidays.Germany()
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Example output — may vary by version.
 
 # Note: The category tuples shown are examples and may change as countries update their holiday frameworks.

---

`41-50`: **UNOFFICIAL: make inclusion/exclusion policy explicit.**

Add crisp criteria to avoid ambiguity and align with #1717.

Apply:

```diff
 #### UNOFFICIAL
 
-Commonly celebrated cultural holidays with no official government recognition or mandated time off. These are widely observed cultural celebrations, but exclude novelty, internet, or marketing "national days."
+Commonly celebrated cultural holidays with no official government recognition or mandated time off.
+
+Policy:
+- Include only widely observed, recurring cultural observances with broad public recognition.
+- Exclude novelty/internet/marketing “national days” and ephemeral observances (e.g., National Fruitcake Toss Day) unless country maintainers justify inclusion with reliable sources.
 
 Examples:

297-316: Consider adding a CI hook or helper script to keep supported_categories examples in sync

To avoid stale tuples in the docs, you can include a small script (or even a pre-commit/CI check) that:

  • Lists every country’s supported_categories directly from the code
  • Highlights which modules still use the historical MANDATORY constant

For example:

#!/usr/bin/env bash
set -euo pipefail

echo "=== Supported categories per country module ==="
rg -n "supported_categories\s*=" holidays/countries/*.py

echo
echo "=== Countries with a MANDATORY category ==="
rg -lP "supported_categories.*MANDATORY" holidays/countries/*.py

This will output lines like:

holidays/countries/united_states.py:236:    supported_categories = (GOVERNMENT, PUBLIC, UNOFFICIAL)
holidays/countries/germany.py:82:    supported_categories = (CATHOLIC, PUBLIC)
...
holidays/countries/macau.py:80:    supported_categories = (GOVERNMENT, MANDATORY, PUBLIC)

Embedding this in CI (or running it before bumping docs examples) ensures your code samples for US, Germany, etc., always reflect the true tuples defined in each country module.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between dcce215 and b4792c0.

📒 Files selected for processing (1)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (37)
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T22:13:30.270Z
Learnt from: KJhellico
PR: vacanza/holidays#2854
File: README.md:1557-1562
Timestamp: 2025-08-25T22:13:30.270Z
Learning: Sudan holidays implementation inherits from IslamicHolidays but does not expose an ISLAMIC category in its supported_categories attribute. The Supported Categories column in README.md should remain blank for Sudan.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T09:22:41.753Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T09:57:22.263Z
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.263Z
Learning: In the holidays package, when adding contextual comments about holiday establishment dates, avoid making claims about specific laws, parliamentary acts, or government decisions unless they can be verified from authoritative sources like official government legal databases, gazettes, or parliamentary records. Unverified legal claims should not be added to comments even if they seem plausible.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:32:15.760Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-24T11:55:06.800Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: README.md:108-108
Timestamp: 2025-08-24T11:55:06.800Z
Learning: The actual count of countries in the holidays library should always be verified by counting entries in the COUNTRIES dictionary in holidays/registry.py using `grep -E '^\s*"[a-z_]+"\s*:' holidays/registry.py | wc -l`, rather than making assumptions about incremental changes.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-17T11:07:04.986Z
Learnt from: KJhellico
PR: vacanza/holidays#2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T12:59:53.286Z
Learnt from: KJhellico
PR: vacanza/holidays#2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T15:48:48.680Z
Learnt from: PPsyrius
PR: vacanza/holidays#2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (`class Test{Country}(CommonCountryTests, TestCase):`) without docstrings. This is an established codebase convention that should be maintained for consistency.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-08T10:33:55.695Z
Learnt from: KJhellico
PR: vacanza/holidays#2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*\(' to avoid overcounting non-entry quoted lines. As of PR vacanza/holidays#2763, this yields 227 entries.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-15T15:00:32.728Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T12:28:31.641Z
Learnt from: PPsyrius
PR: vacanza/holidays#2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-05T02:35:03.298Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:278-377
Timestamp: 2025-03-05T02:35:03.298Z
Learning: For Macau holiday implementations, it's preferable to maintain separate methods for different holiday categories (MANDATORY, GOVERNMENT, PUBLIC) as they are based on different sets of laws, making the code easier to maintain despite having multiple year-based conditionals.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-03T12:36:41.201Z
Learnt from: PPsyrius
PR: vacanza/holidays#2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:
```python
# reason why goes here
if start_year <= self._year <= end_year:
    # Holiday name
    self._add_holiday_function(tr("Holiday Name"))
```

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-11T10:14:28.517Z
Learnt from: PPsyrius
PR: vacanza/holidays#2794
File: holidays/groups/christian.py:328-343
Timestamp: 2025-08-11T10:14:28.517Z
Learning: For Ethiopian holidays in the `holidays/groups/christian.py` file, docstring wording should maintain source-accurate phrasing (e.g., "in coincidence of" for Ethiopian New Year/Enkutatash), even when it might read awkwardly in English, to ensure consistency with official Ethiopian documentation.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-10T12:43:10.577Z
Learnt from: ankushhKapoor
PR: vacanza/holidays#2601
File: holidays/calendars/mongolian.py:1-1
Timestamp: 2025-06-10T12:43:10.577Z
Learning: The holidays project's calendar files (in holidays/calendars/) follow a consistent pattern of NOT having module-level docstrings. They only use class-level docstrings for their main classes. When reviewing calendar files, maintain this consistency and do not suggest adding module docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:02:13.815Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T02:34:18.382Z
Learnt from: PPsyrius
PR: vacanza/holidays#2643
File: holidays/countries/mauritius.py:144-169
Timestamp: 2025-06-19T02:34:18.382Z
Learning: Custom holiday classes that extend _CustomHinduHolidays, _CustomIslamicHolidays, _CustomBuddhistHolidays, etc. in the holidays library do not use docstrings. They follow a pattern of using only inline comments above date dictionaries, as seen in Malaysia, Singapore, UAE, and other country implementations.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-19T21:22:13.125Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:22:13.125Z
Learning: In the holidays library, message comments directly above holiday addition methods must match the holiday name exactly without any additions, modifications, or explanatory text. For example, if the holiday name is "Eid al-Fitr Holiday", the comment should be "# Eid al-Fitr Holiday." with no extra context.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T14:55:35.504Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:22-26
Timestamp: 2025-04-23T14:55:35.504Z
Learning: References in holidays classes should only be included if they're used for test case cross-checks or provide historical context about when holidays were added/removed, not just for the sake of having more references.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-25T10:12:30.448Z
Learnt from: PPsyrius
PR: vacanza/holidays#2676
File: holidays/countries/tunisia.py:25-25
Timestamp: 2025-06-25T10:12:30.448Z
Learning: The holidays library intentionally duplicates label strings like `estimated_label` across country modules rather than centralizing them. This duplication is the established library-wide approach and should not be suggested for refactoring.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.711Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.711Z
Learning: In the holidays library, countries with localization support DO use tr() wrappers around holiday names when calling _add_* methods. This is the correct pattern for l10n-enabled country implementations, contrary to previous learning about translation being handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-24T15:21:31.632Z
Learnt from: PPsyrius
PR: vacanza/holidays#2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.711Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.711Z
Learning: In the holidays library, countries with localization support consistently use tr() wrappers around holiday names when calling _add_* methods (e.g., self._add_new_years_day(tr("Holiday Name"))). This is the established pattern across United States, Thailand, and other l10n-enabled countries, contrary to any suggestion that translation is handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-13T15:17:45.519Z
Learnt from: PPsyrius
PR: vacanza/holidays#2349
File: tests/countries/test_taiwan.py:0-0
Timestamp: 2025-03-13T15:17:45.519Z
Learning: For Taiwan's holiday system, different categories (GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY) have distinct uses and contexts, justifying separate instances rather than parameterization in tests.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T14:38:15.029Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/locale/zh_CN/LC_MESSAGES/MO.po:230-234
Timestamp: 2025-03-04T14:38:15.029Z
Learning: For Macau holidays localization, official Macau government sources (e.g., gov.mo) should be the reference for correct terminology, even when it differs from mainland Chinese standards.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-21T16:30:12.749Z
Learnt from: KJhellico
PR: vacanza/holidays#2654
File: holidays/countries/cape_verde.py:1-12
Timestamp: 2025-06-21T16:30:12.749Z
Learning: The holidays project does not use module docstrings in country holiday files. All country files start directly with the copyright header comment block without module docstrings, maintaining a consistent coding style across the project.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T09:57:22.263Z
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.263Z
Learning: In the holidays package, when adding comments for year-restricted holidays in Uganda and similar country modules, include specific legal or historical context such as the actual laws, parliamentary acts, or government decisions that established the holidays, rather than just generic "since YEAR" information. For example, reference the specific Parliament act, decree, or historical event that created the holiday.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T10:51:08.023Z
Learnt from: PPsyrius
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:21-30
Timestamp: 2025-08-25T10:51:08.023Z
Learning: In the holidays library, references in country/market holiday implementations should be ordered as follows: Wikipedia links for the country/market holidays first, then country-specific official sources for newer implementations, then Wikipedia links for each individual non-standard holiday if any are required. Official government sources should not be placed first ahead of Wikipedia links.

Applied to files:

  • docs/holiday_categories.md
🪛 LanguageTool
docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: Use correct spacing
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~19-~19: There might be a mistake here.
Context: ...les: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN_OTHER)


[grammar] ~20-~20: There might be a mistake here.
Context: ... - Independence Day in the United States - Christmas Day in Christian-majority coun...

(QB_NEW_EN_OTHER)


[grammar] ~21-~21: Use correct spacing
Context: ...tmas Day in Christian-majority countries #### GOVERNMENT Holidays observed by governm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~27-~27: Use correct spacing
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~29-~29: There might be a mistake here.
Context: ...mples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~30-~30: Use correct spacing
Context: ...- Government-specific commemorative days #### WORKDAY Holidays that are officially re...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~36-~36: Use correct spacing
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~45-~45: Use correct spacing
Context: ...or marketing "national days." Examples: - Valentine's Day - Saint Patrick's Day - ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[style] ~55-~55: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in...

(GENERAL_XX)


[grammar] ~57-~57: Use correct spacing
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~66-~66: Use correct spacing
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~75-~75: Use correct spacing
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~86-~86: Use correct spacing
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~93-~93: Use correct spacing
Context: ...ONAL to improve clarity and consistency. #### HALF_DAY Holidays that are observed for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~99-~99: Use correct spacing
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~101-~101: There might be a mistake here.
Context: ...mples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~102-~102: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories #### CATHOLIC Hol...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~110-~110: Use correct spacing
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~119-~119: Use correct spacing
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day #### ORTH...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~121-~121: There might be a mistake here.
Context: ...nominations. Examples: - Easter Sunday - Christmas Day #### ORTHODOX Holidays s...

(QB_NEW_EN)


[grammar] ~122-~122: Use correct spacing
Context: ...amples: - Easter Sunday - Christmas Day #### ORTHODOX Holidays specific to Orthodox ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~128-~128: Use correct spacing
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas ##...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~137-~137: Use correct spacing
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha #### HINDU H...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~139-~139: There might be a mistake here.
Context: ...mic tradition. Examples: - Eid al-Fitr - Eid al-Adha #### HINDU Holidays from t...

(QB_NEW_EN)


[grammar] ~140-~140: Use correct spacing
Context: ... Examples: - Eid al-Fitr - Eid al-Adha #### HINDU Holidays from the Hindu tradition...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~146-~146: Use correct spacing
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi #### HEBREW Holidays fro...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~155-~155: Use correct spacing
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover #### CHINESE Hol...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~164-~164: Use correct spacing
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~173-~173: Use correct spacing
Context: ...e Sabian religious tradition. Examples: - Used in Iraq for Sabian community holida...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~175-~175: Use correct spacing
Context: ...ed in Iraq for Sabian community holidays #### YAZIDI Holidays specific to the Yazidi ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~181-~181: Use correct spacing
Context: ...e Yazidi religious tradition. Examples: - Used in Iraq for Yazidi community holida...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~183-~183: Use correct spacing
Context: ...ed in Iraq for Yazidi community holidays ### Ethnic and Cultural Categories #### ARM...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~191-~191: Use correct spacing
Context: ...enian culture and traditions. Examples: - Used in Argentina for Armenian community...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~199-~199: Use correct spacing
Context: ...anian culture and traditions. Examples: - Used in North Macedonia for Albanian com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~207-~207: Use correct spacing
Context: ...snian culture and traditions. Examples: - Used in North Macedonia for Bosnian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~215-~215: Use correct spacing
Context: ...rbian culture and traditions. Examples: - Used in North Macedonia for Serbian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~223-~223: Use correct spacing
Context: ...rkish culture and traditions. Examples: - Used in North Macedonia for Turkish comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~225-~225: Use correct spacing
Context: ...Macedonia for Turkish community holidays #### ROMA Holidays specific to Roma culture ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~231-~231: Use correct spacing
Context: ... Roma culture and traditions. Examples: - Used in North Macedonia for Roma communi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~239-~239: Use correct spacing
Context: ...Vlach culture and traditions. Examples: - Used in North Macedonia for Vlach commun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~245-~245: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~260-~260: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays from holidays.constants import PUBLIC, BANK # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~297-~297: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~318-~318: Use correct spacing
Context: ...frameworks. ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~323-~323: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~324-~324: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~326-~326: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~327-~327: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~332-~332: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~334-~334: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~336-~336: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~354-~354: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays from holidays.constants import PUBLIC # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~367-~367: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🪛 markdownlint-cli2 (0.17.2)
docs/holiday_categories.md

321-321: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


324-324: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


327-327: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


330-330: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Comment on lines +55 to +61
Holidays specifically observed by banking institutions, which may differ from general public holidays.

Examples:

- Good Friday (in some countries)
- Additional banking-specific closures

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Minor wording: trim “general public holidays”.

Reads tighter as just “public holidays”.

Apply:

-Holidays specifically observed by banking institutions, which may differ from general public holidays.
+Holidays specifically observed by banking institutions, which may differ from public holidays.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Holidays specifically observed by banking institutions, which may differ from general public holidays.
Examples:
- Good Friday (in some countries)
- Additional banking-specific closures
Holidays specifically observed by banking institutions, which may differ from public holidays.
Examples:
- Good Friday (in some countries)
- Additional banking-specific closures
🧰 Tools
🪛 LanguageTool

[style] ~55-~55: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in...

(GENERAL_XX)


[grammar] ~57-~57: Use correct spacing
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🤖 Prompt for AI Agents
In docs/holiday_categories.md around lines 55 to 61, the phrase "general public
holidays" should be tightened to "public holidays"; update the sentence to read
that banking institutions' holidays may differ from public holidays (replace
"general public holidays" with "public holidays") and ensure surrounding
punctuation and capitalization remain consistent.

Comment on lines 91 to 93
#### MANDATORY *(Planned for deprecation)*

Holidays that must be observed by law in specific contexts. Currently only used by Macau. This category may be phased out in favor of OPTIONAL to improve clarity and consistency.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Updated for the pending #2868 changes

Suggested change
#### MANDATORY *(Planned for deprecation)*
Holidays that must be observed by law in specific contexts. Currently only used by Macau. This category may be phased out in favor of OPTIONAL to improve clarity and consistency.
#### MANDATORY *(deprecated)*
Holidays that were legally required to be observed in specific contexts. Previously used in Macau, where "Mandatory (Statutory) Holidays" have since been reclassified under the `PUBLIC` category, and "General Holidays" are now included in the `OPTIONAL` category - following the same approach as in Hong Kong.

Copy link
Author

Choose a reason for hiding this comment

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

fixed

Copy link
Collaborator

Choose a reason for hiding this comment

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

Maybe now we can just remove the references to MANDATORY?

Copy link
Collaborator

Choose a reason for hiding this comment

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

That works as well, I originally kept it in should any of its current users suddenly find a few holidays missing

Copy link
Collaborator

Choose a reason for hiding this comment

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

It sounds rational. 👍

Copy link
Author

Choose a reason for hiding this comment

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

@PPsyrius @KJhellico so we keep MANDATORY as it is?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's keep it now.

Copy link
Collaborator

@PPsyrius PPsyrius left a comment

Choose a reason for hiding this comment

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

Aside from the pending comments, the documentation is in good shape now IMO 👍

Changed de_catholic to de_sn_catholic in the Germany Saxony example
to better reflect the specific subdivision being used.
Reflect that MANDATORY category is now deprecated rather than planned
for deprecation, with updated description of Macau reclassification.
@sonarqubecloud
Copy link

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (2)
docs/examples.md (2)

162-169: Label the printed lines as example output.

Results can vary by locale/version; mark the lines accordingly.

Apply this diff:

 >>> for date, name in sorted(us_unofficial.items()):
 >>>     print(date, name)
+>>> # Example output — varies by locale and version.
 2024-02-14 Valentine's Day
 2024-03-17 Saint Patrick's Day
 2024-10-31 Halloween

214-226: Add a stability note for supported_categories outputs.

Printed tuples can drift; add a note that values may change across versions and countries.

Apply this diff (note outside the code block):

 Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')

+Note: Exact tuples may change across versions; inspect at runtime via obj.supported_categories.


</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: ASSERTIVE

**Plan**: Pro

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between b4792c0a6d3bcb5e5e032dd65fc2613fd0f8567c and 6596ceff53df9c6063e63c7898c3e797090bd32b.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `docs/examples.md` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧠 Learnings (27)</summary>

<details>
<summary>📚 Learning: 2025-08-26T14:43:53.605Z</summary>

Learnt from: KJhellico
PR: #2851
File: docs/holiday_categories.md:272-282
Timestamp: 2025-08-26T14:43:53.605Z
Learning: In the holidays library documentation, it's strongly advisable to recommend the use of constants from holidays.constants (e.g., PUBLIC, CATHOLIC) instead of direct string values when specifying holiday categories, as constants provide better type safety, IDE support, and prevent typos.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-05-04T10:29:46.780Z</summary>

Learnt from: KJhellico
PR: #2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the supported_categories tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from supported_categories.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-28T02:42:52.725Z</summary>

Learnt from: PPsyrius
PR: #2863
File: tests/countries/test_georgia.py:31-36
Timestamp: 2025-08-28T02:42:52.725Z
Learning: In the holidays framework, when no categories parameter is specified in a country class instantiation (e.g., Georgia(years=2025)), the PUBLIC category is used by default. There's no need to explicitly specify categories=PUBLIC or import the PUBLIC constant for such test cases.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-04-08T14:46:10.656Z</summary>

Learnt from: KJhellico
PR: #2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify supported_categories = (PUBLIC,) when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-03-04T11:32:45.095Z</summary>

Learnt from: PPsyrius
PR: #2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (government, mandatory, and public), which are utilized by syntactic sugar methods.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-03-04T11:32:45.095Z</summary>

Learnt from: PPsyrius
PR: #2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like special_government_holidays, special_mandatory_holidays, and special_public_holidays), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-07-24T15:21:31.632Z</summary>

Learnt from: PPsyrius
PR: #2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is test_no_holidays, not more descriptive names like test_no_holidays_before_1990. This is a consistent naming convention across country test files like France and Germany.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-06T14:40:31.932Z</summary>

Learnt from: KJhellico
PR: #2593
File: holidays/countries/senegal.py:66-110
Timestamp: 2025-06-06T14:40:31.932Z
Learning: In the holidays library, within the _populate_public_holidays method, holidays should be arranged by calendar type (Islamic holidays first, then Gregorian holidays) without additional type grouping comments. The organization by calendar type is sufficient and follows the project's established conventions.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-24T11:55:06.810Z</summary>

Learnt from: KJhellico
PR: #2831
File: README.md:108-108
Timestamp: 2025-08-24T11:55:06.810Z
Learning: The actual count of countries in the holidays library should always be verified by counting entries in the COUNTRIES dictionary in holidays/registry.py using grep -E '^\s*"[a-z_]+"\s*:' holidays/registry.py | wc -l, rather than making assumptions about incremental changes.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-08T10:33:55.695Z</summary>

Learnt from: KJhellico
PR: #2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*(' to avoid overcounting non-entry quoted lines. As of PR #2763, this yields 227 entries.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-07-17T11:07:04.986Z</summary>

Learnt from: KJhellico
PR: #2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-03T12:59:53.286Z</summary>

Learnt from: KJhellico
PR: #2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-07-15T15:00:32.728Z</summary>

Learnt from: KJhellico
PR: #2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-04-23T09:22:41.753Z</summary>

Learnt from: PPsyrius
PR: #2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-05-10T04:32:15.760Z</summary>

Learnt from: PPsyrius
PR: #2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-19T21:22:13.125Z</summary>

Learnt from: KJhellico
PR: #2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:22:13.125Z
Learning: In the holidays library, message comments directly above holiday addition methods must match the holiday name exactly without any additions, modifications, or explanatory text. For example, if the holiday name is "Eid al-Fitr Holiday", the comment should be "# Eid al-Fitr Holiday." with no extra context.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-19T20:04:26.215Z</summary>

Learnt from: KJhellico
PR: #2831
File: holidays/countries/south_sudan.py:28-31
Timestamp: 2025-08-19T20:04:26.215Z
Learning: In the holidays library, message comments (comments describing message format templates like "%s (estimated)." and "%s (observed, estimated).") always end with a period, even when the corresponding string values do not include the period.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-05-10T04:02:13.815Z</summary>

Learnt from: PPsyrius
PR: #2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.


**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-04-03T12:36:41.201Z</summary>

Learnt from: PPsyrius
PR: #2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:

# reason why goes here
if start_year <= self._year <= end_year:
    # Holiday name
    self._add_holiday_function(tr("Holiday Name"))

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-28T10:39:19.185Z</summary>

```
Learnt from: KJhellico
PR: vacanza/holidays#2684
File: holidays/locale/it/LC_MESSAGES/SM.po:13-13
Timestamp: 2025-06-28T10:39:19.185Z
Learning: In the holidays project, .po file header comments use the format "# [Country] holidays." for default language files (without trailing hash) and "# [Country] holidays [locale] localization." for non-default language files (also without trailing hash).
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-11T18:32:25.595Z</summary>

```
Learnt from: ankushhKapoor
PR: vacanza/holidays#2601
File: holidays/locale/en_MN/LC_MESSAGES/MN.po:13-14
Timestamp: 2025-06-11T18:32:25.595Z
Learning: For non-default locale `.po` files, the header comment format is:
`# <Country> holidays <locale> localization.` (no trailing hash).
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-19T02:34:18.382Z</summary>

```
Learnt from: PPsyrius
PR: vacanza/holidays#2643
File: holidays/countries/mauritius.py:144-169
Timestamp: 2025-06-19T02:34:18.382Z
Learning: Custom holiday classes that extend _CustomHinduHolidays, _CustomIslamicHolidays, _CustomBuddhistHolidays, etc. in the holidays library do not use docstrings. They follow a pattern of using only inline comments above date dictionaries, as seen in Malaysia, Singapore, UAE, and other country implementations.
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-03T13:48:11.910Z</summary>

```
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-18T10:21:01.376Z</summary>

```
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/france.py:300-319
Timestamp: 2025-06-18T10:21:01.376Z
Learning: In the France holidays implementation, legislative years for holiday changes should be hard-coded rather than extracted into constants, as this maintains consistency with the existing codebase pattern and provides historical accuracy for specific legislative acts.
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-08-25T09:57:22.291Z</summary>

```
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.291Z
Learning: In the holidays package, when adding comments for year-restricted holidays in Uganda and similar country modules, include specific legal or historical context such as the actual laws, parliamentary acts, or government decisions that established the holidays, rather than just generic "since YEAR" information. For example, reference the specific Parliament act, decree, or historical event that created the holiday.
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-06-14T11:04:31.180Z</summary>

```
Learnt from: PPsyrius
PR: vacanza/holidays#2609
File: holidays/countries/nauru.py:57-60
Timestamp: 2025-06-14T11:04:31.180Z
Learning: In the holidays library, the base `HolidayBase._populate()` method already includes a guard clause that prevents holiday population methods like `_populate_public_holidays()` from being called when the year is before `start_year` or after `end_year`. Therefore, individual country implementations do not need to add their own guard clauses for years before independence or other start dates.
```

**Applied to files:**
- `docs/examples.md`

</details>
<details>
<summary>📚 Learning: 2025-04-23T14:55:35.504Z</summary>

```
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:22-26
Timestamp: 2025-04-23T14:55:35.504Z
Learning: References in holidays classes should only be included if they're used for test case cross-checks or provide historical context about when holidays were added/removed, not just for the sake of having more references.
```

**Applied to files:**
- `docs/examples.md`

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (3)</summary><blockquote>

<details>
<summary>docs/examples.md (3)</summary><blockquote>

`155-161`: **LGTM on constants-first usage.**

Using PUBLIC from holidays.constants aligns with guidance and reduces typos.

---

`175-195`: **LGTM on multi-category example.**

Good use of BANK and PUBLIC constants; clear and idiomatic.

---

`201-208`: **LGTM on Germany Catholic example.**

Accurate subdivision and constant usage.

</blockquote></details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->


### Basic Category Usage

Categories accept a single string (e.g., 'public') or an iterable of strings, but it's recommended to use constants from `holidays.constants` for better maintainability; matching is case-sensitive.
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Clarify input forms and case-sensitivity.

Tighten wording so readers know constants are preferred and case-sensitivity only applies to string inputs.

Apply this diff:

-Categories accept a single string (e.g., 'public') or an iterable of strings, but it's recommended to use constants from `holidays.constants` for better maintainability; matching is case-sensitive.
+Categories accept either constants from `holidays.constants` (recommended) or strings. You may pass a single category or an iterable. String matching is case-sensitive; constants avoid this pitfall.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Categories accept a single string (e.g., 'public') or an iterable of strings, but it's recommended to use constants from `holidays.constants` for better maintainability; matching is case-sensitive.
Categories accept either constants from `holidays.constants` (recommended) or strings. You may pass a single category or an iterable. String matching is case-sensitive; constants avoid this pitfall.
🤖 Prompt for AI Agents
In docs/examples.md around line 150, the sentence about category inputs is
ambiguous: clarify that categories may be provided either as a single string or
as any iterable of strings, that matching is case-sensitive only when passing
strings (not when using constants), and recommend using constants from
holidays.constants for maintainability; update the wording to explicitly state
these three points succinctly and replace the current line with the clarified
version.

Argentina categories: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public')
```

For detailed information about all available categories and their meanings, see the [Holiday Categories](holiday_categories.md) documentation.
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Mention default category behavior (PUBLIC).

Quick reminder reduces confusion in examples elsewhere.

Apply this diff:

-For detailed information about all available categories and their meanings, see the [Holiday Categories](holiday_categories.md) documentation.
+For detailed information about all available categories and their meanings, see the [Holiday Categories](holiday_categories.md) documentation. By default, if `categories` is omitted, `PUBLIC` is used; you don't need to pass `categories=PUBLIC`.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
For detailed information about all available categories and their meanings, see the [Holiday Categories](holiday_categories.md) documentation.
For detailed information about all available categories and their meanings, see the [Holiday Categories](holiday_categories.md) documentation. By default, if `categories` is omitted, `PUBLIC` is used; you don't need to pass `categories=PUBLIC`.
🤖 Prompt for AI Agents
In docs/examples.md around line 228, the sentence linking to Holiday Categories
should also state the default category behavior to reduce confusion; update this
line to append a short note that when no category is specified the default is
PUBLIC (e.g., “Note: default category is PUBLIC.”) so examples elsewhere are
clearer.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (7)
docs/holiday_categories.md (7)

318-321: Add stability note before per‑country tuples.

Clarifies examples can change and nudges readers to check at runtime.

 ### Examples by Country
+
+_Note: Tuples below are illustrative and may change over time. Check `supported_categories` at runtime._
 
 **United States**: `('government', 'public', 'unofficial')`

55-56: Trim wording for BANK.

“Tighter and clearer.”

-Holidays specifically observed by banking institutions, which may differ from general public holidays.
+Holidays specifically observed by banking institutions, which may differ from public holidays.

294-295: Don’t assert a fixed list of unofficial names.

Make it illustrative; year and locale vary.

-# Output: Valentine's Day, Saint Patrick's Day, Halloween, etc.
+# Example output — varies by year and locale.

309-314: Avoid freezing exact supported_categories tuples.

Use non‑normative comments to prevent drift across versions.

 print(f"US supported categories: {us.supported_categories}")
-# Output: ('government', 'public', 'unofficial')
+# Example output — may vary by version.
 
 de = holidays.Germany()
 print(f"Germany supported categories: {de.supported_categories}")
-# Output: ('catholic', 'public')
+# Example output — may vary by version.

354-363: Fix incorrect default-behavior statement.

It’s a library default, not “most countries.”

-When no categories are specified, most countries default to returning PUBLIC holidays, as these are typically what users expect when asking for a country's holidays.
+When no categories are specified, the library returns PUBLIC holidays by default. Additional categories are excluded unless explicitly requested via `categories=`.
@@
-# These are equivalent for most countries
+# These are equivalent

343-351: Guidance: include PUBLIC in supported_categories when others exist.

Prevents a common contributor mistake and aligns with project conventions.

 ### Category Selection Principles
+- When a country uses additional categories beyond PUBLIC, include PUBLIC in `supported_categories` alongside them.
+- If PUBLIC is the only category, you can omit `supported_categories` (PUBLIC is the default).
 - **PUBLIC**: Holidays mandated by law with general time off
 - **GOVERNMENT**: Official observances without general time off

41-50: UNOFFICIAL: add explicit inclusion/exclusion policy to meet #1717.

Make the criteria crisp to avoid ambiguity about novelty “national days.”

 #### UNOFFICIAL
 
-Commonly celebrated cultural holidays with no official government recognition or mandated time off. These are widely observed cultural celebrations, but exclude novelty, internet, or marketing "national days."
+Commonly celebrated cultural holidays with no official government recognition or mandated time off.
+
+Policy:
+- Include only widely observed, recurring cultural observances with broad public recognition.
+- Exclude novelty/internet/marketing “national days” and ephemeral observances (e.g., National Fruitcake Toss Day) unless a maintainer justifies inclusion with reliable sources.
 
 Examples:
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6596cef and 3def422.

📒 Files selected for processing (1)
  • docs/holiday_categories.md (1 hunks)
🧰 Additional context used
🧠 Learnings (41)
📚 Learning: 2025-08-26T14:43:53.605Z
Learnt from: KJhellico
PR: vacanza/holidays#2851
File: docs/holiday_categories.md:272-282
Timestamp: 2025-08-26T14:43:53.605Z
Learning: In the holidays library documentation, it's strongly advisable to recommend the use of constants from holidays.constants (e.g., PUBLIC, CATHOLIC) instead of direct string values when specifying holiday categories, as constants provide better type safety, IDE support, and prevent typos.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-04T10:29:46.780Z
Learnt from: KJhellico
PR: vacanza/holidays#2525
File: holidays/countries/togo.py:0-0
Timestamp: 2025-05-04T10:29:46.780Z
Learning: When a country class in the holidays library uses additional categories beyond PUBLIC, the `supported_categories` tuple should contain all categories, including PUBLIC. Only when PUBLIC is the only category being used should it be omitted from `supported_categories`.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (`government`, `mandatory`, and `public`), which are utilized by syntactic sugar methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:32:45.095Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:407-461
Timestamp: 2025-03-04T11:32:45.095Z
Learning: In the holidays library, the standard approach for organizing static holidays is to use separate dictionaries for different categories (like `special_government_holidays`, `special_mandatory_holidays`, and `special_public_holidays`), which are utilized by syntactic sugar methods to pick up the appropriate holidays based on the selected category.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T22:13:30.310Z
Learnt from: KJhellico
PR: vacanza/holidays#2854
File: README.md:1557-1562
Timestamp: 2025-08-25T22:13:30.310Z
Learning: Sudan holidays implementation inherits from IslamicHolidays but does not expose an ISLAMIC category in its supported_categories attribute. The Supported Categories column in README.md should remain blank for Sudan.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-08T14:46:10.656Z
Learnt from: KJhellico
PR: vacanza/holidays#2437
File: holidays/countries/bhutan.py:27-30
Timestamp: 2025-04-08T14:46:10.656Z
Learning: For country classes in the holidays library, there's no need to explicitly specify `supported_categories = (PUBLIC,)` when PUBLIC is the only category being used, as it's already the default category inherited from HolidayBase.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T11:41:56.389Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:284-366
Timestamp: 2025-03-04T11:41:56.389Z
Learning: For Macau holidays implementation, maintaining separate methods for each holiday category (PUBLIC, MANDATORY, GOVERNMENT) is preferred because these categories are based on different sets of laws and have distinct historical evolution.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T02:34:18.382Z
Learnt from: PPsyrius
PR: vacanza/holidays#2643
File: holidays/countries/mauritius.py:144-169
Timestamp: 2025-06-19T02:34:18.382Z
Learning: Custom holiday classes that extend _CustomHinduHolidays, _CustomIslamicHolidays, _CustomBuddhistHolidays, etc. in the holidays library do not use docstrings. They follow a pattern of using only inline comments above date dictionaries, as seen in Malaysia, Singapore, UAE, and other country implementations.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-18T13:06:16.919Z
Learnt from: KJhellico
PR: vacanza/holidays#2783
File: tests/countries/test_eritrea.py:130-147
Timestamp: 2025-08-18T13:06:16.919Z
Learning: The `assertLocalizedHolidays` method in the vacanza/holidays project requires a complete list of all holidays from all categories (PUBLIC, GOVERNMENT, etc.), not just the holidays from the default category. This is a framework requirement for comprehensive localization testing.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T09:22:41.753Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:86-88
Timestamp: 2025-04-23T09:22:41.753Z
Learning: For holiday definitions in the holidays package, keep comments simple with just the holiday name (e.g., "# Independence Day.") rather than including dates or historical context, as the function names already encode the date information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T09:57:22.291Z
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.291Z
Learning: In the holidays package, when adding contextual comments about holiday establishment dates, avoid making claims about specific laws, parliamentary acts, or government decisions unless they can be verified from authoritative sources like official government legal databases, gazettes, or parliamentary records. Unverified legal claims should not be added to comments even if they seem plausible.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:32:15.760Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:0-0
Timestamp: 2025-05-10T04:32:15.760Z
Learning: In the holidays package, detailed historical context and additional information should be added as comments at the method level or above conditional blocks, while comments directly above tr() function calls should only contain the holiday name itself (e.g., "# Independence Day.").

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-17T11:07:04.986Z
Learnt from: KJhellico
PR: vacanza/holidays#2720
File: README.md:108-110
Timestamp: 2025-07-17T11:07:04.986Z
Learning: Always verify country counts in the holidays library by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-24T11:55:06.810Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: README.md:108-108
Timestamp: 2025-08-24T11:55:06.810Z
Learning: The actual count of countries in the holidays library should always be verified by counting entries in the COUNTRIES dictionary in holidays/registry.py using `grep -E '^\s*"[a-z_]+"\s*:' holidays/registry.py | wc -l`, rather than making assumptions about incremental changes.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T12:59:53.286Z
Learnt from: KJhellico
PR: vacanza/holidays#2635
File: README.md:108-110
Timestamp: 2025-08-03T12:59:53.286Z
Learning: Always verify country counts in the COUNTRIES dictionary by checking the current count in the COUNTRIES dictionary in holidays/registry.py directly, rather than relying on information from previous PRs, as the count changes frequently with new country additions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T15:48:48.680Z
Learnt from: PPsyrius
PR: vacanza/holidays#2615
File: tests/countries/test_anguilla.py:1-12
Timestamp: 2025-06-16T15:48:48.680Z
Learning: Test files in the holidays repository follow a standardized structure without module or class docstrings. All country test files use the same pattern: license header, imports, and class definition (`class Test{Country}(CommonCountryTests, TestCase):`) without docstrings. This is an established codebase convention that should be maintained for consistency.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-08T10:33:55.695Z
Learnt from: KJhellico
PR: vacanza/holidays#2763
File: README.md:108-110
Timestamp: 2025-08-08T10:33:55.695Z
Learning: When verifying the country total in holidays/registry.py, isolate between '^COUNTRIES:' and '^FINANCIAL:' and count only lines matching the strict key pattern '^\s*"[a-z0-9_ ]+":\s*\(' to avoid overcounting non-entry quoted lines. As of PR vacanza/holidays#2763, this yields 227 entries.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-15T15:00:32.728Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: README.md:108-108
Timestamp: 2025-07-15T15:00:32.728Z
Learning: When verifying country counts in the holidays library, always check the current count in the COUNTRIES dictionary in holidays/registry.py rather than relying on previously recorded counts, as new countries may have been added in merged PRs.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T12:28:31.641Z
Learnt from: PPsyrius
PR: vacanza/holidays#2632
File: holidays/countries/solomon_islands.py:95-98
Timestamp: 2025-06-16T12:28:31.641Z
Learning: Library-wide holiday patterns and their optimizations should be handled at the base class level (like InternationalHolidays) rather than documenting workarounds in individual country modules. This maintains separation of concerns and avoids documentation duplication.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-28T02:42:52.725Z
Learnt from: PPsyrius
PR: vacanza/holidays#2863
File: tests/countries/test_georgia.py:31-36
Timestamp: 2025-08-28T02:42:52.725Z
Learning: In the holidays framework, when no categories parameter is specified in a country class instantiation (e.g., `Georgia(years=2025)`), the PUBLIC category is used by default. There's no need to explicitly specify `categories=PUBLIC` or import the PUBLIC constant for such test cases.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-05T02:35:03.298Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/countries/macau.py:278-377
Timestamp: 2025-03-05T02:35:03.298Z
Learning: For Macau holiday implementations, it's preferable to maintain separate methods for different holiday categories (MANDATORY, GOVERNMENT, PUBLIC) as they are based on different sets of laws, making the code easier to maintain despite having multiple year-based conditionals.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-03T12:36:41.201Z
Learnt from: PPsyrius
PR: vacanza/holidays#2398
File: holidays/countries/guinea.py:73-77
Timestamp: 2025-04-03T12:36:41.201Z
Learning: In the Holidays library, comments explaining year restrictions for holidays should be placed above the year check conditional statement, not inside it. Example format:
```python
# reason why goes here
if start_year <= self._year <= end_year:
    # Holiday name
    self._add_holiday_function(tr("Holiday Name"))
```

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-11T10:14:28.517Z
Learnt from: PPsyrius
PR: vacanza/holidays#2794
File: holidays/groups/christian.py:328-343
Timestamp: 2025-08-11T10:14:28.517Z
Learning: For Ethiopian holidays in the `holidays/groups/christian.py` file, docstring wording should maintain source-accurate phrasing (e.g., "in coincidence of" for Ethiopian New Year/Enkutatash), even when it might read awkwardly in English, to ensure consistency with official Ethiopian documentation.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-10T12:43:10.577Z
Learnt from: ankushhKapoor
PR: vacanza/holidays#2601
File: holidays/calendars/mongolian.py:1-1
Timestamp: 2025-06-10T12:43:10.577Z
Learning: The holidays project's calendar files (in holidays/calendars/) follow a consistent pattern of NOT having module-level docstrings. They only use class-level docstrings for their main classes. When reviewing calendar files, maintain this consistency and do not suggest adding module docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-05-10T04:02:13.815Z
Learnt from: PPsyrius
PR: vacanza/holidays#2537
File: holidays/countries/finland.py:249-253
Timestamp: 2025-05-10T04:02:13.815Z
Learning: Holiday name comments directly above tr() function calls in the holidays package should only contain the holiday name itself (e.g., "# Independence Day.") without any additional context, dates, or historical information.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-19T21:22:13.125Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:22:13.125Z
Learning: In the holidays library, message comments directly above holiday addition methods must match the holiday name exactly without any additions, modifications, or explanatory text. For example, if the holiday name is "Eid al-Fitr Holiday", the comment should be "# Eid al-Fitr Holiday." with no extra context.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-04-23T14:55:35.504Z
Learnt from: PPsyrius
PR: vacanza/holidays#2489
File: holidays/countries/sao_tome_and_principe.py:22-26
Timestamp: 2025-04-23T14:55:35.504Z
Learning: References in holidays classes should only be included if they're used for test case cross-checks or provide historical context about when holidays were added/removed, not just for the sake of having more references.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-25T10:12:30.448Z
Learnt from: PPsyrius
PR: vacanza/holidays#2676
File: holidays/countries/tunisia.py:25-25
Timestamp: 2025-06-25T10:12:30.448Z
Learning: The holidays library intentionally duplicates label strings like `estimated_label` across country modules rather than centralizing them. This duplication is the established library-wide approach and should not be suggested for refactoring.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-21T04:56:03.780Z
Learnt from: PPsyrius
PR: vacanza/holidays#2843
File: holidays/countries/burundi.py:63-101
Timestamp: 2025-08-21T04:56:03.780Z
Learning: In the holidays library, countries with localization support DO use tr() wrappers around holiday names when calling _add_* methods. This is the correct pattern for l10n-enabled country implementations, contrary to previous learning about translation being handled internally by _add_* methods.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-28T11:45:56.847Z
Learnt from: KJhellico
PR: vacanza/holidays#2860
File: holidays/countries/gabon.py:30-30
Timestamp: 2025-08-28T11:45:56.847Z
Learning: In the holidays library, maintainers have agreed to keep comments like "# %s (estimated)." above estimated_label declarations across country files, even though they duplicate the label content. This decision was made to maintain consistency and usefulness regardless of localization support status.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-26T21:24:41.827Z
Learnt from: KJhellico
PR: vacanza/holidays#2860
File: holidays/countries/burkina_faso.py:27-30
Timestamp: 2025-08-26T21:24:41.827Z
Learning: Countries in the holidays library that don't have localization support yet should use plain English strings for labels (e.g., `estimated_label = "%s (estimated)"`), while only countries with existing .po translation files should use `tr()` wrapping. Check for the presence of .po files in holidays/locale to determine if a country has localization support.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-07-24T15:21:31.632Z
Learnt from: PPsyrius
PR: vacanza/holidays#2750
File: tests/countries/test_germany.py:46-46
Timestamp: 2025-07-24T15:21:31.632Z
Learning: In the holidays project test files, the standard method name for testing the absence of holidays is `test_no_holidays`, not more descriptive names like `test_no_holidays_before_1990`. This is a consistent naming convention across country test files like France and Germany.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-13T15:17:45.519Z
Learnt from: PPsyrius
PR: vacanza/holidays#2349
File: tests/countries/test_taiwan.py:0-0
Timestamp: 2025-03-13T15:17:45.519Z
Learning: For Taiwan's holiday system, different categories (GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY) have distinct uses and contexts, justifying separate instances rather than parameterization in tests.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-03-04T14:38:15.029Z
Learnt from: PPsyrius
PR: vacanza/holidays#2323
File: holidays/locale/zh_CN/LC_MESSAGES/MO.po:230-234
Timestamp: 2025-03-04T14:38:15.029Z
Learning: For Macau holidays localization, official Macau government sources (e.g., gov.mo) should be the reference for correct terminology, even when it differs from mainland Chinese standards.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-19T05:54:49.792Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_polynesia.py:1-12
Timestamp: 2025-06-19T05:54:49.792Z
Learning: The holidays library uses a standard file header format across all country implementation files consisting of a comprehensive comment block with project description, authors, website, and license information. Country files do not use module-level docstrings but instead rely on this header format followed by class-level docstrings.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-16T11:42:28.293Z
Learnt from: PPsyrius
PR: vacanza/holidays#2638
File: holidays/countries/svalbard_and_jan_mayen.py:1-12
Timestamp: 2025-06-16T11:42:28.293Z
Learning: In the holidays library codebase, country implementation files in holidays/countries/ follow a standard convention of NOT having module-level docstrings. They start with the license header comment block, followed by imports, then class definitions. This is consistent across all country implementations like austria.py, belgium.py, canada.py, etc.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-21T16:30:12.749Z
Learnt from: KJhellico
PR: vacanza/holidays#2654
File: holidays/countries/cape_verde.py:1-12
Timestamp: 2025-06-21T16:30:12.749Z
Learning: The holidays project does not use module docstrings in country holiday files. All country files start directly with the copyright header comment block without module docstrings, maintaining a consistent coding style across the project.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-03T13:48:11.910Z
Learnt from: KJhellico
PR: vacanza/holidays#2777
File: holidays/countries/gambia.py:120-122
Timestamp: 2025-08-03T13:48:11.910Z
Learning: When reviewing holiday implementations in the holidays library, defer to the maintainers' choice of start years for specific holiday policies, as they likely have access to more reliable primary sources and official documentation than what can be found through web searches.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T09:57:22.291Z
Learnt from: PPsyrius
PR: vacanza/holidays#2833
File: holidays/countries/uganda.py:50-56
Timestamp: 2025-08-25T09:57:22.291Z
Learning: In the holidays package, when adding comments for year-restricted holidays in Uganda and similar country modules, include specific legal or historical context such as the actual laws, parliamentary acts, or government decisions that established the holidays, rather than just generic "since YEAR" information. For example, reference the specific Parliament act, decree, or historical event that created the holiday.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-06-06T14:40:31.932Z
Learnt from: KJhellico
PR: vacanza/holidays#2593
File: holidays/countries/senegal.py:66-110
Timestamp: 2025-06-06T14:40:31.932Z
Learning: In the holidays library, within the _populate_public_holidays method, holidays should be arranged by calendar type (Islamic holidays first, then Gregorian holidays) without additional type grouping comments. The organization by calendar type is sufficient and follows the project's established conventions.

Applied to files:

  • docs/holiday_categories.md
📚 Learning: 2025-08-25T10:51:08.068Z
Learnt from: PPsyrius
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:21-30
Timestamp: 2025-08-25T10:51:08.068Z
Learning: In the holidays library, references in country/market holiday implementations should be ordered as follows: Wikipedia links for the country/market holidays first, then country-specific official sources for newer implementations, then Wikipedia links for each individual non-standard holiday if any are required. Official government sources should not be placed first ahead of Wikipedia links.

Applied to files:

  • docs/holiday_categories.md
🪛 LanguageTool
docs/holiday_categories.md

[grammar] ~1-~1: Use correct spacing
Context: # Holiday Categories The holidays library supports various ca...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~3-~3: Use correct spacing
Context: ...us significance, or cultural importance. ## Overview Holiday categories enable you ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~5-~5: Use correct spacing
Context: ...ce, or cultural importance. ## Overview Holiday categories enable you to filter ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~7-~7: Use correct spacing
Context: ...and holidays are classified accordingly. ## Category Types ### Official Status Cate...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~9-~9: Use correct spacing
Context: ...assified accordingly. ## Category Types ### Official Status Categories #### PUBLIC ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~11-~11: Use correct spacing
Context: ...ry Types ### Official Status Categories #### PUBLIC Official holidays recognized by ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~13-~13: Use correct spacing
Context: ... Official Status Categories #### PUBLIC Official holidays recognized by the gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~15-~15: Use correct spacing
Context: ...k and school for the general population. Examples: - New Year's Day in most coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~17-~17: Use correct spacing
Context: ...l for the general population. Examples: - New Year's Day in most countries - Indep...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~19-~19: There might be a mistake here.
Context: ...les: - New Year's Day in most countries - Independence Day in the United States - ...

(QB_NEW_EN_OTHER)


[grammar] ~21-~21: Use correct spacing
Context: ...tmas Day in Christian-majority countries #### GOVERNMENT Holidays observed by governm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~23-~23: There might be a problem here.
Context: ...tian-majority countries #### GOVERNMENT Holidays observed by government institutions but...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~25-~25: Use correct spacing
Context: ...rovide general time off for all workers. Examples: - Flag Day in some jurisdicti...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~27-~27: Use correct spacing
Context: ...ral time off for all workers. Examples: - Flag Day in some jurisdictions - Governm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~29-~29: There might be a mistake here.
Context: ...mples: - Flag Day in some jurisdictions - Government-specific commemorative days ...

(QB_NEW_EN)


[grammar] ~30-~30: Use correct spacing
Context: ...- Government-specific commemorative days #### WORKDAY Holidays that are officially re...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~32-~32: Use correct spacing
Context: ...pecific commemorative days #### WORKDAY Holidays that are officially recognized ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~34-~34: Use correct spacing
Context: ...n ceremonial or commemorative in nature. Examples: - Constitution Day in some co...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~36-~36: Use correct spacing
Context: ...l or commemorative in nature. Examples: - Constitution Day in some countries - Mem...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~38-~38: There might be a mistake here.
Context: ...s: - Constitution Day in some countries - Memorial days that are observed but not ...

(QB_NEW_EN)


[grammar] ~39-~39: Use correct spacing
Context: ... are observed but not as public holidays #### UNOFFICIAL Commonly celebrated cultural...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~41-~41: Use correct spacing
Context: ... not as public holidays #### UNOFFICIAL Commonly celebrated cultural holidays wi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~43-~43: Use commas correctly
Context: ...re widely observed cultural celebrations, but exclude novelty, internet, or marke...

(QB_NEW_EN_OTHER_ERROR_IDS_33)


[grammar] ~43-~43: Use correct spacing
Context: ... internet, or marketing "national days." Examples: - Valentine's Day - Saint Pat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~45-~45: Use correct spacing
Context: ...or marketing "national days." Examples: - Valentine's Day - Saint Patrick's Day - ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~47-~47: There might be a mistake here.
Context: ...nal days." Examples: - Valentine's Day - Saint Patrick's Day - Halloween ### Ins...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ... - Valentine's Day - Saint Patrick's Day - Halloween ### Institutional Categories ...

(QB_NEW_EN)


[grammar] ~49-~49: Use correct spacing
Context: ...'s Day - Saint Patrick's Day - Halloween ### Institutional Categories #### BANK Hol...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~51-~51: Use correct spacing
Context: ... Halloween ### Institutional Categories #### BANK Holidays specifically observed by ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~53-~53: Use correct spacing
Context: ... ### Institutional Categories #### BANK Holidays specifically observed by bankin...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[style] ~55-~55: Consider using only “public” to avoid wordiness.
Context: ...ing institutions, which may differ from general public holidays. Examples: - Good Friday (in...

(GENERAL_XX)


[grammar] ~55-~55: Use correct spacing
Context: ...may differ from general public holidays. Examples: - Good Friday (in some countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~57-~57: Use correct spacing
Context: ...from general public holidays. Examples: - Good Friday (in some countries) - Additi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~59-~59: There might be a mistake here.
Context: ...ples: - Good Friday (in some countries) - Additional banking-specific closures ##...

(QB_NEW_EN)


[grammar] ~60-~60: Use correct spacing
Context: ...) - Additional banking-specific closures #### SCHOOL Holidays specific to educational...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~62-~62: Use correct spacing
Context: ...l banking-specific closures #### SCHOOL Holidays specific to educational institu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~64-~64: Use correct spacing
Context: ...ys specific to educational institutions. Examples: - Teacher's Day - Education-s...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~66-~66: Use correct spacing
Context: ... to educational institutions. Examples: - Teacher's Day - Education-specific obser...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~68-~68: There might be a mistake here.
Context: ...nstitutions. Examples: - Teacher's Day - Education-specific observances #### ARM...

(QB_NEW_EN)


[grammar] ~69-~69: Use correct spacing
Context: ...r's Day - Education-specific observances #### ARMED_FORCES Holidays specific to milit...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~71-~71: Use correct spacing
Context: ...-specific observances #### ARMED_FORCES Holidays specific to military personnel ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~73-~73: Use correct spacing
Context: ... to military personnel and institutions. Examples: - Armed Forces Day - Military...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~75-~75: Use correct spacing
Context: ...y personnel and institutions. Examples: - Armed Forces Day - Military commemoratio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~77-~77: There might be a mistake here.
Context: ...itutions. Examples: - Armed Forces Day - Military commemoration days ### Special...

(QB_NEW_EN)


[grammar] ~78-~78: Use correct spacing
Context: ...Forces Day - Military commemoration days ### Special Categories #### OPTIONAL Holid...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~80-~80: Use correct spacing
Context: ...mmemoration days ### Special Categories #### OPTIONAL Holidays that individuals or o...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~82-~82: Use correct spacing
Context: ...s ### Special Categories #### OPTIONAL Holidays that individuals or organizatio...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~84-~84: Use correct spacing
Context: ...ften with flexibility in implementation. Examples: - Religious holidays for mino...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~86-~86: Use correct spacing
Context: ...lexibility in implementation. Examples: - Religious holidays for minority populati...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~88-~88: There might be a mistake here.
Context: ...igious holidays for minority populations - Cultural observances with optional recog...

(QB_NEW_EN)


[grammar] ~89-~89: Use correct spacing
Context: ...al observances with optional recognition #### MANDATORY (deprecated) Holidays that ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~91-~91: Use correct spacing
Context: ...ecognition #### MANDATORY (deprecated) Holidays that were legally required to b...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[typographical] ~93-~93: To join two clauses or set off examples, consider using an em dash.
Context: ...ays" are now included in the OPTIONAL category - following the same approach as in Hong Kong. ###...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~93-~93: Use correct spacing
Context: ...owing the same approach as in Hong Kong. #### HALF_DAY Holidays that are observed for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~95-~95: Use correct spacing
Context: ...approach as in Hong Kong. #### HALF_DAY Holidays that are observed for only part...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~97-~97: Use correct spacing
Context: ...t are observed for only part of the day. Examples: - Christmas Eve (afternoon on...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~99-~99: Use correct spacing
Context: ...ved for only part of the day. Examples: - Christmas Eve (afternoon only) - New Yea...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~101-~101: There might be a mistake here.
Context: ...mples: - Christmas Eve (afternoon only) - New Year's Eve (afternoon only) ### Rel...

(QB_NEW_EN)


[grammar] ~102-~102: Use correct spacing
Context: ... only) - New Year's Eve (afternoon only) ### Religious Categories #### CATHOLIC Hol...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~104-~104: Use correct spacing
Context: ...fternoon only) ### Religious Categories #### CATHOLIC Holidays specific to the Catho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~106-~106: Use correct spacing
Context: ... ### Religious Categories #### CATHOLIC Holidays specific to the Catholic Christ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~108-~108: Use correct spacing
Context: ...fic to the Catholic Christian tradition. Examples: - Feast of the Immaculate Con...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~110-~110: Use correct spacing
Context: ...Catholic Christian tradition. Examples: - Feast of the Immaculate Conception - Cor...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~112-~112: There might be a mistake here.
Context: ...s: - Feast of the Immaculate Conception - Corpus Christi #### CHRISTIAN General ...

(QB_NEW_EN)


[grammar] ~113-~113: Use correct spacing
Context: ...e Immaculate Conception - Corpus Christi #### CHRISTIAN General Christian holidays ob...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~115-~115: Use correct spacing
Context: ...ception - Corpus Christi #### CHRISTIAN General Christian holidays observed acro...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~117-~117: Use modal and auxiliary verbs correctly
Context: ...isti #### CHRISTIAN General Christian holidays observed across denominations. Example...

(QB_NEW_EN_OTHER_ERROR_IDS_24)


[grammar] ~117-~117: Use correct spacing
Context: ... holidays observed across denominations. Examples: - Easter Sunday - Christmas D...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~119-~119: Use correct spacing
Context: ...bserved across denominations. Examples: - Easter Sunday - Christmas Day #### ORTH...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~121-~121: There might be a mistake here.
Context: ...nominations. Examples: - Easter Sunday - Christmas Day #### ORTHODOX Holidays s...

(QB_NEW_EN)


[grammar] ~122-~122: Use correct spacing
Context: ...amples: - Easter Sunday - Christmas Day #### ORTHODOX Holidays specific to Orthodox ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~124-~124: Use correct spacing
Context: ...er Sunday - Christmas Day #### ORTHODOX Holidays specific to Orthodox Christian ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~126-~126: Use correct spacing
Context: ...ecific to Orthodox Christian traditions. Examples: - Orthodox Easter - Orthodox ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~128-~128: Use correct spacing
Context: ...rthodox Christian traditions. Examples: - Orthodox Easter - Orthodox Christmas ##...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~130-~130: There might be a mistake here.
Context: ...raditions. Examples: - Orthodox Easter - Orthodox Christmas #### ISLAMIC Holida...

(QB_NEW_EN)


[grammar] ~131-~131: Use correct spacing
Context: ... - Orthodox Easter - Orthodox Christmas #### ISLAMIC Holidays from the Islamic tradi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~133-~133: Use correct spacing
Context: ...aster - Orthodox Christmas #### ISLAMIC Holidays from the Islamic tradition. Ex...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~135-~135: Use correct spacing
Context: ...IC Holidays from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~137-~137: Use correct spacing
Context: ...s from the Islamic tradition. Examples: - Eid al-Fitr - Eid al-Adha #### HINDU H...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~139-~139: There might be a mistake here.
Context: ...mic tradition. Examples: - Eid al-Fitr - Eid al-Adha #### HINDU Holidays from t...

(QB_NEW_EN)


[grammar] ~140-~140: Use correct spacing
Context: ... Examples: - Eid al-Fitr - Eid al-Adha #### HINDU Holidays from the Hindu tradition...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~142-~142: Use correct spacing
Context: ... - Eid al-Fitr - Eid al-Adha #### HINDU Holidays from the Hindu tradition. Exam...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~144-~144: Use correct spacing
Context: ...INDU Holidays from the Hindu tradition. Examples: - Diwali - Holi #### HEBREW ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~146-~146: Use correct spacing
Context: ...ays from the Hindu tradition. Examples: - Diwali - Holi #### HEBREW Holidays fro...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~148-~148: There might be a mistake here.
Context: ...he Hindu tradition. Examples: - Diwali - Holi #### HEBREW Holidays from the Jew...

(QB_NEW_EN)


[grammar] ~149-~149: Use correct spacing
Context: ...u tradition. Examples: - Diwali - Holi #### HEBREW Holidays from the Jewish traditi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~151-~151: Use correct spacing
Context: ... Examples: - Diwali - Holi #### HEBREW Holidays from the Jewish tradition. Exa...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~153-~153: Use correct spacing
Context: ...REW Holidays from the Jewish tradition. Examples: - Yom Kippur - Passover ####...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~155-~155: Use correct spacing
Context: ...ys from the Jewish tradition. Examples: - Yom Kippur - Passover #### CHINESE Hol...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~157-~157: There might be a mistake here.
Context: ...wish tradition. Examples: - Yom Kippur - Passover #### CHINESE Holidays from Ch...

(QB_NEW_EN)


[grammar] ~158-~158: Use correct spacing
Context: ...ion. Examples: - Yom Kippur - Passover #### CHINESE Holidays from Chinese cultural ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~160-~160: Use correct spacing
Context: ...: - Yom Kippur - Passover #### CHINESE Holidays from Chinese cultural and relig...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~162-~162: Use correct spacing
Context: ...inese cultural and religious traditions. Examples: - Chinese New Year - Mid-Autu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~164-~164: Use correct spacing
Context: ...ral and religious traditions. Examples: - Chinese New Year - Mid-Autumn Festival ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~166-~166: There might be a mistake here.
Context: ...aditions. Examples: - Chinese New Year - Mid-Autumn Festival #### SABIAN Holida...

(QB_NEW_EN)


[grammar] ~167-~167: Use correct spacing
Context: ...- Chinese New Year - Mid-Autumn Festival #### SABIAN Holidays specific to the Sabian ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~169-~169: Use correct spacing
Context: ... Year - Mid-Autumn Festival #### SABIAN Holidays specific to the Sabian religiou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~171-~171: Use correct spacing
Context: ...cific to the Sabian religious tradition. Examples: - Used in Iraq for Sabian com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~173-~173: Use correct spacing
Context: ...e Sabian religious tradition. Examples: - Used in Iraq for Sabian community holida...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~175-~175: Use correct spacing
Context: ...ed in Iraq for Sabian community holidays #### YAZIDI Holidays specific to the Yazidi ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~177-~177: Use correct spacing
Context: ...r Sabian community holidays #### YAZIDI Holidays specific to the Yazidi religiou...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~179-~179: Use correct spacing
Context: ...cific to the Yazidi religious tradition. Examples: - Used in Iraq for Yazidi com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~181-~181: Use correct spacing
Context: ...e Yazidi religious tradition. Examples: - Used in Iraq for Yazidi community holida...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~183-~183: Use correct spacing
Context: ...ed in Iraq for Yazidi community holidays ### Ethnic and Cultural Categories #### ARM...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~185-~185: Use correct spacing
Context: ...days ### Ethnic and Cultural Categories #### ARMENIAN Holidays specific to Armenian ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~187-~187: Use correct spacing
Context: ...c and Cultural Categories #### ARMENIAN Holidays specific to Armenian culture an...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~189-~189: Use correct spacing
Context: ...ific to Armenian culture and traditions. Examples: - Used in Argentina for Armen...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~191-~191: Use correct spacing
Context: ...enian culture and traditions. Examples: - Used in Argentina for Armenian community...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~193-~193: Use correct spacing
Context: ...rgentina for Armenian community holidays #### ALBANIAN Holidays specific to Albanian ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~195-~195: Use correct spacing
Context: ...menian community holidays #### ALBANIAN Holidays specific to Albanian culture an...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~197-~197: Use correct spacing
Context: ...ific to Albanian culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~199-~199: Use correct spacing
Context: ...anian culture and traditions. Examples: - Used in North Macedonia for Albanian com...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~201-~201: Use correct spacing
Context: ...acedonia for Albanian community holidays #### BOSNIAN Holidays specific to Bosnian cu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~203-~203: Use correct spacing
Context: ...lbanian community holidays #### BOSNIAN Holidays specific to Bosnian culture and...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~205-~205: Use correct spacing
Context: ...cific to Bosnian culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~207-~207: Use correct spacing
Context: ...snian culture and traditions. Examples: - Used in North Macedonia for Bosnian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~209-~209: Use correct spacing
Context: ...Macedonia for Bosnian community holidays #### SERBIAN Holidays specific to Serbian cu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~211-~211: Use correct spacing
Context: ...Bosnian community holidays #### SERBIAN Holidays specific to Serbian culture and...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~213-~213: Use correct spacing
Context: ...cific to Serbian culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~215-~215: Use correct spacing
Context: ...rbian culture and traditions. Examples: - Used in North Macedonia for Serbian comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~217-~217: Use correct spacing
Context: ...Macedonia for Serbian community holidays #### TURKISH Holidays specific to Turkish cu...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~219-~219: Use correct spacing
Context: ...Serbian community holidays #### TURKISH Holidays specific to Turkish culture and...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~221-~221: Use correct spacing
Context: ...cific to Turkish culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~223-~223: Use correct spacing
Context: ...rkish culture and traditions. Examples: - Used in North Macedonia for Turkish comm...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~225-~225: Use correct spacing
Context: ...Macedonia for Turkish community holidays #### ROMA Holidays specific to Roma culture ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~227-~227: Use correct spacing
Context: ...or Turkish community holidays #### ROMA Holidays specific to Roma culture and tr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~229-~229: Use correct spacing
Context: ...specific to Roma culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~231-~231: Use correct spacing
Context: ... Roma culture and traditions. Examples: - Used in North Macedonia for Roma communi...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~233-~233: There might be a problem here.
Context: ...th Macedonia for Roma community holidays #### VLACH Holidays specific to Vlach culture and t...

(QB_NEW_EN_MERGED_MATCH)


[grammar] ~237-~237: Use correct spacing
Context: ...pecific to Vlach culture and traditions. Examples: - Used in North Macedonia for...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~239-~239: Use correct spacing
Context: ...Vlach culture and traditions. Examples: - Used in North Macedonia for Vlach commun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~241-~241: Use correct spacing
Context: ...h Macedonia for Vlach community holidays ## Usage Examples ### Filtering by Single ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~243-~243: Use correct spacing
Context: ...ch community holidays ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~245-~245: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~247-~247: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays from holidays.constants import PUBLIC # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~258-~258: Use correct spacing
Context: ...`` ### Filtering by Multiple Categories Get holidays from multiple categories: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~260-~260: Use correct spacing
Context: ... Get holidays from multiple categories: python import holidays from holidays.constants import PUBLIC, BANK # Get both public and bank holidays for Belgium belgium_holidays = holidays.Belgium(categories=(PUBLIC, BANK), years=2024) for date, name in sorted(belgium_holidays.items()): print(f"{date}: {name}") ### Religious Category Example ```python im...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~272-~272: Use correct spacing
Context: ...e}") ### Religious Category Example python import holidays from holidays.constants import CATHOLIC # Get only Catholic holidays in Germany (Saxony subdivision) germany_catholic = holidays.Germany(subdiv='SN', categories=CATHOLIC, years=2024) for date, name in sorted(germany_catholic.items()): print(f"{date}: {name}") ### Unofficial Holidays Example python i...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~284-~284: Use correct spacing
Context: ...}") ### Unofficial Holidays Example python import holidays from holidays.constants import UNOFFICIAL # Get unofficial holidays in the United States us_unofficial = holidays.UnitedStates(categories=UNOFFICIAL, years=2024) for date, name in sorted(us_unofficial.items()): print(f"{date}: {name}") # Output: Valentine's Day, Saint Patrick's Day, Halloween, etc. ``` ## Country-Specific Support Not all countr...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~297-~297: Use correct spacing
Context: ...n, etc. ``` ## Country-Specific Support Not all countries support all categories...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~299-~299: Use correct spacing
Context: ...sed on its legal and cultural framework. ### Checking Supported Categories ```python...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~301-~301: Use correct spacing
Context: ...work. ### Checking Supported Categories python import holidays # Check which categories a country supports us = holidays.UnitedStates() print(f"US supported categories: {us.supported_categories}") # Output: ('government', 'public', 'unofficial') de = holidays.Germany() print(f"Germany supported categories: {de.supported_categories}") # Output: ('catholic', 'public') # Note: The category tuples shown are examples and may change as countries update their holiday frameworks. ### Examples by Country United States: ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~318-~318: Use correct spacing
Context: ...frameworks. ``` ### Examples by Country United States: `('government', 'public...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~320-~320: There might be a mistake here.
Context: ...Examples by Country United States: ('government', 'public', 'unofficial') - Supports federal holidays, state holiday...

(QB_NEW_EN)


[grammar] ~321-~321: Use correct spacing
Context: ...state holidays, and cultural observances Germany: ('catholic', 'public') - Su...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~323-~323: There might be a mistake here.
Context: ... and cultural observances Germany: ('catholic', 'public') - Supports public holidays and Catholic re...

(QB_NEW_EN)


[grammar] ~324-~324: Use correct spacing
Context: ...ic religious holidays in certain regions India: ('optional', 'public') - Supp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~326-~326: There might be a mistake here.
Context: ...holidays in certain regions India: ('optional', 'public') - Supports national holidays and optional ...

(QB_NEW_EN)


[grammar] ~327-~327: Use correct spacing
Context: ...lidays and optional regional observances Argentina: `('armenian', 'bank', 'gove...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~329-~329: There might be a mistake here.
Context: ...al regional observances Argentina: ('armenian', 'bank', 'government', 'hebrew', 'islamic', 'public') - Supports multiple religious traditions a...

(QB_NEW_EN)


[grammar] ~330-~330: There might be a mistake here.
Context: ... traditions and institutional categories ## Implementation Guidelines ### When Defi...

(QB_NEW_EN_OTHER)


[grammar] ~332-~332: Use correct spacing
Context: ...categories ## Implementation Guidelines ### When Defining New Countries When adding...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~334-~334: Use correct spacing
Context: ...delines ### When Defining New Countries When adding support for a new country, c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~336-~336: Use correct spacing
Context: ...ing support for a new country, consider: 1. Official Status: Which holidays are le...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~341-~341: There might be a mistake here.
Context: ...tutional Needs**: Do banks, schools, or government have specific observances? ### Categor...

(QB_NEW_EN_OTHER)


[grammar] ~341-~341: Use correct spacing
Context: ...or government have specific observances? ### Category Selection Principles - **PUBLI...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~343-~343: Use correct spacing
Context: ...nces? ### Category Selection Principles - PUBLIC: Holidays mandated by law with ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~345-~345: There might be a mistake here.
Context: ...ys mandated by law with general time off - GOVERNMENT: Official observances witho...

(QB_NEW_EN)


[grammar] ~346-~346: There might be a mistake here.
Context: ...ial observances without general time off - WORKDAY: Recognized but working holida...

(QB_NEW_EN)


[grammar] ~347-~347: There might be a mistake here.
Context: ...RKDAY**: Recognized but working holidays - UNOFFICIAL: Widely celebrated but not ...

(QB_NEW_EN)


[grammar] ~348-~348: There might be a mistake here.
Context: ...AL**: Widely celebrated but not official - Religious categories: Use specific tra...

(QB_NEW_EN)


[grammar] ~349-~349: There might be a mistake here.
Context: ...holidays apply to particular communities - Institutional categories: Use when hol...

(QB_NEW_EN_OTHER)


[grammar] ~350-~350: There might be a mistake here.
Context: ... when holidays apply to specific sectors ## Default Behavior When no categories are...

(QB_NEW_EN_OTHER)


[grammar] ~352-~352: Use correct spacing
Context: ...to specific sectors ## Default Behavior When no categories are specified, most c...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~354-~354: Use correct spacing
Context: ...ct when asking for a country's holidays. python import holidays from holidays.constants import PUBLIC # These are equivalent for most countries us_default = holidays.UnitedStates(years=2024) us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) ## Contributing When contributing new coun...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~365-~365: Use correct spacing
Context: ...PUBLIC, years=2024) ``` ## Contributing When contributing new countries or updat...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~367-~367: Use correct spacing
Context: ...new countries or updating existing ones: 1. Research the official holiday framework ...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~369-~369: There might be a mistake here.
Context: ...ficial holiday framework for the country 2. Identify which categories are appropriat...

(QB_NEW_EN_OTHER)

🪛 markdownlint-cli2 (0.17.2)
docs/holiday_categories.md

321-321: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


324-324: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


327-327: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


330-330: Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Comment on lines +243 to +256
## Usage Examples

### Filtering by Single Category

Get only public holidays:

```python
import holidays
from holidays.constants import PUBLIC

# Get only public holidays for the United States
us_public = holidays.UnitedStates(categories=PUBLIC, years=2024)
print(f"US public holidays in 2024: {len(us_public)}")
```
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Recommend constants as the preferred API.

State preference once up front in Usage Examples; strings may exist but are discouraged.

 ### Filtering by Single Category
-
-Get only public holidays:
+Preferred: use constants from `holidays.constants` (e.g., `PUBLIC`) to avoid typos and for IDE support. String names are accepted but discouraged.
+
+Get only public holidays:
 
 ```python
 import holidays
 from holidays.constants import PUBLIC
🧰 Tools
🪛 LanguageTool

[grammar] ~243-~243: Use correct spacing
Context: ...ch community holidays ## Usage Examples ### Filtering by Single Category Get only p...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~245-~245: Use correct spacing
Context: ...amples ### Filtering by Single Category Get only public holidays: ```python imp...

(QB_NEW_EN_OTHER_ERROR_IDS_5)


[grammar] ~247-~247: Use correct spacing
Context: ...ngle Category Get only public holidays: python import holidays from holidays.constants import PUBLIC # Get only public holidays for the United States us_public = holidays.UnitedStates(categories=PUBLIC, years=2024) print(f"US public holidays in 2024: {len(us_public)}") ### Filtering by Multiple Categories Get ho...

(QB_NEW_EN_OTHER_ERROR_IDS_5)

🤖 Prompt for AI Agents
In docs/holiday_categories.md around lines 243 to 256, the Usage Examples
section should state up front that constants (e.g., from holidays.constants) are
the preferred API and discourage raw strings; update the header or a brief
lead-in sentence before the examples to recommend using constants, and adjust
the example wording to emphasize using the PUBLIC constant (instead of implying
strings) so readers know constants are the preferred usage across examples.

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.

Document holiday categories

3 participants