Skip to content

Add SIX Swiss Exchange (SIX) holidays#3692

Merged
arkid15r merged 6 commits into
vacanza:devfrom
pareshjoshij:add_XSWX
Jul 20, 2026
Merged

Add SIX Swiss Exchange (SIX) holidays#3692
arkid15r merged 6 commits into
vacanza:devfrom
pareshjoshij:add_XSWX

Conversation

@pareshjoshij

Copy link
Copy Markdown
Contributor

Proposed change

This PR adds the holidays for the SIX Swiss Exchange (XSWX) financial calendar and l10n support.
Part of GSoC (#3424)

  • New country/market holidays support (thank you!)
  • 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

Copilot AI review requested due to automatic review settings July 12, 2026 12:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds SIX Swiss Exchange holiday support for Zurich, including aliases, registry exposure, localized names, documentation, observed-day handling, and comprehensive tests.

Changes

SIX Swiss Exchange support

Layer / File(s) Summary
Unified weekend suppression rule
holidays/observed_holiday_base.py, holidays/countries/*, holidays/financial/*
Adds SAT_SUN_TO_NONE and updates existing observed-holiday rules to use it.
Holiday provider and aliases
holidays/financial/six_swiss_exchange.py
Defines SIX Swiss Exchange metadata, Swiss public holidays, weekend suppression, and aliases.
Package registration and presentation
holidays/financial/__init__.py, holidays/registry.py, holidays/locale/*/LC_MESSAGES/XSWX.po, README.md
Exports and registers the exchange codes, adds translations for six locales, and documents the market.
Holiday and localization tests
tests/financial/test_six_swiss_exchange.py
Tests metadata, holiday dates, observed behavior, yearly output, and localized names.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: arkid15r, ppsyrius

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding SIX Swiss Exchange holidays.
Description check ✅ Passed The description matches the changeset by stating that SIX Swiss Exchange holidays and localization support were added.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@holidays/locale/de/LC_MESSAGES/XSWX.po`:
- Around line 30-32: Update the translator comment for Berchtoldstag in the
Python source symbol containing “Saint Berchtold's Day” to end with a period,
then run make l10n to regenerate all locale .po files consistently.

In `@holidays/locale/en_US/LC_MESSAGES/XSWX.po`:
- Around line 30-32: Update the Saint Berchtold’s Day translator comment in
six_swiss_exchange.py to end with a period, then regenerate the locale files
with make l10n so the en_US XSWX.po comment becomes punctuated consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5125c8b9-dbfb-4ec4-975a-545cceecd626

📥 Commits

Reviewing files that changed from the base of the PR and between 7429a7c and b5da028.

📒 Files selected for processing (11)
  • README.md
  • holidays/financial/__init__.py
  • holidays/financial/six_swiss_exchange.py
  • holidays/locale/de/LC_MESSAGES/XSWX.po
  • holidays/locale/en_US/LC_MESSAGES/XSWX.po
  • holidays/locale/fr/LC_MESSAGES/XSWX.po
  • holidays/locale/it/LC_MESSAGES/XSWX.po
  • holidays/locale/th/LC_MESSAGES/XSWX.po
  • holidays/locale/uk/LC_MESSAGES/XSWX.po
  • holidays/registry.py
  • tests/financial/test_six_swiss_exchange.py

Comment thread holidays/locale/de/LC_MESSAGES/XSWX.po Outdated
Comment thread holidays/locale/en_US/LC_MESSAGES/XSWX.po Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 11 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

@codecov

codecov Bot commented Jul 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (5095aa2) to head (e8f9a90).
⚠️ Report is 2 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff            @@
##               dev     #3692   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          319       320    +1     
  Lines        19207     19240   +33     
  Branches      2458      2461    +3     
=========================================
+ Hits         19207     19240   +33     

☔ View full report in Codecov by Harness.
📢 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.

Comment thread holidays/financial/six_swiss_exchange.py Outdated
Comment thread holidays/financial/six_swiss_exchange.py Outdated
Comment thread holidays/financial/six_swiss_exchange.py
Comment thread holidays/financial/six_swiss_exchange.py Outdated
Comment thread holidays/financial/six_swiss_exchange.py Outdated
Comment thread holidays/financial/six_swiss_exchange.py Outdated
Comment thread holidays/locale/de/LC_MESSAGES/XSWX.po Outdated
@KJhellico KJhellico changed the title Add SIX Swiss Exchange (XSWX) holidays Add SIX Swiss Exchange (SIX) holidays Jul 13, 2026
Comment thread tests/financial/test_six_swiss_exchange.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@holidays/financial/six_swiss_exchange.py`:
- Line 42: Update the _add_holiday method signature by annotating its variadic
*args parameter with Any, importing Any from typing if needed, while preserving
the existing return annotation and behavior.

In `@tests/financial/test_six_swiss_exchange.py`:
- Around line 30-35: Replace the unnecessary self.full_range instance attribute
with a local full_range variable in test_berchtolds_day, test_christmas_eve, and
test_new_years_eve at tests/financial/test_six_swiss_exchange.py ranges 30-35,
39-44, and 48-53 respectively, and update each generator to use the local
variable.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: ce66b938-2fe3-4632-b67c-d56e4f1705d5

📥 Commits

Reviewing files that changed from the base of the PR and between 01884cc and b8c6257.

📒 Files selected for processing (2)
  • holidays/financial/six_swiss_exchange.py
  • tests/financial/test_six_swiss_exchange.py

Comment thread holidays/financial/six_swiss_exchange.py
Comment thread tests/financial/test_six_swiss_exchange.py Outdated
Comment thread holidays/locale/th/LC_MESSAGES/XSWX.po Outdated
Comment thread tests/financial/test_six_swiss_exchange.py Outdated
Comment thread tests/financial/test_six_swiss_exchange.py
@sonarqubecloud

Copy link
Copy Markdown

@PPsyrius PPsyrius left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM 🇨🇭

@arkid15r
arkid15r requested a review from KJhellico July 16, 2026 18:03

@KJhellico KJhellico left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM.

@arkid15r
arkid15r added this pull request to the merge queue Jul 20, 2026
Merged via the queue into vacanza:dev with commit df6abc9 Jul 20, 2026
33 checks passed
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.

5 participants