예제 #1
0
    def test_instantiate(self):

        jdate = JalaliDate(1376, 5, 23)
        self.assertFalse(jdate is None)

        self.assertEqual(JalaliDate(jdate.todate()), jdate)
        self.assertEqual(JalaliDate(jdate), jdate)

        self.assertEqual(JalaliDate(julian_day=2450674), jdate)

        self.assertRaises(ValueError, JalaliDate, MAXYEAR + 1, 5, 23)
        self.assertRaises(ValueError, JalaliDate, MAXYEAR, 13, 23)
        self.assertRaises(ValueError, JalaliDate, MAXYEAR, 12, 30)
예제 #2
0
 def get(self, symbol, start="", end=""):
     tmpdf = self.df.loc[symbol].copy()
     if start == "":
         start = tmpdf.index[0]
     else:
         s_date = start.split("-")
         start = JalaliDate(s_date[0], s_date[1], s_date[2]).todate()
     if end == "":
         end = tmpdf.index[-1]
     else:
         e_date = end.split("-")
         end = JalaliDate(e_date[0], e_date[1], e_date[2]).todate()
     return tmpdf.loc[start:end].copy()
예제 #3
0
    def test_locale_date(self):
        """
        Testing:
            %x           Locale’s appropriate date representation.
        """
        self.assertEqual(
            JalaliDate(1361, 6, 15).strftime('%x'), u'دوشنبه ۱۵ شهریور ۱۳۶۱')
        self.assertEqual(JalaliDate().strftime('%x'), u'جمعه ۱ فروردین ۱')
        self.assertEqual(JalaliDate.strptime(u'جمعه ۱ فروردین ۱', '%x'),
                         JalaliDate.min)

        self.assertEqual(
            JalaliDate(1375, 1, 31).strftime('%x'), u'جمعه ۳۱ فروردین ۱۳۷۵')
        self.assertEqual(JalaliDate.strptime(u'جمعه ۳۱ فروردین ۱۳۷۵%', '%x%%'),
                         JalaliDate(1375, 1, 31))
예제 #4
0
 def test_operators(self):
     invalid_object = dict(a=2)
     d1 = JalaliDate(1361, 6, 15)
     d2 = JalaliDate(1361, 6, 16)
     self.assertRaises(TypeError, d1.__add__, invalid_object)
     self.assertRaises(TypeError, d1.__sub__, invalid_object)
     self.assertRaises(TypeError, d1.__lt__, invalid_object)
     self.assertRaises(TypeError, d1.__gt__, invalid_object)
     self.assertRaises(TypeError, d1.__eq__, invalid_object)
     self.assertFalse(d1 == 0)
     self.assertTrue(d1 == d1.todate())
     self.assertTrue(d1 < d2)
     self.assertTrue(d1 <= d1.copy())
     self.assertFalse(d1 > d2)
     self.assertTrue(d1 >= d1.copy())
