refactoring

This commit is contained in:
frankknoll
2022-12-14 23:17:38 +01:00
parent 1e7e859f9c
commit 4472406eb5
2 changed files with 43 additions and 51 deletions

View File

@@ -0,0 +1,38 @@
from IntensiveCareBedsProvider import getIntensiveCareBeds
from IOUtils import IOUtils
def getAndPersistIntensiveCareBeds4AlleKreise(timeSeries, intensivstationenDataDir, kreisValues):
getAndPersistIntensiveCareBeds(timeSeries, intensivstationenDataDir)
for kreis in kreisValues:
getAndPersistIntensiveCareBeds(
timeSeries,
intensivstationenDataDir = intensivstationenDataDir,
kreis = kreis)
def getAndPersistIntensiveCareBeds(timeSeries, intensivstationenDataDir, kreis = None):
intensiveCareBeds = getIntensiveCareBeds(timeSeries, kreis)
display(kreis)
_saveAsJson(intensiveCareBeds, _getFilename(intensivstationenDataDir, kreis))
def _saveAsJson(intensiveCareBeds, file):
IOUtils.saveDictAsJson(
{
'population': int(intensiveCareBeds.iloc[0]['Einwohnerzahl']),
'data': _intensiveCareBeds2Dict(intensiveCareBeds),
},
file)
def _intensiveCareBeds2Dict(intensiveCareBeds):
df = intensiveCareBeds[['date', 'betten_belegt', 'betten_frei']].copy()
df['date'] = df['date'].dt.strftime('%Y-%m-%d')
return df.to_dict(orient = "records")
def _getFilename(intensivstationenDataDir, kreis):
return f'{intensivstationenDataDir}/intensivstationen-{_getSuffix(kreis)}.json'
def _getSuffix(kreis):
return kreis if kreis is not None else 'de'

View File

@@ -26,14 +26,13 @@
"from DateProvider import DateProvider\n",
"from datetime import datetime\n",
"from ColumnsAdder import ColumnsAdder\n",
"from IOUtils import IOUtils\n",
"from Datawrapper import Datawrapper\n",
"from MedianOfFreeBedsByKreisTableFactory import MedianOfFreeBedsByKreisTableFactory\n",
"from TimeseriesReader import readTimeseries\n",
"from IntensivstationenHtmlFileUpdater import saveLastUpdatedIntensivstationen, saveKreisOptions\n",
"from KreiseReader import readKreise\n",
"from KreisOptionsProvider import getKreisOptionsAndAlleLandkreise\n",
"from IntensiveCareBedsProvider import getIntensiveCareBeds\n",
"from IntensiveCareBedsPersister import getAndPersistIntensiveCareBeds4AlleKreise\n",
"\n",
"\n",
"pd.set_option('display.max_rows', 100)\n",
@@ -100,43 +99,6 @@
"saveKreisOptions(kreisOptions, toHtmlFile = \"../../docs/intensivstationen.html\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a97f5b2b",
"metadata": {},
"outputs": [],
"source": [
"def getAndPersistIntensiveCareBeds(timeSeries, kreis = None):\n",
" intensiveCareBeds = getIntensiveCareBeds(timeSeries, kreis)\n",
" display(kreis)\n",
" _saveAsJson(intensiveCareBeds, _getFilename(kreis))\n",
" return intensiveCareBeds\n",
"\n",
"\n",
"def _saveAsJson(intensiveCareBeds, file):\n",
" IOUtils.saveDictAsJson(\n",
" {\n",
" 'population': int(intensiveCareBeds.iloc[0]['Einwohnerzahl']),\n",
" 'data': _intensiveCareBeds2Dict(intensiveCareBeds),\n",
" },\n",
" file)\n",
"\n",
"\n",
"def _intensiveCareBeds2Dict(intensiveCareBeds):\n",
" df = intensiveCareBeds[['date', 'betten_belegt', 'betten_frei']].copy()\n",
" df['date'] = df['date'].dt.strftime('%Y-%m-%d')\n",
" return df.to_dict(orient = \"records\")\n",
"\n",
"\n",
"def _getFilename(kreis):\n",
" return f'../../docs/data/intensivstationen/intensivstationen-{_getSuffix(kreis)}.json'\n",
"\n",
"\n",
"def _getSuffix(kreis):\n",
" return kreis if kreis is not None else 'de'\n"
]
},
{
"cell_type": "code",
"execution_count": null,
@@ -144,18 +106,10 @@
"metadata": {},
"outputs": [],
"source": [
"getAndPersistIntensiveCareBeds(timeSeries)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1b97137f",
"metadata": {},
"outputs": [],
"source": [
"for kreis in kreisValues:\n",
" getAndPersistIntensiveCareBeds(timeSeries, kreis)"
"getAndPersistIntensiveCareBeds4AlleKreise(\n",
" timeSeries,\n",
" intensivstationenDataDir = '../../docs/data/intensivstationen',\n",
" kreisValues = kreisValues)\n"
]
},
{