コード例 #1
0
def validate_reservation(slots, slot_details):
    city = utils.try_ex(lambda: slots['City'])
    cuisine = utils.try_ex(lambda: slots['Cuisine'])
    dinner_date = utils.try_ex(lambda: slots['Date'])
    dinner_time = utils.try_ex(lambda: slots['Time'])
    phone = utils.try_ex(lambda: slots['Phone'])

    if city and not isvalid_city(city):
        return utils.build_validation_result(
            False, 'City', 'We currently only support new york. '.format(city))

    if cuisine and not isvalid_cuisine(cuisine):
        return utils.build_validation_result(
            False, 'Cuisine',
            'We currently do not support {} as a valid cuisine.  Can you try a different cuisine?'
            .format(cuisine))

    if dinner_date:
        if not isvalid_date(dinner_date):
            return utils.build_validation_result(
                False, 'Date', 'That is an invalid date. '
                'On what date would you like to have dinner?')
        if utils.get_date(dinner_date) < utils.get_today():
            return utils.build_validation_result(
                False, 'Date',
                'Reservations must be scheduled at least one day in advance. '
                'Can you try a different date?')

    if dinner_time:
        if utils.get_date(dinner_date) == utils.get_today(
        ) and not in_at_least_one_hour(dinner_time):
            return utils.build_validation_result(
                False, 'Time',
                'Reservations must be scheduled at least one hour in advance. '
                'Can you try a later hour?')
    else:
        if slot_details and 'Time' in slot_details.keys():
            resolutions = slot_details['Time']['resolutions']
            if len(resolutions) > 0:
                first_resolution = resolutions[0]['value']
                if first_resolution == "00:00":
                    slots['Time'] = "00:00"
                else:
                    return utils.build_validation_result(
                        False, 'Time',
                        'Please let me know whether it is {}AM or {}PM. '.
                        format(first_resolution, first_resolution))

    if phone and not isvalid_phone(phone):
        return utils.build_validation_result(
            False, 'Phone',
            'The number you provided is invalid for a US phone. '
            'Could you say your phone number again?')

    return {'isValid': True}
コード例 #2
0
ファイル: database.py プロジェクト: lisa-su/MBO-Line-Bot
def set_today_task(user_id, order):
    table = db().Table('daily_task')
    query_result = table.query(
        IndexName='user_id-index',
        KeyConditionExpression=Key('user_id').eq(user_id))

    today = get_today()

    resp = {
        'exists': False,
        'description': None,
    }

    for item in [
            item for item in query_result['Items']
            if item['date'] == today and item['order'] == order
    ]:
        resp['exists'] = True
        table.update_item(Key={
            'daily_task_id': item['daily_task_id'],
        },
                          UpdateExpression="set #status = :val",
                          ExpressionAttributeValues={
                              ':val': 'done',
                          },
                          ExpressionAttributeNames={
                              "#status": "status",
                          })
        resp['description'] = item['description']

    return resp
コード例 #3
0
    def cal_halpha(self, stock_id):

        stock_quote = StockAsset.get_stock(stock_id).quote
        close = stock_quote.tcloseaf
        close = close.replace(0.0, method='pad')
        ret = close.pct_change()

        sz = Asset.load_nav_series('120000016')
        bret = sz.pct_change()

        ret = ret.resample('m').sum().iloc[:-1]
        bret = bret.resample('m').sum().iloc[:-1]
        common_index = ret.index.intersection(bret.index)
        ret = ret.loc[common_index]
        bret = bret.loc[common_index]

        ser = pd.Series()

        if len(common_index) < 60:
            return ser

        for i in range(60, len(common_index)):

            tmp_dates = common_index[i - 59:i + 1]
            y = ret.loc[tmp_dates].values
            x = bret.loc[tmp_dates].values.reshape(-1, 1)
            mod = LinearRegression().fit(x, y)
            ser.loc[tmp_dates[-1]] = mod.intercept_

        today = get_today()
        ser.loc[today] = np.nan
        ser = ser.resample('d').last().fillna(method='pad')

        return ser
