Example #1
0
def get_next_dates_list(bgn_date_parm, max_date_parm, iteration_type,
                        how_many_iterations):
    bgn_end_dates_list = []
    date_time = bgn_date_parm
    for i in range(0, how_many_iterations):
        bgn_date_parm = date_time.strftime('%Y-%m-%d')
        try:
            if iteration_type == 'days':
                date_time += timedelta(days=1)
                end_date = (date_time + timedelta(days=1)).strftime('%Y-%m-%d')
            elif iteration_type == 'weeks':
                date_time += timedelta(weeks=1)
                end_date = date_time.strftime('%Y-%m-%d')
            elif iteration_type == 'months':
                date_time += monthdelta(months=1)
                end_date = date_time.strftime('%Y-%m-%d')
            elif iteration_type == 'years':
                date_time += monthdelta(months=12)
                end_date = date_time.strftime('%Y-%m-%d')
            else:
                date_time += timedelta(days=1)
                end_date = (date_time + timedelta(days=1)).strftime('%Y-%m-%d')
            if datetime.strptime(end_date, '%Y-%m-%d') < max_date:
                bgn_end_dates_list.append((bgn_date_parm, end_date))
            else:
                bgn_end_dates_list.append(
                    (bgn_date_parm, max_date.strftime('%Y-%m-%d')))
                break
        except Exception as e:
            sys.stderr.write('Exception: %s' % e)
    return bgn_end_dates_list
Example #2
0
def getDateByCount(day_range):
    end_date = datetime.datetime.today() - datetime.timedelta(days=1)
    if day_range.endswith("D"):
        day_range = day_range[0:len(day_range) - 1]
        date = datetime.datetime.today() - datetime.timedelta(days=np.int(day_range))
        debug_print("resolving date from ", day_range, "to", date.strftime('%Y-%m-%d'))
        return date, end_date

    elif day_range.endswith("M"):
        day_range = day_range[0:len(day_range) - 1]
        date = datetime.datetime.today() - monthdelta(np.int(day_range))
        debug_print("resolving date from ", day_range, "to", date.strftime('%Y-%m-%d'))
        return date, end_date

    elif day_range.endswith("Y"):
        day_range = day_range[0:len(day_range) - 1]
        if day_range.isint():
            day_range = 12 * np.int(day_range)
            date = datetime.datetime.today() - monthdelta(day_range)
            debug_print("resolving date from ", day_range, "to", date.strftime('%Y-%m-%d'))
            return date, end_date

    else:
        begin,end = day_range.split(':')
        begin_date = datetime.datetime.strptime(begin, '%Y%m%d')
        end_date = datetime.datetime.strptime(end, '%Y%m%d')
        return begin_date, end_date
Example #3
0
    def _scrape_all(self, number_of_months=2):
        tids_to_url = self._get_tid_urls()
        all_part_urls = []
        old_data = pd.read_csv(self._portal_data_path)

        if not number_of_months:

            for i in range(self._different_in_months):
                incremented_result = self._start_date_obj + monthdelta(i)
                month = incremented_result.month
                year = incremented_result.year
                part_url = "&month={}:{}".format(month, year)
                all_part_urls.append(part_url)

            all_urls = (
                "https://www.atmco-treasury.com/{url}{month_part}".format(
                    url=url, month_part=month_part)
                for url in tids_to_url.values()
                for month_part in all_part_urls)

        else:

            for i in range(number_of_months):
                i *= -1
                incremented_result = datetime.datetime.today().date(
                ) + monthdelta(i)
                month = incremented_result.month
                year = incremented_result.year
                part_url = "&month={}:{}".format(month, year)
                all_part_urls.append(part_url)
                print(month, year)
                old_data = old_data[old_data["DATE"].apply(
                    lambda x: not (int(x.split("/")[0]) == month and int(
                        x.split("/")[2]) == year))]

            all_urls = (
                "https://www.atmco-treasury.com/{url}{month_part}".format(
                    url=url, month_part=month_part)
                for url in tids_to_url.values()
                for month_part in all_part_urls)

        threads = []
        for url in all_urls:
            t = threading.Thread(target=self._get_data, args=(url, ))
            t.start()
            threads.append(t)
        for t in threads:
            t.join()
        headers = [
            "TID", "CARRY_FORWARD", "CASH_ORDERS", "NUM_TRANS", "DATE",
            "SETTLEMENTS", "CREDITS", "REBANK"
        ]
        df = pd.DataFrame(self._scraper_container, columns=headers)
        df = df[df["DATE"] != "0"]
        df["DATE"] = df["DATE"].apply(lambda x: "{}/{}/{}".format(
            x.split("/")[1],
            x.split("/")[0],
            x.split("/")[2]) if len(x.split("/")) == 3 else x)
        old_data = old_data.append(df, ignore_index=True)
        old_data.to_csv(self._portal_data_path, index=False)
Example #4
0
    def save(self, *args, **kwargs):
        self.name = self.sheetbase.name + ': ' + self.date.strftime('%B %Y')
        super(Sheets, self).save(*args, **kwargs)

        if self.sheetbase.autoadd:
            dt_now = datetime.datetime.now().date().replace(day=1)
            dt_from = dt_now - monthdelta.monthdelta(3)
            dt_to = dt_now + monthdelta.monthdelta(1)
            related_sheets = [
                s.pk
                for s in Sheets.objects.filter(sheetbase=self.sheetbase,
                                               date__range=(dt_from, dt_to))
            ]
            qs = Activities.objects.filter(
                user=self.user, sheet__in=related_sheets).values('category')
            common_acts = qs.annotate(cnt=Count(Lower('name'))).values(
                'name', 'category').filter(cnt__gte=3).annotate(
                    avg_val=Avg('origin_value'))
            for act in common_acts:
                cat = UserCategories.objects.get(pk=act['category'])
                Activities(name=act['name'],
                           value=int(act['avg_val']),
                           category=cat,
                           user=self.user,
                           sheet=self).save()
Example #5
0
    def changelist_view(self, request, extra_context=None):
        response = super().changelist_view(request,
                                           extra_context=extra_context)

        try:
            cl = response.context_data['cl']
            qs = cl.queryset
            year = cl.get_filters_params().get("year", None)
        except (AttributeError, KeyError):
            return response

        if year:
            month_from = date(int(year), 1, 1)
        else:
            month_from = today().replace(
                day=1) - monthdelta(BaseBookingAdmin.COLUMNS - 12)

        month_list = [
            month_from + monthdelta(i) for i in range(BaseBookingAdmin.COLUMNS)
        ]

        # фильтр на диапазон дат из списка для отображения
        qs = qs.filter(month__range=(month_list[0], month_list[-1]))

        response.context_data['months'] = month_list
        response.context_data['summary'] = qs.get_booking(month_list)
        response.context_data['projects'] = sorted(
            set(
                qs.values_list('booking__project_member__project__short_name',
                               flat=True)))

        return response
Example #6
0
 def handle(self, **options):
     
     start_date = (options['start_date'] or '').strip()
     if start_date:
         start_date = dateutil.parser.parse(start_date)
         start_date = date(start_date.year, start_date.month, start_date.day)
     else:
         start_date = date.today() - monthdelta(1)
         
     end_date = (options['end_date'] or '').strip()
     if end_date:
         end_date = dateutil.parser.parse(end_date)
         end_date = date(end_date.year, end_date.month, end_date.day)
     else:
         end_date = date.today()
     
     segments = [_ for _ in options['segments'].split(',') if _.strip()]
     
     while start_date <= end_date:
         for segment in segments:
             print 'Calculating for segment %s on start date %s.' % (segment, start_date)
             models.Load.calculate(
                 year=start_date.year,
                 month=start_date.month,
                 zone=options['zone'],
                 segment=segment,
             )
         start_date += monthdelta(1)
         
Example #7
0
    def read_data(data_text, year, quarter=None, month=None, month_apart=0):
        if ((quarter == None) == (month == None)):
            raise ValueError('Need specify either quarter or month.')

        if (quarter != None):
            month = (quarter - 1) * 3 + 1

        if month_apart < 0:
            from_date = datetime.date(year, month,
                                      1) + monthdelta.monthdelta(month_apart)
            to_date = datetime.date(year, month, 1)
        elif month_apart > 0:
            from_date = datetime.date(year, month, 1)
            to_date = datetime.date(year, month,
                                    1) + monthdelta.monthdelta(month_apart)

        conn = sqlite3.connect(data_text)
        df = pd.read_sql_query(
            "select * from main where date >= Datetime('" + str(from_date) +
            " 00:00:00') and date < Datetime('" + str(to_date) +
            " 00:00:00')  ", conn)
        df['date'] = pd.to_datetime(df['date'], errors='coerce')

        conn.close()
        return df
Example #8
0
def timetable(request, classid):
	today = datetime.date.today()
	links = []
	data = []
	# url = 'http://140.115.236.11/NEXT2.ASP?YY='+str(today.timetuple()[0])+'&MM='+str(today.timetuple()[1])+'&Query_item=%AFZ%AF%C5&NEXT=%A4U%A4%40%A8B'
	# res = requests.get(url)
	# soup = BeautifulSoup(res.text)
	# classlist = []
	# souplist = soup.select('option')

	# for i in souplist:
	#     classlist.append(i['value'])
	classlist =  getClassList()

	for mdelta in range(-2, 3):
		yy = str((today+monthdelta(mdelta)).timetuple()[0])
		mm = str((today+monthdelta(mdelta)).timetuple()[1])
		domdata = IiiclassTimetable.objects.filter(classid = classid, year = yy, month = mm).values('domdata')
	#	links.append(
	#		{
	#		'month':mm,
	#		'link':'http://140.115.236.11/query_tea.asp?STR='+classid+'&Query=%ACd%B8%DF&MM2='+mm+'&YY2='+yy+'&item2=%AFZ%AF%C5'
	#		}
	#		)

		data.append(
			{
			'month':mm,
			'domdata':domdata[0]['domdata']
			})

	return render(request, 'iiiclass_timetable.html', {'data': data, 'classlist':classlist})