예제 #5
0
def makeMasterTable(all_dfs, all_df_names, chunkSize):
    for index, df in enumerate(all_dfs):
        year, month, day = all_df_names[index].split("-")
        date = JalaliDate(year, month, day).todate()
        yearlist = np.full(len(df), year).tolist()
        monthlist = np.full(len(df), month).tolist()
        daylist = np.full(len(df), day).tolist()
        datelist = np.full(len(df), date).tolist()
        df["year"] = yearlist
        df["month"] = monthlist
        df["day"] = daylist
        df["date"] = datelist
    xl = pd.concat(all_dfs, keys=all_df_names, ignore_index=True)
    xl.columns = HEADER_extra
    xl = xl.astype({"year": int, "month": int, "day": int})
    xl['date'] = pd.to_datetime(xl['date'])
    print(xl.dtypes)
    xl.sort_values(by=['date'], inplace=True)
    xl.reset_index(drop=True, inplace=True)
    i = 0
    while i*chunkSize < len(xl):
        if (i+1)*chunkSize < len(xl):
            df_i = xl.iloc[i*chunkSize:(i+1)*chunkSize]
        else:
            df_i = xl.iloc[i*chunkSize:]
        df_i.to_csv('{xcelLocation}master{i}.csv'.format(i=i, xcelLocation=xcelLocation),
                    header=HEADER_extra, encoding='utf-8', index=False)
        i += 1
    return xl
 def Book(request):
     if (request.method == 'POST'):
         date = request.POST.get('date', '')
         sans_id = request.POST.get('sans_id', '')
         description = request.POST.get('description', '')
         service = Services.objects.get(
             id=request.POST.get('service_id', ''))
         day = request.POST.get('day', '')
         date_splited = date.split('/')
         saturday = JalaliDate(int(date_splited[0]), int(date_splited[1]),
                               int(date_splited[2]))
         targetday = saturday + timedelta(days=int(day))
         targetday = targetday.__str__().replace('-', '/')
         print(targetday)
         sans = Sans.objects.get(pk=sans_id)
         check_obj = Reserves.objects.filter(date=targetday,
                                             service_id=service.id,
                                             sans_id=sans_id)
         print(check_obj)
         if (len(check_obj) == 0):
             Reserves.objects.create(user=user,
                                     sans=sans,
                                     date=targetday,
                                     description=description,
                                     service_id=service.id)
             mybusiness = Business.objects.filter(id=service.business.id)
             history = Reserves.objects.filter(
                 user_id=user.id).order_by('date')
             return render(request, 'AccountPage.html', {
                 'user': user,
                 'historys': history,
                 'mybusiness': mybusiness
             })
         else:
             return ServicePageController.Render(request, service.id)
예제 #7
0
def add_order_admin(s):
    world.order_price = []
    world.success = []
    for s in guess_types(s.hashes):
        cur = (datetime.now() + timedelta(days=1))
        s['dispatch_date'] = str(JalaliDate(cur.date()))
        s['dispatch_hour'] = cur.time().strftime('%H:%M')
        logger.info(s['dispatch_date'])
        logger.info(s['dispatch_hour'])

        r = requests.post(f"{config.api_uri}/caravan/add_order",
                          json=s,
                          headers={
                              "APIToken": config.admin.api_token,
                              "USERToken": config.admin.user_token
                          })
        logger.error(r.text)
        world.res = r.json()
        time.sleep(1)

        logger.info("Response: %s", str(world.res).encode('utf-8'))

        world.status = r.status_code

        world.order_price.append(world.res['order_data']['price'])
        logger.info("order price isss %s", world.order_price)

        world.success.append(world.res["success_flag"])

        logger.info("world order price is : %s", world.order_price)
        logger.info("the worldsuccess is : %s", world.res["success_flag"])
예제 #8
0
def add_order(s):

    world.list_of_status = []

    for s in guess_types(s.hashes):
        cur = (datetime.now() + timedelta(days=1))
        s['dispatch_date'] = str(JalaliDate(cur.date()))
        s['dispatch_hour'] = cur.time().strftime('%H:%M')
        logger.info(s['dispatch_date'])
        logger.info(s['dispatch_hour'])
        logger.info(" sssssss is : %s", s)

        r = requests.post(f"{config.api_uri}/caravan/add_order/",
                          json=s,
                          headers={
                              "APIToken": config.client.api_token,
                              "USERToken": world.token
                          })

        world.res = r.json()
        logger.info("Response: %s", str(world.res).encode('utf-8'))

        world.status = r.status_code

        world.track_code = world.res['order_data']['tracking_code']
        logger.info("tracking code groups : %s", world.track_code)

        logger.info(" s is : %s", s)

        world.list_of_status.append(world.res['order_data']['status'])
        logger.info("wwwwwwww list of status of orders is %s",
                    world.list_of_status)
        time.sleep(1)