コード例 #4
0
def make_structure(blog_id, log_no, written_time, replies, crawler_version, encoding='utf-8'):
    extract_crawlerTime  = lambda: get_today().strftime("%Y-%m-%d %H:%M")

    def reply_json(reply):
        if reply.find("p") and reply.find("div", {"class":"dsc_id"}):
            try:
                blog_id = reply.find("div", {"class":"dsc_id"})\
                               .find("a")["href"].rsplit("blogId=", 1)[1]
            except TypeError:
                blog_id = None
            return {u"content": reply.find("p").get_text(),
                    u"date": reply.find("span").get_text().encode("utf"),
                    u"blogId": blog_id}

    def extract_reply(replies):
        all_replies = []
        for reply in range(0, len(replies)):
            tmp = reply_json(replies[reply])
            if tmp != None:
                retmp = replies[reply].find_all("ul", {"class":"lst_repl_sub"})
                re_replies = []
                for re in range(0, len(retmp)):
                    if reply_json(retmp[re]) != None:
                        re_replies.append(reply_json(retmp[re]))
                if re_replies != []:
                    tmp["reReply"] = re_replies
                all_replies.append(tmp)
        return all_replies

    return {u"blogId": blog_id,
            u"logNo": log_no,
            u"crawlerVersion": crawler_version,
            u"writtenTime": written_time,
            u"comments": extract_reply(replies),
            u"crawledTime": extract_crawlerTime()}
コード例 #5
0
ファイル: etl_class.py プロジェクト: zsh-paradise/something
    def Work(self,ktrName):
        today =  get_today();

        try:
            logging.info(u"正在处理ods抽取任务,执行的krs名称是"+ktrName)
            #建议就把调度程序放到Kettle放到对应的文件夹下面。这样写死路径,在部署文档中标注清楚
            os.system("~/Kettle/pan.sh -file=/home/python/ktr/"+ktrName+".ktr -param:NEWNAME="+ktrName+"_"+today)
        except Exception as e :
            logging.error(e)
            self._errorResult=ktrName
コード例 #6
0
ファイル: app.py プロジェクト: cmartinezacha/Panahuecos
def add_entry():
    if not session.get('logged_in'):
        return redirect(url_for('login'))

    if request.method == 'POST':
        new = models.News("",request.form['time'],request.form['text'], utils.get_today())
        db.session.add(new)
        db.session.commit()
        return redirect(url_for('today_news'))
    else:
        return render_template('agregar.html')
コード例 #7
0
def filter_candle():
    global series_dict
    today_df = utils.get_today()
    code_list = list(today_df['code'])
    series_dict = {}
    # pool = Pool(20)
    # pool.map(filter, code_list)
    # pool.close()
    # pool.join()
    # utils.save_dict(series_dict, 'series_dict')
    for code in code_list:
        filter(code)
    print series_dict
コード例 #8
0
ファイル: etl_class.py プロジェクト: zsh-paradise/something
    def Work(self,dw2Name):

        cursor2 =get_dw2_conn.cursor()
        today =  get_today();
        msg = cursor2.var(cx_Oracle.STRING)
        ms = cursor2.callproc(dw2Name, [today, msg])
        if ms[1] =="1":
            self._result=dw2Name
            logging.info(u" 存储过程相关依赖没有采集完成,等待采集,存储过程名称 "+dw2Name)
        elif ms[1] =="3":
            logging.error(u" 存储过程采集错误")
            self._errorResult=dw2Name
        else:
            logging.info(u"successfully executed 执行成功")
コード例 #9
0
ファイル: app.py プロジェクト: odyssey121/waka-pass
def user():
    content = request.json
    user = User.query.filter_by(last_name=content.get('last_name')).first()
    if user:
        response = jsonify({'status': 302, 'message': f"Пользователь с фамилией {user.last_name} уже существует"})
        response.status_code = 302
        return response
    db.session.add(User(**content))
    db.session.commit()
    new_month = Month(date=get_today(), user_last_name=content['last_name'])
    db.session.add(new_month)
    db.session.commit()
    response = jsonify({'status': 201, 'message': "Created"})
    response.status_code = 201
    return response
