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 DateProvider import DateProvider\n",
|
||||||
"from datetime import datetime\n",
|
"from datetime import datetime\n",
|
||||||
"from ColumnsAdder import ColumnsAdder\n",
|
"from ColumnsAdder import ColumnsAdder\n",
|
||||||
"from IOUtils import IOUtils\n",
|
|
||||||
"from Datawrapper import Datawrapper\n",
|
"from Datawrapper import Datawrapper\n",
|
||||||
"from MedianOfFreeBedsByKreisTableFactory import MedianOfFreeBedsByKreisTableFactory\n",
|
"from MedianOfFreeBedsByKreisTableFactory import MedianOfFreeBedsByKreisTableFactory\n",
|
||||||
"from TimeseriesReader import readTimeseries\n",
|
"from TimeseriesReader import readTimeseries\n",
|
||||||
"from IntensivstationenHtmlFileUpdater import saveLastUpdatedIntensivstationen, saveKreisOptions\n",
|
"from IntensivstationenHtmlFileUpdater import saveLastUpdatedIntensivstationen, saveKreisOptions\n",
|
||||||
"from KreiseReader import readKreise\n",
|
"from KreiseReader import readKreise\n",
|
||||||
"from KreisOptionsProvider import getKreisOptionsAndAlleLandkreise\n",
|
"from KreisOptionsProvider import getKreisOptionsAndAlleLandkreise\n",
|
||||||
"from IntensiveCareBedsProvider import getIntensiveCareBeds\n",
|
"from IntensiveCareBedsPersister import getAndPersistIntensiveCareBeds4AlleKreise\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"pd.set_option('display.max_rows', 100)\n",
|
"pd.set_option('display.max_rows', 100)\n",
|
||||||
@@ -100,43 +99,6 @@
|
|||||||
"saveKreisOptions(kreisOptions, toHtmlFile = \"../../docs/intensivstationen.html\")"
|
"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",
|
"cell_type": "code",
|
||||||
"execution_count": null,
|
"execution_count": null,
|
||||||
@@ -144,18 +106,10 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"getAndPersistIntensiveCareBeds(timeSeries)"
|
"getAndPersistIntensiveCareBeds4AlleKreise(\n",
|
||||||
]
|
" timeSeries,\n",
|
||||||
},
|
" intensivstationenDataDir = '../../docs/data/intensivstationen',\n",
|
||||||
{
|
" kreisValues = kreisValues)\n"
|
||||||
"cell_type": "code",
|
|
||||||
"execution_count": null,
|
|
||||||
"id": "1b97137f",
|
|
||||||
"metadata": {},
|
|
||||||
"outputs": [],
|
|
||||||
"source": [
|
|
||||||
"for kreis in kreisValues:\n",
|
|
||||||
" getAndPersistIntensiveCareBeds(timeSeries, kreis)"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user