예제 #9
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('time',required=True)
        args = parser.parse_args()
        retSum = {}
        n = 1
        while n < 11:
            mycursor.execute("select * from gostare where id = %s ",(n,))
            gostare_data = mycursor.fetchall()
            mydb.commit()
            query = "select * from gostare_pishraft where gostare_id = %s and malg =1"
            values = (n ,)
            mycursor.execute(query , values)
            gostare_pishrafts = mycursor.fetchall()
            df = self.opencsv()
            column = df.loc[0:29 , str(gostare_data[0][0])]
            ret = {}
            i = 0
            for gostare_pishraft in gostare_pishrafts:
                ret[gostare_pishraft[5]] = {}

                d = gostare_pishraft[3].split('-')
                time = JalaliDate(d[0], d[1], d[2])
                month = int(d[1])
                while i < 29:
                    if month > 12 :
                        month = 1
                        d[0] = str(int(d[0])+1)
                    column[i]= column[i].replace(',', '')
                    ret[gostare_pishraft[5]][i] = [
                        float(gostare_pishraft[2])/float(gostare_data[0][2]) * float(column[i]),
                        str(JalaliDate(d[0], str(month) , d[2]))
                    ]
                    i +=1
                    month +=1

                i = 0
            dataFrame = self.makeDataFrame(ret)
            # print (dataFrame)

            dataFrame= self.searchInDataframeToTop(dataFrame,args['time']+"-17")

            sum = self.sumTheDataframe(dataFrame)
            n +=1
            # print (sum)
            retSum[gostare_data[0][1]] = sum
        return retSum
예제 #10
0
def list_event_by_date(request):
    data = request.data
    if not ('month' in data or 'year' in data):
        return JsonResponse(status=400, data={'message': 'bad request'})
    
    j_month = data['month']
    j_year = data['year']

    start_date = JalaliDate(j_year, j_month, 1)
    end_date = JalaliDate(j_year, j_month, start_date.daysinmonth)

    events = [] 
    for e in Event.objects.filter(date__lte=end_date.todate(), date__gte=start_date.todate()):
        if e.user_event and not e.admin_approved:
            continue
        events.append(EventSerializer(e).data)
    return JsonResponse(status=200, data={'results': events})
예제 #11
0
 def get(self, symbol, start="", end=""):
     if start == "":
         start = self.df.index[0]
     else:
         s_date = start.split("-")
         start = JalaliDate(s_date[0], s_date[1], s_date[2]).todate()
     if end == "":
         end = self.df.index[-1]
     else:
         e_date = end.split("-")
         end = JalaliDate(e_date[0], e_date[1], e_date[2]).todate()
     tmpdf = self.df.loc[self.df["symbol"] == symbol].copy()
     if not self.__is_scaled.get(symbol, False):
         logger.debug(f'symbol is not scaled: {symbol}')
         tmpdf = adjust_and_log(tmpdf)
         self.df.loc[self.df["symbol"] == symbol] = tmpdf
         self.__is_scaled[symbol] = True
     return tmpdf.loc[start:end]
예제 #12
0
    def clean(self, value, row=None, *args, **kwargs):

        for i in value:
            date = value.split("-")
            value = JalaliDatetime(date[0], date[1], date[2])

            now = JalaliDate(value).todate()
            value = str(now)

            return value
