Skip to content

Commit

Permalink
Manual edits to remove remaining code style errors
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelosthege authored and drbacke committed Oct 3, 2024
1 parent 41efea2 commit 156eddc
Show file tree
Hide file tree
Showing 12 changed files with 46 additions and 51 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
COPY config.example.py config.py
COPY config.py config.py

ENTRYPOINT []

Expand Down
5 changes: 3 additions & 2 deletions README-DE.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ Unter Macos (benötigt [Homebrew](https://brew.sh)):
brew install make
```

Nun `config.example.py` anpassen und dann in `config.py` umbennenen. Anschließend kann der Server über `make run` gestartet werden.
Nun `config.py` anpassen.
Anschließend kann der Server über `make run` gestartet werden.
Eine vollständige Übersicht über die wichtigsten Kurzbefehle gibt `make help`.

### Ausführliche Anleitung
Expand Down Expand Up @@ -76,7 +77,7 @@ gefolgt von einem erneuten `pip install -r requirements.txt`.

## Nutzung

`config.example.py` anpassen und dann in config.py umbennenen
Einstellungen in `config.py` anpassen.
Um das System zu nutzen, führen Sie `flask_server.py` aus, damit wird der Server gestartet


Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ On MacOS (requires [Homebrew](https://brew.sh)):
brew install make
```

Next, adjust `config.example.py` and rename it to `config.py`. The server can then be started with `make run`. A full overview of the main shortcuts is given by `make help`.
Next, adjust `config.py`.
The server can then be started with `make run`. A full overview of the main shortcuts is given by `make help`.

### Detailed Instructions

Expand Down Expand Up @@ -71,7 +72,8 @@ Followed by a renewed `pip install -r requirements.txt`.

## Usage

Adjust `config.example.py` and rename it to `config.py`. To use the system, run `flask_server.py`, which starts the server:
Adjust `config.py`.
To use the system, run `flask_server.py`, which starts the server:

```bash
./flask_server.py
Expand Down
2 changes: 1 addition & 1 deletion config.example.py → config.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_start_enddate(prediction_hours=48, startdate=None):
############
# Parameter
############
if startdate == None:
if startdate is None:
date = (datetime.now().date() + timedelta(hours=prediction_hours)).strftime(
"%Y-%m-%d"
)
Expand Down
32 changes: 15 additions & 17 deletions flask_server.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,28 @@
#!/usr/bin/env python3

import os
import sys
from datetime import datetime

import matplotlib

matplotlib.use(
"Agg"
) # Sets the Matplotlib backend to 'Agg' for rendering plots in environments without a display
from datetime import datetime, timedelta
# Sets the Matplotlib backend to 'Agg' for rendering plots in environments without a display
matplotlib.use("Agg")
from datetime import timedelta

import pandas as pd
from config import *
from flask import Flask, jsonify, redirect, request, send_from_directory, url_for

from modules.class_akku import *
from modules.class_ems import *
from modules.class_heatpump import *
from modules.class_load import *
from modules.class_load_container import *
from modules.class_load_corrector import *
from modules.class_optimize import *
from modules.class_pv_forecast import *
from modules.class_soc_calc import *
from modules.class_sommerzeit import *
from modules.class_strompreis import *
from modules.visualize import *
from modules.class_load import LoadForecast
from modules.class_load_container import Gesamtlast
from modules.class_load_corrector import LoadPredictionAdjuster
from modules.class_optimize import isfloat, optimization_problem
from modules.class_pv_forecast import PVForecast
from modules.class_soc_calc import BatteryDataProcessor
from modules.class_strompreis import HourlyElectricityPriceForecast

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config import db_config, get_start_enddate, optimization_hours, prediction_hours

app = Flask(__name__)

Expand Down
9 changes: 0 additions & 9 deletions modules/class_load_corrector.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
import os
import sys

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
Expand All @@ -16,12 +13,6 @@
# from sklearn.preprocessing import MinMaxScaler
# from sqlalchemy import create_engine

# Add the parent directory to sys.path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config import *

from modules.class_load import *


class LoadPredictionAdjuster:
def __init__(self, measured_data, predicted_data, load_forecast):
Expand Down
27 changes: 11 additions & 16 deletions modules/class_optimize.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,29 @@
import os
import sys

import matplotlib
import numpy as np

from modules.class_akku import *
from modules.class_ems import *
from modules.class_haushaltsgeraet import *
from modules.class_heatpump import *
from modules.class_inverter import *
from modules.class_load import *
from modules.class_load_container import *
from modules.class_pv_forecast import *
from modules.class_sommerzeit import *
from modules.visualize import *
from modules.class_akku import PVAkku
from modules.class_ems import EnergieManagementSystem, Wechselrichter
from modules.class_haushaltsgeraet import Haushaltsgeraet
from modules.visualize import visualisiere_ergebnisse

matplotlib.use("Agg") # Setzt das Backend auf Agg
import random
from datetime import datetime
from datetime import datetime, timedelta

from deap import algorithms, base, creator, tools

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config import *
from config import moegliche_ladestroeme_in_prozent


def isfloat(num):
try:
float(num)
return True
except:
except ValueError:
return False


Expand Down Expand Up @@ -213,7 +208,7 @@ def evaluate_inner(self, individual, ems, start_hour):
def evaluate(self, individual, ems, parameter, start_hour, worst_case):
try:
o = self.evaluate_inner(individual, ems, start_hour)
except:
except Exception:
return (100000.0,)

gesamtbilanz = o["Gesamtbilanz_Euro"]
Expand Down Expand Up @@ -339,7 +334,7 @@ def optimierung_ems(
############
# Parameter
############
if startdate == None:
if startdate is None:
date = (
datetime.now().date() + timedelta(hours=self.prediction_hours)
).strftime("%Y-%m-%d")
Expand Down Expand Up @@ -437,7 +432,7 @@ def optimierung_ems(
##############
opti_param = {}
opti_param["haushaltsgeraete"] = 0
if spuelmaschine != None:
if spuelmaschine is not None:
opti_param["haushaltsgeraete"] = 1

self.setup_deap_environment(opti_param, start_hour)
Expand Down
5 changes: 4 additions & 1 deletion modules/class_pv_forecast.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ def __init__(self, filepath=None, url=None, cache_dir="cache", prediction_hours=
f"Die Vorhersage muss mindestens {self.prediction_hours} Stunden umfassen, aber es wurden nur {len(self.forecast_data)} Stunden vorhergesagt."
)

def update_ac_power_measurement(self, date_time=None, ac_power_measurement=None):
def update_ac_power_measurement(
self, date_time=None, ac_power_measurement=None
) -> bool:
found = False
input_date_hour = date_time.replace(minute=0, second=0, microsecond=0)

Expand All @@ -81,6 +83,7 @@ def update_ac_power_measurement(self, date_time=None, ac_power_measurement=None)
forecast.ac_power_measurement = ac_power_measurement
found = True
break
return found

def process_data(self, data):
self.meta = data.get("meta", {})
Expand Down
1 change: 1 addition & 0 deletions modules/class_soc_calc.py
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@ def plot_data(self, last_points_100_df, last_points_0_df, soc_df):

if __name__ == "__main__":
# MariaDB Verbindungsdetails
config = {}

# Parameter festlegen
voltage_high_threshold = 55.4 # 100% SoC
Expand Down
2 changes: 1 addition & 1 deletion modules/visualize.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages

from modules.class_sommerzeit import * # Ensure this matches the actual import path
from modules.class_sommerzeit import ist_dst_wechsel

matplotlib.use("Agg")

Expand Down
5 changes: 5 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
[tool.isort]
profile = "black"

[tool.ruff.lint]
ignore = [
"F841", # don't complain about unused variables
]
1 change: 0 additions & 1 deletion test.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

# Import necessary modules from the project
from modules.class_optimize import optimization_problem
from modules.visualize import *

start_hour = 10

Expand Down

0 comments on commit 156eddc

Please sign in to comment.