refactoring
This commit is contained in:
38
src/intensivstationen/IntensiveCareBedsPersister.py
Normal file
38
src/intensivstationen/IntensiveCareBedsPersister.py
Normal 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'
|
||||
@@ -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"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user