Skip to content

Commit d9b2e12

Browse files
authored
Merge pull request #1377 from cmu-delphi/release/indicators_v0.2.7_utils_v0.2.5
Release covidcast-indicators 0.2.7
2 parents 5f76fe0 + 04318b9 commit d9b2e12

File tree

10 files changed

+59
-23
lines changed

10 files changed

+59
-23
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.2.6
2+
current_version = 0.2.7
33
commit = True
44
message = chore: bump covidcast-indicators to {new_version}
55
tag = False

_delphi_utils_python/.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.2.4
2+
current_version = 0.2.5
33
commit = True
44
message = chore: bump delphi_utils to {new_version}
55
tag = False

_delphi_utils_python/delphi_utils/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515
from .nancodes import Nans
1616
from .weekday import Weekday
1717

18-
__version__ = "0.2.4"
18+
__version__ = "0.2.5"

_delphi_utils_python/delphi_utils/archive.py

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,9 @@ def filter_exports(self, common_diffs: FileDiffMap):
307307
else:
308308
replace(diff_file, exported_file)
309309

310-
def run(self):
310+
def run(self, logger=None):
311311
"""Run the differ and archive the changed and new files."""
312+
start_time = time.time()
312313
self.update_cache()
313314

314315
# Diff exports, and make incremental versions
@@ -317,6 +318,11 @@ def run(self):
317318
# Archive changed and new files only
318319
to_archive = [f for f, diff in common_diffs.items()
319320
if diff is not None]
321+
if logger:
322+
logger.debug("Diffed exports",
323+
phase="archiving",
324+
new_files_count=len(new_files),
325+
common_diffs_count=len(to_archive))
320326
to_archive += new_files
321327
_, fails = self.archive_exports(to_archive)
322328

@@ -329,6 +335,14 @@ def run(self):
329335
for exported_file in fails:
330336
print(f"Failed to archive '{exported_file}'")
331337

338+
elapsed_time_in_seconds = round(time.time() - start_time, 2)
339+
if logger:
340+
logger.info("Completed archive run",
341+
phase="archiving",
342+
elapsed_time_in_seconds=elapsed_time_in_seconds,
343+
new_changed_count=len(to_archive),
344+
fail_count=len(fails))
345+
332346

333347
class S3ArchiveDiffer(ArchiveDiffer):
334348
"""
@@ -641,8 +655,23 @@ def archive_exports(self, exported_files):
641655
successes: All files from input
642656
fails: Empty list
643657
"""
658+
archive_success, archive_fail = [], []
659+
for exported_file in exported_files:
660+
archive_file = abspath(
661+
join(self.cache_dir, basename(exported_file)))
662+
663+
# Copy export to cache
664+
try:
665+
# Archive
666+
shutil.copyfile(exported_file, archive_file)
667+
archive_success.append(exported_file)
668+
669+
except FileNotFoundError as ex:
670+
print(ex)
671+
archive_fail.append(exported_file)
672+
644673
self._exports_archived = True
645-
return exported_files, []
674+
return archive_success, archive_fail
646675

647676
def update_cache(self):
648677
"""Handle cache updates with a no-op.
@@ -667,13 +696,6 @@ def update_cache(self):
667696
if "archive" not in _params:
668697
_params = {"archive": _params, "common": _params}
669698

670-
logger = get_structured_logger(
699+
archiver_from_params(_params).run(get_structured_logger(
671700
__name__, filename=_params["common"].get("log_filename"),
672-
log_exceptions=_params["common"].get("log_exceptions", True))
673-
start_time = time.time()
674-
675-
archiver_from_params(_params).run()
676-
677-
elapsed_time_in_seconds = round(time.time() - start_time, 2)
678-
logger.info("Completed archive run.",
679-
elapsed_time_in_seconds=elapsed_time_in_seconds)
701+
log_exceptions=_params["common"].get("log_exceptions", True)))

_delphi_utils_python/delphi_utils/runner.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,19 @@ def run_indicator_pipeline(indicator_fn: Callable[[Params], None],
3636
None if no archiving should be performed.
3737
"""
3838
params = read_params()
39+
logger = get_structured_logger(
40+
name=indicator_fn.__module__,
41+
filename=params["common"].get("log_filename", None),
42+
log_exceptions=params["common"].get("log_exceptions", True))
3943
indicator_fn(params)
4044
validator = validator_fn(params)
4145
archiver = archiver_fn(params)
4246
if validator:
4347
validation_report = validator.validate()
44-
validation_report.log(get_structured_logger(
45-
name = indicator_fn.__module__,
46-
filename=params["common"].get("log_filename", None)))
48+
validation_report.log(logger)
4749
if (not validator or validation_report.success()):
4850
if archiver:
49-
archiver.run()
51+
archiver.run(logger)
5052
if "delivery" in params:
5153
transfer_files()
5254