Example #9
0
def FullTextQuery(service, text_query, months_ago=0):
    date_start = date.today() - monthdelta(months_ago)
    date_end = date_start + monthdelta(1)
    start_min = '%04d-%02d-01T00:00:00-03:00' % (date_start.year, date_start.month)
    start_max = '%04d-%02d-01T00:00:00-03:00' % (date_end.year, date_end.month)
    print "Periodo: %02d/%04d" % (date_start.month, date_start.year)
    max_results = 200
    return service.events().list(q=text_query, calendarId=calendar_id, timeMin=start_min, timeMax=start_max, maxResults=max_results).execute()
Example #10
0
    def save(self, *args, **kwargs):
        """Sync times on save."""
        if self.next_period != self.period:
            if timezone.now().date() in (self.last_billed, self.next_billing):
                self.period = self.next_period
                self.next_billing = self.last_billed + monthdelta(self.period)

        self.next_billing = self.last_billed + monthdelta(self.period)
        return super(Billing, self).save(*args, **kwargs)
Example #11
0
 def _get_month_end_datetime(self, month=0):
     now = datetime.now()
     now_replaced = now.replace(day=1, hour=23, minute=59, second=59)
     if now.month >= month:
         month_diff = 0 if not month else 12 - (14 - month)
         return now_replaced - timedelta(days=1) - monthdelta(month_diff)
     else:
         return now_replaced - timedelta(
             days=1) + monthdelta(month - now.month + 1) - monthdelta(12)
Example #12
0
 def _get_month_start_datetime(self, month=0):
     now = datetime.now()
     now_replaced = now.replace(day=1, hour=0, minute=0, second=0)
     if now.month >= month:
         month_diff = 0 if not month else 12 - (13 - month)
         return now_replaced - monthdelta(month_diff)
     else:
         return now_replaced + monthdelta(month -
                                          now.month) - monthdelta(12)
Example #13
0
def calc_month_norma(month_list, stop_date=None):
    '''
    Рассчитать список норм времени (опционально - по сегоднящний день)
    '''
    stop_date = stop_date or month_list[-1] + monthdelta(1)
    return [
        workhours(min(m, stop_date),
                  min(m + monthdelta(1) - timedelta(days=1), stop_date))
        for m in month_list
    ]
Example #14
0
def get_last_day(first_day, period, custom_days):
    if period == 0:
        return (first_day + datetime.timedelta(custom_days-1))
    elif period == 1:
        return first_day
    elif period == 2:
        return (first_day + datetime.timedelta(7-1))
    elif period == 3:
        return (first_day + monthdelta(1) - datetime.timedelta(1))
    elif period == 4:
        return (first_day + monthdelta(12) - datetime.timedelta(1))
    else: return None
Example #15
0
def tvt_split(df):
    """Train-Validate-Test split of data for continous training 
    as defined in Bao et al., 2017."""
    dict_dataframes = {}
    train = df.index[0]
    validate = df.index[0] + monthdelta(24)
    test = df.index[0] + monthdelta(27)
    test_end = df.index[0] + monthdelta(30)
    df_train = pd.DataFrame(df[(df.index >= train) & (df.index <= validate)])
    df_validate = pd.DataFrame(df[(df.index >= validate) & (df.index <= test)])
    df_test = pd.DataFrame(df[(df.index >= test) & (df.index <= test_end)])
    dict_dataframes = {1: df_train, 2: df_validate, 3: df_test}
    return dict_dataframes
def get_long_historical_price(ticker, start_date, end_date, frequency='1d',display=True):

    date1 = start_date
    iteration_number = 1

    dfall = {}
    
    while date1 <= end_date:

        if frequency == '1d':      
            month_delta = 3         
        else:          
            if frequency == '1wk':            
                month_delta = 12            
            else:            
                month_delta = 48
                                
        # Create 'date2' in a 60 day Window or less
        date2 = date1 + monthdelta.monthdelta(month_delta)
        date2 = datetime.date(date2.year, date2.month, 1)
        date2 = date2 - datetime.timedelta(days = 1)

        # Do not allow 'date2' to go beyond the 'End Date'
        if date2 > end_date:
            date2 = end_date
            
        # print(f"Processing {date1} thru {date2}.")

        try: 
        
            df = get_historical_price(ticker, date1, date2, frequency, display)  

            if len(df) > 0: 
                
                if iteration_number == 1:
                    dfall = df.copy()
                else:
                    frames = [dfall, df]
                    dfall = pd.concat(frames) 

                iteration_number += 1 
                
            date1 = date1 + monthdelta.monthdelta(month_delta)
            date1 = datetime.date(date1.year, date1.month, 1)
            
        except:
            
            date1 = date1 + monthdelta.monthdelta(month_delta)
            date1 = datetime.date(date1.year, date1.month, 1)
            
    return dfall
def test_monthly():
    def day_suffixed_str(day):
        suffix = 'th' if 11 <= day <= 13 else {
            1: 'st',
            2: 'nd',
            3: 'rd'
        }.get(day % 10, 'th')
        return str(day) + suffix

    today = dt.now().replace(hour=23, minute=59, second=0, microsecond=0)
    yesterday = (dt.now() - timedelta(days=1)).replace(hour=23,
                                                       minute=59,
                                                       second=0,
                                                       microsecond=0)
    s = TaskScheduler()

    j = s.every(day_suffixed_str(today.day)).strict_date(True).at("23:59").do(
        job, x="hello", y="world")
    assert (j.next_timestamp == dt.timestamp(today))

    # yesterday's date is scheduled to next month
    j = s.every(day_suffixed_str(
        yesterday.day)).strict_date(False).at("23:59").do(job,
                                                          x="hello",
                                                          y="world")
    assert (j.next_timestamp == dt.timestamp(yesterday + monthdelta(1)))

    # strict_date is False. So 31st will just be the last day of the month
    j = s.every("31st").strict_date(False).at("23:59").do(job,
                                                          x="hello",
                                                          y="world")
    eom = (dt.now() + monthdelta(1)).replace(
        day=1, hour=23, minute=59, second=0, microsecond=0) - timedelta(days=1)
    assert (j.next_timestamp == dt.timestamp(eom))

    # strict_date is True. So next schedule will be when month has 31st
    j = s.every("31st").strict_date(True).at("23:59").do(job,
                                                         x="hello",
                                                         y="world")
    day = dt.now()
    while ((day + monthdelta(1)).replace(day=1) - timedelta(days=1)).day != 31:
        day += monthdelta(1)
    assert (j.next_timestamp == dt.timestamp(
        day.replace(day=31, hour=23, minute=59, second=0, microsecond=0)))

    with pytest.raises(BadScheduleError):
        # error because .strict_date() is not called
        s.every("1st").at("23:59").do(job, x="hello", y="world")

    assert len(s.jobs) == 4
Example #18
0
    def changelist_view(self, request, extra_context=None):
        response = super().changelist_view(request,
                                           extra_context=extra_context)

        # pylint: disable=no-member
        current_employee = Employee.objects.by_user(request.user)
        current_id = current_employee.id if current_employee else None
        # список разрешенных для просмотра
        sub_list = [
            employee.id for employee in current_employee.subordinates()
        ] if current_employee else []
        # по себе смотреть можно всегда, если сотрудник - добавляем в список
        if current_id:
            sub_list.append(current_id)

        try:
            # извлечение данных запроса
            cl = response.context_data['cl']
            qs = cl.queryset
            year = cl.get_filters_params().get("year", None)
            # сотрудник из запроса
            employee_id = cl.get_filters_params().get('employee', current_id)
            employee_id = int(employee_id) if employee_id else None

            # проверка прав на просмотр указанного в запросе сотрудникa
            if not request.user.has_perm(
                    'pplan.view_all') and not employee_id in sub_list:
                return response

            # проверка месяца
            if year:
                month_from = date(int(year), 1, 1)
            else:
                month_from = today().replace(
                    day=1) - monthdelta(BaseBookingAdmin.COLUMNS - 12)

            month_list = [
                month_from + monthdelta(i)
                for i in range(BaseBookingAdmin.COLUMNS)
            ]
        except (AttributeError, KeyError, ValueError):
            return response

        response.context_data['months'] = month_list
        response.context_data['member'] = Employee.objects.filter(
            id=employee_id).first()
        response.context_data['summary'], response.context_data[
            'total'] = qs.get_booking(month_list, employee_id)

        return response
Example #19
0
def standards_report(year):
    # расчет диапазонов дат для каждого месяца и квартала
    m_ranges = ((m[1], date(year, m[0], 1),
                 date(year, m[0], 1) + monthdelta(1) - timedelta(days=1))
                for m in MONTHS)
    q_ranges = ((q[1], date(year, q[0], 1),
                 date(year, q[0], 1) + monthdelta(3) - timedelta(days=1))
                for q in QUARTES)
    y_range = (('Год', date(year, 1,
                            1), date(year + 1, 1, 1) - timedelta(days=1)), )

    return ({
        'name': r[0],
        'stat': (days(r[1], r[2]), *workdayholidayhours(r[1], r[2]))
    } for r in it.chain(m_ranges, q_ranges, y_range))
Example #20
0
def get_timedelta_from_granularity(granularity: str):
    datetime_interval = isodate.parse_duration(granularity)
    if isinstance(datetime_interval, isodate.duration.Duration):
        years, months = datetime_interval.years, datetime_interval.months
        total_months = int(years * 12 + months)
        datetime_interval = monthdelta(months=total_months)
    return datetime_interval
Example #21
0
def run():
    mydate = "201603"
    mylinedate = date(year=int(mydate[:4]), month=int(mydate[4:]), day=1)
    line_chart_values = []
    for i in range(12):
        value_i = value_e = 0
        i_date = mylinedate - monthdelta(i)
        t = Transaction.objects.filter(date__year=i_date.year,
                                       date__month=i_date.month,
                                       family_id=748166,
                                       category_id__type='i')
        for entry in t:
            value_i += entry.amount / 100
            print("value_i", value_i)
        t = Transaction.objects.filter(date__year=i_date.year,
                                       date__month=i_date.month,
                                       family_id=748166,
                                       category_id__type='e')
        for entry in t:
            value_e += entry.amount / 100
            print("value_e", value_i)
        line_chart_values.append([i_date, value_e, value_i])
    print("DONE")
    for i in range(len(line_chart_values)):
        print("line_chart_values", line_chart_values[i])
