Repository: vacanza/holidays
Pull request #2446 (2025-04-08 10:22:32)

Update Pakistan holidays: add Youm-e-Takbeer holiday
## Proposed change
Added the Pakistan holiday Youm-e-Takbeer and missing holidays for 2025.

Source:
https://en.wikipedia.org/wiki/Public_holidays_in_Pakistan
https://ur.wikipedia.org/wiki/%D8%AA%D8%B9%D8%B7%DB%8C%D9%84%D8%A7%D8%AA_%D9%BE%D8%A7%DA%A9%D8%B3%D8%AA%D8%A7%D9%86

## Type of change

- [ ] New country/market holidays support (thank you!)
- [X] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [ ] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

- [X] I've followed the [contributing guidelines][contributing-guidelines]
- [X] I've successfully run `make check`, all checks and tests are green


coderabbitai[bot]: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->

> [!NOTE]
> Currently processing new changes in this PR. This may take a few minutes, please wait...
> 
> <details>
> <summary>📥 Commits</summary>
> 
> Reviewing files that changed from the base of the PR and between 9f3936c0c4d544a36055894a5c316a987a705b41 and 1b30846bea9261bd065a766a34db9da46f26e9bd.
> 
> </details>
> 
> <details>
> <summary>📒 Files selected for processing (5)</summary>
> 
> * `holidays/countries/pakistan.py` (5 hunks)
> * `holidays/locale/en_PK/LC_MESSAGES/PK.po` (1 hunks)
> * `holidays/locale/en_US/LC_MESSAGES/PK.po` (2 hunks)
> * `holidays/locale/ur_PK/LC_MESSAGES/PK.po` (2 hunks)
> * `tests/countries/test_pakistan.py` (6 hunks)
> 
> </details>
> 
> ```ascii
>  _________________________________________________
> < Because World War III will be fought with code. >
>  -------------------------------------------------
>   \
>    \   (\__/)
>        (•ㅅ•)
>        / 　 づ
> ```

<!-- end of auto-generated comment: review in progress by coderabbit.ai -->
<!-- usage_tips_start -->

> [!TIP]
> <details>
> <summary>CodeRabbit can suggest fixes for GitHub Check annotations.</summary>
> 
> Configure `reviews.tools.github-checks` in your project's settings in CodeRabbit to adjust the time to wait for GitHub Checks to complete.
> 
> </details>

<!-- usage_tips_end -->
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=vacanza/holidays&utm_content=2446):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` 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:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai plan` to trigger planning for file edits and PR creation.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

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

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2446) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2446&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2446&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2446)


codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2446?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 100.00%. Comparing base [(`9f3936c`)](https://app.codecov.io/gh/vacanza/holidays/commit/9f3936c0c4d544a36055894a5c316a987a705b41?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`1b30846`)](https://app.codecov.io/gh/vacanza/holidays/commit/1b30846bea9261bd065a766a34db9da46f26e9bd?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##               dev     #2446   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          210       210           
  Lines        13348     13350    +2     
  Branches      1909      1910    +1     
=========================================
+ Hits         13348     13350    +2     
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2446?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2446) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2446&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2446&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2446)


sonarqubecloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2446) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2446&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2446&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2446&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2446)



Patch:
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..e8bb4dc0
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+open_collective: open-world-holidays-framework
+thanks_dev: u/gh/vacanza
+tidelift: pypi/holidays
diff --git a/holidays/countries/pakistan.py b/holidays/countries/pakistan.py
index 642a43e9..9aea2307 100644
--- a/holidays/countries/pakistan.py
+++ b/holidays/countries/pakistan.py
@@ -24,6 +24,8 @@ class Pakistan(HolidayBase, InternationalHolidays, IslamicHolidays):
     References:
         * <https://en.wikipedia.org/wiki/Public_holidays_in_Pakistan>
         * <https://ur.wikipedia.org/wiki/تعطیلات_پاکستان>
