"""
Date utilities
"""
from __future__ import annotations
import typing
__all__: list[str] = ['format_str', 'get_day', 'get_month', 'get_now', 'get_today', 'get_year', 'is_valid', 'make']
@typing.overload
def format_str(date: typing.SupportsInt | typing.SupportsIndex) -> str:
    """
    Converts a date into a string in the default format
    Parameters:
    date: The date to be converted
    returns: The date string
    """
@typing.overload
def format_str(date: typing.SupportsInt | typing.SupportsIndex, format: str) -> str:
    """
    Converts a date into a string in a custom format.
    Format is a string where special chars are replaced with date fileds as below:
    M: month number
    n: month name
    D: day
    d: week day
    W: week no
    h: hour
    m: minute
    s: second
    F: date in default format
    T: time in default format
    Parameters:
    date: The date to be converted
    format: The format string
    returns: The date string
    """
def get_day(arg0: typing.SupportsInt | typing.SupportsIndex) -> int:
    ...
def get_month(arg0: typing.SupportsInt | typing.SupportsIndex) -> int:
    ...
def get_now() -> int:
    ...
def get_today() -> int:
    ...
def get_year(arg0: typing.SupportsInt | typing.SupportsIndex) -> int:
    ...
def is_valid(arg0: typing.SupportsInt | typing.SupportsIndex) -> bool:
    ...
@typing.overload
def make(year: typing.SupportsInt | typing.SupportsIndex, month: typing.SupportsInt | typing.SupportsIndex, day: typing.SupportsInt | typing.SupportsIndex) -> int:
    ...
@typing.overload
def make(year: typing.SupportsInt | typing.SupportsIndex, month: typing.SupportsInt | typing.SupportsIndex, day: typing.SupportsInt | typing.SupportsIndex, hour: typing.SupportsInt | typing.SupportsIndex, minute: typing.SupportsInt | typing.SupportsIndex, second: typing.SupportsInt | typing.SupportsIndex) -> int:
    ...
@typing.overload
def make(arg0: str) -> int:
    ...
