Skip to content
This repository was archived by the owner on Oct 16, 2025. It is now read-only.
This repository was archived by the owner on Oct 16, 2025. It is now read-only.

Yet another Python3 bug #336

@olgabot

Description

@olgabot

Upon embarking on an existing datapackage, we run into a string/bytes error:

import flotilla

study = flotilla.embark('REDACTED', flotilla_dir=flotilla_dir)
2016-08-08 11:13:09 Reading datapackage from /projects/ps-yeolab/obotvinnik/flotilla_projects/REDACTED/datapackage.json
2016-08-08 11:13:09 Parsing datapackage to create a Study object
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-42-33d8552efa65> in <module>()
      1 import flotilla
      2 
----> 3 study = flotilla.embark('REDACTED', flotilla_dir=flotilla_dir)

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/site-packages/flotilla/__init__.py in embark(study_name, load_species_data, flotilla_dir)
     63                                             study_name)))
     64         return Study.from_datapackage_file(filename,
---> 65                                            load_species_data=load_species_data)
     66     except IOError:
     67         return Study.from_datapackage_url(study_name,

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/site-packages/flotilla/study.py in from_datapackage_file(cls, datapackage_filename, load_species_data, species_datapackage_base_url)
    484             datapackage, datapackage_dir=datapackage_dir,
    485             load_species_data=load_species_data,
--> 486             species_datapackage_base_url=species_datapackage_base_url)
    487 
    488     @staticmethod

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/site-packages/flotilla/study.py in from_datapackage(cls, datapackage, datapackage_dir, load_species_data, species_datapackage_base_url)
    587         if load_species_data and species is not None:
    588             species_kws = cls.load_species_data(species, cls.readers,
--> 589                                                 species_datapackage_base_url)
    590 
    591         try:

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/site-packages/flotilla/study.py in load_species_data(species, readers, species_datapackage_base_url)
    631                 species_datapackage_base_url, species)
    632             species_datapackage = datapackage_url_to_dict(
--> 633                 species_data_url)
    634 
    635             for resource in species_datapackage['resources']:

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/site-packages/flotilla/datapackage.py in datapackage_url_to_dict(datapackage_url)
     25 
     26 def datapackage_url_to_dict(datapackage_url):
---> 27     filename = check_if_already_downloaded(datapackage_url)
     28 
     29     with open(filename) as f:

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/site-packages/flotilla/datapackage.py in check_if_already_downloaded(url, datapackage_name, download_dir)
     60         opener = build_opener()
     61         opened_url = opener.open(req)
---> 62         datapackage = json.loads(opened_url.read())
     63         datapackage_name = datapackage['name']
     64 

/home/obotvinnik/anaconda/envs/py3k/lib/python3.5/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
    310     if not isinstance(s, str):
    311         raise TypeError('the JSON object must be str, not {!r}'.format(
--> 312                             s.__class__.__name__))
    313     if s.startswith(u'\ufeff'):
    314         raise JSONDecodeError("Unexpected UTF-8 BOM (decode using utf-8-sig)",

TypeError: the JSON object must be str, not 'bytes'

Is the solution here to force opened_url.read() to a string type? This is using the urllib2 package within the standard libarary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions