FiscalYear

0.4.0 · active · verified Thu Apr 16

FiscalYear is a small, lightweight Python module (current version 0.4.0) that provides utilities for managing the fiscal calendar. It extends Python's built-in `datetime` and `calendar` modules, enabling users to query the fiscal year, quarter, month, and day for any given date or datetime object. The project sees releases periodically, including bug fixes, new features, and occasional breaking changes to improve functionality and maintainability.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize `fiscalyear`, globally set a custom fiscal year start month using `setup_fiscal_calendar`, and retrieve fiscal information for specific dates. It also shows the use of the `fiscal_calendar` context manager for temporary fiscal calendar adjustments without affecting global settings.

import datetime
from fiscalyear import FiscalYear, FiscalDate, setup_fiscal_calendar, fiscal_calendar

# Set fiscal year to start in July globally
setup_fiscal_calendar(start_month=7)

# Get current fiscal year information
current_fy = FiscalYear.current()
print(f"Current Fiscal Year: {current_fy.year}")
print(f"FY Start: {current_fy.start.date()}, FY End: {current_fy.end.date()}")

# Get fiscal info for a specific date
some_date = datetime.date(2024, 11, 15)
f_date = FiscalDate(some_date.year, some_date.month, some_date.day)
print(f"\nDate: {f_date}")
print(f"Fiscal Year: {f_date.fiscal_year}")
print(f"Fiscal Quarter: {f_date.fiscal_quarter}")
print(f"Fiscal Month: {f_date.fiscal_month}")

# Temporarily change fiscal calendar using context manager
with fiscal_calendar(start_month=4):
    temp_f_date = FiscalDate(2024, 11, 15)
    print(f"\nInside context manager (April start) for {temp_f_date}:")
    print(f"Temporary Fiscal Year: {temp_f_date.fiscal_year}")
    print(f"Temporary Fiscal Quarter: {temp_f_date.fiscal_quarter}")

# Outside context manager, global setting (July start) is restored
print(f"\nOutside context manager: Fiscal Year for {f_date}: {f_date.fiscal_year}")

view raw JSON →