def get_sailkapenak_by_league(league): key = 'rank_{}'.format(league.upper()) league = league.upper() if league.lower() == 'euskotren': league = league.lower() endkey = "{}z".format(key) start = key end = endkey with get_db_connection() as database: try: ranks = database.get_view_result("estropadak", "rank", raw_result=True, startkey=start, endkey=end, include_docs=True, reduce=False) result = [] for rank in ranks['rows']: result.append(rank['doc']) return result except KeyError: return {'error': 'Estropadak not found'}, 404 return result
def get_plantila(team, league, year): with get_db_connection() as database: try: id = f'team_{league}_{year}_{team}' taldea = database[id] talde_izenak = database['talde_izenak'] talde_izenak = {k.lower(): v for k, v in talde_izenak.items()} _rowers = [] for i, rower in enumerate(taldea['rowers']): historial = [] for h in rower['historial']: t = list(h.items()) try: normalized_name = talde_izenak[t[0][1].lower()] except KeyError: normalized_name = t[0][1] historial.append({ 'name': normalized_name, 'year': t[0][0] }) rower['historial'] = historial rower['name'] = ' '.join( rower['name'].split(' ')[:-1]).title() rower['index'] = i _rowers.append(rower) taldea['rowers'] = _rowers except TypeError: logging.info("Not found", exc_info=1) taldea = None except KeyError: logging.info("Not found", exc_info=1) taldea = None return taldea
def get_emaitza_by_id(id): with get_db_connection() as database: try: emaitza = database[id] except KeyError: emaitza = None return emaitza
def update_years_into_db(years, league): with get_db_connection() as database: doc = database['years'] if league: doc[league] = years else: doc = years doc.save()
def get_talde_izen_normalizatua(taldea): with get_db_connection() as database: talde_izenak = database['talde_izenak'] try: talde_izena = talde_izenak[taldea] except KeyError: talde_izena = talde_izenak[taldea.title()] return talde_izena
def delete_emaitza_from_db(emaitza_id): with get_db_connection() as database: document = database[emaitza_id] if document.exists(): document.fetch() document.delete() return True return False
def update_emaitza_into_db(emaitza_id, emaitza): with get_db_connection() as database: document = database[emaitza_id] if document.exists(): document.update(emaitza) document.save() return document.exists() else: return None
def insert_emaitza_into_db(emaitza): data = datetime.datetime.fromisoformat(emaitza['estropada_data']) talde_izen_normalizatua = TaldeakDAO.get_talde_izen_normalizatua( emaitza['talde_izena']) izena = talde_izen_normalizatua.replace(' ', '-') emaitza[ '_id'] = f'{data.strftime("%Y-%m-%d")}_{emaitza["liga"]}_{izena}' with get_db_connection() as database: document = database.create_document(emaitza) return document.exists()
def get_taldea_by_id(id): with get_db_connection() as database: try: taldea = database[id] except TypeError: logging.info("Not found", exc_info=1) taldea = None except KeyError: logging.info("Not found", exc_info=1) taldea = None return taldea
def get_estropada_by_id(id): with get_db_connection() as database: try: estropada = database[id] estropada['data'] = estropada['data'].replace(' ', 'T') except TypeError: logging.error("Not found", exc_info=1) estropada = None except KeyError: logging.error("Not found", exc_info=1) estropada = None return estropada
def get_sailkapena_by_league_year(league, year, category): if league in ['gbl', 'bbl', 'btl', 'gtl']: _category = category.replace(' ', '_').lower() key = 'rank_{}_{}_{}'.format(league.upper(), year, _category) else: key = 'rank_{}_{}'.format(league.upper(), year) with get_db_connection() as database: try: doc = database[key] except KeyError: return None result = doc return result
def get_taldeak(league, year=None, category=None): league = league.upper() taldeak = [] with get_db_connection() as database: try: all_teams = database['talde_izenak2'] if year is not None: key = f'rank_{league}_{year}' if category: key = f'rank_{league}_{year}_{category.lower()}' resume = database[key] for taldea in resume['stats'].keys(): try: short = all_teams[taldea.title()].get('acronym') except KeyError: s = 0 for k in all_teams.keys(): simmilarity = textdistance.hamming.similarity( k, taldea.capitalize()) if simmilarity > s: s = simmilarity team = k short = all_teams[team].get('acronym') + taldea[-2] taldeak.append({ "name": taldea, "alt_names": all_teams.get(taldea, {}).get('alt_names', [taldea]), "short": short }) else: league = league.lower() resume = database[f'taldeak_{league}'] for taldea in resume['taldeak']: taldeak.append({ "name": taldea, "alt_names": all_teams[taldea].get('alt_names'), "short": all_teams[taldea].get('acronym') }) except KeyError: logging.info("Not found", exc_info=1) return taldeak
def clean_up(): yield docs = [ '2019-06-18_ARC1_San-Juan', '2019-06-18_ARC1_Donostiarra', ] with get_db_connection() as database: for doc_id in docs: try: doc = database[doc_id] if doc.exists(): # with Document(db, doc_id) as doc: doc.fetch() doc.delete() except KeyError: pass
def clean_up(): print("setup") yield print("deleting") docs = [ '2021-06-01_ACT_Estropada-test', '2021-06-01_ARC1_Estropada-test2', '2021-06-02_ARC1_Estropada-test4', '2021-06-01_ACT_Kaiku' ] with get_db_connection() as database: for doc_id in docs: try: doc = database[doc_id] if doc.exists(): doc.fetch() doc.delete() except KeyError: pass
def update_estropada_into_db(estropada_id, estropada): with get_db_connection() as database: doc = database[estropada_id] doc['izena'] = estropada['izena'] doc['data'] = estropada['data'] doc['liga'] = estropada['liga'] doc['lekua'] = estropada['lekua'] doc['sailkapena'] = estropada['sailkapena'] doc['type'] = estropada['type'] if estropada.get('bi_jardunaldiko_bandera'): doc['bi_jardunaldiko_bandera'] = estropada[ 'bi_jardunaldiko_bandera'] if estropada.get('related_estropada'): doc['related_estropada'] = estropada['related_estropada'] if estropada.get('jardunaldia'): doc['jardunaldia'] = estropada['jardunaldia'] if len(estropada.get('kategoriak', [])): doc['kategoriak'] = estropada['kategoriak'] doc.save()
def get_estropadak_by_league_year(league, year, page=0, count=app.config.PAGE_SIZE): logging.info("League:%s and year: %s", league, year) start = [] end = [] if league: league = league.upper() if league.lower() == 'euskotren': league = league.lower() start.append(league) end.append(league) if year: yearz = "{}".format(year) fyearz = "{}z".format(year) start.append(yearz) end.append(fyearz) else: end = ["{}z".format(league)] with get_db_connection() as database: try: estropadak = database.get_view_result("estropadak", "all", raw_result=True, startkey=start, endkey=end, include_docs=True, reduce=False, skip=count * page, limit=count) result = [] for row in estropadak['rows']: estropada = row['doc'] estropada['data'] = estropada['data'].replace(' ', 'T') result.append(estropada) return result except KeyError: return {'error': 'Estropadak not found'}, 404
def get_emaitzak(criteria: dict, page: int, count: int): start = page * count end = start + count docs = [] total = 0 if 'liga' in criteria: if criteria['liga'] == 'EUSKOTREN': criteria['liga'] = criteria['liga'].lower() with get_db_connection() as database: emaitzak = database.get_query_result(criteria) try: for emaitza in emaitzak: total = total + 1 emaitzak = database.get_query_result(criteria) docs = emaitzak[start:end] except IndexError: return {'error': 'Bad pagination'}, 400 return ( docs, total, )
def get_estropadak_by_team(team, league_id): start = [team] if league_id: start.append(league_id) end = ["{}z".format(team)] if league_id: end.append(league_id) with get_db_connection() as database: try: estropadak = database.view("estropadak/by_team", estropadak_transform, startkey=start, endkey=end, include_docs=True, reduce=False) result = [] for estropada in estropadak.rows: result.append(estropada) return result except KeyError: return {'error': 'Estropadak not found'}, 404
def get_emaitzak_by_league_year(league, year, team=None): league = league.upper() if league.lower() == 'euskotren': league = league.lower() if year: start = [league, team, year] end = [league, team, year + 1] else: start = [league, team] end = [league, team + 'z'] with get_db_connection() as database: emaitzak = database.get_view_result("emaitzak", "by_team", startkey=start, endkey=end, include_docs=False, reduce=False) result = [] for emaitza in emaitzak: result.append(db[emaitza['id']]) return result
def two_day_competition(): print("setup") docs = [{ "_id": "2021-06-01_ACT_J1", "data": "2021-06-01T18:00:00", "izena": "J1", "liga": "ACT", "urla": "http://foo.com", "bi_jardunaldiko_bandera": True, "jardunaldia": 1, "related_estropada": "2021-06-02_ACT_J2" }, { "_id": "2021-06-02_ACT_J2", "data": "2021-06-02T18:00:00", "izena": "J2", "liga": "ACT", "urla": "http://foo.com", "bi_jardunaldiko_bandera": True, "jardunaldia": 2, "related_estropada": "2021-06-01_ACT_J1" }] with get_db_connection() as database: for doc in docs: try: docum = database.create_document(doc) print(f"Created {docum['_id']}") except KeyError: pass yield for doc in docs: try: doc = database[doc['_id']] print(f"Deleted {doc['_id']}") if doc.exists(): doc.fetch() doc.delete() except KeyError: pass
def delete_sailkapena_from_db(sailkapena_id): with get_db_connection() as database: doc = database[sailkapena_id] if doc.exists(): doc.fetch() doc.delete()
def insert_sailkapena_into_db(sailkapena): with get_db_connection() as database: doc = database.create_document(sailkapena) return doc.exists()
def update_sailkapena_into_db(sailkapena_id, sailkapena): with get_db_connection() as database: doc = database[sailkapena_id] doc['stats'] = sailkapena['stats'] doc.save()
def get(self): with get_db_connection() as database: doc = database['active_year'] return doc['year']
def get_years_from_db(): with get_db_connection() as database: return database['years']
def get_sailkapena_by_id(id: str): with get_db_connection() as database: try: return database[id] except KeyError: return None # {'error': 'Sailkapena not found'}, 404
def delete_estropada_from_db(estropada_id): with get_db_connection() as database: doc = database[estropada_id] if doc.exists(): doc.fetch() doc.delete()
def insert_estropada_into_db(estropada): logging.info(estropada) with get_db_connection() as database: document = database.create_document(estropada) return document.exists()