Closed alphahmed closed 3 years ago
A name error results when BytesType is called in the GzipDisk class in disk.py due to the BytesType removal
NameError Traceback (most recent call last)
<ipython-input-8-71970eef6fb4> in <module>
1 series_uid = positiveSample_list[11][2]
----> 2 showCandidate(series_uid)
~/PyTorchBook/dlwpt-code/p2ch10/vis_edited.py in showCandidate(series_uid, batch_ndx, **kwargs)
35
36 ct = Ct(series_uid)
---> 37 ct_t, pos_t, series_uid, center_irc = ds[batch_ndx]
38 ct_a = ct_t[0].numpy()
39
~/PyTorchBook/dlwpt-code/p2ch10/dsets_edited.py in __getitem__(self, ndx)
181 width_irc = (32, 48, 48)
182
--> 183 candidate_a, center_irc = getCtRawCandidate(
184 candidateInfo_tup.series_uid,
185 candidateInfo_tup.center_xyz,
~/anaconda3/lib/python3.8/site-packages/diskcache/core.py in wrapper(*args, **kwargs)
1859 result = func(*args, **kwargs)
1860 if expire is None or expire > 0:
-> 1861 self.set(key, result, expire, tag=tag, retry=True)
1862
1863 return result
~/anaconda3/lib/python3.8/site-packages/diskcache/fanout.py in set(self, key, value, expire, read, tag, retry)
84 shard = self._shards[index]
85 try:
---> 86 return shard.set(key, value, expire, read, tag, retry)
87 except Timeout:
88 return False
~/anaconda3/lib/python3.8/site-packages/diskcache/core.py in set(self, key, value, expire, read, tag, retry)
770 db_key, raw = self._disk.put(key)
771 expire_time = None if expire is None else now + expire
--> 772 size, mode, filename, db_value = self._disk.store(value, read, key=key)
773 columns = (expire_time, tag, size, mode, filename, db_value)
774
~/PyTorchBook/dlwpt-code/util/disk_edited.py in store(self, value, read, key)
27 """
28 # pylint: disable=unidiomatic-typecheck
---> 29 if type(value) is BytesType:
30 if read:
31 value = value.read()
NameError: name 'BytesType' is not defined
Changing the line if type(value) is BytesType:
into if isinstance(value, bytes)
seems to work, and the following str_io = BytesIO()
seems to work fine with importing the BytesIO from io module.
BytesIO() is also removed from the 'diskcache.core'. In disk.py, import io, and replace str_io = BytesIO() with str_io = io.BytesIO()
My suggestions of importing BytesIO
from the io
module, and replacing if type(value) is BytesType:
with if isinstance(value, bytes)
seem to be working fine, therefore, This issue can be closed!
It seems that BytesType and BytesIO are no longer included in the diskcashe 5.0.3 module