예제 #13
0
def add_order(_):
    cur = (datetime.now() + timedelta(days=1))
    world.shamsi_date = str(JalaliDate(cur.date()))
    world.shamsi_hour = cur.time().strftime('%H:%M')
    logger.info("Shamsi date is: %s", world.shamsi_date)
    logger.info("Shamsi hour is: %s", world.shamsi_hour)
    logger.info("token is : %s", world.token)
    r = requests.post(f"{config.api_uri}/caravan/add_order",
                      json={
                          "weight": 5.0,
                          "price": 150000,
                          "source_city": "تهران",
                          "destination_city": "ساری",
                          "sender_phone": "09965555555",
                          "receiver_phone": "02144411306",
                          "source_address": "خیابان اول کوچه دوم",
                          "destination_address": " میدون دست چپ",
                          "dispatch_date": str(world.shamsi_date),
                          "vehicle_type": "joft",
                          "load_type": "بار صنعتی",
                          "vehicle_options": "joft:hichkodam",
                          "dispatch_hour": str(world.shamsi_hour),
                          "load_value": 10000000,
                          "description": "بار تست جزییات",
                          "sender_name": "علی",
                          "receiver_name": "اصغری",
                          "payment_type": "sender",
                          "sender_company": "سانا",
                          "receiver_company": "سانا گستر",
                          "package_options": "falleh",
                          "length": 0.0,
                          "width": 1.0,
                          "height": 1.0,
                          "baarnameh": "yes",
                          "unload_option": "day",
                          "sender_mobile_phone": "09022012056",
                          "announce_type": "mydrivers",
                          "source_region_id": "22",
                          "address_id_source": "1069",
                          "address_id_destination": "1070",
                          "destination_region_id": "16",
                          "surplus_costs": "3000.0"
                      },
                      headers={
                          "APIToken": config.client.api_token,
                          "USERToken": world.token
                      })
    world.status = r.status_code
    print(world.status)
    world.res = r.json()
    world.status_detail = r.status_code

    world.order_code = world.res["order_data"]["tracking_code"]
    logger.warn("order code is : %s", world.order_code)
    world.dispatch_date_ms = calculate_ms(cur.date(), REFERENCE_DATE_DATE)
예제 #14
0
 def get_dates(self):
     """Get dates between date_from and date_to"""
     if self.date_from and self.date_to:
         date_from = JalaliDate(int(self.date_from[:4]),
                                int(self.date_from[4:6]),
                                int(self.date_from[6:]))
         date_to = JalaliDate(int(self.date_to[:4]), int(self.date_to[4:6]),
                              int(self.date_to[6:]))
         date_counter = date_from
         dates = []
         while date_counter <= date_to:
             dates.append(date_counter)
             date_counter += timedelta(days=1)
         return dates
     else:
         # Get yesterday persian date
         now = timezone.make_aware(datetime.now(),
                                   timezone.get_default_timezone())
         yesterday = JalaliDate(now) - timedelta(days=1)
         return [yesterday]
예제 #15
0
파일: admin.py 프로젝트: SinaZK/defend-back
    def clean(self):
        value = self.data['date']
        if len(value) > 0:
            j_year = value.split('-')[0]
            j_month = value.split('-')[1]
            j_day = value.split('-')[2]
            self.cleaned_data['date'] = JalaliDate(year=j_year,
                                                   month=j_month,
                                                   day=j_day).todate()

        return self.cleaned_data
예제 #16
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('gostare_id', required=True)
        args = parser.parse_args()

        mycursor.execute("select * from gostare where id = %s ",
                         (args['gostare_id'], ))
        gostare_data = mycursor.fetchall()
        mydb.commit()
        query = "select * from gostare_pishraft where gostare_id = %s and malg =1"
        values = (args['gostare_id'], )
        mycursor.execute(query, values)
        gostare_pishrafts = mycursor.fetchall()
        df = self.opencsv()
        column = df.loc[0:29, str(gostare_data[0][2]) + "%"]
        ret = {}
        i = 0
        for gostare_pishraft in gostare_pishrafts:
            ret[gostare_pishraft[5]] = {}

            d = gostare_pishraft[3].split('-')
            time = JalaliDate(d[0], d[1], d[2])
            month = int(d[1])
            while i < 29:
                if month > 12:
                    month = 1
                    d[0] = str(int(d[0]) + 1)
                column[i] = column[i].replace(',', '')
                ret[gostare_pishraft[5]][i] = [
                    float(gostare_pishraft[2]) / float(gostare_data[0][2]) *
                    float(column[i]),
                    str(JalaliDate(d[0], str(month), d[2]))
                ]
                i += 1
                month += 1

            i = 0
        dataFrame = self.makeDataFrame(ret)
        print(dataFrame)
        # self.sumTheDataframe(dataFrame)
        return json.loads(dataFrame.to_json())