コード例 #10
0
def make_structure(blog_id,
                   log_no,
                   written_time,
                   replies,
                   crawler_version,
                   encoding='utf-8'):
    extract_crawlerTime = lambda: get_today().strftime("%Y-%m-%d %H:%M")

    def reply_json(reply):
        if reply.find("p") and reply.find("div", {"class": "dsc_id"}):
            try:
                blog_id = reply.find("div", {"class":"dsc_id"})\
                               .find("a")["href"].rsplit("blogId=", 1)[1]
            except TypeError:
                blog_id = None
            return {
                u"content": reply.find("p").get_text(),
                u"date": reply.find("span").get_text().encode("utf"),
                u"blogId": blog_id
            }

    def extract_reply(replies):
        all_replies = []
        for reply in range(0, len(replies)):
            tmp = reply_json(replies[reply])
            if tmp != None:
                retmp = replies[reply].find_all("ul",
                                                {"class": "lst_repl_sub"})
                re_replies = []
                for re in range(0, len(retmp)):
                    if reply_json(retmp[re]) != None:
                        re_replies.append(reply_json(retmp[re]))
                if re_replies != []:
                    tmp["reReply"] = re_replies
                all_replies.append(tmp)
        return all_replies

    return {
        u"blogId": blog_id,
        u"logNo": log_no,
        u"crawlerVersion": crawler_version,
        u"writtenTime": written_time,
        u"comments": extract_reply(replies),
        u"crawledTime": extract_crawlerTime()
    }
コード例 #11
0
ファイル: database.py プロジェクト: lisa-su/MBO-Line-Bot
def get_today_task(user_id):
    table = db().Table('daily_task')

    result = table.query(IndexName='user_id-index',
                         KeyConditionExpression=Key('user_id').eq(user_id))

    today = get_today()

    today_task = []

    for item in [item for item in result['Items'] if item['date'] == today]:
        today_task.append({
            'status': item['status'],
            'description': item['description'],
            'order': item['order'],
        })

    return today_task
コード例 #12
0
ファイル: run.py プロジェクト: iamharryliu/GoogleCalendar
def index():
    if os.path.isfile("./credentials.json"):
        yourcalendar = calendar_api()
        day_data = yourcalendar.get_pie_chart_data_for_day()
        week_data = yourcalendar.get_pie_chart_data_for_week()
        column_chart = yourcalendar.get_column_chart_data_for_next_x_weeks(4)
        today = get_today()
        monday = get_monday_this_week_dt()
        next_week_monday = get_one_week_from_dt(monday)
        return render_template("index.html",
                               day_data=day_data,
                               week_data=week_data,
                               column_chart=column_chart,
                               today=today,
                               monday=monday,
                               next_week_monday=next_week_monday)
    else:
        return redirect(url_for("credential_form"))
コード例 #13
0
ファイル: app.py プロジェクト: odyssey121/waka-pass
def api():
    token = request.headers.get('Authorization')
    content = request.json
    if token and token.startswith('Basic') and len(content):
        fetched_content = content.pop()
        parsed_key = base64.b64decode(token.split()[1]).decode('utf-8')
        user = User.get_user(parsed_key)
        if user and fetched_content:
            payload = dict()
            payload['user_last_name'] = user.last_name
            payload_for_today = Payload.check_today(user.last_name)
            current_month = Month.check_month(user.last_name)
            if payload_for_today:
                last_time = payload_for_today.last_time
                current_time = get_time(fetched_content['time'])
                delta = hms_to_m(make_delta(last_time, current_time))
                if delta > 10:
                    payload_for_today.last_time = current_time
                    db.session.commit()
                    return Response(status='200')
                current_day = Day.get_current_day(user.last_name)
                payload['date'] = get_today()
                payload['running_min'] = delta

                if current_day:
                    current_day_running_min = current_day.running_min
                    current_day.running_min = current_day_running_min + delta
                else:
                    db.session.add(Day(**payload))

                if current_month:
                    current_month_running_min = current_month.running_min
                    current_month.running_min = current_month_running_min + delta
                else:
                    db.session.add(Month(**payload))

                payload_for_today.last_time = current_time
                db.session.commit()
            else:
                payload['last_time'] = get_time(fetched_content['time'])
                db.session.add(Payload(**payload))
                db.session.commit()
    return Response(status='200')
