def __new__(cls, date_value=None):
if date_value is None:<EOL><INDENT>new_date = BusinessDate(BASE_DATE)<EOL><DEDENT>elif isinstance(date_value, BaseDateFloat):<EOL><INDENT>return super(BusinessDate, cls).__new__(cls, float(date_value))<EOL><DEDENT>elif isinstance(date_value, (BaseDateDatetimeDate, BaseDateTuple)):<EOL><INDENT>return super(BusinessDate, cls).__new__(cls, date_value.year, date_value.month, date_value.day)<EOL><DEDENT>elif isinstance(date_value, (int, float)):<EOL><INDENT>if date_value >= <NUM_LIT>:<EOL><INDENT>new_date = BusinessDate.from_string(str(date_value))<EOL><DEDENT>elif <NUM_LIT:1> < date_value < <NUM_LIT:200> * <NUM_LIT>:<EOL><INDENT>new_date = BusinessDate.from_excel(date_value)<EOL><DEDENT>else:<EOL><INDENT>new_date = BusinessDate.from_ordinal(date_value)<EOL><DEDENT><DEDENT>elif isinstance(date_value, (str, unicode)):<EOL><INDENT>new_date = BusinessDate.from_string(str(date_value))<EOL><DEDENT>elif isinstance(date_value, (date, datetime)):<EOL><INDENT>new_date = BusinessDate.from_date(date_value)<EOL><DEDENT>elif isinstance(date_value, list):<EOL><INDENT>new_date = [BusinessDate(d) for d in date_value]<EOL><DEDENT>else:<EOL><INDENT>raise ValueError("<STR_LIT>" % str(type(date_value)))<EOL><DEDENT>return new_date<EOL>
r"""
        fundamental date class

        :param date_value: input value to create BusinessDate instance
        :type date_value: int, float, string or datetime.date
        :return: BusinessDate

        creates new BusinessDate either from `int`, `float`, `string`, `datetime.date`
        therefore the following will create the same

        .. code-block:: python

            BusinessDate(datetime.date(2015, 12, 31))
            BusinessDate(20151231)
            BusinessDate(2015-12-31)
            BusinessDate(31.12.2015)
            BusinessDate(12/31/2015)
            BusinessDate(42369)
            BusinessDate(42369.0)
            BusinessDate(735963)
            BusinessDate(735963.0)
            BusinessDate()

        **caution:** recommended is the use of class methods BusinessDate.from_string, from_date etc.