# Path: feature_toggle/constants.py
# class Attribute(Container):
# class Environment(Container):
#     def __init__(self):
#     def __init__(self):
# 
# Path: feature_toggle/utilities.py
# def utc_now():
#     return datetime.datetime.now(tz=pytz.utc)


import datetime
import warnings
from feature_toggle.constants import Environments
from feature_toggle.utilities import utc_now
        self.is_active = is_active

        if attributes:
            self.attributes = self.Attributes(attributes)

        self.kwargs = kwargs

    def __bool__(self):
        return bool(self.is_active)

    __nonzero__ = __bool__


class Toggle(BaseToggle):

    def __init__(self, uid, name, environment, is_active,
                 start_date_time, end_date_time,
                 attributes=None, **kwargs):
        assert isinstance(start_date_time, datetime.datetime)  # should be a time stamp
        assert start_date_time.tzinfo is not None  # should have a time zone. otherwise causes confusions
        self.start_date_time = start_date_time

        assert isinstance(end_date_time, datetime.datetime)  # should be a time stamp
        assert end_date_time.tzinfo is not None  # should have a time zone. otherwise causes confusions
        self.end_date_time = end_date_time
        super().__init__(uid, name, environment, is_active, attributes, **kwargs)

    def __bool__(self):
        active = super().__bool__()


# Path: feature_toggle/constants.py
# class Attribute(Container):
# class Environment(Container):
#     def __init__(self):
#     def __init__(self):
# 
# Path: feature_toggle/utilities.py
# def utc_now():
#     return datetime.datetime.now(tz=pytz.utc)


# Path: feature_toggle/toggle.py
import datetime
import warnings
from feature_toggle.constants import Environments
from feature_toggle.utilities import utc_now

        self.is_active = is_active

        if attributes:
            self.attributes = self.Attributes(attributes)

        self.kwargs = kwargs

    def __bool__(self):
        return bool(self.is_active)

    __nonzero__ = __bool__


class Toggle(BaseToggle):

    def __init__(self, uid, name, environment, is_active,
                 start_date_time, end_date_time,
                 attributes=None, **kwargs):
        assert isinstance(start_date_time, datetime.datetime)  # should be a time stamp
        assert start_date_time.tzinfo is not None  # should have a time zone. otherwise causes confusions
        self.start_date_time = start_date_time

        assert isinstance(end_date_time, datetime.datetime)  # should be a time stamp
        assert end_date_time.tzinfo is not None  # should have a time zone. otherwise causes confusions
        self.end_date_time = end_date_time
        super().__init__(uid, name, environment, is_active, attributes, **kwargs)

    def __bool__(self):
        active = super().__bool__()


        if self.end_date_time and self.end_date_time < utc_now():