Skip to content

Commit

Permalink
Merge pull request #239 from HopkinsIDD/bug/GH-238-missing-boto3
Browse files Browse the repository at this point in the history
Add `boto3` dependency, add `venv`/`.venv`/`.env` to `.gitignore`
  • Loading branch information
TimothyWillard committed Jul 11, 2024
2 parents 6ca256c + df0737d commit ad08cce
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 7 deletions.
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ model_output/
/*.Rcheck/

# RStudio files
.Rproj.user/
.Rproj.user
flepiMoP.Rproj
*.Rproj

Expand Down Expand Up @@ -64,7 +64,8 @@ packrat/lib*/
dist/
SEIR.egg-info/
Outcomes.egg-info/
.Rproj.user
venv/
.venv/

# R package manuals
man/
Expand All @@ -74,3 +75,6 @@ flepimop/gempyor_pkg/get_value.prof
flepimop/gempyor_pkg/tests/seir/.coverage
flepimop/gempyor_pkg/tests/seir/.coverage.kojis-mbp-8.sph.ad.jhsph.edu.90615.974746
flepimop/gempyor_pkg/.coverage

# Environment variables
.env
4 changes: 3 additions & 1 deletion flepimop/gempyor_pkg/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ install_requires =
test =
pytest
mock

aws =
boto3
botocore

[options.entry_points]
console_scripts =
Expand Down
13 changes: 9 additions & 4 deletions flepimop/gempyor_pkg/src/gempyor/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
import time
from typing import List, Dict, Literal

import boto3
from botocore.exceptions import ClientError
import confuse
import numpy as np
import numpy.typing as npt
Expand Down Expand Up @@ -347,7 +345,7 @@ def as_random_distribution(self):


def list_filenames(
folder: str | bytes | os.PathLike = ".",
folder: str | bytes | os.PathLike = ".",
filters: str | list[str] = [],
) -> list[str]:
"""Return the list of all filenames and paths in the provided folder.
Expand Down Expand Up @@ -636,12 +634,19 @@ def download_file_from_s3(name_map: Dict[str, str]) -> None:
>>> download_file_from_s3(name_map)
# This will raise a ValueError indicating the invalid S3 URI format.
"""
try:
import boto3
from botocore.exceptions import ClientError
except ModuleNotFoundError:
raise ModuleNotFoundError((
"No module named 'boto3', which is required for "
"gempyor.utils.download_file_from_s3. Please install the aws target."
))
s3 = boto3.client("s3")
first_output_filename = next(iter(name_map.values()))
output_dir = os.path.dirname(first_output_filename)
if not os.path.exists(output_dir):
os.makedirs(output_dir)

for s3_uri in name_map:
try:
if s3_uri.startswith("s3://"):
Expand Down

0 comments on commit ad08cce

Please sign in to comment.