コード例 #14
0
def sendETLEmail(p):

    _user = "******"
    _pwd = "nmtvjrlabeyeecdi"
    _to = "*****@*****.**"
    file_name = settings.addressee  #附件名(带路径)
    #如名字所示Multipart就是分多个部分
    msg = MIMEMultipart()
    msg["Subject"] = "ETL调度未跑完的任务"
    msg["From"] = _user
    msg["To"] = _to
    today = get_today()
    #---这是文字部分---
    line1 = "您好:"
    line2 = "今天" + str(today) + "的统计内容,数据详情请看附件"
    line3 = "武汉天喻教育大数据组"
    part = MIMEText(
        "<font><font  size=3 color='#ff0000' >采集报警:</font><br >%s<br>%s<br float:right>%s<br></font>"
        % (line1, line2, line3), "html", "utf-8")
    msg.attach(part)

    #---这是附件部分---
    #xlsx类型附件
    ## 读入文件内容并格式化 [方式1]------------------------------
    data = open(file_name, 'rb')
    ctype, encoding = mimetypes.guess_type(file_name)
    if ctype is None or encoding is not None:
        ctype = 'application/octet-stream'
    maintype, subtype = ctype.split('/', 1)
    file_msg = smtplib.email.MIMEBase.MIMEBase(maintype, subtype)
    file_msg.set_payload(data.read())
    data.close()
    smtplib.email.Encoders.encode_base64(file_msg)  #把附件编码
    basename = os.path.basename(file_name)
    file_msg.add_header('Content-Disposition', 'attachment',
                        filename=basename)  #修改邮件头
    msg.attach(file_msg)

    s = smtplib.SMTP_SSL("smtp.qq.com")  #连接smtp邮件服务器,端口默认是25
    s.login(_user, _pwd)  #登陆服务器
    s.sendmail(_user, _to, msg.as_string())  #发送邮s件
    s.close()
コード例 #15
0
def lambda_handler(event, context):
    print('event received', event)
    # handle confirmation
    today = utils.get_today()
    leetcode_client = LeetCode('', COOKIE)
    handle_ack(event, leetcode_client, today)

    user, done, remaining = leetcode_client.get_problems(
        category_slug=CATEGORY_SLUG)

    # filter today's problems from done
    today_probs = db.get_problems(today)
    done = filter_today_probs(done, today_probs)

    new, old = leetcode_client.get_next_problems(done, remaining)
    user['problems'] = [{new[0]: new[1]}, {old[0]: old[1]}]
    # print(user)

    user['todayCount'] = len(today_probs)
    payload = json.dumps(user)
    print(payload)
    client.publish(topic=IOT_TOPIC, payload=payload)
コード例 #16
0
    def cal_btsg(self, stock_id):

        stock_quote = StockAsset.get_stock(stock_id).quote
        close = stock_quote.tcloseaf
        close = close.replace(0.0, method='pad')
        ret = close.pct_change()

        sz = Asset.load_nav_series('120000016')
        bret = sz.pct_change()

        ret = ret.resample('m').sum().iloc[:-1]
        bret = bret.resample('m').sum().iloc[:-1]
        common_index = ret.index.intersection(bret.index)
        ret = ret.loc[common_index]
        bret = bret.loc[common_index]

        ser = pd.Series()

        if len(common_index) < 60:
            return ser

        for i in range(60, len(common_index)):

            tmp_dates = common_index[:i + 1]
            y = ret.loc[tmp_dates].values
            x = bret.loc[tmp_dates].values.reshape(-1, 1)
            x = sm.add_constant(x)
            mod = sm.OLS(y, x).fit()
            beta = mod.params[1]
            sigma = mod.resid.std()
            btsg = pow(beta * sigma, 0.5)

            ser.loc[tmp_dates[-1]] = btsg

        today = get_today()
        ser.loc[today] = np.nan
        ser = ser.resample('d').last().fillna(method='pad')

        return ser
コード例 #17
0
def index():
    today = get_today()

    db = pickledb.load('/mubier/mubier/json.db', True, False)
    movies = db.get(today)

    if movies is False:
        # serve cold data.
        yesterday = get_yesterday()
        movies = db.get(yesterday)

    order = int(request.args.get('order', 0))
    movie = movies[order]

    try:
        movies[order + 1]
        next_url = f"/?order={order + 1}"
    except IndexError:
        next_url = "/"

    movie["next_url"] = next_url

    return render_template('index.html', **movie)
コード例 #18
0
ファイル: app.py プロジェクト: cmartinezacha/Panahuecos
def home():
    # return redirect(url_for('show_reportes'))
    return redirect(url_for('show_news', fecha_raw= utils.get_today()))
コード例 #19
0
ファイル: fetch.py プロジェクト: efe/mubier
from datetime import datetime

