diff --git a/geomagio/Controller.py b/geomagio/Controller.py index d05f45ae4e8d4848da8e062adddb8540f839e3ef..41bffe20acf04e34835e751585944395901cff0f 100644 --- a/geomagio/Controller.py +++ b/geomagio/Controller.py @@ -1,7 +1,7 @@ """Controller class for geomag algorithms""" import argparse -from io import BytesIO +from io import BytesIO, StringIO import sys from typing import List, Optional, Tuple, Union @@ -506,7 +506,12 @@ def get_input_factory(args): input_factory_args["urlInterval"] = args.input_url_interval input_factory_args["urlTemplate"] = args.input_url else: - input_stream = BytesIO(Util.read_url(args.input_url)) + try: + input_stream = BytesIO(Util.read_url(args.input_url)) + except TypeError as e: + print(str(e), file=sys.stderr) + print("Warning: reading url as BytesIO failed; attempting StringIO", file=sys.stderr) + input_stream = StringIO(Util.read_url(args.input_url)) input_type = args.input if input_type == "edge": input_factory = edge.EdgeFactory(