Example #22
0
def trading_info(tstart, filebase):
    # loads Public DVD TRADING LOAD data

    year1, month1, day1 = tstart.strftime("%Y-%m-%d").split("-")
    tstart_next = tstart + monthdelta.monthdelta(1)
    year2, month2, day2 = tstart_next.strftime("%Y-%m-%d").split("-")

    filename1 = "PUBLIC_DVD_TRADINGLOAD_{0}{1}010000.CSV".format(year1, month1)
    filename2 = "PUBLIC_DVD_TRADINGLOAD_{0}{1}010000.CSV".format(year2, month2)

    SA1 = pd.read_csv(filebase + filename1)

    # Pivot table
    SA1 = SA1.pivot_table(index="SETTLEMENTDATE",
                          columns="DUID",
                          values="TOTALCLEARED")
    # correct date
    SA1 = SA1.set_index(pd.DatetimeIndex(SA1.index))
    SA1 = SA1.loc[SA1.index.sort_values()]

    SA2 = pd.read_csv(filebase + filename2)

    # Pivot table
    SA2 = SA2.pivot_table(index="SETTLEMENTDATE",
                          columns="DUID",
                          values="TOTALCLEARED")

    SA2 = SA2.set_index(pd.DatetimeIndex(SA2.index))
    SA2 = SA2.loc[SA2.index.sort_values()]

    return SA1, SA2, tstart, filename1, filename2
Example #23
0
def _filterOrder(request, cleanData):
    orders = Order.objects
    operators = _getOperators()

    if request.user not in operators:
        orders = orders.filter(company__username=request.user)
    elif cleanData.get('company', ''):
        orders = orders.filter(company__name__icontains=cleanData['company'])

    if cleanData.get('content', ''):
        orders = orders.filter(content__icontains=cleanData['content'])

    if cleanData.get('author', ''):
        orders = orders.filter(author__username=cleanData['author'])

    if cleanData.get('checkout', '') == 'on' and cleanData.get(
            'non_checkout', '') == 'on':
        orders = orders
    elif cleanData.get('checkout', '') == 'on':
        orders = orders.filter(checkout=True)
    elif cleanData.get('non_checkout', '') == 'on':
        orders = orders.filter(checkout=False)

    monthNum = cleanData.get('month', '1')
    try:
        monthNum = int(monthNum)
    except Exception as _e:
        monthNum = 1
    if monthNum > 0:
        endDate = datetime.date.today()
        startDate = endDate - monthdelta(monthNum)
        orders = orders.filter(date__range=[startDate, endDate])
    return orders, monthNum
    def prepare_row(self, rid, forecast_start_date, predictions_mri,
                    predictions_dx):

        forecast_start_date = self.format_date(forecast_start_date)
        forecast_date = forecast_start_date

        for i, (pred_vv,
                pred_dx) in enumerate(zip(predictions_mri, predictions_dx)):
            f_month = i + 1
            # print 'fm', f_month
            arow = []
            arow.append(rid)
            arow.append(f_month)
            arow.append(
                str(forecast_date.year) + '-' + str(forecast_date.month))

            arow.append(pred_dx[0])
            arow.append(pred_dx[1])
            arow.append(pred_dx[2])

            self.add_blank_cells(arow, 3)
            arow.append(pred_vv)
            self.add_blank_cells(arow, 3)
            self.results.append(arow)

            forecast_date = forecast_date + monthdelta.monthdelta(1)
Example #25
0
def export_month(month):
    for sensor in sensors:
        start = datetime.strptime(month, '%Y-%m')
        end = start + monthdelta(1)
        name = "{}-{}".format(sensor, start.strftime("%Y-%m"))
        print("exporting {}".format(name))
        urllib.urlretrieve(url(sensor, start, end), "data/{}".format(name))
Example #26
0
    def get_description(self, date):
        if not self.should_append_date():
            return self.new_description

        if self.should_append_next_month_date():
            date += monthdelta(1)
        return self.new_description + ' ' + date.strftime('%Y-%m')
Example #27
0
 def generate_next_row(self, ts):
     """
     Takes time-series as an input and returns next raw, that is fed to the fitted model,
     when predicting next value.
     Parameters
     ----------
     ts : pd.Series(values, timestamps)
         Time-series to detect on
     num_lags : int, default=14
         Defines the number of lag features
     granularity : str, default='day'
         Defines timedelta of your series
     Returns
     ---------
     feature_matrix : pd.DataFrame
         Pandas dataframe, which contains feature lags of
         shape(1, num_lags)
     """
     if not self.granularity:
         raise ValueError('No granularity provided')
     if self.granularity == 'hour':
         delta = timedelta(hours=1)
     if self.granularity == 'day':
         delta = timedelta(days=1)
     if self.granularity == 'month':
         delta = monthdelta(1)
     next_timestamp = pd.to_datetime(ts.index[-1]) + delta
     lag_dict = {'lag_{}'.format(i): [ts.iloc[-i]] for i in range(1, self.num_lags + 1)}
     lag_dict.update({'season_lag': ts.iloc[-self.num_lags]})
     df = pd.DataFrame.from_dict(lag_dict)
     df.index = [next_timestamp]
     return df
Example #28
0
    def post(self, request, club_id):
        repeat = request.POST.get('repeater')

        group = get_object_or_404(Group, pk=request.POST.get('group'))
        lesson = get_object_or_404(ClubLesson, pk=request.POST.get('lesson'))
        date_start = datetime.datetime.strptime(request.POST.get('dateStart'),
                                                '%d.%m.%Y %H:%M')
        date_end = datetime.datetime.strptime(request.POST.get('dateEnd'),
                                              '%d.%m.%Y %H:%M')

        if date_start < date_end:
            days = ((date_start + monthdelta(int(repeat))) - date_start).days

            events = [
                Schedule(
                    group=group,
                    lesson=lesson,
                    date_start=date_start + datetime.timedelta(days=i),
                    date_end=date_end + datetime.timedelta(days=i),
                ) for i in range(0, int(days), 7)
            ]

            Schedule.objects.bulk_create(events)

            messages.success(request, _('Событие успешно добавлено'))
            return redirect(request.META.get('HTTP_REFERER'))

        messages.error(request,
                       _('Дата начала не может быть больше даты завершения'),
                       'danger')
        return redirect(request.META.get('HTTP_REFERER'))
Example #29
0
def print_months_header(verbose):
    """ Print the header to show the months 

    :param verbose: 

    """
    prev_month = datetime.now()
    month_order = []
    month_header_str = "    "

    # get the months, starting from now and working back (so we know what order to print them in)
    for i in range(1, 13):
        month_order.append(prev_month.strftime("%b"))
        prev_month = prev_month + monthdelta.monthdelta(-1)

    month_order.reverse()

    for key in month_order:
        if verbose:
            month_header_str += "       {}   ".format(key)
        else:
            month_header_str += "   {}   ".format(key)

    print(month_header_str, end="")
    print("")

    return len(month_header_str)
Example #30
0
def _filterOrder(request, cleanData):
    orders = Order.objects
    operators = _getOperators()
    
    if request.user not in operators:
        orders = orders.filter(company__username=request.user)
    elif cleanData.get('company', ''):
        orders = orders.filter(company__name__icontains=cleanData['company'])
        
    if cleanData.get('content', ''):
        orders = orders.filter(content__icontains=cleanData['content'])
    
    if cleanData.get('author', ''):
        orders = orders.filter(author__username=cleanData['author'])
        
    if cleanData.get('checkout', '') == 'on' and cleanData.get('non_checkout', '') == 'on':
        orders = orders
    elif cleanData.get('checkout', '') == 'on':
        orders = orders.filter(checkout=True)
    elif cleanData.get('non_checkout', '') == 'on':
        orders = orders.filter(checkout=False)
    
    monthNum = cleanData.get('month', '1')
    try:
        monthNum = int(monthNum)
    except Exception as _e:
        monthNum = 1
    if monthNum > 0:
        endDate = datetime.date.today()
        startDate = endDate - monthdelta(monthNum)
        orders = orders.filter(date__range=[startDate, endDate])
    return orders, monthNum
Example #31
0
def run():
    mydate = "201603"
    mylinedate = date(year=int(mydate[:4]),month=int(mydate[4:]),day=1)
    line_chart_values=[]
    for i in range(12):
        value_i = value_e = 0
        i_date = mylinedate - monthdelta(i)
        t = Transaction.objects.filter(date__year=i_date.year,
                                       date__month=i_date.month,
                                       family_id=748166,
                                       category_id__type='i')
        for entry in t:
            value_i += entry.amount/100
            print("value_i",value_i)
        t = Transaction.objects.filter(date__year=i_date.year,
                                       date__month=i_date.month,
                                       family_id=748166,
                                       category_id__type='e')
        for entry in t:
            value_e += entry.amount/100
            print("value_e",value_i)
        line_chart_values.append([i_date,value_e,value_i])
    print ("DONE")
    for i in range(len(line_chart_values)):
        print ("line_chart_values", line_chart_values[i])
Example #32
0
def membership():
    month = datetime.utcnow()
    membership = []
    for i in xrange(36):
        membership.append((month.month,month.year,Payments(month.month, month.year).count()))
        month += monthdelta(-1)
    return [m for m in membership if not m[-1] == 0] 
Example #33
0
def get_exchange_rate():
    r = r'Долар США.+?\n.+?\n.+?(?P<nbu>\d+?.\d+?)<'
    url1 = 'https://bank.gov.ua/markets/exchangerates/?date='
    url2 = '&period=daily'
    date = datetime.datetime.strptime('2007-02-01', '%Y-%m-%d')
    res = {}
    dates = ''
    month = monthdelta(1)
    while dates != '01.06.2019':
        date = date + month
        dates = date.strftime('%d.%m.%Y')
        print(dates)
        request = urlopen(url1 + dates + url2)
        c = list(
            re.finditer(r,
                        str(request.read(), encoding='utf-8',
                            errors='ignore')))
        try:
            curs = float('.'.join(c[0].group('nbu').split(',')))
            if curs > 500:
                curs = curs / 100
        except Exception:
            curs = 0
        res[date] = curs
    res = pd.DataFrame.from_dict(res, orient='index', columns=['UAH/USD'])
    res.index = res.index.to_period(freq='M')
    res.to_csv('curs.csv')
Example #34
0
 def cook_choices(self):
     SELECTOR_CHOICES = []
     today = date.today()
     for i in range(12):
         SELECTOR_CHOICES.append((str(today.year) + str(today.month).zfill(2),
                                 str(today.strftime('%B')) + ' ' + str(today.year)))
         today = today - monthdelta(1)
     return SELECTOR_CHOICES