import pickledb
import time
from utils import fetch_movies_of_today, get_today

while True:
    today = get_today()

    db = pickledb.load('/mubier/mubier/json.db', True, False)
    movies = db.get(today)

    if movies is False:
        movies = fetch_movies_of_today()
        db.set(today, movies)

    print(f"Sleeping for 15 minutes. ({datetime.now().isoformat()})")
    time.sleep(60 * 15)
    print(f"Waking up. ({datetime.now().isoformat()})")
コード例 #20
0
def main():
    # Make Google API object
    sheets_api = utils.google_sheets_login()

    # Set variables
    spreadsheet_id = vrs.spreadsheet_id
    room_mapping = vrs.room_mapping
    sheet_options = vrs.sheet_options
    full_range = vrs.full_range
    lookahead = vrs.lookahead_days

    # Determine which days to check for.
    # Find index of today's date
    today_date = utils.get_today(skip_weekends=True)
    day_index = -1
    for idx, date in enumerate(sheet_options):
        if today_date in date:
            day_index = idx
            break

    if day_index == -1:
        raise IndexError("Today's date not found within sheet_options."
                         "If Mentor Madness has ended, please shut off this"
                         "update script.")

    # Set the days to check, without worrying about going past the program end
    sheet_names = [sheet_options[day_index]]
    idx = 1
    while lookahead > 0:
        try:
            sheet_names.append(sheet_options[day_index + idx])
            idx += 1
            lookahead -= 1
        except IndexError:
            break

    # Create holding variables for adding and deleting messages
    adding_msgs = []
    deleting_msgs = []

    for day in sheet_names:
        # String formatting for API query and file saving
        sheet_query = day + '!' + full_range
        csv_name = utils.day_to_filename(day)

        # Make request for sheet
        sheet = sheets_api.spreadsheets().values().get(
            spreadsheetId=spreadsheet_id, range=sheet_query).execute()
        new_sheet = sheet['values']
        for idx, new_sheet_row in enumerate(new_sheet):
            if len(new_sheet_row) < vrs.row_length:
                new_sheet[idx].extend([''] *
                                      (vrs.row_length - len(new_sheet_row)))

        # Load old sheet
        old_sheet = open(csv_name, 'r')
        reader = csv.reader(old_sheet)

        row_counter = 0
        for old_row in reader:
            new_row = new_sheet[row_counter]
            timeslot = new_row[0]

            # Make rows the same length if they are not
            if len(old_row) < len(new_row):
                old_row.extend([''] * (len(new_row) - len(old_row)))
            elif len(old_row) > len(new_row):
                new_row.extend([''] * (len(old_row) - len(new_row)))

            # Iterate over rooms
            for room_num in range(1, len(room_mapping) + 1):
                # Get descriptive variables of room
                room_dict = room_mapping[room_num]
                room_name = room_dict['name']
                mentor_name = new_row[room_dict['mentor_col']]

                for col_num in room_dict['check_range']:
                    old_name = old_row[col_num]
                    new_name = new_row[col_num]
                    if new_name != old_name:
                        new_event_dict = {
                            'time': timeslot,
                            'name': new_name,
                            'mentor': mentor_name,
                            'room_num': str(room_num),
                            'room_name': room_name,
                            'day': day
                        }
                        old_event_dict = {
                            'time': timeslot,
                            'name': old_name,
                            'mentor': mentor_name,
                            'room_num': str(room_num),
                            'room_name': room_name,
                            'day': day
                        }

                        if new_name and old_name:
                            # Someone was changed, assuming the names are different
                            if utils.process_name(
                                    new_name) != utils.process_name(old_name):
                                deleting_msgs.append(old_event_dict)
                                adding_msgs.append(new_event_dict)
                            else:
                                continue
                        elif old_name:
                            # Someone was deleted
                            deleting_msgs.append(old_event_dict)
                        elif new_name:
                            # Someone was added
                            adding_msgs.append(new_event_dict)

            row_counter += 1

        # Save the sheet
        old_sheet.close()
        old_sheet = open(csv_name, 'w')
        writer = csv.writer(old_sheet)
        writer.writerows(new_sheet)

    email_sender.send_update_mail(adding_msgs, deleting_msgs)
    gcal_scheduler.add_cal_events(adding_msgs)
    gcal_scheduler.delete_cal_events(deleting_msgs)
