Пример #1
0
def get_latest_fm(fm):
    """Store 1 week's worth of all FM releases in a table"""

    week = utils.get_days()

    pkgs = get_gentoo_pkgs()
    pnames = []
    for gp in pkgs:
        pnames.append(gp.split('/')[1])

    for pkg in fm.keys():
        if fm[pkg]['latestReleaseDate'] in week:
            if fm[pkg]['fmName'].lower() in pnames:
                port = True
            else:
                port = False

            Allfm(fmName=fm[pkg]['fmName'],
                  descShort=fm[pkg]['descShort'],
                  latestReleaseVersion=fm[pkg]['latestReleaseVersion'],
                  urlHomepage=fm[pkg]['urlHomepage'],
                  urlChangelog=fm[pkg]['urlChangelog'],
                  latestReleaseDate=fm[pkg]['latestReleaseDate'],
                  troveId=fm[pkg]['troveId'],
                  inPortage=port)
Пример #2
0
def get_latest_fm(fm):
    """Store 1 week's worth of all FM releases in a table"""

    week = utils.get_days()
    
    pkgs = get_gentoo_pkgs()
    pnames = []
    for gp in pkgs:
        pnames.append(gp.split('/')[1])
                
    for pkg in fm.keys():
        if fm[pkg]['latestReleaseDate'] in week:
            if fm[pkg]['fmName'].lower() in pnames:
                port = True
            else:
                port = False
                
            Allfm(fmName = fm[pkg]['fmName'],
                         descShort = fm[pkg]['descShort'],
                         latestReleaseVersion = fm[pkg]['latestReleaseVersion'],
                         urlHomepage = fm[pkg]['urlHomepage'],
                         urlChangelog = fm[pkg]['urlChangelog'],
                         latestReleaseDate = fm[pkg]['latestReleaseDate'],
                         troveId = fm[pkg]['troveId'],
                         inPortage = port
                        )
