+
Skip to content

Conversation

Aaqilyousuf
Copy link
Contributor

Proposed change

Add Ugadi holiday for Andhra Pradesh (AP), Telangana (TS), and Karnataka (KA) states #2445

  • Ugadi vs Gudi Padwa:
    • Both festivals fall on the same date according to the Hindu lunisolar calendar.
    • Maharashtra (MH): Celebrates Gudi Padwa only.
    • AP, TS, KA: Celebrate Ugadi.
  • Ganesh immersion: Not added as a public holiday since it is a post-Ganesh Chaturthi event, not officially recognized.
  • Existing holidays like Pongal remain unchanged.
  • All unit tests pass, including localization (hi, en_IN, en_US), and make check passes.

This ensures accurate state-specific holidays without duplicating dates.

Type of change

  • Supported country/market holidays update (calendar discrepancy fix, localization)

Checklist

This PR solves issue #2445

Copy link

codecov bot commented Sep 21, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d891f60) to head (6b7a269).
⚠️ Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff            @@
##               dev     #2953   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          299       299           
  Lines        17842     17845    +3     
  Branches      2295      2295           
=========================================
+ Hits         17842     17845    +3     

☔ 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.

@KJhellico
Copy link
Collaborator

  • Both festivals fall on the same date according to the Hindu lunisolar calendar.

So just use _add_gudi_padwa, no need to add a separate holiday to calendar.

@Aaqilyousuf
Copy link
Contributor Author

Aaqilyousuf commented Sep 22, 2025

@KJhellico yeah Gudi Padwa and Ugadi always fall on the same date according to the Hindu lunisolar calendar.

The only reason I added _add_ugadi instead of reusing _add_gudi_padwa directly is because:

In Maharashtra, the festival is celebrated as Gudi Padwa.

In Karnataka, Andhra Pradesh, and Telangana, the very same date is observed as Ugadi.

So while the underlying date is the same, the holiday names differ by state. To reflect this regional naming correctly, I’ve kept them separate in code, but both functions resolve to the exact same date.