Example #35
0
    def changelist_view(self, request, extra_context=None):
        t = Timing('WorklogReport')

        # выбранный диапазон месяцев
        year = get_year_param(request)
        month_list = [
            date(year, 1 + i, 1) for i in range(BaseReportAdmin.COLUMNS)
        ]
        stop_date = get_slice_param(request)
        last_date = month_list[-1] + monthdelta(1)
        if stop_date and stop_date > last_date:
            # сброс параметра, если выбран набор данных в прошлом
            stop_date = None

        qs = self.get_queryset(request).filter(
            startdate__range=(month_list[0], stop_date or last_date))

        # загрузка и сохранение в request журнала работ за год
        # (оптимизация для предотвращения необходимости повторной загрузки фрейма в фильтрах)
        worklogframe = WorklogFrame().load(qs)
        # ограничение набора данных только теми, по которым решал задачи пользователь
        if not request.user.has_perm('jiradata.view_all'):
            worklogframe = worklogframe.filter(author=request.user.username)

        request.worklogframe = worklogframe
        rows = worklogframe.rows()

        # заполнение фильтров в базовом классе
        response = super().changelist_view(request,
                                           extra_context=extra_context)

        try:
            cl = response.context_data['cl']
            qs = cl.queryset
        except (AttributeError, KeyError):
            return response

        # фильтрация по выбранному сотруднику
        user = get_user_param(request)
        worklogframe = worklogframe.filter(author=user)

        # список норм рабочего времени
        month_norma = calc_month_norma(month_list, stop_date=stop_date)

        seconds = t.step()

        response.context_data['months'] = month_list
        response.context_data['member'] = JiraUser.objects.filter(
            user_name=user).first()
        response.context_data['summary'], response.context_data[
            'total'] = worklogframe.aggr_month_budget(month_list, month_norma)
        response.context_data['norma'] = month_norma
        response.context_data['slice'] = stop_date
        response.context_data['year'] = year
        response.context_data[
            'stat'] = f'{rows} строк обработано за {seconds:.2} c'

        return response
Example #36
0
def stock_ticker():

    '''receive user input through flask site'''
    user_input = request.args.get('ticker').upper()
    if user_input == '' :
        user_input = 'AMZN'

    '''Quandl API request'''
    quandl = os.environ['Quandl_SECRET']

    yesterday = date.today() - timedelta(days=1)
    last_month = yesterday - monthdelta(1)
    yesterday = yesterday.strftime('%Y-%m-%d')
    last_month = last_month.strftime('%Y-%m-%d')

    ticker = 'https://www.quandl.com/api/v3/datasets/WIKI/AAPL?trim_start=2018-02-15&trim_end=2018-03-23&api_key=PlaceKeyHere'
    ticker = ticker.replace('AAPL', user_input)
    ticker = ticker.replace('PlaceKeyHere', quandl)
    ticker = ticker.replace('2018-02-15', last_month)
    ticker = ticker.replace('2018-03-23', yesterday)

    r = requests.get(ticker)

    #create dictionary of API call:
    d = r.json()

    #these are the columns names:
    # ['Date', 'Open', 'High', 'Low', 'Close', 'Volume', 'Ex-Dividend', 'Split Ratio', 'Adj. Open', 'Adj. High', 'Adj. Low', 'Adj. Close', 'Adj. Volume']
    try:
        columns = d['dataset']['column_names']

        data = d['dataset']['data']

        '''create pandas df'''
        df = pd.DataFrame(data, columns=columns)


        '''create bokeh figure'''
        def datetime(x):
            return np.array(x, dtype=np.datetime64)

        p1 = figure(x_axis_type="datetime", title="Stock Closing Prices")
        p1.grid.grid_line_alpha=0.3
        p1.xaxis.axis_label = 'Date'
        p1.yaxis.axis_label = 'Price'

        p1.line(datetime(df['Date']), df['Close'], color='#A6CEE3', legend=user_input)
        p1.legend.location = "top_left"

        fname = 'user_input_stock_ticker.html'
        # html = file_html(p1, CDN, fname)

        script, div = components(p1)
        html = script + div

    except KeyError :
        html = 'No such company.'
    return html
Example #37
0
def getMonth(month = 0, formatted = False):
    try:
        date = (dt.date.today() + md.monthdelta(month))
        if formatted:
            return date
        else:
            return date.strftime('%B %Y')
    except Exception, e:
        raiseError(log='getmonth', error=e)
        return dt.date.today()
Example #38
0
def add_months(date, months, date_format='%Y-%m'):
    """
    add days to a date
    :param date: string date
    :param months: months to add
    :param date_format: input and output date format
    :return: new string date with months added
    """
    dt = datetime.strptime(date, date_format) + monthdelta.monthdelta(months)
    return dt.strftime(date_format)
Example #39
0
def member_list():
    month = datetime.utcnow()
    members = {}
    curr = hackhub.get_db().cursor()
    for i in xrange(2):
        for user in Payments(month.month, month.year).payments:
            curr.execute("SELECT username, email FROM member WHERE username = ?", user)
            res = curr.fetchone()
            members[res[1]] = res[0]
        month += monthdelta(-1)
    return members
    def report(self):
        start_date = ForemanOptions.get_date_created()
        today_date = datetime.now()
        months = [start_date.strftime("%B %Y")]
        categories = CaseType.get_case_types()
        cases_opened = []
        cases_closed = []
        cases_archived = []
        total_cases = []
        cases_assigned_inv = []
        active_tab = 0
        for status in CaseStatus.all_statuses:
            total_cases.append([start_date.strftime("%B %Y"), status,
                                Case.get_num_cases_opened_on_date(start_date, status, case_type=None, by_month=True)])
        for category in categories:
            cases_opened.append([start_date.strftime("%B %Y"), category,
                                 Case.get_num_cases_opened_on_date(start_date, CaseStatus.OPEN, case_type=category,
                                                               by_month=True)])
            cases_closed.append([start_date.strftime("%B %Y"), category,
                                 Case.get_num_cases_opened_on_date(start_date, CaseStatus.CLOSED, case_type=category,
                                                               by_month=True)])
            cases_archived.append([start_date.strftime("%B %Y"), category,
                                   Case.get_num_cases_opened_on_date(start_date, CaseStatus.ARCHIVED, case_type=category,
                                                                 by_month=True)])
        for category in TaskCategory.get_categories():
            for investigator in UserRoles.get_investigators():
                cases_assigned_inv.append([investigator.fullname, category, Task.get_num_tasks_by_user(investigator,
                                                                                                       category,
                                                                                                       start_date)])

        max_months = 11
        while start_date.month != today_date.month and max_months != 0:
            start_date = start_date + monthdelta(1)
            months.append(start_date.strftime("%B %Y"))
            for status in CaseStatus.all_statuses:
                total_cases.append([start_date.strftime("%B %Y"), status,
                                    Case.get_num_cases_opened_on_date(start_date, status, case_type=None, by_month=True)])
            for category in categories:
                cases_opened.append([start_date.strftime("%B %Y"), category,
                                     Case.get_num_cases_opened_on_date(start_date, CaseStatus.OPEN, case_type=category,
                                                                   by_month=True)])
                cases_closed.append([start_date.strftime("%B %Y"), category,
                                     Case.get_num_cases_opened_on_date(start_date, CaseStatus.CLOSED, case_type=category,
                                                                   by_month=True)])
                cases_archived.append([start_date.strftime("%B %Y"), category,
                                       Case.get_num_cases_opened_on_date(start_date, CaseStatus.ARCHIVED,
                                                                     case_type=category, by_month=True)])
            max_months -= 1

        return self.return_response('pages', 'report.html', cases_opened=cases_opened, cases_closed=cases_closed,
                                    months=months, cases_archived=cases_archived, total_cases=total_cases,
                                    active_tab=active_tab, cases_assigned_inv=cases_assigned_inv)
 def set_date_range(self):
     if self.series.date_is_start:
         self.start_date_inclusive = self.date
         q = Data.objects.filter(series=self.series, date__gt=self.date).order_by('date')
         if q.exists():
             self.end_date_inclusive = q[0].date - timedelta(days=1)
         elif self.series.frequency == c.MONTHLY and self.start_date_inclusive.day == 1:
             self.end_date_inclusive = self.start_date_inclusive + monthdelta(1) - timedelta(days=1)
         #TODO:handle open end date for other frequencies?
     else:
         self.end_date_inclusive = self.date
         q = Data.objects.filter(series=self.series, date__lt=self.date).order_by('-date')
         if q.exists():
             self.start_date_inclusive = q[0].date + timedelta(days=1)
    def report(self):
        self.check_permissions(self.current_user, 'Report', 'view')

        start_date = ForemanOptions.get_date_created()
        today_date = datetime.now()
        months = [start_date.strftime("%B %Y")]
        categories = CaseType.get_case_types()
        cases_opened = []
        cases_closed = []
        cases_archived = []
        total_cases = []
        active_tab = 0
        for status in CaseStatus.all_statuses:
            total_cases.append([start_date.strftime("%B %Y"), status,
                                Case.get_num_cases_opened_on_date(start_date, status, case_type=None, by_month=True)])
        for category in categories:
            cases_opened.append([start_date.strftime("%B %Y"), category,
                                 Case.get_num_cases_opened_on_date(start_date, CaseStatus.OPEN, case_type=category,
                                                               by_month=True)])
            cases_closed.append([start_date.strftime("%B %Y"), category,
                                 Case.get_num_cases_opened_on_date(start_date, CaseStatus.CLOSED, case_type=category,
                                                               by_month=True)])
            cases_archived.append([start_date.strftime("%B %Y"), category,
                                   Case.get_num_cases_opened_on_date(start_date, CaseStatus.ARCHIVED, case_type=category,
                                                                 by_month=True)])
        max_months = 11
        while start_date.month != today_date.month and max_months != 0:
            start_date = start_date + monthdelta(1)
            months.append(start_date.strftime("%B %Y"))
            for status in CaseStatus.all_statuses:
                total_cases.append([start_date.strftime("%B %Y"), status,
                                    Case.get_num_cases_opened_on_date(start_date, status, case_type=None, by_month=True)])
            for category in categories:
                cases_opened.append([start_date.strftime("%B %Y"), category,
                                     Case.get_num_cases_opened_on_date(start_date, CaseStatus.OPEN, case_type=category,
                                                                   by_month=True)])
                cases_closed.append([start_date.strftime("%B %Y"), category,
                                     Case.get_num_cases_opened_on_date(start_date, CaseStatus.CLOSED, case_type=category,
                                                                   by_month=True)])
                cases_archived.append([start_date.strftime("%B %Y"), category,
                                       Case.get_num_cases_opened_on_date(start_date, CaseStatus.ARCHIVED,
                                                                     case_type=category, by_month=True)])
            max_months -= 1

        return self.return_response('pages', 'report.html', cases_opened=cases_opened, cases_closed=cases_closed,
                                    months=months, cases_archived=cases_archived, total_cases=total_cases,
                                    active_tab=active_tab)