_delphi_utils_python/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
setup(
2828
name="delphi_utils",
29-
version="0.2.4",
29+
version="0.2.5",
3030
description="Shared Utility Functions for Indicators",
3131
long_description=long_description,
3232
long_description_content_type="text/markdown",

ansible/templates/sir_complainsalot-params-prod.json.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"smoothed_vaccine_likely_doctors", "smoothed_wvaccine_likely_doctors",
6767
"smoothed_felt_isolated_7d", "smoothed_wfelt_isolated_7d",
6868
"smoothed_worried_become_ill", "smoothed_wworried_become_ill",
69+
"smoothed_received_2_vaccine_doses", "smoothed_wreceived_2_vaccine_doses",
6970
["smoothed_vaccine_barrier_appointment_time_tried", "msa"], ["smoothed_wvaccine_barrier_appointment_time_tried", "msa"],
7071
["smoothed_vaccine_barrier_childcare_tried", "msa"], ["smoothed_wvaccine_barrier_childcare_tried", "msa"],
7172
["smoothed_vaccine_barrier_document_tried", "msa"], ["smoothed_wvaccine_barrier_document_tried", "msa"],
@@ -103,7 +104,7 @@
103104
"maintainers": []
104105
},
105106
"covid-act-now": {
106-
"max_age":5,
107+
"max_age":9,
107108
"maintainers": []
108109
},
109110
"hhs": {

facebook/delphiFacebook/R/contingency_aggregate.R

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,20 @@ post_process_aggs <- function(df, aggregations, cw_list) {
158158
metric_cols <- unique(aggregations$metric)
159159

160160
cols_check_available <- unique(c(group_vars[group_vars != "geo_id"], metric_cols))
161-
available <- cols_check_available %in% names(df)
161+
available <- unlist(
162+
lapply(cols_check_available, function(col) {
163+
# Exists in dataframe and column is not only NAs
164+
col %in% names(df) && !all(is.na( unique(df[[col]] )))
165+
})
166+
)
162167
cols_not_available <- cols_check_available[ !available ]
163168
for (col_var in cols_not_available) {
164169
# Remove from aggregations
165170
aggregations <- aggregations[aggregations$metric != col_var &
166171
!mapply(aggregations$group_by,
167172
FUN=function(x) {col_var %in% x}), ]
168173
msg_plain(paste0(
169-
col_var, " is not defined. Removing all aggregations that use it. ",
174+
col_var, " is not available or not defined. Removing all aggregations that use it. ",
170175
nrow(aggregations), " remaining")
171176
)
172177
}

hhs_hosp/delphi_hhs/run.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ def run_module(params):
117117
df=pop_proportion(df, geo_mapper)
118118
df = make_geo(df, geo, geo_mapper)
119119
df = smooth_values(df, smoother[0])
120+
# Fix N/A MA values, see issue #1360
121+
if geo == "state" and sensor.startswith(CONFIRMED_FLU):
122+
ma_filter = df.val.isna() & (df.geo_id == "ma") & (df.timestamp > "08-01-2021") & \
123+
(df.timestamp.dt.day_name() == "Tuesday")
124+
df = df[~ma_filter]
120125
if df.empty:
121126
continue
122127
sensor_name = sensor + smoother[1]

sir_complainsalot/params.json.template

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"smoothed_vaccine_likely_doctors", "smoothed_wvaccine_likely_doctors",
6767
"smoothed_felt_isolated_7d", "smoothed_wfelt_isolated_7d",
6868
"smoothed_worried_become_ill", "smoothed_wworried_become_ill",
69+
"smoothed_received_2_vaccine_doses", "smoothed_wreceived_2_vaccine_doses",
6970
["smoothed_vaccine_barrier_appointment_time_tried", "msa"], ["smoothed_wvaccine_barrier_appointment_time_tried", "msa"],
7071
["smoothed_vaccine_barrier_childcare_tried", "msa"], ["smoothed_wvaccine_barrier_childcare_tried", "msa"],
7172
["smoothed_vaccine_barrier_document_tried", "msa"], ["smoothed_wvaccine_barrier_document_tried", "msa"],
@@ -102,7 +103,7 @@
102103
"maintainers": []
103104
},
104105
"covid-act-now": {
105-
"max_age":5,
106+
"max_age":9,
106107
"maintainers": []
107108
},
108109
"hhs": {

0 commit comments

Comments
 (0)