[] (https://www.timeanddate.com/holidays/india/ugadi)
[] (https://www.timeanddate.com/holidays/india/gudi-padwa)

@PPsyrius PPsyrius changed the title Add Ugadi holiday for AP, KA, TS Update India holidays: add Ugadi holiday for AP, KA, TS subdivisions Sep 22, 2025
KJhellico
KJhellico previously approved these changes Sep 22, 2025
Copy link
Collaborator

@KJhellico KJhellico left a comment

Choose a reason for hiding this comment

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

LGTM.

PPsyrius
PPsyrius previously approved these changes Sep 22, 2025
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.

LGTM 🇮🇳

@arkid15r arkid15r dismissed stale reviews from PPsyrius and KJhellico via 6b7a269 September 22, 2025 16:25
Copy link
Contributor

coderabbitai bot commented Sep 22, 2025

Summary by CodeRabbit

  • New Features
    • Added Ugadi (Gudi Padwa) as a public holiday for Andhra Pradesh, Karnataka, and Telangana.
    • Holiday label now shows “Gudi Padwa; Ugadi” where applicable.
  • Documentation
    • Clarified holiday description and context for Gudi Padwa/Ugadi, including calendar details and references.
  • Chores
    • Updated translations: added Ugadi entries for English (India, US) and Hindi; version metadata bumped to 0.82 in locale files.

Walkthrough

Adds Ugadi (Gudi Padwa) holiday entries for Andhra Pradesh, Karnataka, and Telangana in India; updates Hindu group docstring for Gudi Padwa/Ugadi; adds/updates translations in en_IN, en_US, and hi locales; adjusts tests to expect combined “Gudi Padwa; Ugadi” naming.

Changes

Cohort / File(s) Summary of changes
India holidays: add Ugadi entries
holidays/countries/india.py
Inserts _add_gudi_padwa(tr("Ugadi")) in Andhra Pradesh, Karnataka, and Telangana population methods at specified points.
Hindu group docstring update
holidays/groups/hindu.py
Expands _add_gudi_padwa docstring to cover Gudi Padwa/Ugadi, calendar context, and references; no logic changes.
Locale translations: add Ugadi
holidays/locale/en_IN/LC_MESSAGES/IN.po, holidays/locale/en_US/LC_MESSAGES/IN.po, holidays/locale/hi/LC_MESSAGES/IN.po
Bumps Project-Id-Version to 0.82; adds “Ugadi” translation entries (en_IN empty msgstr, en_US “Ugadi”, hi “उगादि”).
Tests: update expected names
tests/countries/test_india.py
Updates expected holiday name for 2018-03-18 to “Gudi Padwa; Ugadi” across locales.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • KJhellico

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title is a concise, single sentence that accurately summarizes the primary change: adding the Ugadi holiday for Andhra Pradesh (AP), Karnataka (KA), and Telangana (TS). It is specific, directly related to the changeset, and clear for a reviewer scanning history.
Description Check ✅ Passed The pull request description is clearly related to the changeset: it explains adding Ugadi for AP/KA/TS, clarifies the Ugadi vs Gudi Padwa relationship, notes tests and localization checks passed, and references the tracked issue, so it adequately describes the change.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d891f60 and 6b7a269.

📒 Files selected for processing (6)
  • holidays/countries/india.py (3 hunks)
  • holidays/groups/hindu.py (1 hunks)
  • holidays/locale/en_IN/LC_MESSAGES/IN.po (2 hunks)
  • holidays/locale/en_US/LC_MESSAGES/IN.po (2 hunks)
  • holidays/locale/hi/LC_MESSAGES/IN.po (2 hunks)
  • tests/countries/test_india.py (3 hunks)
🧰 Additional context used
🧠 Learnings (31)
📚 Learning: 2025-03-08T11:28:48.652Z
Learnt from: KJhellico
PR: vacanza/holidays#2259
File: holidays/locale/en_IN/LC_MESSAGES/IN.po:285-299
Timestamp: 2025-03-08T11:28:48.652Z
Learning: In the holidays project, message IDs (msgids) in locale files use region-specific naming conventions (e.g., "Muharram", "Id-ul-Fitr" in en_IN locale for India), while translator comments use internationally recognized names from the project's default locale (en_US) such as "Ashura", "Eid al-Fitr". This difference is intentional for proper localization.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-06-28T10:39:19.185Z
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:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-05-06T15:25:44.333Z
Learnt from: KJhellico
PR: vacanza/holidays#2530
File: holidays/locale/ca/LC_MESSAGES/AD.po:31-40
Timestamp: 2025-05-06T15:25:44.333Z
Learning: In the Holidays project, msgid fields in localization files contain strings in the entity's default language (as defined by default_language attribute), not English source strings as in standard gettext implementations.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-03-05T17:51:00.633Z
Learnt from: KJhellico
PR: vacanza/holidays#2259
File: holidays/locale/en_IN/LC_MESSAGES/IN.po:30-299
Timestamp: 2025-03-05T17:51:00.633Z
Learning: In the Holidays project, .po files for a country's default locale use empty msgstr fields as a standard convention.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-06-25T10:09:29.029Z
Learnt from: PPsyrius
PR: vacanza/holidays#2676
File: holidays/locale/ar/LC_MESSAGES/EG.po:0-0
Timestamp: 2025-06-25T10:09:29.029Z
Learning: In the holidays library, msgstr fields can be left empty for source/default_language files when using Lingva, the localization tool used by the project.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-03-30T18:25:07.087Z
Learnt from: KJhellico
PR: vacanza/holidays#2388
File: holidays/locale/en_CI/LC_MESSAGES/CI.po:88-88
Timestamp: 2025-03-30T18:25:07.087Z
Learning: In the holidays library, localization files have a specific structure: message comments are in standard English (en_US) describing the holiday, while actual translations (msgstr) should use the locale-specific terminology (e.g., en_CI for Ivory Coast English). For example, "Night of Power" in standard English is translated as "Lailatou-Kadr" in Ivory Coast English.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-04-17T17:08:48.082Z
Learnt from: PPsyrius
PR: vacanza/holidays#2438
File: holidays/locale/ar_IQ/LC_MESSAGES/IQ.po:35-81
Timestamp: 2025-04-17T17:08:48.082Z
Learning: In holiday PO files, when the file represents the default language of an entity (e.g., ar_IQ for Iraq), no translations in `msgstr` are required as the `msgid` values are already in the target language.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-06-10T12:17:58.880Z
Learnt from: KJhellico
PR: vacanza/holidays#2608
File: holidays/locale/en_VC/LC_MESSAGES/VC.po:1-14
Timestamp: 2025-06-10T12:17:58.880Z
Learning: In the holidays project, .po files should use the full multi-line header format including the project description, authors, website, and license information, rather than a single-line comment format.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-03-30T13:33:31.598Z
Learnt from: PPsyrius
PR: vacanza/holidays#2388
File: holidays/locale/fr/LC_MESSAGES/CI.po:28-101
Timestamp: 2025-03-30T13:33:31.598Z
Learning: In the holidays library, for localization files of the default language (like French for Ivory Coast in fr/LC_MESSAGES/CI.po), the best practice is to leave the message strings (msgstr) empty to avoid possible typos, since the message IDs (msgid) are already in the target language.

Applied to files:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
📚 Learning: 2025-06-11T18:32:25.595Z
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:

  • holidays/locale/en_US/LC_MESSAGES/IN.po
  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 Learning: 2025-05-06T21:07:11.577Z
Learnt from: KJhellico
PR: vacanza/holidays#2530
File: tests/countries/test_andorra.py:23-28
Timestamp: 2025-05-06T21:07:11.577Z
Learning: In the holidays project, test methods for country holidays follow a standard form where year ranges are explicitly recreated in each test method rather than being stored as class variables, to maintain consistency across all country tests.

Applied to files:

  • tests/countries/test_india.py
📚 Learning: 2025-04-02T18:38:35.164Z
Learnt from: KJhellico
PR: vacanza/holidays#2398
File: tests/countries/test_guinea.py:237-239
Timestamp: 2025-04-02T18:38:35.164Z
Learning: In the vacanza/holidays project, the method assertLocalizedHolidays in country test files should be called with positional parameters rather than named parameters to maintain consistency with the rest of the codebase.

Applied to files:

  • tests/countries/test_india.py
📚 Learning: 2025-05-13T13:23:11.375Z
Learnt from: KJhellico
PR: vacanza/holidays#2483
File: holidays/countries/turks_and_caicos_islands.py:117-118
Timestamp: 2025-05-13T13:23:11.375Z
Learning: The holidays library uses `_add_christmas_day_two` method to add Boxing Day holiday, not `_add_boxing_day`.

Applied to files:

  • holidays/countries/india.py
📚 Learning: 2025-06-14T20:43:15.370Z
Learnt from: KJhellico
PR: vacanza/holidays#2631
File: holidays/countries/sint_maarten.py:94-95
Timestamp: 2025-06-14T20:43:15.370Z
Learning: The `_add_*` helper methods in the holidays library (such as `_add_christmas_day_two()`, `_add_labor_day()`, etc.) don't have default holiday names, so the name parameter should always be explicitly specified when calling these methods.

Applied to files:

  • holidays/countries/india.py
📚 Learning: 2025-08-19T21:00:47.849Z
Learnt from: KJhellico
PR: vacanza/holidays#2831
File: holidays/countries/south_sudan.py:84-88
Timestamp: 2025-08-19T21:00:47.849Z
Learning: In the holidays library, Islamic holidays use dedicated methods for additional days (like `_add_eid_al_fitr_day_two`, `_add_eid_al_adha_day_two`) rather than parameters. The methods don't accept a `days` parameter - each day has its own specific method.

Applied to files:

  • holidays/countries/india.py
📚 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 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:

  • holidays/countries/india.py
📚 Learning: 2025-04-03T16:58:27.175Z
Learnt from: Wasif-Shahzad
PR: vacanza/holidays#2409
File: holidays/countries/qatar.py:27-46
Timestamp: 2025-04-03T16:58:27.175Z
Learning: In the holidays library, method names like `_add_holiday_2nd_tue_of_feb()` and `_add_holiday_1st_sun_of_mar()` use calendar constants like FEB, TUE, MAR, and SUN internally through parent class implementations even when these constants don't appear directly in the file.

Applied to files:

  • holidays/countries/india.py
📚 Learning: 2025-06-14T20:12:37.212Z
Learnt from: KJhellico
PR: vacanza/holidays#2614
File: holidays/countries/guyana.py:146-179
Timestamp: 2025-06-14T20:12:37.212Z
Learning: The `_CustomHinduHolidays` mechanism works through `_CustomCalendarType` metaclass which renames public attributes (like `DIWALI_INDIA_DATES`) with a postfix, allowing `_HinduLunisolar::_get_holiday` to find and use custom holiday dates. When `_add_diwali_india()` is called, it uses the custom dates if available rather than calculated dates.

Applied to files:

  • holidays/countries/india.py
📚 Learning: 2025-07-14T20:23:48.198Z
Learnt from: KJhellico
PR: vacanza/holidays#2654
File: holidays/countries/cabo_verde.py:133-141
Timestamp: 2025-07-14T20:23:48.198Z
Learning: The holidays library provides helper methods `_add_holiday_2nd_sun_of_may()` and `_add_holiday_3rd_sun_of_jun()` for adding holidays on the 2nd Sunday of May and 3rd Sunday of June respectively. These methods are used across multiple country implementations including Latvia, Finland, Belarus, Malaysia, Madagascar, and Cape Verde.

Applied to files:

  • holidays/countries/india.py
📚 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:

  • holidays/countries/india.py
📚 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:

  • holidays/countries/india.py
📚 Learning: 2025-06-18T10:07:58.780Z
Learnt from: PPsyrius
PR: vacanza/holidays#2642
File: holidays/countries/french_southern_territories.py:41-44
Timestamp: 2025-06-18T10:07:58.780Z
Learning: Territorial holiday classes that inherit from parent countries (like HolidaysAX from Finland, HolidaysSJ from Norway, HolidaysTF from France) follow a standard pattern of silently overriding self.subdiv in their _populate_public_holidays() method without validation, as this ensures they always use the correct subdivision code for their territory regardless of user input.

Applied to files:

  • holidays/countries/india.py
📚 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:

  • holidays/groups/hindu.py
📚 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:

  • holidays/groups/hindu.py
📚 Learning: 2025-06-29T09:37:35.283Z
Learnt from: KJhellico
PR: vacanza/holidays#2687
File: holidays/locale/en_US/LC_MESSAGES/CF.po:13-28
Timestamp: 2025-06-29T09:37:35.283Z
Learning: In the holidays project, .po files follow a standard formatting convention where there is always a blank line after the metadata header section (after the "X-Source-Language" line). This blank line separates the header from the actual translation content and should not be removed.

Applied to files:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 Learning: 2025-04-05T08:12:19.986Z
Learnt from: PPsyrius
PR: vacanza/holidays#2402
File: holidays/locale/en_TT/LC_MESSAGES/TT.po:46-48
Timestamp: 2025-04-05T08:12:19.986Z
Learning: In the holidays library, localization (PO) files follow this convention: comments (#.) always use American English (en_US) spelling, while the msgid content follows the locale-specific spelling standards of the target language.

Applied to files:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 Learning: 2025-09-17T15:53:16.940Z
Learnt from: PPsyrius
PR: vacanza/holidays#2944
File: holidays/countries/myanmar.py:108-111
Timestamp: 2025-09-17T15:53:16.940Z
Learning: In the holidays package, explanatory comments about year restrictions or policy context should be placed above conditional blocks or at method level, never directly above holiday name comments that precede tr() function calls, as this would include the explanatory text in .po localization files when running `make l10n`.

Applied to files:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 Learning: 2025-06-25T20:55:00.642Z
Learnt from: KJhellico
PR: vacanza/holidays#2651
File: holidays/locale/nl/LC_MESSAGES/BQ.po:29-95
Timestamp: 2025-06-25T20:55:00.642Z
Learning: In the holidays library, Dutch locale files (.po) with `X-Source-Language: nl` should have empty msgstr entries when the target language is also Dutch. The library uses fallback=True with gettext, which returns the original msgid when msgstr is empty. This is the correct pattern for native language files and does not cause blank holiday names.

Applied to files:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 Learning: 2025-04-10T10:58:12.704Z
Learnt from: KJhellico
PR: vacanza/holidays#2459
File: holidays/locale/en_HK/LC_MESSAGES/HK.po:190-191
Timestamp: 2025-04-10T10:58:12.704Z
Learning: The maximum line length for .po files in the holidays repository is 99 characters. Comment lines should be consolidated only if the resulting line doesn't exceed this limit.

Applied to files:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 Learning: 2025-06-10T05:08:07.939Z
Learnt from: PPsyrius
PR: vacanza/holidays#2608
File: holidays/locale/en_US/LC_MESSAGES/VC.po:76-76
Timestamp: 2025-06-10T05:08:07.939Z
Learning: For the holidays project, localization file formatting issues (like missing terminal periods in .po files) should be automatically fixed by running `make l10n` command (which is included in `make check`). Authors should be directed to use this automated tooling instead of manual formatting fixes.

Applied to files:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
📚 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:

  • holidays/locale/en_IN/LC_MESSAGES/IN.po
  • holidays/locale/hi/LC_MESSAGES/IN.po
🧬 Code graph analysis (1)
holidays/countries/india.py (1)
holidays/groups/hindu.py (1)
  • _add_gudi_padwa (163-180)
⏰ Context from checks skipped due to timeout of 300000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Test Python 3.9 on windows-latest
  • GitHub Check: Test Python 3.13 on windows-latest
🔇 Additional comments (13)
holidays/locale/en_IN/LC_MESSAGES/IN.po (2)

17-17: Header bump to 0.82: LGTM (resolves prior review).

Matches the latest suggestion noted in earlier comments. No further action.


155-158: Add Ugadi key (default locale): correct empty msgstr.

Using msgid only for en_IN (default language) is the right pattern.

holidays/locale/hi/LC_MESSAGES/IN.po (2)

17-17: Header bump to 0.82: LGTM.

Consistent with other locale files in this PR.


155-158: Ugadi (Hindi) added: looks good.

Translation present; aligns with new tr("Ugadi") usage.

holidays/groups/hindu.py (1)

165-176: Docstring clarifies Gudi Padwa/Ugadi aliasing: good reuse of one calculator.

Keeps single _add_gudi_padwa() source of truth while documenting regional naming.

holidays/countries/india.py (3)

282-284: AP: Add Ugadi via _add_gudi_padwa(tr("Ugadi")): correct.

Leverages shared date; state‑specific naming preserved.


370-372: KA: Add Ugadi via _add_gudi_padwa(tr("Ugadi")): correct.

Consistent with AP/TS implementation.


483-485: TS: Add Ugadi via _add_gudi_padwa(tr("Ugadi")): correct.

Matches project pattern for regional aliases.

holidays/locale/en_US/LC_MESSAGES/IN.po (2)

17-17: Header bump to 0.82: LGTM.

Aligned with other updated PO files.

To double‑check consistency across the repo, you can run:

#!/bin/bash
# Verify Project-Id-Version across India locale files and presence of Ugadi keys
rg -nP --glob 'holidays/locale/**/LC_MESSAGES/IN.po' -e '^"Project-Id-Version:\s*Holidays\s*0\.82\\n"$' -C0
echo "---- Missing 0.82 headers (if any) ----"
rg -nP --glob 'holidays/locale/**/LC_MESSAGES/IN.po' -e '^"Project-Id-Version:' -v | cat
echo "---- Ugadi entries ----"
rg -nP --glob 'holidays/locale/**/LC_MESSAGES/IN.po' -e '^\s*msgid\s+"Ugadi"' -n -C1

155-158: Add Ugadi mapping (en_US): OK.

Provides required translation for new key.

tests/countries/test_india.py (3)

540-540: LGTM: combined label for national l10n default.


608-608: LGTM: hi localization shows “Ugadi; Gudi Padwa” in correct script.


671-671: LGTM: en_US combined label matches default ordering.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Ruff (0.13.1)
holidays/countries/india.py

�[1;31mruff failed�[0m
�[1mCause:�[0m Failed to load configuration /ruff.toml
�[1mCause:�[0m Failed to parse /ruff.toml
�[1mCause:�[0m TOML parse error at line 26, column 3
|
26 | "RSE100", # Use of assert detected
| ^^^^^^^^
Unknown rule selector: RSE100

holidays/groups/hindu.py

�[1;31mruff failed�[0m
�[1mCause:�[0m Failed to load configuration /ruff.toml
�[1mCause:�[0m Failed to parse /ruff.toml
�[1mCause:�[0m TOML parse error at line 26, column 3
|
26 | "RSE100", # Use of assert detected
| ^^^^^^^^
Unknown rule selector: RSE100

tests/countries/test_india.py

�[1;31mruff failed�[0m
�[1mCause:�[0m Failed to load configuration /ruff.toml
�[1mCause:�[0m Failed to parse /ruff.toml
�[1mCause:�[0m TOML parse error at line 26, column 3
|
26 | "RSE100", # Use of assert detected
| ^^^^^^^^
Unknown rule selector: RSE100

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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

Comment @coderabbitai help to get the list of available commands and usage tips.

@arkid15r arkid15r enabled auto-merge September 22, 2025 16:25
Copy link

@arkid15r arkid15r added this pull request to the merge queue Sep 22, 2025
Merged via the queue into vacanza:dev with commit c6cfae4 Sep 22, 2025
36 checks passed
@arkid15r arkid15r mentioned this pull request Oct 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载