def run_merge(): # extract parameters input_file, id_, file_tag = common.extract_parameters() # run script returncode = common.run_returncode([ 'python', 'scripts/merge_events.py', '--input_chunks', str(common.N_GROUP_CHUNKS), '--output_chunks', str(common.N_EVENT_CHUNKS), common.to_basename(input_file)]) # check return code if returncode == common.EXIT_FILE_MISSING: print("INFO: file missing, exiting gracefully") return elif returncode != 0: raise RuntimeError("Error while calling script") # push results to next repository for id_ in range(common.N_EVENT_CHUNKS): repo_name = "events.cbrugger.times{}".format(id_) filename = "{}_merged{}.txt".format(file_tag, id_) common.upload_file(filename, repo_name, id_, file_tag) print("Merge done")
def run_parse(): # extract parameters input_file, id_, file_tag = common.extract_parameters() repo_name = "events.cbrugger.results" # copy previous result files common.clone(repo_name) result_dir = os.path.join(common.project_path(), repo_name, "inputs") for filename in os.listdir(result_dir): shutil.copy(os.path.join(result_dir, filename), common.project_path()) # run script returncode = common.run_returncode([ 'python', 'scripts/parse_results.py', '--chunks', str(common.N_EVENT_CHUNKS), common.to_basename(input_file) ]) # check return code if returncode == common.EXIT_FILE_MISSING: print("INFO: file missing, exiting gracefully") return elif returncode != 0: raise RuntimeError("Error while calling script") # push results to next repository filenames = [ path for path in os.listdir(common.project_path()) if path.endswith(".html") ] common.upload_file(filenames, repo_name, id_, file_tag, do_clone=False) print("Parse done")
def create_preview_image(): lat = 34.785 lng = 32.075 zoom = 11 size = 680 url = static_image_url(lat, lng, zoom, size, size) print('Fetching from', url) upload_file(requests.get(url).content, 'data/map_preview.png')
def process_file(key, is_city, filename, latest): gj = json.load(open(filename)) default = dict(latest_confidence=0, latest_ratio=0, latest_reports=0, population=0) for feature in gj['features']: properties = feature['properties'] properties.update(latest.get((properties['id'], is_city), default)) upload = json.dumps(gj, cls=json_encoder).encode('utf8') path = 'data/tilesets/static-images-{}.geojson'.format(key) logging.info('UPLOADING %d bytes to %s', len(upload), path) upload_file(upload, path) upload_tileset(upload, 'static-images-' + key)
def upload_static_image(id, width=600, height=400): features = json.load(open(geo_file('cities'))) feature = next(filter(lambda f: f['properties']['id'] == id, features['features'])) coords = split_coordinates(feature['geometry']['coordinates']) # print(feature) bbox = extent(*coords) ctr = center(*bbox) size = width, height zoom = zoomlevel(min(size) / 1.04, *bbox) path = 'data/city_preview_{}.png'.format(id) url = static_image_url(*ctr, zoom, *size) upload_file(requests.get(url).content, path) ret = dict(url='/' + path, center=ctr, zoom=zoom) print(ret) return ret
def ad_edit_info(): try: id = request.form.get("id") name = request.form.get("name") short_info = request.form.get("short_info") long_info = request.form.get("long_info") info = session.query(models.Info).filter(models.Info.id == int(id)).first() # if user does not select file, browser also # submit an empty part without filename file_name = info.image if 'image' in request.files: image = request.files['image'] if image.filename != '': file_old = info.image file_name = common.upload_file(image, file_old) info.name = name info.image = file_name info.short_info = short_info info.long_info = long_info session.add(info) session.commit() session.close() flash('Chỉnh sửa tin tức thành công!') except Exception as e: flash('Hệ thống lỗi, nhờ báo cáo sự cố với bộ phận kỹ thuật.') return redirect("/list-info")
def admin_add_info(): try: name = request.form.get("name") short_info = request.form.get("short_info") long_info = request.form.get("long_info") if 'image' not in request.files: flash('No file part') return redirect("/admin-add-info") image = request.files['image'] # if user does not select file, browser also # submit an empty part without filename if image.filename == '': flash('No selected file') return redirect("/admin-add-info") file_name = common.upload_file(image) info = models.Info() info.name = name info.image = file_name info.short_info = short_info info.long_info = long_info session.add(info) session.commit() session.close() flash('Tạo tin tức thành công!') except Exception as e: flash('Hệ thống lỗi, nhờ báo cáo sự cố với bộ phận kỹ thuật.') return redirect("/list-info")
def run_events(): # extract parameters input_file, id_, file_tag = common.extract_parameters() # run script common.run([ 'python', 'scripts/get_events.py', '--headless', '--id', str(id_), input_file ]) # push results to next repository repo_name = "events.cbrugger.merge" filename = "{}_events{}.txt".format(file_tag, id_) common.upload_file(filename, repo_name, id_, file_tag) print("Events done")
def run_groups(): # define tag utc_now = datetime.datetime.utcnow().replace(tzinfo=dateutil.tz.tzutc()) now = utc_now.astimezone(TZ) file_tag = now.strftime("%Y.%m.%d_%H-%M") os.environ["FILE_TAG"] = file_tag # run script common.run("python scripts/get_groups.py --headless --chunks {}".format( common.N_GROUP_CHUNKS)) # push results to next repository for id_ in range(common.N_GROUP_CHUNKS): repo_name = "events.cbrugger.events{}".format(id_) filename = "{}_groups{}.txt".format(file_tag, id_) common.upload_file(filename, repo_name, id_, file_tag) print("Groups done")
def add_product(): try: type = request.form.get("type") name = request.form.get("name") price_all = request.form.get("price_all") price_dn = request.form.get("price_dn") price_qn = request.form.get("price_qn") price_qng = request.form.get("price_qng") color = request.form.get("color") origin = request.form.get("origin") mainten = request.form.get("mainten") wood_type = request.form.get("wood_type") short_info = request.form.get("short_info") long_info = request.form.get("long_info") if 'image' not in request.files: flash('No file part') return redirect("/admin") image = request.files['image'] # if user does not select file, browser also # submit an empty part without filename if image.filename == '': flash('No selected file') return redirect("/admin-add-info") file_name = common.upload_file(image) price = json.dumps({ "all": price_all, "danang": price_dn, "quangnam": price_qn, "quangngai": price_qng }) product = models.Product() product.type = type product.name = name product.price = price product.color = int(color) if color else None product.origin = origin product.mainten = int(mainten) if color else None product.image = file_name product.wood_type = wood_type product.short_info = short_info product.long_info = long_info session.add(product) session.commit() session.close() flash('Tạo sản phẩm thành công!') return redirect("/admin") except Exception as e: flash('Hệ thống lỗi, nhờ báo cáo sự cố với bộ phận kỹ thuật.') session.rollback() finally: session.close() return redirect("/admin")
def edit_product(): try: id = request.form.get("id") typep = request.form.get("type") name = request.form.get("name") price = request.form.get("price") color = request.form.get("color") origin = request.form.get("origin") mainten = request.form.get("mainten") wood_type = request.form.get("wood_type") short_info = request.form.get("short_info") long_info = request.form.get("long_info") product = session.query(models.Product).filter(models.Product.id == int(id)).first() file_name = product.image if 'image' in request.files: image = request.files['image'] if image.filename != '': file_old = product.image file_name = common.upload_file(image, file_old) product.type = typep product.name = name product.price = price product.color = int(color) if color else None product.origin = origin product.mainten = int(mainten) if color else None product.image = file_name product.wood_type = wood_type product.short_info = short_info product.long_info = long_info session.merge(product) session.commit() session.close() flash('Chỉnh sửa sản phẩm thành công!') except Exception as e: flash('Hệ thống lỗi, nhờ báo cáo sự cố với bộ phận kỹ thuật.') return redirect("/admin")
def upload_new_course_image(_step): upload_file('image.jpg')
def success_upload_file(filename): upload_file(filename, sub_path="uploads/") world.css_has_text('#upload_confirm', 'Success!') world.is_css_not_present('.wrapper-modal-window-assetupload', wait_time=30)
def upload_new_course_image(_step): upload_file("image.jpg")
def upload_textbook(_step, file_name): upload_file(file_name, sub_path="uploads/")
def edit_nick(): try: id = request.form.get('id') nick = session.query( models.Nicks).filter(models.Nicks.id == id).first() name = request.form.get('name') nick.name = name price = request.form.get('price') nick.price = price game_type = request.form.get('gameType') code = '' # Game Info if game_type == 'LQ': code = 'LQ-' + str(int(datetime.datetime.utcnow().timestamp())) game_name = 'Liên Quân' data = { "account": request.form.get('account'), "password": request.form.get('password'), "rank": request.form.get('rank'), "tuong": request.form.get('slTuong'), "skin": request.form.get('Skin'), "ngoc": request.form.get('ngoc'), "da_quy": request.form.get('daQuy') } else: code = 'NR-' + str(int(datetime.datetime.utcnow().timestamp())) game_name = 'Ngọc Rồng' data = { "nickType": request.form.get('nickType'), "server": request.form.get('server'), "hanhTinh": request.form.get('hanhTinh'), "bongTai": True if request.form.get('bongTai') == 'on' else False, "deTu": True if request.form.get('deTu') == 'on' else False } # Image if 'files' not in request.files: nick.images = nick.images else: images = request.files.getlist('files') # if user does not select file, browser also # submit an empty part without filename list_image = [] if images: for image in images: if image.filename == '': nick.images = nick.images else: path = app.config['UPLOAD_FOLDER'] + code os.mkdir(path) file_name = common.upload_file(image, path) list_image.append( os.path.join(UPLOAD_FOLDER + code, image.filename)) nick.images = ','.join(list_image) nick.status = request.form.get('status') nick.game_name = game_name nick.game_info = json.dumps(data) nick.code = code nick.create_at = str(datetime.datetime.now()) nick.user_id = current_user.id session.merge(nick) session.commit() session.close() flash('Update thông tin nick thành công!') except Exception as e: flash(e) flash('Hệ thống lỗi, nhờ báo cáo sự cố với bộ phận kỹ thuật.') redirect("/admin") return redirect("/admin")
def upload_textbook(_step, file_name): upload_file(file_name)
).results() rankings = r[0] r, _, _ = DF.Flow( DF.load(all_data(), name='cities', headers=1, override_fields=dict(area_id=dict(type='string')), cast_strategy=DF.load.CAST_WITH_SCHEMA), DF.filter_rows(lambda r: r['is_city']), DF.filter_rows(lambda r: r['num_reports_weighted'] >= 200), DF.add_field('ws', 'number', lambda r: r['symptoms_ratio_weighted'] * r['num_reports_weighted']), DF.concatenate(dict( date=[], num_reports_weighted=[], ws=[] ), target=dict(name='ranking')), DF.join_with_self('ranking', '{date}', dict( date=None, nr=dict(name='num_reports_weighted', aggregate='sum'), ws=dict(name='ws', aggregate='sum') )), DF.add_field('sr', 'number', lambda r: r['ws']/r['nr']), DF.delete_fields(['ws']), DF.sort_rows('{date}'), ).results() national = dict( id='NATIONAL', rank=0, scores=[ dict(nr=rr['nr'], sr=float(rr['sr']), date=rr['date'].isoformat()) for rr in r[0] ][-30:] ) rankings.insert(0, national) upload_file(json.dumps(rankings).encode('utf8'), 'data/city_rankings.json')
def upload_new_course_image(_step): upload_file('image.jpg', sub_path="uploads")
override_fields=dict(area_id=dict(type='string')), cast_strategy=DF.load.CAST_WITH_SCHEMA), DF.filter_rows(lambda r: r['is_city']), DF.add_field( 'score_date', 'object', lambda r: dict(weekday=r['date'].isoweekday() % 7, date=r['date'].toordinal(), sr=float(r['symptoms_ratio_weighted'] or 0), nr=int(r['num_reports_weighted']))), DF.concatenate(dict(id=[], city_name=[], score_date=[]), target=dict(name='popup_data')), DF.join_with_self( 'popup_data', '{city_name}', dict(id=None, city_name=None, scores=dict(name='score_date', aggregate='array'))), sort_limit_scores(), DF.filter_rows(lambda r: r['scores'] is not None), DF.add_field('nr', 'integer', lambda r: r['scores'][-1]['nr']), DF.add_field('sr', 'number', lambda r: r['scores'][-1]['sr']), split_to_weeks(), DF.add_field('translations', 'object', lambda r: city_translations[r['city_name']]), ).results() popup_data = r[0] popup_data = dict((x.pop('id'), x) for x in popup_data) upload_file( json.dumps(popup_data, cls=json_encoder, indent=2).encode('utf8'), 'data/popup_data.json')
if item['is_city']: city_fill_pattern_cases.extend( [['in', ['get', 'id'], ['literal', item['id']]], ['image', item['property'].replace('none', '')]]) else: neighborhood_fill_pattern_cases.extend( [['in', ['get', 'id'], ['literal', item['id']]], ['image', item['property'].replace('none', '')]]) city_fill_color_cases.append('rgba(0,0,0,0)') neighborhood_fill_color_cases.append('rgba(0,0,0,0)') city_fill_pattern_cases.append(['image', 'pattern-4']) neighborhood_fill_pattern_cases.append(['image', 'pattern-4']) update_date = (next( tabulator.Stream(latest_file(), headers=1).open().iter(keyed=True)))['date'] out = dict( city_fill_color_cases=city_fill_color_cases, city_fill_pattern_cases=city_fill_pattern_cases, neighborhood_fill_color_cases=neighborhood_fill_color_cases, neighborhood_fill_pattern_cases=neighborhood_fill_pattern_cases, update_date=update_date, color_scale=COLOR_SCALE, cutoff_low=CUTOFF_LOW, cutoff_high=CUTOFF_HIGH, ) out = json.dumps(out, sort_keys=True) upload_file(out.encode('utf8'), 'data/map_coloring.json')