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)
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 )
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
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)))
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 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
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
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, ]