refactoring

This commit is contained in:
frankknoll
2023-02-12 20:54:17 +01:00
parent 29786cc04a
commit f12519d1b8
4 changed files with 59 additions and 62 deletions

14
src/HistogramFactory.py Normal file
View File

@@ -0,0 +1,14 @@
from SymptomHistogramByBatchcodeTableFactory import SymptomHistogramByBatchcodeTableFactory
from HistogramTable2DictTableConverter import HistogramTable2DictTableConverter
def createGlobalHistograms(symptomByBatchcodeTable):
symptomHistogramByBatchcodeTable = SymptomHistogramByBatchcodeTableFactory.createGlobalSymptomHistogramByBatchcodeTable(symptomByBatchcodeTable)
dictByBatchcodeTable = HistogramTable2DictTableConverter.convertGlobalHistogramTable2DictTable(symptomHistogramByBatchcodeTable)
return dictByBatchcodeTable
def createHistograms(symptomByBatchcodeTable):
symptomHistogramByBatchcodeTable = SymptomHistogramByBatchcodeTableFactory.createSymptomHistogramByBatchcodeTable(symptomByBatchcodeTable)
dictByBatchcodeTable = HistogramTable2DictTableConverter.convertHistogramTable2DictTable(symptomHistogramByBatchcodeTable)
return dictByBatchcodeTable

View File

@@ -0,0 +1,24 @@
from HistogramFactory import createGlobalHistograms, createHistograms
from HistogramPersister import saveHistograms
def createAndSaveGlobalHistograms(symptomByBatchcodeTable):
dictByBatchcodeTable4Country = createGlobalHistograms(symptomByBatchcodeTable)
saveHistograms(dictByBatchcodeTable4Country, 'Global')
def createAndSaveHistogramsForCountries(symptomByBatchcodeTable, countries):
dictByBatchcodeTable = createHistograms(symptomByBatchcodeTable)
for count, country in enumerate(countries, start = 1):
_createAndSaveHistogramsForCountry(
count = count,
numCountries = len(countries),
country = country,
dictByBatchcodeTable = dictByBatchcodeTable)
def _createAndSaveHistogramsForCountry(count, numCountries, country, dictByBatchcodeTable):
# FK-TODO: use https://github.com/tqdm/tqdm
print(f'saving histograms for country {count}/{numCountries}: {country}')
dictByBatchcodeTable4Country = dictByBatchcodeTable[dictByBatchcodeTable['COUNTRY'] == country]
saveHistograms(dictByBatchcodeTable4Country, country)

13
src/HistogramPersister.py Normal file
View File

@@ -0,0 +1,13 @@
from MultiIndexValuesProvider import MultiIndexValuesProvider
from HistogramDescriptionPersister import HistogramDescriptionPersister
import shutil
def saveHistograms(dictByBatchcodeTable4Country, country):
batchcodes = MultiIndexValuesProvider.getValues(dictByBatchcodeTable4Country.index)
batchcodes = {batchcode for batchcode in batchcodes if batchcode != 'nan'}
directory = f'../docs/data/histograms/{country}'
shutil.rmtree(directory, ignore_errors = True)
HistogramDescriptionPersister(directory).saveHistogramDescriptionsForBatchcodes(
batchcodes,
dictByBatchcodeTable4Country,
progress = lambda count, size, batchcode: print(f'{count}/{size}: {batchcode}'))

View File

