diff --git a/beat/backend/python/baseformat.py b/beat/backend/python/baseformat.py
index 1a6777dc52bb2f9dd205b21398ba2f6048e133ab..5daaa7829b034dd7b0e9013a6d19def8d071a3cc 100644
--- a/beat/backend/python/baseformat.py
+++ b/beat/backend/python/baseformat.py
@@ -358,8 +358,8 @@ def unpack_array(shape, dtype, fd):
         # N.B.: this bit of code is optimized to reduce memory usage
         data_format = ENDIANNESS + dtype.str[1:]
         count = numpy.prod(shape_)
-        to_read = numpy.asscalar(dtype.itemsize*count)
-        a = numpy.fromstring(fd.read(to_read), dtype=data_format, count=count)
+        to_read = int(dtype.itemsize * count)
+        a = numpy.frombuffer(fd.read(to_read), dtype=data_format, count=count)
         return a.reshape(shape_)
 
     elif issubclass(dtype, str):  # it is a string
diff --git a/beat/backend/python/data.py b/beat/backend/python/data.py
index 80f7547e3cfc9439510192318888a1e7538a4c9b..207d3bab83d2db7c550e1b2b2e500eeeaa96f805 100644
--- a/beat/backend/python/data.py
+++ b/beat/backend/python/data.py
@@ -411,7 +411,8 @@ class CachedDataSource(DataSource):
             # list of start/end indices to check that there are contiguous
             indices = []
             for f_data, f_chck in zip(data_filenames, checksum_filenames):
-                expected_chksum = open(f_chck, "rt").read().strip()
+                with open(f_chck, "rt") as f:
+                    expected_chksum = f.read().strip()
                 current_chksum = hashFileContents(f_data)
                 if expected_chksum != current_chksum:
                     raise IOError(
diff --git a/beat/backend/python/loader.py b/beat/backend/python/loader.py
index 6e85f131963c789ef3769a2f11581750874d929e..831b1879e133877d835b82fd7c66f423336f9c9a 100644
--- a/beat/backend/python/loader.py
+++ b/beat/backend/python/loader.py
@@ -82,7 +82,8 @@ def load_module(name, path, uses):
         retval.__dict__[k] = load_module(k, v['path'], v['uses'])
 
     # execute the module code on the context of previously import modules
-    exec(compile(open(path, "rb").read(), path, 'exec'), retval.__dict__)
+    with open(path, "rb") as f:
+      exec(compile(f.read(), path, 'exec'), retval.__dict__)
 
     return retval