@staticmethod
    def _normalize_fields_projection(fields):
        if fields is None:
            return None

        if isinstance(fields, dict):
            return fields

        # Consider fields as iterable
        as_dict = {}
        for field in fields:
            if not isinstance(field, (bytes, unicode)):
                raise TypeError("TxMongo: fields must be a list of key names.")
            as_dict[field] = 1
        if not as_dict:
            # Empty list should be treated as "_id only"
            as_dict = {"_id": 1}
        return as_dict
Override to auto-set time_from and time_to
dataset/ETHPy150Open twisted/txmongo/txmongo/collection.py/Collection._normalize_fields_projection--crossover with--dataset/ETHPy150Open treeio/treeio/treeio/projects/forms.py/TaskTimeSlotForm.save