Example #43
0
def lastmonth(request):
    #     today = datetime.date.today()
    lastMonth = datetime.date.today() - monthdelta(1)
    #     thisMonth = today.month
    tblUser = Spesa.objects.filter(dataspesa__month=lastMonth.month).order_by("-dataspesa")
    importoSummed = (
        Spesa.objects.filter(dataspesa__month=lastMonth.month)
        .order_by("-dataspesa")
        .aggregate(Sum("importo"))
        .values()[0]
    )
    objNum = tblUser.count()
    return render(
        request,
        "appspesemodulo/mychange_list.html",
        {"tblUser": tblUser, "importoSummed": importoSummed, "objNum": objNum},
    )
Example #44
0
    def getScheduleConfiguration(self, newsletterData):
        """TODO: Docstring for getScheduleConfiguration.
        :returns: TODO

        """
        use_newsletterDates = True
        if use_newsletterDates:
            date_from, date_to = self.getConfigurationDates(newsletterData)
        else:
            month_delta = int(self.cfg['FLIGHT_SEARCH']['month_delta'])
            delay_data = datetime.timedelta(days=7)
            date_from = datetime.datetime.now() + delay_data;
            date_to = date_from + monthdelta(month_delta)

        config = {  }
        config['date_from'] = date_from
        config['date_to'] = date_to

        return config
Example #45
0
def _get_date_range():
    timezone = pytz.timezone(session['timezone'])
    now = timezone.localize(datetime.now())

    if 'start_date' in request.args:
        start_date = request.args.get('start_date')
        start_date = dateutil.parser.parse(start_date)
        start_date = start_date.date()
    else:
        start_date = now.date() - monthdelta(months=1)

    if 'end_date' in request.args:
        end_date = request.args.get('end_date')
        end_date = dateutil.parser.parse(end_date)
        end_date = end_date.date()
    else:
        end_date = now.date()

    return start_date, end_date
Example #46
0
    def __getFlightDetails(self, date_from, date_to, oneWayIdxList):
        
        for i, idx in enumerate(oneWayIdxList):
            if date_to.year == date_from.year:
                months = int(((date_to - date_from).days)/30) + 1
            else:
                months = int(((date_to - date_from).days)/30) + 2
            for delta in range(months):
                time = date_from + monthdelta(delta)

                timeTableList = self.__getTimeTable(time, self.connections[idx]) #get timetable for given year-month
                for flight in timeTableList:
                    if flight.date >= date_from and flight.date <= date_to: #datetime.datetime(2017,2,18):
                        if self.asyncMode:
                            self.__scheduleFlightDetails(flight)
                        else:
                            list = self.__fetchFlightDetails(flight)
                            self.__handleFlightDetails(list)

            self.proceedList.append(self.connections[idx])
            lm.debug("Status: {} of {} - ({}%)".format(i + 1, len(oneWayIdxList), (i+1)/len(oneWayIdxList)*100))
Example #47
0
def ets(x, horizon, quantile, normalize=1.0):
    """
    calls generic ets function to find the best forecast in the ets model family
    :param x: input data. A pandas series with time in its index
    :param horizon: number of poinst to predict
    :param quantile: error quantile for the predictions
    :param normalize: normalization constant to avoid dealing with ridiculous numbers
    :return: nothing. the output is in pred_dict
    """
    data = pos_data(x) / normalize   # get contiguous positive time series
    if len(data) <= horizon / 6:
        print(x.name + ': not enough data: ' + str(len(data)) + ' no forecast')
        return
    fcast = hw.ets(data.values, horizon=horizon, quantile=quantile, max_seasons=0, opt_crit='lik', verbose=False)
    y = fcast['df_out']
    y['ylwr'][y['ylwr'] < 0] = 0  # set to 0 errors below 0
    dt_dates = [datetime.datetime.strptime(data.index.min(), '%Y-%m') + monthdelta.monthdelta(i) for i in range(int(len(data) + horizon))]
    dates = [d.strftime('%Y-%m') for d in dt_dates]
    y.index = dates
    print(x.name + ' ' + str(fcast['model']) + ' ' + str(fcast['params']) + ' rmse:' + str(fcast['rmse']) +
          ' data points: ' + str(len(data)) + ' season: ' + str(fcast['season']))
    return y     # y, yhat, yupr, ylwr
Example #48
0
import solr
import urllib, urllib2
import json
import dateutil.parser
from datetime import timedelta
from monthdelta import monthdelta
from esgfpy.migrate.solr2solr import migrate

DEFAULT_QUERY = "*:*"

CORE_DATASETS = 'datasets'
CORE_FILES = 'files'
CORE_AGGREGATIONS = 'aggregations'
CORES = [CORE_DATASETS, CORE_FILES, CORE_AGGREGATIONS]

TIMEDELTA_MONTH = monthdelta(1)
TIMEDELTA_DAY = timedelta(days=1) 
TIMEDELTA_HOUR = timedelta(hours=1) 
MAX_DATASETS_PER_HOUR = 10000

class Harvester(object):
    '''Class that harvests records from a source Solr server into a target Solr server.'''
    
    def __init__(self, source_solr_base_url, target_solr_base_url):
        
        self.source_solr_base_url = source_solr_base_url
        self.target_solr_base_url = target_solr_base_url
        logging.info("HARVESTING: %s --> %s" % (source_solr_base_url, target_solr_base_url))

    def sync(self, query=DEFAULT_QUERY):
        '''Main method to sync from the source Solr to the target Solr.'''
Example #49
0
soup = BeautifulSoup(res.text)

classlist_from_crawler = []

souplist = soup.select('option')
for i in souplist:
    classlist_from_crawler.append(i['value'])
    
print classlist_from_crawler

if (res.ok):
    writeToDb_classlist()

# get timetables and write into database
for classid in classlist_from_crawler:
    print classid
    for mdelta in range(-2, 3):
        yy = str((today+monthdelta(mdelta)).timetuple()[0])
        mm = str((today+monthdelta(mdelta)).timetuple()[1])
        
        url = 'http://140.115.236.11/query_tea.asp?STR='+classid+'&Query=%ACd%B8%DF&MM2='+mm+'&YY2='+yy+'&item2=%AFZ%AF%C5'
        res = requests.get(url)
        res.encoding = 'big5'
        soup = BeautifulSoup(res.text)
        domdata = soup.select('form')[0]
        
        if (res.ok):
            writeToDb_timetable()
        
            # print classid + '_' + yy + '_' + mm
Example #50
0
    def get(self , request , format = None):
        user = self.request.user
        s = service.objects.get(user = user)
        os = offering.objects.filter(service = s)
        td = timezone.now() # today
        # print td.month
        # weeks starts on monday and ends on sunday
        enddate = td - timedelta((td.weekday() + 1) % 7) # last week's sunday
        startdate = enddate - timedelta(days=6) # last week's monday
        cxo = order.objects.filter(offer__in = os , status='canceledByVendor' , end__range= [enddate , td]).count() # current weeks cancelled orders
        cco = order.objects.filter(offer__in = os , status='completed' , end__range= [enddate , td]).count() # current weeks cancelled orders
        acol = order.objects.filter(offer__in = os , status='complete' , end__range= [startdate , enddate]).order_by('-created') # all completed orders in last week
        lastWeekEarnings = 0
        for o in acol:
            a , _ = getBookingAmount(o)
            lastWeekEarnings += a
        # for last to last week
        enddate = enddate - timedelta(weeks=1) # last week's sunday
        startdate = startdate - timedelta(weeks=1) # last week's monday
        acol = order.objects.filter(offer__in = os , status='complete' , end__range= [startdate , enddate]).order_by('-created') # all completed orders in last week
        last2LastWeekEarnings = 0
        for o in acol:
            a , _ = getBookingAmount(o)
            last2LastWeekEarnings += a

        monthWiseBookings = []
        monthWiseRevenue = []
        months = []
        for i in range(0,12):
            acol = order.objects.filter(offer__in = os , status='complete' , end__range= [enddate - monthdelta(1) , enddate]).order_by('-created') # all completed orders in last week
            enddate = enddate - monthdelta(1)
            months.append(enddate.strftime('%b'))
            ta = 0
            for o in acol:
                a , _ = getBookingAmount(o)
                ta += a
            monthWiseRevenue.append(ta)
            monthWiseBookings.append(acol.count())
        print monthWiseRevenue
        print monthWiseBookings

        tco = order.objects.filter(offer__in = os , status='complete') # total completed orders so far
        ipo = order.objects.filter(offer__in = os , status='inProgress') # inProgress orders
        expectedThisWeek = 0
        for o in ipo:
            a , _ = getBookingAmount(o)
            expectedThisWeek += a
        totalRevenue = 0
        for o in tco:
            a , _ = getBookingAmount(o)
            totalRevenue += a
        content = {'last2LastWeekEarnings' : last2LastWeekEarnings ,
            'lastWeekEarnings' : lastWeekEarnings ,
            'completeLastWeek': acol.count(),
            'totalCompletedOrders' : tco.count() ,
            'inProgressOrders' : ipo.count() ,
            'cancelledThisWeek' : cxo ,
            'completeThisWeek' : cco ,
            'expectedThisWeek' : expectedThisWeek,
            'monthWiseBookings' : monthWiseBookings,
            'monthWiseRevenue' : monthWiseRevenue,
            'totalRevenue' : totalRevenue,
            'months' : months}
        return Response(content, status=status.HTTP_200_OK)
