def init_db(): """Import all modules here that might define models so that they will be registered properly on the metadata. Otherwise you will have to import them first before calling init_db() """ from models import Department, Employee, Pokemon, Role Base.metadata.drop_all(bind=engine) Base.metadata.create_all(bind=engine) engineering = Department(name="Engineering") db_session.add(engineering) hr = Department(name="Human Resources") db_session.add(hr) manager = Role(name="manager") db_session.add(manager) engineer = Role(name="engineer") db_session.add(engineer) peter = Employee(name="Peter", department=engineering, role=engineer) db_session.add(peter) roy = Employee(name="Roy", department=engineering, role=engineer) db_session.add(roy) tracy = Employee(name="Tracy", department=hr, role=manager) db_session.add(tracy) db_session.commit() charzard = Pokemon(name="Charzard", level=100, type="fire") db_session.add(charzard) db_session.commit()
def create_pokemon(): pokemon = load_json('pokemon.json') for next_pokemon in pokemon: print("working pokemon" + next_pokemon) name = next_pokemon type = pokemon[next_pokemon]['type'] move = pokemon[next_pokemon]['moves'] attack = pokemon[next_pokemon]['attack'] defense = pokemon[next_pokemon]['defense'] spdefense = pokemon[next_pokemon]['special-defense'] specialattack = pokemon[next_pokemon]['special-attack'] image = pokemon[next_pokemon]['img'] newPokemon = Pokemon(name=name, type=type, move=move, attack=attack, defense=defense, spdefense=spdefense, specialattack=specialattack, image=image) # After I create the book, I can then add it to my session. session.add(newPokemon) # commit the session to my DB. session.commit()
def make_pokemon(self, name, type_name): trainer_id = users.get_current_user().user_id() pokemon = Pokemon(parent=trainer_key(trainer_id)) #Define a Trainer as the parent of the new pokemon. This trainer's key is the current user id. Thus every user has his own pokemon list pokemon.img_url = self.get_pokemon_image(name) pokemon.name = name pokemon.type = Type.query(Type.name == type_name).get() return pokemon
def pokemon_remove_group(self, request): """ POKEMON-REMOVE-GROUP: remove the group association """ if not request.from_datastore: return Pokemon(given_name="ID of pokemon was not found") this_pokemon = request.key.get() this_pokemon.group = None this_pokemon.put() return this_pokemon
def step_impl(context): for row in context.table: pokemon = Pokemon( row['name'], attack=row['attack'], defense=row['defense'], ) setattr(context, row['name'], pokemon)
def _pokemon_from_species(self, poke_species: PokemonSpecies, level: int = 100) -> Pokemon: full_stats = self.calc_all_stats(poke_species.base_stats, level) move_set = self._random_moves(poke_species) nickname = self._random_name() return Pokemon(poke_species, hp=full_stats.total_hp, stats=full_stats, move_set=move_set, nickname=nickname)
def test_source_insert_3(self): s = Pokemon(name = "deyuan", type = "str8_fire", move = "ancient_power", attack = "101", defense = "101", spdefense = "101", specialattack = "101", image = "www.google.com") session.add(s) session.commit() r = session.query(Pokemon).filter_by(name = "deyuan").one() self.assertEqual(str(r.image), 'www.google.com') session.query(Pokemon).filter_by(name = "deyuan").delete() session.commit()
def test_source_insert_2(self): s = Pokemon(name = "william", type = "unknown", move = "rest", attack = "100", defense = "100", spdefense = "100", specialattack = "100", image = "www.aol.com") session.add(s) session.commit() r = session.query(Pokemon).filter_by(name = "william").one() self.assertEqual(str(r.spdefense), '100') session.query(Pokemon).filter_by(name = "william").delete() session.commit()
def test_source_insert_1(self): s = Pokemon(name = "pikachu", type = "electric", move = "bash", attack = "100", defense = "50", spdefense = "50", specialattack = "50", image = "www.pikachu.com") session.add(s) session.commit() r = session.query(Pokemon).filter_by(name = "pikachu").one() self.assertEqual(str(r.type), 'electric') session.query(Pokemon).filter_by(name = "pikachu").delete() session.commit()
def insert_pokemon(session, pokemon, time): pokemon_obj = Pokemon( encounter_id=str(pokemon['encounter_id']), spawnpoint_id=str(pokemon['spawnpoint_id']), disappear_time=dt_from_epoch(int(pokemon['disappear_time'])), pokemon_id=int(pokemon['pokemon_id']), pokemon_name=unicode(pokemon['pokemon_name']), time=time, geom='SRID=4326;POINT(%s %s)' % (float(pokemon['longitude']), float(pokemon['latitude']))) session.merge(pokemon_obj)
def pokemon_insert(self, pokemon): """ POKEMON-ADD: add a pokemon under the user's account """ if pokemon.from_datastore: pokemon_with_parent = pokemon pokemon_with_parent.put() else: user = endpoints.get_current_user() pokemon_with_parent = Pokemon(parent=get_parent_key(user), given_name=pokemon.given_name, species_name=pokemon.species_name, species_id=pokemon.species_id, level=pokemon.level) this_key = pokemon_with_parent.put() this_instance = this_key.get() this_instance.pokemon_key = this_key.urlsafe() this_instance.put() pokemon_with_parent = this_instance return pokemon_with_parent
os.environ['DJANGO_SETTINGS_MODULE'] = 'charts/settings' import django #django.setup() from . import models from models import Pokemon data = csv.reader(open(project_dir + "pokemon-sun-and-moon-gen-7-stats/pokemon.csv"), delimiter=",") for row in data: if row[0] != "id": pokemon = Pokemon() pokemon.id = row[0] pokemon.ndex = row[1] pokemon.species = row[2] pokemon.form = row[3] pokemon.type1 = row[4] pokemon.type2 = row[5] pokemon.ability1 = row[6] pokemon.ability2 = row[7] pokemon.abilityH = row[8] pokemon.hp = row[9] pokemon.attack = row[10] pokemon.defense = row[11] pokemon.spattack = row[12] pokemon.spdefense = row[13] pokemon.speed = row[14]
from constants import * from models.Battle import * from models.Pokemon import * #First define pokemons with its stats pokemon1 = Pokemon("Bulbasaur", 100, 11, 3) pokemon2 = Pokemon("Charmander", 100, 9, 1) pokemon1.current_hp = 45 pokemon2.current_hp = 39 #Stats pokemon1.baseStats = { HP: 39, ATTACK: 52, DEFENSE: 43, SPATTACK: 80, SPDEFENSE: 65, SPEED: 65 } pokemon1.ev = { HP: 0, ATTACK: 0, DEFENSE: 0, SPATTACK: 0, SPDEFENSE: 0, SPEED: 0 } pokemon1.iv = { HP: 21,
def step_impl(context, name, attack): setattr(context, name, Pokemon(name, attack=attack))
def step_impl(context, name, defense): setattr(context, name, Pokemon(name, defense=defense))
height = None #check weight for 'null' if pokemon['weight_kg'] != '': weight = pokemon['weight_kg'] else: weight = None #check type2 for 'null' if pokemon['type2'] != '': sec_type = pokemon['type2'] else: sec_type = None record = Pokemon(pid=pokemon['pokedex_number'], name=pokemon['name'], attack=pokemon['attack'], defense=pokemon['defense'], hp=pokemon['hp'], height=height, sp_attack=pokemon['sp_attack'], sp_defense=pokemon['sp_defense'], speed=pokemon['speed'], weight=weight, type1=pokemon['type1'], type2=sec_type) db.session.add(record) db.session.commit() # replace any 'null' values with None to avoid db errors
'height': 0.7, }, { 'pokemon_id': 4, 'name': 'Charmander', 'ptype': 'fire', 'weight': 8.5, 'height': 0.6, }, { 'pokemon_id': 7, 'name': 'Squirtle', 'ptype': 'water', 'weight': 9.0, 'height': 0.5, }] # Delete DB if exist to restart if os.path.exists('pokemons.db'): os.remove('pokemons.db') # create the database db.create_all() for p in POKEMONS: pokemon = Pokemon(pokemon_id=p['pokemon_id'], name=p['name'], ptype=p['ptype'], weight=p['weight'], height=p['height']) db.session.add(pokemon) db.session.commit()
def initPokemonStats(self): #First define pokemons with its stats pokemon1 = "Blastoise" pokemon2 = "Skarmory" with open('db/pokemons.json') as f: data = json.load(f) type2 = None if "type2" in data[pokemon1].keys(): type2 = data[pokemon1]["type2"] self.pokemon1 = Pokemon(pokemon1, 100, data[pokemon1]["type1"], type2) type22 = None if "type2" in data[pokemon2]: type22 = data[pokemon2]["type2"] self.pokemon2 = Pokemon(pokemon2, 100, data[pokemon2]["type1"], type22) self.pokemon1.baseStats = { HP: data[self.pokemon1.name]["hp"], ATTACK: data[self.pokemon1.name]["attack"], DEFENSE: data[self.pokemon1.name]["defense"], SPATTACK: data[self.pokemon1.name]["spattack"], SPDEFENSE: data[self.pokemon1.name]["spdefense"], SPEED: data[self.pokemon1.name]["speed"] } self.pokemon2.baseStats = { HP: data[self.pokemon2.name]["hp"], ATTACK: data[self.pokemon2.name]["attack"], DEFENSE: data[self.pokemon2.name]["defense"], SPATTACK: data[self.pokemon2.name]["spattack"], SPDEFENSE: data[self.pokemon2.name]["spdefense"], SPEED: data[self.pokemon2.name]["speed"] } self.pokemon1.ev = { HP: 0, ATTACK: 0, DEFENSE: 0, SPATTACK: 0, SPDEFENSE: 0, SPEED: 0 } self.pokemon1.iv = { HP: 21, ATTACK: 21, DEFENSE: 21, SPATTACK: 21, SPDEFENSE: 21, SPEED: 21 } self.pokemon2.ev = { HP: 0, ATTACK: 0, DEFENSE: 0, SPATTACK: 0, SPDEFENSE: 0, SPEED: 0 } self.pokemon2.iv = { HP: 21, ATTACK: 21, DEFENSE: 21, SPATTACK: 21, SPDEFENSE: 21, SPEED: 21 } self.pokemon1.compute_stats() self.pokemon2.compute_stats() print(self.pokemon1.stats) print(self.pokemon2.stats) self.pokemon1.current_hp = self.pokemon1.stats["HP"] self.pokemon2.current_hp = self.pokemon2.stats["HP"] print(self.pokemon1.current_hp, self.pokemon1.stats["HP"])
def pokemon_delete(self, request): """ POKEMON-DELETE: delete's a pokemon from user. """ if not request.from_datastore: return Pokemon(given_name="ID of pokemon was not found") request.key.delete() return Pokemon(given_name="deleted")
def w_party(): if not validate_post(): return '', 403 party = request.json.get('party') if not party: return '', 204 party_obj = Party.query.first() or Party() old_party_pids = [party_obj.get_pid(i) for i in range(6)] updated_pokemon = [] updated_dexinfo = [] with db.session.no_autoflush: for i, pokemon in enumerate(party + ([None] * (6 - len(party)))): pid = pokemon['header']['pid'] if pokemon else None party_obj.set_pid(i, pid) if pid: updated_current = False pokemon_obj = Pokemon.query.filter_by( pid=pid).first() or Pokemon( pid=pid, created_time=datetime.datetime.utcnow()) old_pokedex_id = pokemon_obj.pokedex_id new_pokedex_id = pokemon['block_data']['pokedex_id'] if old_pokedex_id and new_pokedex_id != old_pokedex_id: old_dex_obj = PokedexInfo.query.filter_by( pokedex_id=old_pokedex_id).first() if old_dex_obj: old_dex_obj.evolves_into_dexid = new_pokedex_id db.session.add(old_dex_obj) updated_dexinfo.append(old_dex_obj) if pokemon_obj.pokedex_id != new_pokedex_id: pokemon_obj.pokedex_id = new_pokedex_id updated_current = True for attr in ('ability', 'nature', 'held_item'): if getattr(pokemon_obj, '%s_id' % attr) != pokemon['block_data'][attr]: setattr(pokemon_obj, '%s_id' % attr, pokemon['block_data'][attr]) updated_current = True for attr in ('experience', 'nickname', 'move_1_id', 'move_2_id', 'move_3_id', 'move_4_id', 'move_1_pp', 'move_2_pp', 'move_3_pp', 'move_4_pp'): if getattr(pokemon_obj, attr) != pokemon['block_data'][attr]: setattr(pokemon_obj, attr, pokemon['block_data'][attr]) updated_current = True for attr in ('level', 'hp', 'hp_max', 'attack', 'defense', 'speed', 'sp_attack', 'sp_defense'): if getattr(pokemon_obj, attr) != pokemon['battle_stats'][attr]: setattr(pokemon_obj, attr, pokemon['battle_stats'][attr]) updated_current = True if updated_current: db.session.add(pokemon_obj) updated_pokemon.append(pokemon_obj) new_party_pids = [party_obj.get_pid(i) for i in range(6)] party_composition_changed = new_party_pids != old_party_pids reserve_composition_changed = set(new_party_pids) != set( old_party_pids) if party_composition_changed: db.session.add(party_obj) if party_composition_changed or updated_pokemon or updated_dexinfo: db.session.commit() for pokemon_obj in updated_pokemon: socketio.emit('pokemon_changed', pokemon_obj.serialize()) for dex_obj in updated_dexinfo: socketio.emit('pokedex_changed', dex_obj.serialize()) if party_composition_changed: socketio.emit('party_composition_changed') if reserve_composition_changed: socketio.emit('reserve_composition_changed') forward_post('/w/party') return '', 204