Skip to content

Commit e8638ef

Browse files
Merge pull request #854 from openego/features/#669-replace-bare-except-statements
Features/#669 replace bare except statements
2 parents 5a92946 + f4a0ca5 commit e8638ef

6 files changed

Lines changed: 5 additions & 733 deletions

File tree

etrago/cluster/electrical.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ def find_de_closest(network, bus_ne):
231231
busmap3.at[bus_ne, "elec_bus"] = find_de_closest(
232232
network, bus_ne
233233
)
234-
except:
234+
except (IndexError, KeyError):
235235
no_elec_conex.append(bus_ne)
236236
busmap3.at[bus_ne, "elec_bus"] = bus_ne
237237

etrago/tools/constraints.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3708,7 +3708,7 @@ def functionality(self, network, snapshots):
37083708
logger.info(
37093709
"Added extra_functionality {}".format(constraint)
37103710
)
3711-
except:
3711+
except NameError:
37123712
logger.warning(
37133713
"Constraint {} not defined".format(constraint)
37143714
+ ". New constraints can be defined in"
@@ -3722,7 +3722,7 @@ def functionality(self, network, snapshots):
37223722
logger.info(
37233723
"Added extra_functionality {}".format(constraint)
37243724
)
3725-
except:
3725+
except NameError:
37263726
logger.warning(
37273727
"Constraint {} not defined for linopy formulation".format(
37283728
constraint

etrago/tools/db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def connection(filepath=None, section="oep"):
192192

193193
try:
194194
pw = cfg.get(section, "password")
195-
except:
195+
except cp.NoOptionError:
196196
pw = keyring.get_password(section, cfg.get(section, "username"))
197197
if pw is None:
198198
pw = getpass.getpass(

etrago/tools/io.py

Lines changed: 0 additions & 353 deletions
Original file line numberDiff line numberDiff line change
@@ -440,359 +440,6 @@ def build_network(self, network=None, *args, **kwargs):
440440
return network
441441

442442

443-
def clear_results_db(session):
444-
"""Used to clear the result tables in the OEDB. Caution!
445-
This deletes EVERY RESULT SET!"""
446-
447-
from egoio.db_tables.model_draft import (
448-
EgoGridPfHvResultBus as BusResult,
449-
EgoGridPfHvResultBusT as BusTResult,
450-
EgoGridPfHvResultGenerator as GeneratorResult,
451-
EgoGridPfHvResultGeneratorT as GeneratorTResult,
452-
EgoGridPfHvResultLine as LineResult,
453-
EgoGridPfHvResultLineT as LineTResult,
454-
EgoGridPfHvResultLoad as LoadResult,
455-
EgoGridPfHvResultLoadT as LoadTResult,
456-
EgoGridPfHvResultMeta as ResultMeta,
457-
EgoGridPfHvResultStorage as StorageResult,
458-
EgoGridPfHvResultStorageT as StorageTResult,
459-
EgoGridPfHvResultTransformer as TransformerResult,
460-
EgoGridPfHvResultTransformerT as TransformerTResult,
461-
)
462-
463-
print("Are you sure that you want to clear all results in the OEDB?")
464-
choice = ""
465-
while choice not in ["y", "n"]:
466-
choice = input("(y/n): ")
467-
if choice == "y":
468-
print("Are you sure?")
469-
choice2 = ""
470-
while choice2 not in ["y", "n"]:
471-
choice2 = input("(y/n): ")
472-
if choice2 == "y":
473-
print("Deleting all results...")
474-
session.query(BusResult).delete()
475-
session.query(BusTResult).delete()
476-
session.query(StorageResult).delete()
477-
session.query(StorageTResult).delete()
478-
session.query(GeneratorResult).delete()
479-
session.query(GeneratorTResult).delete()
480-
session.query(LoadResult).delete()
481-
session.query(LoadTResult).delete()
482-
session.query(LineResult).delete()
483-
session.query(LineTResult).delete()
484-
session.query(TransformerResult).delete()
485-
session.query(TransformerTResult).delete()
486-
session.query(ResultMeta).delete()
487-
session.commit()
488-
else:
489-
print("Deleting aborted!")
490-
else:
491-
print("Deleting aborted!")
492-
493-
494-
def results_to_oedb(session, network, args, grid="hv", safe_results=False):
495-
"""Return results obtained from PyPSA to oedb
496-
497-
Parameters
498-
----------
499-
session:
500-
network : PyPSA network container
501-
Holds topology of grid including results from powerflow analysis
502-
args: dict
503-
Settings from appl.py
504-
grid: str
505-
Choose voltage-level, currently only 'hv' implemented
506-
safe_results: boolean
507-
If it is set to 'True' the result set will be saved
508-
to the versioned grid schema eventually apart from
509-
being saved to the model_draft by a SQL-script.
510-
ONLY set to True if you know what you are doing.
511-
512-
"""
513-
# Update generator_ids when k_means clustering to get integer ids
514-
if args["network_clustering_kmeans"]:
515-
new_index = pd.DataFrame(index=network.generators.index)
516-
new_index["new"] = range(len(network.generators))
517-
518-
for col in network.generators_t:
519-
if not network.generators_t[col].empty:
520-
network.generators_t[col].columns = new_index.new[
521-
network.generators_t[col].columns
522-
]
523-
524-
network.generators.index = range(len(network.generators))
525-
526-
# moved this here to prevent error when not using the mv-schema
527-
import datetime
528-
529-
if grid.lower() == "mv":
530-
print("MV currently not implemented")
531-
elif grid.lower() == "hv":
532-
from egoio.db_tables.model_draft import (
533-
EgoGridPfHvResultBus as BusResult,
534-
EgoGridPfHvResultBusT as BusTResult,
535-
EgoGridPfHvResultGenerator as GeneratorResult,
536-
EgoGridPfHvResultGeneratorT as GeneratorTResult,
537-
EgoGridPfHvResultLine as LineResult,
538-
EgoGridPfHvResultLineT as LineTResult,
539-
EgoGridPfHvResultLoad as LoadResult,
540-
EgoGridPfHvResultLoadT as LoadTResult,
541-
EgoGridPfHvResultMeta as ResultMeta,
542-
EgoGridPfHvResultStorage as StorageResult,
543-
EgoGridPfHvResultStorageT as StorageTResult,
544-
EgoGridPfHvResultTransformer as TransformerResult,
545-
EgoGridPfHvResultTransformerT as TransformerTResult,
546-
EgoGridPfHvSource as Source,
547-
)
548-
else:
549-
print("Please enter mv or hv!")
550-
551-
print("Uploading results to db...")
552-
# get last result id and get new one
553-
last_res_id = session.query(max(ResultMeta.result_id)).scalar()
554-
if last_res_id is None:
555-
new_res_id = 1
556-
else:
557-
new_res_id = last_res_id + 1
558-
559-
# result meta data
560-
res_meta = ResultMeta()
561-
meta_misc = []
562-
for arg, value in args.items():
563-
if arg not in dir(res_meta) and arg not in [
564-
"db",
565-
"lpfile",
566-
"results",
567-
"export",
568-
]:
569-
meta_misc.append([arg, str(value)])
570-
571-
res_meta.result_id = new_res_id
572-
res_meta.scn_name = args["scn_name"]
573-
res_meta.calc_date = datetime.datetime.now()
574-
res_meta.user_name = args["user_name"]
575-
res_meta.method = args["method"]
576-
res_meta.start_snapshot = args["start_snapshot"]
577-
res_meta.end_snapshot = args["end_snapshot"]
578-
res_meta.safe_results = safe_results
579-
res_meta.snapshots = network.snapshots.tolist()
580-
res_meta.solver = args["solver"]
581-
res_meta.settings = meta_misc
582-
583-
session.add(res_meta)
584-
session.commit()
585-
586-
# get source_id
587-
sources = pd.read_sql(session.query(Source).statement, session.bind)
588-
for gen in network.generators.index:
589-
if network.generators.carrier[gen] not in sources.name.values:
590-
new_source = Source()
591-
new_source.source_id = (
592-
session.query(max(Source.source_id)).scalar() + 1
593-
)
594-
new_source.name = network.generators.carrier[gen]
595-
session.add(new_source)
596-
session.commit()
597-
sources = pd.read_sql(
598-
session.query(Source).statement, session.bind
599-
)
600-
try:
601-
old_source_id = int(
602-
sources.source_id[
603-
sources.name == network.generators.carrier[gen]
604-
]
605-
)
606-
network.generators.set_value(gen, "source", int(old_source_id))
607-
except:
608-
print(
609-
"Source "
610-
+ network.generators.carrier[gen]
611-
+ " is not in the source table!"
612-
)
613-
for stor in network.storage_units.index:
614-
if network.storage_units.carrier[stor] not in sources.name.values:
615-
new_source = Source()
616-
new_source.source_id = (
617-
session.query(max(Source.source_id)).scalar() + 1
618-
)
619-
new_source.name = network.storage_units.carrier[stor]
620-
session.add(new_source)
621-
session.commit()
622-
sources = pd.read_sql(
623-
session.query(Source).statement, session.bind
624-
)
625-
try:
626-
old_source_id = int(
627-
sources.source_id[
628-
sources.name == network.storage_units.carrier[stor]
629-
]
630-
)
631-
network.storage_units.set_value(stor, "source", int(old_source_id))
632-
except:
633-
print(
634-
"Source "
635-
+ network.storage_units.carrier[stor]
636-
+ " is not in the source table!"
637-
)
638-
639-
whereismyindex = {
640-
BusResult: network.buses.index,
641-
LoadResult: network.loads.index,
642-
LineResult: network.lines.index,
643-
TransformerResult: network.transformers.index,
644-
StorageResult: network.storage_units.index,
645-
GeneratorResult: network.generators.index,
646-
BusTResult: network.buses.index,
647-
LoadTResult: network.loads.index,
648-
LineTResult: network.lines.index,
649-
TransformerTResult: network.transformers.index,
650-
StorageTResult: network.storage_units.index,
651-
GeneratorTResult: network.generators.index,
652-
}
653-
654-
whereismydata = {
655-
BusResult: network.buses,
656-
LoadResult: network.loads,
657-
LineResult: network.lines,
658-
TransformerResult: network.transformers,
659-
StorageResult: network.storage_units,
660-
GeneratorResult: network.generators,
661-
BusTResult: network.buses_t,
662-
LoadTResult: network.loads_t,
663-
LineTResult: network.lines_t,
664-
TransformerTResult: network.transformers_t,
665-
StorageTResult: network.storage_units_t,
666-
GeneratorTResult: network.generators_t,
667-
}
668-
669-
new_to_old_name = {
670-
"p_min_pu_fixed": "p_min_pu",
671-
"p_max_pu_fixed": "p_max_pu",
672-
"dispatch": "former_dispatch",
673-
"current_type": "carrier",
674-
"soc_cyclic": "cyclic_state_of_charge",
675-
"soc_initial": "state_of_charge_initial",
676-
}
677-
678-
ormclasses = [
679-
BusResult,
680-
LoadResult,
681-
LineResult,
682-
TransformerResult,
683-
GeneratorResult,
684-
StorageResult,
685-
BusTResult,
686-
LoadTResult,
687-
LineTResult,
688-
TransformerTResult,
689-
GeneratorTResult,
690-
StorageTResult,
691-
]
692-
693-
for ormclass in ormclasses:
694-
for index in whereismyindex[ormclass]:
695-
myinstance = ormclass()
696-
columns = ormclass.__table__.columns.keys()
697-
columns.remove("result_id")
698-
myinstance.result_id = new_res_id
699-
for col in columns:
700-
if "_id" in col:
701-
class_id_name = col
702-
else:
703-
continue
704-
setattr(myinstance, class_id_name, index)
705-
columns.remove(class_id_name)
706-
707-
if str(ormclass)[:-2].endswith("T"):
708-
for col in columns:
709-
if col == "soc_set":
710-
try:
711-
setattr(
712-
myinstance,
713-
col,
714-
getattr(
715-
whereismydata[ormclass],
716-
"state_of_charge_set",
717-
)[index].tolist(),
718-
)
719-
except:
720-
pass
721-
else:
722-
try:
723-
setattr(
724-
myinstance,
725-
col,
726-
getattr(whereismydata[ormclass], col)[
727-
index
728-
].tolist(),
729-
)
730-
except:
731-
pass
732-
session.add(myinstance)
733-
734-
else:
735-
for col in columns:
736-
if col in new_to_old_name:
737-
if col == "soc_cyclic":
738-
try:
739-
setattr(
740-
myinstance,
741-
col,
742-
bool(
743-
whereismydata[ormclass].loc[
744-
index, new_to_old_name[col]
745-
]
746-
),
747-
)
748-
except:
749-
pass
750-
elif "Storage" in str(ormclass) and col == "dispatch":
751-
try:
752-
setattr(
753-
myinstance,
754-
col,
755-
whereismydata[ormclass].loc[index, col],
756-
)
757-
except:
758-
pass
759-
else:
760-
try:
761-
setattr(
762-
myinstance,
763-
col,
764-
whereismydata[ormclass].loc[
765-
index, new_to_old_name[col]
766-
],
767-
)
768-
except:
769-
pass
770-
elif col in ["s_nom_extendable", "p_nom_extendable"]:
771-
try:
772-
setattr(
773-
myinstance,
774-
col,
775-
bool(whereismydata[ormclass].loc[index, col]),
776-
)
777-
except:
778-
pass
779-
else:
780-
try:
781-
setattr(
782-
myinstance,
783-
col,
784-
whereismydata[ormclass].loc[index, col],
785-
)
786-
except:
787-
pass
788-
session.add(myinstance)
789-
790-
session.commit()
791-
print("Upload finished!")
792-
793-
return
794-
795-
796443
def run_sql_script(conn, scriptname="results_md2grid.sql"):
797444
"""This function runs .sql scripts in the folder 'sql_scripts'"""
798445

0 commit comments

Comments
 (0)