+        * [Public and optional holidays](https://cabinet.gov.pk/Detail/OTE2ODBiYmItZmI0MS00NDAwLWE5NGUtYmE1MGVjYzllMzAz)
+        * [No.10-01/2024-Min-II](https://cabinet.gov.pk/SiteImage/Misc/files/Holidays/28-5-24.pdf)
     """
 
     country = "PK"
@@ -59,6 +61,10 @@ class Pakistan(HolidayBase, InternationalHolidays, IslamicHolidays):
             # Labor Day.
             self._add_labor_day(tr("Labour Day"))
 
+        if self._year >= 2024:
+            # Youm-e-Takbeer.
+            self._add_holiday_may_28(tr("Youm-e-Takbeer"))
+
         # Independence Day.
         self._add_holiday_aug_14(tr("Independence Day"))
 
@@ -170,6 +176,7 @@ class PakistanIslamicHolidays(_CustomIslamicHolidays):
         2022: (MAY, 3),
         2023: (APR, 22),
         2024: (APR, 10),
+        2025: (MAR, 31),
     }
 
     # https://www.timeanddate.com/holidays/pakistan/eid-milad-un-nabi
diff --git a/holidays/locale/be/LC_MESSAGES/BY.po b/holidays/locale/be/LC_MESSAGES/BY.po
index b08d9cbc..25408184 100644
--- a/holidays/locale/be/LC_MESSAGES/BY.po
+++ b/holidays/locale/be/LC_MESSAGES/BY.po
@@ -48,8 +48,8 @@ msgid "Дзень Перамогі"
 msgstr ""
 
 #. Day of the National Coat of Arms of the Republic of Belarus, the National
-#. Flag of the Republic
-#. of Belarus and the National Anthem of the Republic of Belarus.
+#. Flag of the Republic of
+#. Belarus and the National Anthem of the Republic of Belarus.
 msgid "Дзень Дзяржаўнага сцяга, Дзяржаўнага герба і Дзяржаўнага гімна Рэспублікі Беларусь"
 msgstr ""
 
diff --git a/holidays/locale/en_PK/LC_MESSAGES/PK.po b/holidays/locale/en_PK/LC_MESSAGES/PK.po
index ed365dd6..00bdbf15 100644
--- a/holidays/locale/en_PK/LC_MESSAGES/PK.po
+++ b/holidays/locale/en_PK/LC_MESSAGES/PK.po
@@ -71,3 +71,7 @@ msgstr ""
 #, c-format
 msgid "%s (estimated)"
 msgstr ""
+
+#. Youm-e-Takbeer.
+msgid "Youm-e-Takbeer"
+msgstr ""
diff --git a/holidays/locale/en_US/LC_MESSAGES/BY.po b/holidays/locale/en_US/LC_MESSAGES/BY.po
index b33f50e9..4761b984 100644
--- a/holidays/locale/en_US/LC_MESSAGES/BY.po
+++ b/holidays/locale/en_US/LC_MESSAGES/BY.po
@@ -48,8 +48,8 @@ msgid "Дзень Перамогі"
 msgstr "Victory Day"
 
 #. Day of the National Coat of Arms of the Republic of Belarus, the National
-#. Flag of the Republic
-#. of Belarus and the National Anthem of the Republic of Belarus.
+#. Flag of the Republic of
+#. Belarus and the National Anthem of the Republic of Belarus.
 msgid "Дзень Дзяржаўнага сцяга, Дзяржаўнага герба і Дзяржаўнага гімна Рэспублікі Беларусь"
 msgstr ""
 "Day of the National Coat of Arms of the Republic of Belarus, the National Flag of the Republic of"
diff --git a/holidays/locale/en_US/LC_MESSAGES/PK.po b/holidays/locale/en_US/LC_MESSAGES/PK.po
index 90b23313..a2345fbc 100644
--- a/holidays/locale/en_US/LC_MESSAGES/PK.po
+++ b/holidays/locale/en_US/LC_MESSAGES/PK.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Holidays 0.70\n"
 "POT-Creation-Date: 2025-03-29 00:02+0500\n"
-"PO-Revision-Date: 2025-03-30 00:34+0500\n"
+"PO-Revision-Date: 2025-04-08 04:13+0200\n"
 "Last-Translator: Wasif Shahzad <wasif_shahzad_1@outlook.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingva 5.0.5\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
 "X-Source-Language: en_PK\n"
 
 #. Kashmir Solidarity Day.
@@ -71,3 +71,7 @@ msgstr "Ashura"
 #, c-format
 msgid "%s (estimated)"
 msgstr "%s (estimated)"
+
+#. Youm-e-Takbeer.
+msgid "Youm-e-Takbeer"
+msgstr "Youm-e-Takbeer"
diff --git a/holidays/locale/ru/LC_MESSAGES/BY.po b/holidays/locale/ru/LC_MESSAGES/BY.po
index a48ed4ca..309d8750 100644
--- a/holidays/locale/ru/LC_MESSAGES/BY.po
+++ b/holidays/locale/ru/LC_MESSAGES/BY.po
@@ -48,8 +48,8 @@ msgid "Дзень Перамогі"
 msgstr "День Победы"
 
 #. Day of the National Coat of Arms of the Republic of Belarus, the National
-#. Flag of the Republic
-#. of Belarus and the National Anthem of the Republic of Belarus.
+#. Flag of the Republic of
+#. Belarus and the National Anthem of the Republic of Belarus.
 msgid "Дзень Дзяржаўнага сцяга, Дзяржаўнага герба і Дзяржаўнага гімна Рэспублікі Беларусь"
 msgstr ""
 "День Государственного флага, Государственного герба и Государственного гимна Республики Беларусь"
diff --git a/holidays/locale/th/LC_MESSAGES/BY.po b/holidays/locale/th/LC_MESSAGES/BY.po
index c630b570..b29c7a4f 100644
--- a/holidays/locale/th/LC_MESSAGES/BY.po
+++ b/holidays/locale/th/LC_MESSAGES/BY.po
@@ -48,8 +48,8 @@ msgid "Дзень Перамогі"
 msgstr "วันแห่งชัยชนะ"
 
 #. Day of the National Coat of Arms of the Republic of Belarus, the National
-#. Flag of the Republic
-#. of Belarus and the National Anthem of the Republic of Belarus.
+#. Flag of the Republic of
+#. Belarus and the National Anthem of the Republic of Belarus.
 msgid "Дзень Дзяржаўнага сцяга, Дзяржаўнага герба і Дзяржаўнага гімна Рэспублікі Беларусь"
 msgstr "วันธงชาติ ตราแผ่นดิน และเพลงชาติแห่งสาธารณรัฐเบลารุส"
 
diff --git a/holidays/locale/ur_PK/LC_MESSAGES/PK.po b/holidays/locale/ur_PK/LC_MESSAGES/PK.po
index 46aa8d6d..e2e401ce 100644
--- a/holidays/locale/ur_PK/LC_MESSAGES/PK.po
+++ b/holidays/locale/ur_PK/LC_MESSAGES/PK.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Holidays 0.70\n"
 "POT-Creation-Date: 2025-03-29 00:09+0500\n"
-"PO-Revision-Date: 2025-03-29 23:00+0500\n"
+"PO-Revision-Date: 2025-04-08 04:16+0200\n"
 "Last-Translator: Wasif Shahzad <wasif_shahzad_1@outlook.com>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: ur_PK\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Generated-By: Lingva 5.0.5\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
 "X-Source-Language: en_PK\n"
 
 #. Kashmir Solidarity Day.
@@ -71,3 +71,7 @@ msgstr "عاشورہ"
 #, c-format
 msgid "%s (estimated)"
 msgstr "%s (اندازاً)"
+
+#. Youm-e-Takbeer.
+msgid "Youm-e-Takbeer"
+msgstr "یوم تکبیر"


Test patch:
diff --git a/tests/countries/test_pakistan.py b/tests/countries/test_pakistan.py
index 39276643..ae2e8ed7 100644
--- a/tests/countries/test_pakistan.py
+++ b/tests/countries/test_pakistan.py
@@ -45,6 +45,11 @@ class TestPakistan(CommonCountryTests, TestCase):
         self.assertHolidayName(name, (f"{year}-05-01" for year in range(1972, 2050)))
         self.assertNoHolidayName(name, range(1948, 1972))
 
+    def test_youm_e_takbeer(self):
+        name = "Youm-e-Takbeer"
+        self.assertHolidayName(name, (f"{year}-05-28" for year in range(2024, 2050)))
+        self.assertNoHolidayName(name, range(1948, 2024))
+
     def test_independence_day(self):
         self.assertHolidayName("Independence Day", (f"{year}-08-14" for year in range(1948, 2050)))
 
@@ -76,6 +81,7 @@ class TestPakistan(CommonCountryTests, TestCase):
             date(2022, 5, 3),
             date(2023, 4, 22),
             date(2024, 4, 10),
+            date(2025, 3, 31),
         ):
             self.assertHolidayName(
                 name, self.no_estimated_holidays, dt, _timedelta(dt, +1), _timedelta(dt, +2)
@@ -204,61 +210,85 @@ class TestPakistan(CommonCountryTests, TestCase):
             ("2022-12-25", "Quaid-e-Azam Day"),
         )
 
+    def test_2024(self):
+        self.assertHolidays(
+            Pakistan(years=2024),
+            ("2024-02-05", "Kashmir Solidarity Day"),
+            ("2024-03-23", "Pakistan Day"),
+            ("2024-05-01", "Labour Day"),
+            ("2024-04-10", "Eid-ul-Fitr"),
+            ("2024-04-11", "Eid-ul-Fitr"),
+            ("2024-04-12", "Eid-ul-Fitr"),
+            ("2024-05-28", "Youm-e-Takbeer"),
+            ("2024-06-17", "Eid-ul-Adha"),
+            ("2024-06-18", "Eid-ul-Adha"),
+            ("2024-06-19", "Eid-ul-Adha"),
+            ("2024-07-15", "Ashura"),
+            ("2024-07-16", "Ashura"),
+            ("2024-08-14", "Independence Day"),
+            ("2024-09-17", "Eid Milad-un-Nabi"),
+            ("2024-11-09", "Iqbal Day"),
+            ("2024-12-25", "Quaid-e-Azam Day"),
+        )
+
     def test_l10n_default(self):
         self.assertLocalizedHolidays(
-            ("2022-02-05", "Kashmir Solidarity Day"),
-            ("2022-03-23", "Pakistan Day"),
-            ("2022-05-01", "Labour Day"),
-            ("2022-05-03", "Eid-ul-Fitr"),
-            ("2022-05-04", "Eid-ul-Fitr"),
-            ("2022-05-05", "Eid-ul-Fitr"),
-            ("2022-07-10", "Eid-ul-Adha"),
-            ("2022-07-11", "Eid-ul-Adha"),
-            ("2022-07-12", "Eid-ul-Adha"),
-            ("2022-08-08", "Ashura"),
-            ("2022-08-09", "Ashura"),
-            ("2022-08-14", "Independence Day"),
-            ("2022-10-09", "Eid Milad-un-Nabi"),
-            ("2022-11-09", "Iqbal Day"),
-            ("2022-12-25", "Quaid-e-Azam Day"),
+            ("2024-02-05", "Kashmir Solidarity Day"),
+            ("2024-03-23", "Pakistan Day"),
+            ("2024-04-10", "Eid-ul-Fitr"),
+            ("2024-04-11", "Eid-ul-Fitr"),
+            ("2024-04-12", "Eid-ul-Fitr"),
+            ("2024-05-01", "Labour Day"),
+            ("2024-05-28", "Youm-e-Takbeer"),
+            ("2024-06-17", "Eid-ul-Adha"),
+            ("2024-06-18", "Eid-ul-Adha"),
+            ("2024-06-19", "Eid-ul-Adha"),
+            ("2024-07-15", "Ashura"),
+            ("2024-07-16", "Ashura"),
+            ("2024-08-14", "Independence Day"),
+            ("2024-09-17", "Eid Milad-un-Nabi"),
+            ("2024-11-09", "Iqbal Day"),
+            ("2024-12-25", "Quaid-e-Azam Day"),
         )
 
     def test_l10n_en_us(self):
         self.assertLocalizedHolidays(
             "en_US",
-            ("2022-02-05", "Kashmir Solidarity Day"),
-            ("2022-03-23", "Pakistan Day"),
-            ("2022-05-01", "Labor Day"),
-            ("2022-05-03", "Eid al-Fitr"),
-            ("2022-05-04", "Eid al-Fitr"),
-            ("2022-05-05", "Eid al-Fitr"),
-            ("2022-07-10", "Eid al-Adha"),
-            ("2022-07-11", "Eid al-Adha"),
-            ("2022-07-12", "Eid al-Adha"),
-            ("2022-08-08", "Ashura"),
-            ("2022-08-09", "Ashura"),
-            ("2022-08-14", "Independence Day"),
-            ("2022-10-09", "Prophet's Birthday"),
-            ("2022-11-09", "Iqbal Day"),
-            ("2022-12-25", "Quaid-e-Azam Day"),
+            ("2024-02-05", "Kashmir Solidarity Day"),
+            ("2024-03-23", "Pakistan Day"),
+            ("2024-04-10", "Eid al-Fitr"),
+            ("2024-04-11", "Eid al-Fitr"),
+            ("2024-04-12", "Eid al-Fitr"),
+            ("2024-05-01", "Labor Day"),
+            ("2024-05-28", "Youm-e-Takbeer"),
+            ("2024-06-17", "Eid al-Adha"),
+            ("2024-06-18", "Eid al-Adha"),
+            ("2024-06-19", "Eid al-Adha"),
+            ("2024-07-15", "Ashura"),
+            ("2024-07-16", "Ashura"),
+            ("2024-08-14", "Independence Day"),
+            ("2024-09-17", "Prophet's Birthday"),
+            ("2024-11-09", "Iqbal Day"),
+            ("2024-12-25", "Quaid-e-Azam Day"),
         )
 
     def test_l10n_ur_pk(self):
         self.assertLocalizedHolidays(
             "ur_PK",
-            ("2022-02-05", "یوم یکجہتی کشمیر"),
-            ("2022-03-23", "یوم پاکستان"),
-            ("2022-05-01", "یوم مزدور"),
-            ("2022-05-03", "عید الفطر"),
-            ("2022-05-04", "عید الفطر"),
-            ("2022-05-05", "عید الفطر"),
-            ("2022-07-10", "عید الاضحی"),
-            ("2022-07-11", "عید الاضحی"),
-            ("2022-07-12", "عید الاضحی"),
-            ("2022-08-08", "عاشورہ"),
-            ("2022-08-09", "عاشورہ"),
-            ("2022-08-14", "یوم آزادی"),
-            ("2022-10-09", "عید میلاد النبی"),
-            ("2022-11-09", "یوم اقبال"),
-            ("2022-12-25", "یوم قائداعظم"),
+            ("2024-02-05", "یوم یکجہتی کشمیر"),
+            ("2024-03-23", "یوم پاکستان"),
+            ("2024-04-10", "عید الفطر"),
+            ("2024-04-11", "عید الفطر"),
+            ("2024-04-12", "عید الفطر"),
+            ("2024-05-01", "یوم مزدور"),
+            ("2024-05-28", "یوم تکبیر"),
+            ("2024-06-17", "عید الاضحی"),
+            ("2024-06-18", "عید الاضحی"),
+            ("2024-06-19", "عید الاضحی"),
+            ("2024-07-15", "عاشورہ"),
+            ("2024-07-16", "عاشورہ"),
+            ("2024-08-14", "یوم آزادی"),
+            ("2024-09-17", "عید میلاد النبی"),
+            ("2024-11-09", "یوم اقبال"),
+            ("2024-12-25", "یوم قائداعظم"),
         )