Example #51
0
 def get_month(self, year, month):
     s = datetime.date(year, month, 1)
     e = s + monthdelta.monthdelta(1) - datetime.timedelta(days=1)
     return self.get_range_date(s.isoformat(), e.isoformat())
Example #52
0
query1 = "SELECT * FROM %s WHERE ngram = ? AND SUBREDDIT = ?" %(tablename1,)
prepared1 = session.prepare(query1)

query2 = "SELECT * FROM %s WHERE ngram = ? and n = ?" %(tablename2,)
prepared2 = session.prepare(query2)

#Creating a list of time with start, end and step
def perdelta(start, end, delta):
    curr = start
    while curr < end:
        yield curr
        curr += delta
        
#Creating a list of time for our known time list
Xtime = [x for x in perdelta(date(2007, 10, 01), date(2016, 01, 01), monthdelta(1))]
XtimeUtc = [time.mktime(x.timetuple())*1000 for x in perdelta(date(2007, 10, 01), date(2016, 01, 01), monthdelta(1))]

@app.route('/')
@app.route("/index")
def index():
    return render_template("index.html" )

def get_timeseries_data(ngram, subreddit):
    bound = prepared1.bind((ngram, 'allsubreddit'))
    res = session.execute(bound)
    
    response_list = []
    for val in res:
        response_list.append(val)