예제 #17
0
def convert_to_jalali(jalali_date, format='%A %D %B %N'):
    """
        gets input from get_date function
        :param jalali_date: splits the date to 3 variables y=year,m=month,d=day.
        :param format: the way to show date in jalali
        :return: persian format of the date
    """
    from khayyam import JalaliDate
    if check_dependencies():
        from khayyam import JalaliDate
    y, m, d = jalali_date
    return JalaliDate(year=y, month=m, day=d).strftime(format)
예제 #18
0
 def test_algorithm(self):
     min = date(623, 1, 1)
     max_days = 5000
     days = 0
     while True:
         dt = min + timedelta(days=days)
         jd = JalaliDate(dt)
         # print('Processing day: %s' % jd)
         dt2 = jd.todate()
         self.assertEqual(dt, dt2)
         days += 1
         if days > max_days:
             break
예제 #19
0
 def crawl(self, start_date, end_date, q_xls):
     now = start_date
     while now <= end_date:
         jalaldate = JalaliDate(now)
         year = jalaldate.year
         month = jalaldate.month
         day = jalaldate.day
         if jalaldate.weekday() < 5 and not Path(
                 f'{self.excel_location}/{year}-{month}-{day}.xlsx'
         ).is_file():
             self.fetch(year=year, month=month, day=day)
             q_xls.put([f'{year}-{month}-{day}'])
             time.sleep(10)
         now = now + timedelta(days=1)
예제 #20
0
def extract_data(invoice):
    data = {
        'base_url': DEFAULT_URL,
        'order_id': invoice.number,
        'address': DEFAULT_ADDRESS,
        'date': rtl(JalaliDate(invoice.date).strftime('%Y/%m/%d')),
        'pay_description': invoice.description,
        'customer': invoice.customer,
        'total_price': invoice.total_price,
        'items': len(invoice.entities),
        'details': invoice.entities,
        'discount': invoice.total_discount,
        'payable': invoice.payable_price
    }
    return data
예제 #21
0
def validate_time(input_time, input_date):
    try:
        time_format = '%H:%M'
        time = datetime.datetime.strptime(input_time, time_format)
        time = time.time().strftime(time_format)
        now_time = datetime.datetime.now().strftime(time_format)
        if input_date == JalaliDate().today() and time <= now_time:
            message = TextMessage(ReadyText.time_is_past)
            return False, message
        time = datetime.datetime.strptime(time, time_format)
        time = time.time()
        return time, None
    except:
        message = TextMessage(ReadyText.wrong_format)
        return False, message
예제 #22
0
def test_incremental():
    ldd = None
    ljd = None
    gdt = date(622, 4, 3)
    delta = timedelta(days=1)
    while ldd != (MAXYEAR, 1, 1):
        gdt = gdt + delta
        jdt = JalaliDate(gdt)
        ndd = jalali_to_dilami(jdt.year, jdt.month, jdt.day)
        njd = dilami_to_jalali(*ndd)
        assert ndd != ldd
        assert njd != ljd
        ldd = ndd
        ljd = njd
    assert ldd == (MAXYEAR, 1, 1)
예제 #23
0
 def update_data(self):
     r = requests.post(self.url, json=self.request_json)
     data = r.json()
     
     datas = []
     for d in data:
         date = str(d["time"])
         date = JalaliDate(date[:4], date[4:6], date[6:8]).todate()
         datas.append({"date": date, "price": d["close"]})
     
     dftmp = pd.DataFrame(datas, columns=["date", "price"])
     dftmp["date"] = pd.to_datetime(dftmp["date"])
     dftmp = dftmp.astype({"price": np.float64})
     dftmp.set_index("date", inplace=True)
     self.df = pd.concat([self.df, dftmp], axis=0)
     self.df = self.df.loc[~self.df.index.duplicated(keep='last')]