Пример #3
0
def generate_days(year, month):
    days = utils.get_days(year, month)
    days_buttons = [KeyboardButton(text=x) for x in days]
    days_menu = ReplyKeyboardMarkup(build_menu(days_buttons,
                                               len(days_buttons) // 6),
                                    resize_keyboard=True,
                                    one_time_keyboard=True)
    return days_menu
Пример #4
0
def get_telemetry_crashes(sc, versions, days, product='Firefox'):
    days = utils.get_days(days)
    dataset = SQLContext(sc).read.load(['s3://telemetry-parquet/socorro_crash/v2/crash_date=' + day.strftime('%Y%m%d') for day in days], 'parquet')

    if product != 'FennecAndroid':
        dataset = dataset.select([c for c in dataset.columns if c not in [
            'android_board', 'android_brand', 'android_cpu_abi', 'android_cpu_abi2',
            'android_device', 'android_hardware', 'android_manufacturer',
            'android_model', 'android_version',
        ]])

    return dataset.filter((dataset['product'] == product) & (dataset['version'].isin(versions)))
Пример #5
0
    def index(self, verbose=None):
        """Main index.html page"""
        #verbose=1 will show you sql id's for debugging
        #For debugging, seeing cookies etc:
        if self.verbose:
            #print cherrypy.request.headerMap
            #print "VERBOSE", cherrypy.request.remote.ip
            pass
        week = utils.get_days()

        #FIXME: Show either pkgs needing bump or all fm pkgs
        packages = Packages.select(
            AND(
                OR(Packages.q.latestReleaseDate == week[0],
                   Packages.q.latestReleaseDate == week[1],
                   Packages.q.latestReleaseDate == week[2],
                   Packages.q.latestReleaseDate == week[3],
                   Packages.q.latestReleaseDate == week[4]),
                Packages.q.fmNewer == 1))

        #packages = Packages.select(OR(Packages.q.latestReleaseDate == week[0],
        #                            Packages.q.latestReleaseDate == week[1],
        #                            Packages.q.latestReleaseDate == week[2],
        #                            Packages.q.latestReleaseDate == week[3],
        #                            Packages.q.latestReleaseDate == week[4]
        #                            ))
        packages = packages.orderBy('latestReleaseDate').reversed()
        try:
            my_herds = cherrypy.session['herds'].split(" ")
        except:
            my_herds = None

        try:
            troves = cherrypy.session['troves'].split(" ")
        except:
            troves = None

        tr = {}
        if troves:
            for t in troves:
                a = Troves.select(Troves.q.fId == t)
                tr[t] = a[0].name

        self._body_tmpl.troves = tr
        self._body_tmpl.username = accounts.get_logged_username()
        self._body_tmpl.week = week
        self._body_tmpl.my_herds = my_herds
        self._body_tmpl.packages = packages
        self._body_tmpl.verbose = verbose
        return header() + self._body_tmpl.respond() + footer()
Пример #6
0
    def index(self, verbose = None):
        """Main index.html page"""
        #verbose=1 will show you sql id's for debugging
        #For debugging, seeing cookies etc:
        if self.verbose:
            #print cherrypy.request.headerMap
            #print "VERBOSE", cherrypy.request.remote.ip
            pass
        week = utils.get_days()
        
        #FIXME: Show either pkgs needing bump or all fm pkgs
        packages = Packages.select(AND(OR(Packages.q.latestReleaseDate == week[0],
                                    Packages.q.latestReleaseDate == week[1],
                                    Packages.q.latestReleaseDate == week[2],
                                    Packages.q.latestReleaseDate == week[3],
                                    Packages.q.latestReleaseDate == week[4]
                                    ), Packages.q.fmNewer==1))

        #packages = Packages.select(OR(Packages.q.latestReleaseDate == week[0],
        #                            Packages.q.latestReleaseDate == week[1],
        #                            Packages.q.latestReleaseDate == week[2],
        #                            Packages.q.latestReleaseDate == week[3],
        #                            Packages.q.latestReleaseDate == week[4]
        #                            ))
        packages = packages.orderBy('latestReleaseDate').reversed()
        try:
            my_herds = cherrypy.session['herds'].split(" ")
        except:
            my_herds = None
        
        try:
            troves = cherrypy.session['troves'].split(" ")
        except:
            troves = None

        tr = {}
        if troves:
            for t in troves:
                a = Troves.select(Troves.q.fId == t)
                tr[t] = a[0].name

        self._body_tmpl.troves = tr 
        self._body_tmpl.username = accounts.get_logged_username()
        self._body_tmpl.week = week
        self._body_tmpl.my_herds = my_herds
        self._body_tmpl.packages = packages
        self._body_tmpl.verbose = verbose
        return header() + self._body_tmpl.respond() + footer()
def get_default_book(weeks=range(11, 53)):
    style = get_default_style()
    workbook = xlwt.Workbook()
    worksheets = {}
    for sheet_number in weeks:
        worksheets[sheet_number] = workbook.add_sheet('Week %s' % sheet_number, cell_overwrite_ok=True)
        days = get_days()
        for x in range(1, 6):
            worksheets[sheet_number].write(1, x + 1, days[x], style)
        for y in range(2, 12):
            time = "0" * (2 - len(str(y + 7))) + str(y + 7) + ":00"
            worksheets[sheet_number].write(y, 1, time, style)
        for y in range(2, 7):
            for x in range(2, 12):
                worksheets[sheet_number].write(x, y, "", style)
    return workbook, worksheets
Пример #8
0
def get_default_book(weeks=range(11, 53)):
    style = get_default_style()
    workbook = xlwt.Workbook()
    worksheets = {}
    for sheet_number in weeks:
        worksheets[sheet_number] = workbook.add_sheet('Week %s' % sheet_number,
                                                      cell_overwrite_ok=True)
        days = get_days()
        for x in range(1, 6):
            worksheets[sheet_number].write(1, x + 1, days[x], style)
        for y in range(2, 12):
            time = "0" * (2 - len(str(y + 7))) + str(y + 7) + ":00"
            worksheets[sheet_number].write(y, 1, time, style)
        for y in range(2, 7):
            for x in range(2, 12):
                worksheets[sheet_number].write(x, y, "", style)
    return workbook, worksheets
Пример #9
0
 def __get_real_chuchai_infos(self, ccs: List[str]) -> List[str]:
     """
     获取本月的出差信息 排除跨月的天数
     :param ccs:
     :return:
     """
     real_ccs = []
     for cc in ccs:
         gp = re.search(r'出差(\d\d-\d\d) .*?到(\d\d-\d\d) .*? (\d+)天', cc)
         if int(gp.group(1).split('-')[0]) != int(
                 gp.group(2).split('-')[0]):
             # 跨了月份  出差天数就是 int(gp.group(3))-n
             sd = f"{self.year}{gp.group(1).replace('-', '')}"
             ed = f"{self.year}{gp.group(2).replace('-', '')}"
             n = get_days(sd, ed, self.current_month)
             cc = re.sub(r' \d+天', f' {str(int(gp.group(3)) - n)}天', cc)
         real_ccs.append(cc)
     return real_ccs
Пример #10
0
    def __init__(self, day_number, time_hour, duration_hours, data,
                 module_list):
        """
        day_number: integer, in [1,2,3,4,5]
        """

        self.day_number = day_number
        self.day_string = get_days()[self.day_number]
        self.time_hour = int(time_hour - 8)
        self.time_string = self.parse_time_string(time_hour)
        self.duration_hours = duration_hours
        self.hour_range = range(self.time_hour,
                                self.time_hour + self.duration_hours)
        table_entries = data.findAll('td')
        """
        Parsing table_entries list:
        ->P:Find by array position
        ->C:Find by font color
        ____________________________
        P:Red:ModuleCode/ScheduleType
        P:Blue: ???
        P:Black:Module Title

        C:Black:Week Numbers
        C:Green:Lecturer
        C:Brown: Room Numbers
        ____________________________
        """
        # Entry 1 - Module Code and Schedule Type
        module_data = table_entries[0].string.split("/")
        self.module_code = module_data[0]
        self.module_number = module_list.index(self.module_code)
        self.schedule_type = self.set_schedule_type(module_data[1])

        # Entry 2 - irrelevant

        # Entry 3 - Schedule Title
        self.schedule_title = self.parse_schedule_title(
            table_entries[2].string)

        # Entries 4,5,6 - by Colour
        # Weeks   : #000000
        # Lecturer: #00FF00
        # Room    : #800000
        for table_entry in table_entries[3:]:
            table_entry = BeautifulSoup(str(table_entry))
            font_attributes = table_entry.findAll('font')[0].attrs
            font_color = font_attributes['color']
            if font_color == "#000000":
                self.weeks_string = "Weeks: " + table_entry.string
                self.weeks = self.parse_weeks(table_entry.string)
            elif font_color == "#00FF00":
                self.lecturer = table_entry.string
            elif font_color == "#800000":
                self.room = table_entry.string
        """
        Schedule items are equivalent if they occur:
            On the same day,
            at the same time,
            on the same week,
            with the same module,
            and the same type of module item

            Therefore these attributes uniquely define
            a Schedule Item
        """

        self.uid = self.uid = [
            self.day_string,
            self.time_string,
            self.weeks_string,
            self.module_code,
            self.schedule_type,
        ]