Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adamjstewart/fiscalyear
:calendar: Utilities for managing the fiscal calendar
https://github.com/adamjstewart/fiscalyear
calendar datetime fiscal-calendar fiscal-year quarter
Last synced: 4 days ago
JSON representation
:calendar: Utilities for managing the fiscal calendar
- Host: GitHub
- URL: https://github.com/adamjstewart/fiscalyear
- Owner: adamjstewart
- License: mit
- Created: 2017-04-01T15:55:09.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-11-14T20:54:43.000Z (about 1 month ago)
- Last Synced: 2024-12-11T10:10:24.701Z (11 days ago)
- Topics: calendar, datetime, fiscal-calendar, fiscal-year, quarter
- Language: Python
- Size: 170 KB
- Stars: 53
- Watchers: 6
- Forks: 14
- Open Issues: 6
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
.. image:: https://github.com/adamjstewart/fiscalyear/actions/workflows/style.yaml/badge.svg
:target: https://github.com/adamjstewart/fiscalyear/actions/workflows/style.yaml.. image:: https://github.com/adamjstewart/fiscalyear/actions/workflows/tests.yaml/badge.svg
:target: https://github.com/adamjstewart/fiscalyear/actions/workflows/tests.yaml.. image:: https://codecov.io/gh/adamjstewart/fiscalyear/branch/master/graph/badge.svg
:target: https://codecov.io/gh/adamjstewart/fiscalyear.. image:: https://readthedocs.org/projects/fiscalyear/badge/?version=latest
:target: https://fiscalyear.readthedocs.io.. image:: https://badge.fury.io/py/fiscalyear.svg
:target: https://pypi.org/project/fiscalyear/.. image:: https://anaconda.org/conda-forge/fiscalyear/badges/version.svg
:target: https://anaconda.org/conda-forge/fiscalyear.. image:: https://img.shields.io/spack/v/py-fiscalyear
:target: https://packages.spack.io/package.html?name=py-fiscalyearOverview
========`fiscalyear `_ is a small, lightweight Python module providing helpful utilities for managing the fiscal calendar. It is designed as an extension of the built-in `datetime `_ and `calendar `_ modules, adding the ability to query the fiscal year, fiscal quarter, fiscal month, and fiscal day of a date or datetime object.
Basic Usage
===========``fiscalyear`` provides several useful classes.
FiscalYear
----------The ``FiscalYear`` class provides an object for storing information about the start and end of a particular fiscal year.
.. code-block:: python
>>> from fiscalyear import *
>>> a = FiscalYear(2017)
>>> a.start
FiscalDateTime(2016, 10, 1, 0, 0)
>>> a.end
FiscalDateTime(2017, 9, 30, 23, 59, 59)
>>> a.isleap
FalseYou can also get the current ``FiscalYear`` with:
.. code-block:: python
>>> FiscalYear.current()
FiscalYear(2018)FiscalQuarter
-------------The ``FiscalYear`` class also allows you to query information about a specific fiscal quarter.
.. code-block:: python
>>> a.q3.start
FiscalDateTime(2017, 4, 1, 0, 0)
>>> a.q3.end
FiscalDateTime(2017, 6, 30, 23, 59, 59)These objects represent the standalone ``FiscalQuarter`` class.
.. code-block:: python
>>> b = FiscalQuarter(2017, 3)
>>> b.start
FiscalDateTime(2017, 4, 1, 0, 0)
>>> b.end
FiscalDateTime(2017, 6, 30, 23, 59, 59)
>>> a.q3 == b
True
>>> b in a
True
>>> b.next_fiscal_quarter
FiscalQuarter(2017, 4)You can also get the current ``FiscalQuarter`` with:
.. code-block:: python
>>> FiscalQuarter.current()
FiscalQuarter(2018, 2)FiscalMonth
-----------The ``FiscalMonth`` class allows you to keep track of the fiscal month.
.. code-block:: python
>>> c = FiscalMonth(2017, 9)
>>> c.start
FiscalDateTime(2017, 6, 1, 0, 0)
>>> c.end
FiscalDateTime(2017, 6, 30, 23, 59, 59)
>>> c in a
True
>>> c in b
True
>>> c.next_fiscal_month
FiscalMonth(2017, 10)You can also get the current ``FiscalMonth`` with:
.. code-block:: python
>>> FiscalMonth.current()
FiscalMonth(2018, 4)FiscalDay
---------To keep track of the fiscal day, use the ``FiscalDay`` class.
.. code-block:: python
>>> d = FiscalDay(2017, 250)
>>> d.start
FiscalDateTime(2017, 6, 6, 0, 0)
>>> d.end
FiscalDateTime(2017, 6, 6, 23, 59, 59)
>>> d in a
True
>>> d in b
True
>>> d in c
True
>>> d.next_fiscal_day
FiscalDay(2017, 251)You can also get the current ``FiscalDay`` with:
.. code-block:: python
>>> FiscalDay.current()
FiscalDay(2018, 94)FiscalDateTime
--------------The start and end of each of the above objects are stored as instances of the ``FiscalDateTime`` class. This class provides all of the same features as the ``datetime`` class, with the addition of the ability to query the fiscal year, fiscal quarter, fiscal month, and fiscal day.
.. code-block:: python
>>> e = FiscalDateTime.now()
>>> e
FiscalDateTime(2017, 4, 8, 20, 30, 31, 105323)
>>> e.fiscal_year
2017
>>> e.fiscal_quarter
3
>>> e.next_fiscal_quarter
FiscalQuarter(2017, 4)
>>> e.fiscal_month
7
>>> e.fiscal_day
190FiscalDate
----------If you don't care about the time component of the ``FiscalDateTime`` class, the ``FiscalDate`` class is right for you.
.. code-block:: python
>>> f = FiscalDate.today()
>>> f
FiscalDate(2017, 4, 8)
>>> f.fiscal_year
2017
>>> f.prev_fiscal_year
FiscalYear(2016)Installation
============``fiscalyear`` has no dependencies, making it simple and easy to install. The recommended way to install ``fiscalyear`` is with ``pip``.
.. code-block:: console
$ pip install fiscalyear
For alternate installation methods, see the `Installation Documentation `_.
Documentation
=============Documentation is hosted on `Read the Docs `_.