예제 #24
0
파일: day.py 프로젝트: danghara/danesh
    def post_parser(self, ctx, formatter):
        _dayofyear = ctx['dayofyear']
        if 'year' not in ctx:
            ctx['year'] = 1
        if 'month' in ctx:
            del ctx['month']
        if 'day' in ctx:
            del ctx['day']

        max_days = get_days_in_jalali_year(ctx['year'])
        if _dayofyear > max_days:
            raise ValueError(
                'Invalid dayofyear: %.3d for year %.4d. Valid values are: 1-%s'
                % (_dayofyear, ctx['year'], max_days))
        from khayyam import JalaliDate
        d = JalaliDate(year=ctx['year']) + timedelta(days=_dayofyear - 1)
        ctx.update(dict(month=d.month, day=d.day))
예제 #25
0
async def j2g(y: int, m: int, d: int, request: Request, iso: bool = False):
    arg_check(("y", "m", "d", "iso"), request.query_params.keys())

    if y not in range(*j_year_range):
        raise HTTPException(status_code=404)

    try:
        j = JalaliDate(year=y, month=m, day=d)
        g = j.todate()
        if iso:
            return {"g": g.isoformat()}
        return {
            "g": {
                "y": g.year,
                "m": g.month,
                "d": g.day
            },
        }
    except Exception:
        raise HTTPException(status_code=404)
예제 #26
0
def add_order(m):
    if world.description == "ویرایش سفارش":

        for m in guess_types(m.hashes):
            cur = (datetime.now() + timedelta(days=2))
            m['dispatch_date'] = str(JalaliDate(cur.date()))
            m['dispatch_hour'] = cur.time().strftime('%H:%M')
            logger.info(m['dispatch_date'])
            logger.info(m['dispatch_hour'])
            m['order_code'] = world.new_code
            world.list_2 = m
            logger.info("mmm: %s", world.list_2)

            world.description_check = m["description"]
            logger.info("description check after modifying is : %s",
                        world.description_check)

            p = requests.put(f"{config.api_uri}/caravan/modify_order",
                             json=m,
                             headers={
                                 "APIToken": config.client.api_token,
                                 "USERToken": world.token
                             })

            logger.error(p.text)

            world.response_for_edit = p.json()
            time.sleep(0.5)

            logger.info("Response after edit is: %s", world.response_for_edit)

            print(str(world.response_for_edit))
            world.status = p.status_code

            world.order_codes = world.response_for_edit['order_data'][
                'tracking_code']
            logger.info("world order code is %s: ", world.order_codes)

    else:
        # assert not hasattr(world, 'list_2')
        pass
예제 #27
0
    def test_week(self):
        """
        Testing:
            %a           Locale’s abbreviated weekday name.
            %A           Locale’s full weekday name.
            %e           ASCII Locale’s abbreviated weekday name.
            %E           ASCII Locale’s full weekday name.
            %T           ASCII English full weekday name.
            %w           Weekday as a decimal number [0(Saturday), 6(Friday)].
            %W           Week number of the year (SATURDAY as the first day of the week) as a decimal number [00, 53].
                All days in a new year preceding the first Monday are considered to be in week 0.
            %U           Week number of the year (Sunday as the first day of the week) as a decimal number [00, 53].
                All days in a new year preceding the first Sunday are considered to be in week 0.

        """

        d1 = JalaliDate(1361, 6, 15)
        self.assertEqual(d1.strftime('%a'), u'د')
        self.assertEqual(d1.strftime('%A'), u'دوشنبه')
        self.assertEqual(d1.strftime('%e'), u'D')
        self.assertEqual(d1.strftime('%E'), u'Doshanbeh')
        self.assertEqual(d1.strftime('%T'), u'Monday')
        self.assertEqual(d1.strftime('%w'), u'2')
        self.assertEqual(d1.strftime('%W'), u'24')

        for i in range(7):
            self.assert_parse_and_format(JalaliDate.min + timedelta(i),
                                         '%d %w %W %U')
            self.assertEqual(
                JalaliDate.strptime(
                    '1345 10 10 %s' % c.PERSIAN_WEEKDAY_ABBRS[i],
                    '%Y %m %d %a'), JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime(
                    '1345 10 10 %s' % c.PERSIAN_WEEKDAY_ABBRS_ASCII[i],
                    '%Y %m %d %e'), JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime(
                    '1345 10 10 %s' % c.PERSIAN_WEEKDAY_NAMES[i],
                    '%Y %m %d %A'), JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime(
                    '1345 10 10 %s' % c.PERSIAN_WEEKDAY_NAMES_ASCII[i],
                    '%Y %m %d %E'), JalaliDate(year=1345, month=10, day=10))
            self.assertEqual(
                JalaliDate.strptime(
                    '1345 10 10 %s' % c.ENGLISH_WEEKDAY_NAMES_ASCII[i],
                    '%Y %m %d %T'), JalaliDate(year=1345, month=10, day=10))