Example #53
0
File: ntmgui.py Project: lgtl/ntm
    def __init__(self, ntmo):
        self.ntmo = ntmo

        self.mtraffic = None
        self.mtimeslot = None
        self.mtime = None

        self.last_conn_state = None

        self.unity_panel = self.ntmo.sys_info["unity.panel"]
        if self.unity_panel:
            try:
                import appindicator
            except:
                self.unity_panel = False
        

        # Status Icon
        self.statusIcon = gtk.StatusIcon()
        
        ## i18n
        # self.i18n_APP_NAME = "ntm"
        # self.i18n_DIR = "i18n/locale"
        # print(_("i18n setup: done!")) # TEST

        ## Open xml
        self.gtkb = gtk.Builder()
        # self.gtkb.set_translation_domain("ntm") # i18n
        self.gtkb.add_from_file("ntm_main.gui")        

        ##

        ## Windows Menu

        #self.butMenu = self.gtkb.get_object("button_menu")
        #self.butMenu.connect('clicked', self.butMenu_hClicked)


        ## Menu
        self.statusIconMenu = self.gtkb.get_object("menu_statusIcon")

        menuItem = self.gtkb.get_object("menuitem_show_win")
        menuItem.connect('activate', self.menuShowWin_hActivate)
        menuItem.get_children()[0].set_label(_("Show Window"))

        menuItem = self.gtkb.get_object("menuitem_report")
        menuItem.connect('activate', self.menuReport_hActivate)
        menuItem.get_children()[0].set_label(_("Report"))

        menuItem = self.gtkb.get_object("menuitem_preferences")
        menuItem.connect('activate', self.menuPreferences_hActivate)
        menuItem.get_children()[0].set_label(_("Preferences"))

        menuItem = self.gtkb.get_object("menuitem_info")
        menuItem.connect('activate', self.menuInfo_hActivate)
        menuItem.get_children()[0].set_label(_("Info & News"))

        menuItem = self.gtkb.get_object("menuitem_about")
        menuItem.connect('activate', self.menuAbout_hActivate)
        menuItem.get_children()[0].set_label(_("About"))

        menuItem = self.gtkb.get_object("menuitem_quit")
        menuItem.connect('activate', self.menuQuit_hActivate)
        menuItem.get_children()[0].set_label(_("Quit"))

        # menuItem = self.gtkb.get_object("menuitem_test")
        # menuItem.connect('activate', self.menuTest_hActivate)
        ##

        ## Status Icon
        self.statusIcon.set_from_file(globaldef.NTM_ICON)
        self.statusIcon.set_tooltip(_("Network Traffic Monitor\n-Left click: show the counters\n-Rigth click: show menu"))
        self.statusIcon.connect('activate', self.tryIcon_hActivate)
        self.statusIcon.connect('popup-menu', self.tryIcon_hPopup_menu, self.statusIconMenu)
        ##


        ## Main Window
        self.mainWindow = self.gtkb.get_object("ntmMainWindow")

        self.mainWindow.connect("delete_event", self.windowMain_hDelete)
        self.mainWindow.set_icon_from_file(globaldef.NTM_ICON)
        self.mainWindow.set_title(_(self.mainWindow.get_title()))
        self.mainWindow.hide()
        self.mainWindow_Show = False
        (self.winposx, self.winposy) = self.mainWindow.get_position()
        (self.winsizex, self.winsizey) = self.mainWindow.get_size()

        self.status_bar = self.gtkb.get_object("statusbar")
        ##


        ## Report Windows
        self.view_rep = webkit.WebView()

        self.gtkb_report = gtk.Builder()
        self.gtkb_report.add_from_file("report.gui")

        self.report_date_dialog = self.gtkb_report.get_object("date_dialog")
        self.report_date_dialog_calendar = self.gtkb_report.get_object("date_dialog_calendar")
        self.report_date_dialog_title = self.gtkb_report.get_object("date_dialog_title")

        self.report_window = gtk.Window()
        icon = self.report_window.render_icon(gtk.STOCK_FILE, gtk.ICON_SIZE_BUTTON)
        self.report_window.set_icon(icon)
        self.report_window.resize(300, 400)
        self.report_window.set_position(gtk.WIN_POS_CENTER)
        self.report_window.set_title("NTM - Report")

        vbox = gtk.VBox(False, 0)

        self.report_top_bar = self.gtkb_report.get_object("top_bar")
        vbox.pack_start(self.report_top_bar, False, False, 0)
        vbox.pack_start(self.view_rep, True, True, 0)

        self.report_window.add(vbox)
        self.report_window.show_all()
        self.report_window.hide()
        self.report_window_Show = False
        self.report_window.connect("delete_event", self.report_window_hDelete)

        self.report_first_day = self.gtkb_report.get_object("from_button")
        self.temp_report_first_day = datetime.date.today() - monthdelta(1)
        self.report_first_day.set_label(self.temp_report_first_day.isoformat())
        self.report_first_day.connect('clicked', self.report_first_day_hclicked)

        self.report_last_day = self.gtkb_report.get_object("to_button")
        self.temp_report_last_day = datetime.date.today()
        self.report_last_day.set_label(self.temp_report_last_day.isoformat())
        self.report_last_day.connect('clicked', self.report_last_day_hclicked)

        self.report_all_days = self.gtkb_report.get_object("all_days")

        report_update = self.gtkb_report.get_object("update")
        report_update.connect('clicked', self.report_update_hClicked)

        self.report_type = self.gtkb_report.get_object("report_type") # Combo Box
        liststore = gtk.ListStore(gobject.TYPE_STRING)
        entries = [_('Total'), _('Daily')] # , 'Days of Week']
        for entry in entries: liststore.append([entry])
        self.report_type.set_model(liststore)
        cell = gtk.CellRendererText()
        self.report_type.pack_start(cell, True)
        self.report_type.add_attribute(cell, 'text', 0)
        self.report_type.set_active(0)

        # i18n
        ntmtools.translate_control_text(self.gtkb_report.get_object("label1"))
        ntmtools.translate_control_text(self.gtkb_report.get_object("label2"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("all_days"))
        ntmtools.translate_control_text(self.gtkb_report.get_object("label3"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("update"))
        ntmtools.translate_control_markup(self.gtkb_report.get_object("date_dialog_title"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("dateWindow_cancelButton"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("dateWindow_okButton"))

        self.update_report()
        ##


        ## Window Preferences

        self.windowPreferences = self.gtkb.get_object("preferencesWindow")
        icon = self.windowPreferences.render_icon(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_BUTTON)
        self.windowPreferences.set_icon(icon)
        self.windowPreferences.connect("delete_event", self.windowPreferences_hDelete)
        self.windowPreferences.hide()
        self.windowPreferences_Show = False

        # General

        self.entry_interface = self.gtkb.get_object("preferencesEntry_interface")

        self.spinButton_updateInterval = self.gtkb.get_object("preferencesSpinbutton_updateInterval")
        self.spinButton_updateInterval.set_range(1, 999)
        self.spinButton_updateInterval.set_increments(1, 10)

        self.prefKeepAbove = self.gtkb.get_object("preferences_general_keepAbove")

        self.preferences_opacity = self.gtkb.get_object("preferences_opacity")
        self.preferences_opacity.set_range(0, 100)
        self.preferences_opacity.set_increments(1, 10)

        self.prefAutorun = self.gtkb.get_object("preferences_general_autorun")

        self.preferences_online_check = self.gtkb.get_object("preferences_online_check")
        liststore = gtk.ListStore(gobject.TYPE_STRING)
        entries = ['NetworkManager', 'Ping Mode']
        for entry in entries:
            liststore.append([entry])
        self.preferences_online_check.set_model(liststore)
        cell = gtk.CellRendererText()
        self.preferences_online_check.pack_start(cell, True)
        self.preferences_online_check.add_attribute(cell, 'text', 0)

        self.preferences_tray_activate_action = self.gtkb.get_object("preferences_tray_activate_action")
        liststore = gtk.ListStore(gobject.TYPE_STRING)
        entries = [_('Show Main Window'), _('Show Notify')]
        for entry in entries: liststore.append([entry])
        self.preferences_tray_activate_action.set_model(liststore)
        cell = gtk.CellRendererText()
        self.preferences_tray_activate_action.pack_start(cell, True)
        self.preferences_tray_activate_action.add_attribute(cell, 'text', 0)

        but_cancel = self.gtkb.get_object("preferences_delete_data")
        but_cancel.connect('clicked', self.preferencesDeleteData_hClicked)

        # Data

        but = self.gtkb.get_object("preferences_data_import")
        but.connect('clicked', self.preferencesDataImport_hClicked)

        but = self.gtkb.get_object("preferences_data_export")
        but.connect('clicked', self.preferencesDataExport_hClicked)

        but = self.gtkb.get_object("preferences_data_selfile")
        but.connect('clicked', self.preferencesDataSelfile_hClicked)

        self.entry_data_file = self.gtkb.get_object("preferences_data_file")

        # Bottom

        but_cancel = self.gtkb.get_object("preferencesButton_cancel")
        but_cancel.connect('clicked', self.preferencesButtonCancel_hClicked)

        but_apply = self.gtkb.get_object("preferencesButton_apply")
        but_apply.connect('clicked', self.preferencesButtonApply_hClicked)
        ##

        self.notify_ok = pynotify.init ("summary-body")


        self.aboutActive = False
        self.quitActive = False

        ## i18n
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_01"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_02"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_general_keepAbove"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_03"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_general_autorun"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_04"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_05"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_06"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label1"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_1"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_data_import"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_data_export"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_data_selfile"))
        ntmtools.translate_control_text(self.gtkb.get_object("label1"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_delete_data"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_data"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label2"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label3"))
        ntmtools.translate_control_text(self.gtkb.get_object("label_time_page"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferencesButton_cancel"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferencesButton_apply"))

        self.indIcontype = 0
        if not self.unity_panel:
            self.statusIcon.set_visible(True)
            self.indIcontype = 1
        else:
            self.statusIcon.set_visible(False)    
            self.appind = appindicator.Indicator("ntm-ai","nk.ntm_off", appindicator.CATEGORY_APPLICATION_STATUS)
            self.appind.set_status(appindicator.STATUS_ACTIVE)
            self.appind.set_menu(self.statusIconMenu)
            self.indIcontype = 2
Example #54
0
    # 'Pacific Heights': 'USA-SFO-PCI',
    # 'Parkside': 'USA-SFO-PAS',
    # 'Potrero Hill': 'USA-SFO-POT',
    # 'Presidio Heights': 'USA-SFO-PRI',
    # 'Russian Hill': 'USA-SFO-RUS',
    # 'Seacliff': 'USA-SFO-SEA',
    'South Of Market': 'USA-SFO-SOO',
    # 'Twin Peaks': 'USA-SFO-TWI',
    # 'Visitacion Valley': 'USA-SFO-VIS',
    # 'Western Addition': 'USA-SFO-WEA',
    # 'West Of Twin Peaks': 'USA-SFO-WEO'
}

HEADERS = ['timestamp','date','locality', 'locality_code', 'price_usd','posting_id']
START_DATE = datetime.date(2010, 6, 1)
MONTH_DELTA = monthdelta(1)


def main():
    with open('rent_data-{0}.csv'.format(time()),'w+') as csvfile:
        csv = DictWriter(csvfile, HEADERS)
        for (name, code) in NEIGHBORHOODS.iteritems():
            date = START_DATE
            now = date.today()
            while date < now:
                prices, next_date = get_pricing_data(code, date, MONTH_DELTA)
                print(json.dumps(prices, indent=4))
                date = next_date


SEARCH_URL = 'http://search.3taps.com'
    def handle(self, *args, **options):
        if len(args) == 0:
            raise CommandError('Unknown frequency value for sending digests')

        frequency = args[0]

        a = Alert.objects.get_or_create(pk=1, defaults={'how_many': 20})[0]

        if not a.is_active:
            logger.warning(u'[Alerts Cron] Cron triggered, but is is currently disabled. Nothing was sent.')
            return False

        limit = a.how_many
        body = a.body

        start = datetime.datetime.now()
        end = datetime.datetime.now()

        if frequency == 'daily':
            start = start - datetime.timedelta(1)

        elif frequency == 'weekly':
            start = start - datetime.timedelta(7)

        elif frequency == 'monthly':
            start = start - monthdelta.monthdelta(1)

        elif frequency == 'every_2_weeks':
            start = start - datetime.timedelta(14)

        else:
            raise CommandError('Unknown value %s' % frequency)

        start = int(start.strftime('%s'))
        end = int(end.strftime('%s'))

        alerts = UserAlert.objects.filter(frequency=frequency, is_paused=False).all()

        if not alerts:
            logger.info(u'[Alerts Cron] There are no alerts to send')

        # clean template stored in /emails/alerts.html
        # after all changes you need to regenerate alerts.html to alerts_inline.html via http://inliner.cm/
        html_template = get_template('emails/alerts_inline.html')

        for alert in alerts:
            try:
                search_for = sanitize_search_params(json.loads(alert.data))

                search_for['start'] = start
                search_for['end'] = end

                # count will be the total of possible results
                # i.e. it is possible for count > len(articles)
                articles, count = get_filtered_news(search_for, limit)
                if count == 0:
                    continue

                languages = []
                for language in search_for['languages']:
                    languages.append(languages_map.get(language))
                search_for['languages'] = languages

                subject = 'TobaccoWatcher Alert: {}'.format(alert.name)
                text = body + '\n\n'
                context = Context({
                    'alert': alert,
                    'SITE_URL': 'http://' + settings.HOSTNAME,
                    'base_body': a.body,
                    'articles': articles,
                    'total_articles': count,
                    'search_for': search_for
                })
                html_content = html_template.render(context)
                for article in articles:
                    text = '%s-------\n\n%s\n\n%s\n\nSource: %s\n\n' % (text,
                                                                strip_tags(article['title']),
                                                                strip_tags(article['cleaned_content']),
                                                                article['url'])
                msg = EmailMultiAlternatives(subject, text, settings.DEFAULT_FROM_EMAIL, [alert.user.email])
                msg.attach_alternative(html_content, "text/html")
                msg.send()

            except Exception as e:
                print e
                logger.error(u'[Alerts Cron] Email could not be sent: {}'.format(e))
Example #56
0
#    century (1 Jan 1901 to 31 Dec 2000)?
#
# MORE INFO
# Return the day of the week as an integer, where Monday is 0 and Sunday is 6.
# >>> import datetime
# >>> datetime.datetime.today()
# datetime.datetime(2012, 3, 23, 23, 24, 55, 173504)
# >>> datetime.datetime.today().weekday()

import datetime
import monthdelta

date = datetime.date(1901, 1, 1)
sumsundays = 0

while date.year < 2001:

    if date.weekday() == 6:
        sumsundays += 1
    date = date + monthdelta.monthdelta(+1)

print(sumsundays)
# 
#
# Congratulations, the answer you gave to problem 19 is correct.
#
# You are the 94200th person to have solved this problem.



Example #57
0
    def __init__(self, ntmo):
        self.ntmo = ntmo

        self.mtraffic = None
        self.mtimeslot = None
        self.mtime = None

        self.last_conn_state = None

        self.unity_panel = self.ntmo.sys_info["unity.panel"]
        if self.unity_panel:
            try:
                import appindicator
            except:
                self.unity_panel = False
        

        # Status Icon
        self.statusIcon = gtk.StatusIcon()

        ## Open xml
        self.gtkb = gtk.Builder()
        self.gtkb.add_from_file("ntm_main.gui")        
        ##


        ## Menu
        self.statusIconMenu = self.gtkb.get_object("menu_statusIcon")

        menuItem = self.gtkb.get_object("menuitem_show_win")
        menuItem.connect('activate', self.menu_show_win_h_activate)
        menuItem.get_children()[0].set_label(_("Show Window"))

        menuItem = self.gtkb.get_object("menuitem_report")
        menuItem.connect('activate', self.menu_report_h_activate)
        menuItem.get_children()[0].set_label(_("Report"))

        menuItem = self.gtkb.get_object("menuitem_preferences")
        menuItem.connect('activate', self.menu_preferences_h_activate)
        menuItem.get_children()[0].set_label(_("Preferences"))

        menuItem = self.gtkb.get_object("menuitem_info")
        menuItem.connect('activate', self.menu_info_h_activate)
        menuItem.get_children()[0].set_label(_("Info & News"))

        menuItem = self.gtkb.get_object("menuitem_about")
        menuItem.connect('activate', self.menu_about_h_activate)
        menuItem.get_children()[0].set_label(_("About"))

        menuItem = self.gtkb.get_object("menuitem_quit")
        menuItem.connect('activate', self.menu_quit_h_activate)
        menuItem.get_children()[0].set_label(_("Quit"))

        # menuItem = self.gtkb.get_object("menuitem_test")
        # menuItem.connect('activate', self.menuTest_hActivate)
        ##

        ## Status Icon
        self.statusIcon.set_from_file(ntmo.trayicon_file)
        self.statusIcon.set_tooltip(_("Network Traffic Monitor\n-Left click: show the counters\n-Right click: show menu"))
        self.statusIcon.connect('activate', self.try_icon_h_activate)
        self.statusIcon.connect('popup-menu', self.try_icon_h_popup_menu, self.statusIconMenu)
        ##


        ## Main Window
        self.mainWindow = self.gtkb.get_object("ntmMainWindow")
        self.mainWindow.hide()
        self.mainWindow_Show = False

        self.mainWindow.connect("delete_event", self.window_main_h_delete)
        self.mainWindow.set_icon_from_file(globaldef.NTM_ICON)
        self.mainWindow.set_title(_(self.mainWindow.get_title()))
        (self.winposx, self.winposy) = self.mainWindow.get_position()
        (self.winsizex, self.winsizey) = self.mainWindow.get_size()

        self.ntmMainWindow_vbox = self.gtkb.get_object("ntmMainWindow_vbox")

        self.nsb_conn_state_icon = self.gtkb.get_object("nsb_conn_state_icon")
        #self.nsb_net_name = self.gtkb.get_object("nsb_net_name")
        self.label_ping_time = self.gtkb.get_object("label_ping_time")
        

        #self.status_bar = self.gtkb.get_object("statusbar")
        #self.status_bar.push(self.status_bar.get_context_id("ntm"), " ")
        
        #newlabel = gtk.Label("Test")
        #sbc = self.status_bar.get_message_area().get_children()
        #for i in sbc:
        #    if i is gtk.Label:
        #        i.set_markup("<small><b>Tr</b>:<small>123</small><b>Ts</b>:<small>345</small></small>")
            #self.status_bar.get_message_area().remove(i)
        #self.status_bar.get_message_area().add(newlabel)
        #self.status_bar.get_message_area().pack_end(newlabel, expand=True, fill=True, padding=5)
        
        # New Status Bar #
        self.nsb_conn_state_icon = self.gtkb.get_object("nsb_conn_state_icon")
        self.nsb_interface_name = self.gtkb.get_object("nsb_interface_name")
        self.nsb_cauntry_icon = self.gtkb.get_object("nsb_cauntry_icon")
        self.nsb_info = self.gtkb.get_object("nsb_info")
        self.nsb_button_tools = self.gtkb.get_object("nsbt_button_tools")
        self.nsb_button_tools.connect('toggled', self.nsb_button_tools_hToggled)
        self.binf_viewport = self.gtkb.get_object("binf_viewport")
        ##


        ## Report Windows
        self.view_rep = webkit.WebView()

        self.gtkb_report = gtk.Builder()
        self.gtkb_report.add_from_file("report.gui")

        self.report_date_dialog = self.gtkb_report.get_object("date_dialog")
        self.report_date_dialog_calendar = self.gtkb_report.get_object("date_dialog_calendar")
        self.report_date_dialog_title = self.gtkb_report.get_object("date_dialog_title")

        self.report_window = gtk.Window()
        self.report_window.set_resizable(True)

        #icon = self.report_window.render_icon(gtk.STOCK_INDEX, gtk.ICON_SIZE_DIALOG)
        #self.report_window.set_icon(icon)
        self.report_window.set_icon_from_file(globaldef.REPORT_ICON)

        self.report_window.resize(300, 400)
        self.report_window.set_position(gtk.WIN_POS_CENTER)
        self.report_window.set_title("NTM - Report")

        vbox = gtk.VBox(False, 0)
        self.report_top_bar = self.gtkb_report.get_object("top_bar")
        vbox.pack_start(self.report_top_bar, False, False, 0)
        scroll_window = gtk.ScrolledWindow(None, None)
        scroll_window.add(self.view_rep)
        vbox.pack_start(scroll_window, True, True, 0)
        self.report_window.add(vbox)
        self.report_window_Show = False
        self.report_window.connect("delete_event", self.report_window_h_delete)

        self.report_first_day = self.gtkb_report.get_object("from_button")
        self.temp_report_first_day = datetime.date.today() - monthdelta(1)
        self.report_first_day.set_label(self.temp_report_first_day.isoformat())
        self.report_first_day.connect('clicked', self.report_first_day_h_clicked)

        self.report_last_day = self.gtkb_report.get_object("to_button")
        self.temp_report_last_day = datetime.date.today()
        self.report_last_day.set_label(self.temp_report_last_day.isoformat())
        self.report_last_day.connect('clicked', self.report_last_day_h_clicked)

        self.report_all_days = self.gtkb_report.get_object("all_days")

        report_update = self.gtkb_report.get_object("update")
        report_update.connect('clicked', self.report_update_h_clicked)

        self.report_type = self.gtkb_report.get_object("report_type") # Combo Box
        liststore = gtk.ListStore(gobject.TYPE_STRING)
        entries = [_('Total'), _('Daily')] # , 'Days of Week']
        for entry in entries: liststore.append([entry])
        self.report_type.set_model(liststore)
        cell = gtk.CellRendererText()
        self.report_type.pack_start(cell, True)
        self.report_type.add_attribute(cell, 'text', 0)
        self.report_type.set_active(0)

        # i18n
        ntmtools.translate_control_text(self.gtkb_report.get_object("label1"))
        ntmtools.translate_control_text(self.gtkb_report.get_object("label2"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("all_days"))
        ntmtools.translate_control_text(self.gtkb_report.get_object("label3"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("update"))
        ntmtools.translate_control_markup(self.gtkb_report.get_object("date_dialog_title"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("dateWindow_cancelButton"))
        ntmtools.translate_control_label(self.gtkb_report.get_object("dateWindow_okButton"))

        self.update_report()
        ##


        ## Window Preferences

        self.windowPreferences = self.gtkb.get_object("preferencesWindow")
        self.windowPreferences.hide()
        self.windowPreferences_Show = False

        icon = self.windowPreferences.render_icon(gtk.STOCK_PREFERENCES, gtk.ICON_SIZE_DIALOG)
        self.windowPreferences.set_icon(icon)
        self.windowPreferences.connect("delete_event", self.window_preferences_h_delete)

        # General

        self.entry_interface = self.gtkb.get_object("preferencesEntry_interface")
        but = self.gtkb.get_object("button_selint")
        but.connect('clicked', self.preferences_sel_int_h_clicked)

        self.spinButton_updateInterval = self.gtkb.get_object("preferencesSpinbutton_updateInterval")
        self.spinButton_updateInterval.set_range(1, 999)
        self.spinButton_updateInterval.set_increments(1, 10)

        self.prefKeepAbove = self.gtkb.get_object("preferences_general_keepAbove")

        self.preferences_opacity = self.gtkb.get_object("preferences_opacity")
        self.preferences_opacity.set_range(0, 100)
        self.preferences_opacity.set_increments(1, 10)

        self.prefAutorun = self.gtkb.get_object("preferences_general_autorun")

        self.preferences_online_check = self.gtkb.get_object("preferences_online_check")
        liststore = gtk.ListStore(gobject.TYPE_STRING)
        entries = ['NetworkManager', 'Ping Mode']
        for entry in entries:
            liststore.append([entry])
        self.preferences_online_check.set_model(liststore)
        cell = gtk.CellRendererText()
        self.preferences_online_check.pack_start(cell, True)
        self.preferences_online_check.add_attribute(cell, 'text', 0)

        self.preferences_tray_activate_action = self.gtkb.get_object("preferences_tray_activate_action")
        liststore = gtk.ListStore(gobject.TYPE_STRING)
        entries = [_('Show Main Window'), _('Show Notify')]
        for entry in entries: liststore.append([entry])
        self.preferences_tray_activate_action.set_model(liststore)
        cell = gtk.CellRendererText()
        self.preferences_tray_activate_action.pack_start(cell, True)
        self.preferences_tray_activate_action.add_attribute(cell, 'text', 0)

        but_cancel = self.gtkb.get_object("preferences_delete_data")
        but_cancel.connect('clicked', self.preferences_delete_data_h_clicked)

        # Gui
        self.filechooserbutton_online = self.gtkb.get_object("filechooserbutton_online")
        self.filechooserbutton_online.set_filename(self.ntmo.trayicon_active_file)

        self.filechooserbutton_offline = self.gtkb.get_object("filechooserbutton_offline")
        self.filechooserbutton_offline.set_filename(self.ntmo.trayicon_file)


        # Data

        but = self.gtkb.get_object("preferences_data_import")
        but.connect('clicked', self.preferences_data_import_h_clicked)

        but = self.gtkb.get_object("preferences_data_export")
        but.connect('clicked', self.preferences_data_export_h_clicked)

        but = self.gtkb.get_object("preferences_data_selfile")
        but.connect('clicked', self.preferences_data_sel_file_h_clicked)

        self.entry_data_file = self.gtkb.get_object("preferences_data_file")

        # Bottom

        but_cancel = self.gtkb.get_object("preferencesButton_cancel")
        but_cancel.connect('clicked', self.preferences_button_cancel_h_clicked)

        but_apply = self.gtkb.get_object("preferencesButton_apply")
        but_apply.connect('clicked', self.preferences_button_apply_h_clicked)
        ##


        ## Select Interface
        self.gtkb_selint = gtk.Builder()
        self.gtkb_selint.add_from_file("selinterface.gui")

        self.selint_dialog = self.gtkb_selint.get_object("dialog_interfaces")
        self.selint_dialog.resize(400, 200)
        self.selint_dialog.connect("delete_event", self.selint_dialog_h_delete)

        self.selint_dialog_alignmentTable = self.gtkb_selint.get_object("alignment_table")

        self.selint_scrolledWinTab = self.make_device_table()
        self.selint_dialog_alignmentTable.add(self.selint_scrolledWinTab)
        self.selint_scrolledWinTab.show()

        but = self.gtkb_selint.get_object("button_refresh")
        but.connect('clicked', self.selint_button_refresh_h_clicked)

        but = self.gtkb_selint.get_object("button_ok")
        but.connect('clicked', self.selint_button_ok_h_clicked)

        but = self.gtkb_selint.get_object("button_cancel")
        but.connect('clicked', self.selint_button_cancel_h_clicked)
        ##

        self.notify_ok = pynotify.init ("summary-body")

        ## Show Status Icon
        self.statusIcon.set_visible(True)
        ##

        self.aboutActive = False
        self.quitActive = False

        ## i18n        
        ntmtools.translate_control_title(self.gtkb.get_object("preferencesWindow"))

        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_01"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_02"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_general_keepAbove"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_03"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_general_autorun"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_04"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_2"))
        ntmtools.translate_control_text(self.gtkb.get_object("label2"))
        ntmtools.translate_control_text(self.gtkb.get_object("label3"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_05"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_06"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label1"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_1"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_data_import"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_data_export"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_data_selfile"))
        ntmtools.translate_control_text(self.gtkb.get_object("label1"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferences_delete_data"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label_data"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label2"))
        ntmtools.translate_control_text(self.gtkb.get_object("preferences_label3"))
        ntmtools.translate_control_text(self.gtkb.get_object("label_time_page"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferencesButton_cancel"))
        ntmtools.translate_control_label(self.gtkb.get_object("preferencesButton_apply"))

        ntmtools.translate_control_title(self.gtkb_selint.get_object("dialog_interfaces"))
        ntmtools.translate_control_text(self.gtkb_selint.get_object("label_table"))
        ntmtools.translate_control_label(self.gtkb_selint.get_object("button_refresh"))
        ntmtools.translate_control_label(self.gtkb_selint.get_object("button_ok"))
        ntmtools.translate_control_label(self.gtkb_selint.get_object("button_cancel"))

        # self.alarm_player = NKPlayer("./stf/ending.ogg")

        self.indIcontype = 0
        if not self.unity_panel:
            self.statusIcon.set_visible(True)
            self.indIcontype = 1
        else:
            self.statusIcon.set_visible(False)    
            self.appind = appindicator.Indicator("ntm-ai","nk.ntm_off", appindicator.CATEGORY_APPLICATION_STATUS)
            self.appind.set_status(appindicator.STATUS_ACTIVE)
            self.appind.set_menu(self.statusIconMenu)
            self.indIcontype = 2
Example #58
0

from datetime import date
from monthdelta import MonthDelta as monthdelta

start = date(1901, 1, 1)

end = date(2000, 12, 31)

curr = start

cnt = 0

while curr < end:
    print curr
    curr = curr + monthdelta(1)
    if curr.isoweekday() == 7:
        cnt += 1
    
print cnt