コード例 #21
0
def main(team=None,
         send_today=False,
         specific_day=None,
         send_emails=True,
         create_calendar_events=False):
    # Make Google API object
    sheets_api = utils.google_sheets_login()

    # Set variables
    spreadsheet_id = vrs.spreadsheet_id
    room_mapping = vrs.room_mapping
    full_range = vrs.full_range
    sheet_options = vrs.sheet_options

    # Determine which day to send for
    # The default is the following business day
    if send_today:
        match_day = utils.get_today(skip_weekends=True)
    else:
        match_day = utils.get_next_day()

    if specific_day:
        match_day = specific_day

    # Pick out the appropriate sheet names from the list
    sheet_names = [x for x in sheet_options if match_day in x]

    if team is None:
        name_dict = dr.empty_name_dict
    else:
        name_dict = {}
        if isinstance(team, list):
            for t in team:
                name_dict[t] = []
        else:
            name_dict[team] = []

    for day in sheet_names:
        # String formatting for API query and file saving
        sheet_query = day + '!' + full_range

        # Make request for sheet
        sheet = sheets_api.spreadsheets().values().get(
            spreadsheetId=spreadsheet_id, range=sheet_query).execute()
        new_sheet = sheet['values']
        new_sheet = new_sheet[1:]  # Get rid of the header row
        for idx, new_sheet_row in enumerate(new_sheet):
            if len(new_sheet_row) < vrs.row_length:
                new_sheet[idx].extend([''] *
                                      (vrs.row_length - len(new_sheet_row)))

        # Add a spacer dict to separate days
        spacer_dict = {
            'time': None,
            'mentor': None,
            'room_num': None,
            'room_name': None,
            'day': day
        }
        for key, val in name_dict.items():
            name_dict[key].append(spacer_dict)

        for row in new_sheet:
            timeslot = row[0]

            # Iterate over rooms
            for room_num in range(1, len(room_mapping) + 1):
                # Get descriptive variables of room
                room_dict = room_mapping[room_num]
                room_name = room_dict['name']
                mentor_name = row[room_dict['mentor_col']]

                for col_num in room_dict['check_range']:
                    name = utils.process_name(row[col_num])
                    if name and name != 'not_found' and name in name_dict.keys(
                    ):
                        new_event_dict = {
                            'time': timeslot,
                            'mentor': mentor_name,
                            'name': name,
                            'room_num': str(room_num),
                            'room_name': room_name,
                            'day': day
                        }
                        name_dict[name].append(new_event_dict)

        print('Got info for ' + day)

    try:
        if create_calendar_events:
            for name, event_list in name_dict.items():
                # event_list['name'] = name
                gcal_scheduler.add_cal_events(event_list)
    except Exception:
        traceback.print_exc()

    if send_emails:
        try:
            email_sender.send_daily_mail(name_dict)
        except Exception:
            traceback.print_exc()
        return None
    else:
        return name_dict
コード例 #22
0
ファイル: app.py プロジェクト: cmartinezacha/Panahuecos
def today_news():
    return redirect(url_for('show_news', fecha_raw= utils.get_today()))
コード例 #23
0
ファイル: jauro.py プロジェクト: lima36/study
 def Reserve(self):
     self.open_page2("https://jayurocc.com/Reservation/Reservation")
     self.close_popup_class("pointBtn")
     self.GoToReservation(utils.get_today(), utils.get_target(21))
コード例 #24
0
 def Reserve(self):
     print("Reserve")
     self.GoToReservation(utils.get_today(), utils.get_target(21))
コード例 #25
0
ファイル: const.py プロジェクト: zhangbyte/activity
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import utils

# 活动列表时间类型
TIME_TYPE_TODAY = '1'
TIME_TYPE_TOMORROW = '2'
TIME_TYPE_WEEKS = '3'
TIME_TYPE_MONTH = '4'


# 时间类型映射
LIMIT_TIME = {
    TIME_TYPE_TODAY: utils.get_today(),
    TIME_TYPE_TOMORROW: utils.get_tomorrow(),
    TIME_TYPE_WEEKS: utils.get_week(),
    TIME_TYPE_MONTH: utils.get_month()
}
コード例 #26
0
 def get_tasks_for_day(self):
     start, end = get_today(), get_tomorrow()
     return self.get_tasks_between_start_and_end(start, end)