예제 #28
0
def add_order(s):
    world.success = []
    for s in guess_types(s.hashes):
        cur = (datetime.now() + timedelta(days=1))
        s['dispatch_date'] = str(JalaliDate(cur.date()))
        s['dispatch_hour'] = cur.time().strftime('%H:%M')
        logger.info(s['dispatch_date'])
        logger.info(s['dispatch_hour'])

        r = requests.post(f"{config.api_uri}/caravan/add_order",
                          json=s,
                          headers={
                              "APIToken": config.client.api_token,
                              "USERToken": world.token
                          })

        logger.error(r.text)
        world.res = r.json()
        time.sleep(1)
        world.status = r.status_code
        world.success.append(world.res["success_flag"])
예제 #29
0
    def test_strptime(self):
        """
        %Z not working at all
        """
        self.assertEqual(JalaliDate.strptime('1361', '%Y'), JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime('1361%C', '%Y%C'),
                         JalaliDate(1361))
        self.assertEqual(JalaliDate.strptime(u'اریا1361گلگشت', u'اریا%Yگلگشت'),
                         JalaliDate(1361))

        current_century = int(JalaliDate.today().year / 100) * 100
        self.assertEqual(JalaliDate.strptime('61', '%y'),
                         JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime('61%C', '%y%C'),
                         JalaliDate(current_century + 61))
        self.assertEqual(JalaliDate.strptime(u'اریا61گلگشت', u'اریا%yگلگشت'),
                         JalaliDate(current_century + 61))
        self.assertEqual(
            JalaliDate.strptime(u'جمعه 01 اردیبهشت 0001', u'%A %d %B %Y'),
            JalaliDate(month=2, day=1))
예제 #30
0
def add_reminder_to_db(reminder):
    print(reminder)
    reminder_obj = Reminder(reminder.get(Attr.peer_id), reminder.get(Attr.peer_access_hash),
                            reminder.get(Attr.type), reminder.get(Attr.card_number),
                            reminder.get(Attr.money_amount),
                            reminder.get(Attr.text), reminder.get(Attr.file_id),
                            reminder.get(Attr.file_access_hash),
                            reminder.get(Attr.file_size))
    session.add(reminder_obj)

    date = reminder.get(Attr.date)
    time = reminder.get(Attr.time)
    print(type(date), date)
    print(type(time), time)
    remind_datetime = datetime.datetime.combine(date, time)
    if reminder.get(Attr.periodic_type) != ReadyText.monthly:
        time_delta = time_delta_func(reminder.get(Attr.periodic_type))
        for i in range(reminder[Attr.iterate_number] + 1):
            message = Message(reminder_obj, sending_time=(remind_datetime + time_delta * i))
            session.add(message)
    else:
        time_delta = time_delta_func(reminder.get(Attr.periodic_type))
        for i in range(reminder[Attr.iterate_number] + 1):
            s_date = remind_datetime + time_delta * i
            day = remind_datetime.day
            sending_time = None
            is_valid_date = False
            while is_valid_date is False:
                is_valid_date = True
                try:
                    sending_time = JalaliDate(s_date.year, s_date.month, day)
                except ValueError:
                    is_valid_date = False
                day -= 1
            message = Message(reminder_obj, sending_time=sending_time.todate())
            session.add(message)
    session.commit()