@@ -18,7 +18,10 @@
"from DateProvider import DateProvider\n", "from DateProvider import DateProvider\n",
"from InternationalVaersCovid19Provider import getInternationalVaersCovid19, get_international_VAERSVAX_VAERSSYMPTOMS_Covid19\n", "from InternationalVaersCovid19Provider import getInternationalVaersCovid19, get_international_VAERSVAX_VAERSSYMPTOMS_Covid19\n",
"from BatchCodeTableHtmlUpdater import updateBatchCodeTableHtmlFile\n", "from BatchCodeTableHtmlUpdater import updateBatchCodeTableHtmlFile\n",
"from BatchCodeTablePersister import createAndSaveBatchCodeTables" "from BatchCodeTablePersister import createAndSaveBatchCodeTables\n",
"from SymptomByBatchcodeTableFactory import SymptomByBatchcodeTableFactory\n",
"from HistogramFactoryAndPersister import createAndSaveGlobalHistograms, createAndSaveHistogramsForCountries\n",
"from HtmlUtils import getCountries"
] ]
}, },
{ {
@@ -104,8 +107,6 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from SymptomByBatchcodeTableFactory import SymptomByBatchcodeTableFactory\n",
"\n",
"symptomByBatchcodeTable = SymptomByBatchcodeTableFactory.createSymptomByBatchcodeTable(international_VAERSVAX_Covid19, international_VAERSSYMPTOMS)\n", "symptomByBatchcodeTable = SymptomByBatchcodeTableFactory.createSymptomByBatchcodeTable(international_VAERSVAX_Covid19, international_VAERSSYMPTOMS)\n",
"symptomByBatchcodeTable" "symptomByBatchcodeTable"
] ]
@@ -113,76 +114,21 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"id": "5997ee59", "id": "23731536",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"isGlobal = False" "createAndSaveGlobalHistograms(symptomByBatchcodeTable)"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"id": "9268d60d", "id": "f8e42955",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from SymptomHistogramByBatchcodeTableFactory import SymptomHistogramByBatchcodeTableFactory\n", "createAndSaveHistogramsForCountries(symptomByBatchcodeTable, getCountries(international_VAERSVAX_Covid19))"
"\n",
"symptomHistogramByBatchcodeTable = SymptomHistogramByBatchcodeTableFactory.createGlobalSymptomHistogramByBatchcodeTable(symptomByBatchcodeTable) if isGlobal else SymptomHistogramByBatchcodeTableFactory.createSymptomHistogramByBatchcodeTable(symptomByBatchcodeTable)\n",
"symptomHistogramByBatchcodeTable"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5170efad",
"metadata": {},
"outputs": [],
"source": [
"from HistogramTable2DictTableConverter import HistogramTable2DictTableConverter\n",
"\n",
"dictByBatchcodeTable = HistogramTable2DictTableConverter.convertGlobalHistogramTable2DictTable(symptomHistogramByBatchcodeTable) if isGlobal else HistogramTable2DictTableConverter.convertHistogramTable2DictTable(symptomHistogramByBatchcodeTable)\n",
"dictByBatchcodeTable"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a57e0fd5",
"metadata": {},
"outputs": [],
"source": [
"from HtmlUtils import getCountries\n",
"from MultiIndexValuesProvider import MultiIndexValuesProvider\n",
"from HistogramDescriptionPersister import HistogramDescriptionPersister\n",
"import shutil\n",
"\n",
"if isGlobal:\n",
" batchcodes = MultiIndexValuesProvider.getValues(dictByBatchcodeTable.index)\n",
" batchcodes = {batchcode for batchcode in batchcodes if batchcode != 'nan'}\n",
" directory = f'../docs/data/histograms/Global'\n",
" shutil.rmtree(directory, ignore_errors = True)\n",
" histogramDescriptionPersister = HistogramDescriptionPersister(directory)\n",
" histogramDescriptionPersister.saveHistogramDescriptionsForBatchcodes(\n",
" batchcodes,\n",
" dictByBatchcodeTable,\n",
" progress = lambda count, size, batchcode: print(f'{count}/{size}: {batchcode}'))\n",
"else:\n",
" countries = getCountries(international_VAERSVAX_Covid19)\n",
" for count, country in enumerate(countries, start = 1):\n",
" # FK-TODO: use https://github.com/tqdm/tqdm\n",
" print(f'saving histograms for country {count}/{len(countries)}: {country}')\n",
" dictByBatchcodeTable4Country = dictByBatchcodeTable[dictByBatchcodeTable['COUNTRY'] == country]\n",
" batchcodes = MultiIndexValuesProvider.getValues(dictByBatchcodeTable4Country.index)\n",
" batchcodes = {batchcode for batchcode in batchcodes if batchcode != 'nan'}\n",
" directory = f'../docs/data/histograms/{country}'\n",
" shutil.rmtree(directory, ignore_errors = True)\n",
" histogramDescriptionPersister = HistogramDescriptionPersister(directory)\n",
" histogramDescriptionPersister.saveHistogramDescriptionsForBatchcodes(\n",
" batchcodes,\n",
" dictByBatchcodeTable4Country,\n",
" progress = lambda count, size, batchcode: print(f'{count}/{size}: {batchcode}'))"
] ]
}, },
{ {