From e10b2961161c3156543c0123cf2d7f86645b299f Mon Sep 17 00:00:00 2001
From: Yash Shah <yashshah0127@gmail.com>
Date: Wed, 18 Jan 2017 11:52:28 -0800
Subject: [PATCH] Python 2/3 import statements

---
 geomagio/Controller.py                     | 26 +++++++++++-----------
 geomagio/PlotTimeseriesFactory.py          |  4 +++-
 geomagio/StreamConverter.py                |  3 ++-
 geomagio/StreamTimeseriesFactory.py        |  3 ++-
 geomagio/TimeseriesFactory.py              |  8 ++++---
 geomagio/Util.py                           |  2 +-
 geomagio/__init__.py                       | 20 +++++++++--------
 geomagio/algorithm/AdjustedAlgorithm.py    |  4 +++-
 geomagio/algorithm/DeltaFAlgorithm.py      |  5 +++--
 geomagio/algorithm/SqDistAlgorithm.py      |  5 +++--
 geomagio/algorithm/XYZAlgorithm.py         |  5 +++--
 geomagio/algorithm/__init__.py             | 13 ++++++-----
 geomagio/binlog/BinLogFactory.py           |  3 ++-
 geomagio/binlog/BinLogWriter.py            |  2 +-
 geomagio/binlog/StreamBinLogFactory.py     |  3 ++-
 geomagio/binlog/__init__.py                |  7 +++---
 geomagio/edge/EdgeFactory.py               |  9 ++++----
 geomagio/edge/RawInputClient.py            |  4 ++--
 geomagio/edge/__init__.py                  |  7 +++---
 geomagio/iaga2002/IAGA2002Factory.py       |  5 +++--
 geomagio/iaga2002/IAGA2002Writer.py        |  5 +++--
 geomagio/iaga2002/StreamIAGA2002Factory.py |  3 ++-
 geomagio/iaga2002/__init__.py              |  9 ++++----
 geomagio/imfv122/IMFV122Factory.py         |  3 ++-
 geomagio/imfv122/StreamIMFV122Factory.py   |  3 ++-
 geomagio/imfv122/__init__.py               |  7 +++---
 geomagio/imfv283/GOESIMFV283Factory.py     |  3 ++-
 geomagio/imfv283/IMFV283Factory.py         |  3 ++-
 geomagio/imfv283/IMFV283Parser.py          |  4 +++-
 geomagio/imfv283/StreamIMFV283Factory.py   |  3 ++-
 geomagio/imfv283/__init__.py               |  9 ++++----
 geomagio/pcdcp/PCDCPFactory.py             |  5 +++--
 geomagio/pcdcp/PCDCPWriter.py              |  5 +++--
 geomagio/pcdcp/StreamPCDCPFactory.py       |  3 ++-
 geomagio/pcdcp/__init__.py                 |  9 ++++----
 geomagio/temperature/StreamTEMPFactory.py  |  3 ++-
 geomagio/temperature/TEMPFactory.py        |  3 ++-
 geomagio/temperature/TEMPWriter.py         |  2 +-
 geomagio/temperature/__init__.py           |  7 +++---
 geomagio/vbf/StreamVBFFactory.py           |  3 ++-
 geomagio/vbf/VBFFactory.py                 |  3 ++-
 geomagio/vbf/VBFWriter.py                  |  2 +-
 geomagio/vbf/__init__.py                   |  7 +++---
 43 files changed, 142 insertions(+), 100 deletions(-)

diff --git a/geomagio/Controller.py b/geomagio/Controller.py
index e923d231a..27a2e90d1 100644
--- a/geomagio/Controller.py
+++ b/geomagio/Controller.py
@@ -1,23 +1,23 @@
 """Controller class for geomag algorithms"""
-
+from __future__ import absolute_import
 
 import argparse
 import sys
 from obspy.core import Stream, UTCDateTime
-from algorithm import algorithms
-from PlotTimeseriesFactory import PlotTimeseriesFactory
-from StreamTimeseriesFactory import StreamTimeseriesFactory
-import TimeseriesUtility
+from .algorithm import algorithms
+from .PlotTimeseriesFactory import PlotTimeseriesFactory
+from .StreamTimeseriesFactory import StreamTimeseriesFactory
+from . import TimeseriesUtility
 
 # factory packages
-import binlog
-import edge
-import iaga2002
-import pcdcp
-import imfv122
-import imfv283
-import temperature
-import vbf
+from . import binlog
+from . import edge
+from . import iaga2002
+from . import pcdcp
+from . import imfv122
+from . import imfv283
+from . import temperature
+from . import vbf
 
 
 class Controller(object):
diff --git a/geomagio/PlotTimeseriesFactory.py b/geomagio/PlotTimeseriesFactory.py
index 040687239..b3be6cfe8 100644
--- a/geomagio/PlotTimeseriesFactory.py
+++ b/geomagio/PlotTimeseriesFactory.py
@@ -1,6 +1,8 @@
 """Abstract Timeseries Factory Interface."""
+from __future__ import absolute_import
+
 from obspy.core import Stream
-from TimeseriesFactory import TimeseriesFactory
+from .TimeseriesFactory import TimeseriesFactory
 
 
 class PlotTimeseriesFactory(TimeseriesFactory):
diff --git a/geomagio/StreamConverter.py b/geomagio/StreamConverter.py
index e352ebb53..f0ff48b64 100644
--- a/geomagio/StreamConverter.py
+++ b/geomagio/StreamConverter.py
@@ -6,10 +6,11 @@ Geo: Based on Geographic North.  X, Y, Z, F
 Obs: Based on the observatories orientaion. H, E, Z, F, d0
 Mag: Based on Magnetic North. H, D, Z, F
 """
+from __future__ import absolute_import
 
 import numpy
 import obspy.core
-import ChannelConverter
+from . import ChannelConverter
 
 
 def get_geo_from_mag(mag):
diff --git a/geomagio/StreamTimeseriesFactory.py b/geomagio/StreamTimeseriesFactory.py
index fb7f00ae1..77a4214ad 100644
--- a/geomagio/StreamTimeseriesFactory.py
+++ b/geomagio/StreamTimeseriesFactory.py
@@ -1,6 +1,7 @@
 """Stream wrapper for TimeseriesFactory."""
+from __future__ import absolute_import
 
-from TimeseriesFactory import TimeseriesFactory
+from .TimeseriesFactory import TimeseriesFactory
 
 
 class StreamTimeseriesFactory(TimeseriesFactory):
diff --git a/geomagio/TimeseriesFactory.py b/geomagio/TimeseriesFactory.py
index f46c728cc..1f29ed1da 100644
--- a/geomagio/TimeseriesFactory.py
+++ b/geomagio/TimeseriesFactory.py
@@ -1,11 +1,13 @@
 """Abstract Timeseries Factory Interface."""
+from __future__ import absolute_import
+
 import numpy
 import obspy.core
 import os
 import sys
-from TimeseriesFactoryException import TimeseriesFactoryException
-import TimeseriesUtility
-import Util
+from .TimeseriesFactoryException import TimeseriesFactoryException
+from . import TimeseriesUtility
+from . import Util
 
 
 class TimeseriesFactory(object):
diff --git a/geomagio/Util.py b/geomagio/Util.py
index 8efbeda30..e53d25c25 100644
--- a/geomagio/Util.py
+++ b/geomagio/Util.py
@@ -2,7 +2,7 @@ import pycurl
 import numpy
 import os
 from obspy.core import Stats, Trace
-from StringIO import StringIO
+from io import StringIO
 
 
 class ObjectView(object):
diff --git a/geomagio/__init__.py b/geomagio/__init__.py
index b61b5c801..e896583b7 100644
--- a/geomagio/__init__.py
+++ b/geomagio/__init__.py
@@ -1,16 +1,18 @@
 """
 Geomag Algorithm Module
 """
-import ChannelConverter
-import StreamConverter
+from __future__ import absolute_import
 
-from Controller import Controller
-from ObservatoryMetadata import ObservatoryMetadata
-from PlotTimeseriesFactory import PlotTimeseriesFactory
-from TimeseriesFactory import TimeseriesFactory
-from TimeseriesFactoryException import TimeseriesFactoryException
-import TimeseriesUtility
-import Util
+from . import ChannelConverter
+from . import StreamConverter
+
+from .Controller import Controller
+from .ObservatoryMetadata import ObservatoryMetadata
+from .PlotTimeseriesFactory import PlotTimeseriesFactory
+from .TimeseriesFactory import TimeseriesFactory
+from .TimeseriesFactoryException import TimeseriesFactoryException
+from . import TimeseriesUtility
+from . import Util
 
 __all__ = [
     'ChannelConverter',
diff --git a/geomagio/algorithm/AdjustedAlgorithm.py b/geomagio/algorithm/AdjustedAlgorithm.py
index 5e950a68c..5d91eb31b 100644
--- a/geomagio/algorithm/AdjustedAlgorithm.py
+++ b/geomagio/algorithm/AdjustedAlgorithm.py
@@ -2,7 +2,9 @@
     related geographic coordinate system, by using transformations generated
     from absolute, baseline measurements.
 """
-from Algorithm import Algorithm
+from __future__ import absolute_import
+
+from .Algorithm import Algorithm
 import json
 import numpy as np
 from obspy.core import Stream, Stats
diff --git a/geomagio/algorithm/DeltaFAlgorithm.py b/geomagio/algorithm/DeltaFAlgorithm.py
index 616c83d87..8541dbdcf 100644
--- a/geomagio/algorithm/DeltaFAlgorithm.py
+++ b/geomagio/algorithm/DeltaFAlgorithm.py
@@ -1,9 +1,10 @@
 """Algorithm that creates a deltaf
 
 """
+from __future__ import absolute_import
 
-from Algorithm import Algorithm
-from AlgorithmException import AlgorithmException
+from .Algorithm import Algorithm
+from .AlgorithmException import AlgorithmException
 from .. import StreamConverter
 
 # List of channels by geomagnetic observatory orientation.
diff --git a/geomagio/algorithm/SqDistAlgorithm.py b/geomagio/algorithm/SqDistAlgorithm.py
index d50c0b81e..faec56ab7 100644
--- a/geomagio/algorithm/SqDistAlgorithm.py
+++ b/geomagio/algorithm/SqDistAlgorithm.py
@@ -11,10 +11,11 @@
     Use of fmin_l_bfgs_b to estimate parameters inspired by Andre Queiroz:
         https://gist.github.com/andrequeiroz/5888967
 """
+from __future__ import absolute_import
 
 from .. import StreamConverter
-from Algorithm import Algorithm
-from AlgorithmException import AlgorithmException
+from .Algorithm import Algorithm
+from .AlgorithmException import AlgorithmException
 import json
 import numpy as np
 from obspy.core import Stream, UTCDateTime
diff --git a/geomagio/algorithm/XYZAlgorithm.py b/geomagio/algorithm/XYZAlgorithm.py
index 64d1e9158..92aa4585c 100644
--- a/geomagio/algorithm/XYZAlgorithm.py
+++ b/geomagio/algorithm/XYZAlgorithm.py
@@ -2,9 +2,10 @@
     related coordinate system.
 
 """
+from __future__ import absolute_import
 
-from Algorithm import Algorithm
-from AlgorithmException import AlgorithmException
+from .Algorithm import Algorithm
+from .AlgorithmException import AlgorithmException
 from .. import StreamConverter
 
 # List of channels by geomagnetic observatory orientation.
diff --git a/geomagio/algorithm/__init__.py b/geomagio/algorithm/__init__.py
index 2f95af0ea..2a6ac517a 100644
--- a/geomagio/algorithm/__init__.py
+++ b/geomagio/algorithm/__init__.py
@@ -1,15 +1,16 @@
 """
 Geomag Algorithms module
 """
+from __future__ import absolute_import
 
 # base classes
-from Algorithm import Algorithm
-from AlgorithmException import AlgorithmException
+from .Algorithm import Algorithm
+from .AlgorithmException import AlgorithmException
 # algorithms
-from AdjustedAlgorithm import AdjustedAlgorithm
-from DeltaFAlgorithm import DeltaFAlgorithm
-from SqDistAlgorithm import SqDistAlgorithm
-from XYZAlgorithm import XYZAlgorithm
+from .AdjustedAlgorithm import AdjustedAlgorithm
+from .DeltaFAlgorithm import DeltaFAlgorithm
+from .SqDistAlgorithm import SqDistAlgorithm
+from .XYZAlgorithm import XYZAlgorithm
 
 
 # algorithms is used by Controller to auto generate arguments
diff --git a/geomagio/binlog/BinLogFactory.py b/geomagio/binlog/BinLogFactory.py
index ee46eba85..dbe5b882f 100644
--- a/geomagio/binlog/BinLogFactory.py
+++ b/geomagio/binlog/BinLogFactory.py
@@ -1,7 +1,8 @@
 """Factory that creates BinLog Files."""
+from __future__ import absolute_import
 
 from ..TimeseriesFactory import TimeseriesFactory
-from BinLogWriter import BinLogWriter
+from .BinLogWriter import BinLogWriter
 
 
 class BinLogFactory(TimeseriesFactory):
diff --git a/geomagio/binlog/BinLogWriter.py b/geomagio/binlog/BinLogWriter.py
index ced87b800..abea776cd 100644
--- a/geomagio/binlog/BinLogWriter.py
+++ b/geomagio/binlog/BinLogWriter.py
@@ -1,6 +1,6 @@
 
 import numpy
-from cStringIO import StringIO
+from io import StringIO
 from datetime import datetime
 from .. import ChannelConverter, TimeseriesUtility
 from ..TimeseriesFactoryException import TimeseriesFactoryException
diff --git a/geomagio/binlog/StreamBinLogFactory.py b/geomagio/binlog/StreamBinLogFactory.py
index 6fda2de57..e915b2a4a 100644
--- a/geomagio/binlog/StreamBinLogFactory.py
+++ b/geomagio/binlog/StreamBinLogFactory.py
@@ -1,6 +1,7 @@
 """Factory to load BinLog files from an input StreamBinLogFactory."""
+from __future__ import absolute_import
 
-from BinLogFactory import BinLogFactory
+from .BinLogFactory import BinLogFactory
 
 
 class StreamBinLogFactory(BinLogFactory):
diff --git a/geomagio/binlog/__init__.py b/geomagio/binlog/__init__.py
index 533042e79..93132290a 100644
--- a/geomagio/binlog/__init__.py
+++ b/geomagio/binlog/__init__.py
@@ -1,9 +1,10 @@
 """IO Module for BinLog Format
 """
+from __future__ import absolute_import
 
-from BinLogFactory import BinLogFactory
-from StreamBinLogFactory import StreamBinLogFactory
-from BinLogWriter import BinLogWriter
+from .BinLogFactory import BinLogFactory
+from .StreamBinLogFactory import StreamBinLogFactory
+from .BinLogWriter import BinLogWriter
 
 
 __all__ = [
diff --git a/geomagio/edge/EdgeFactory.py b/geomagio/edge/EdgeFactory.py
index 7f9262c73..62875bf72 100644
--- a/geomagio/edge/EdgeFactory.py
+++ b/geomagio/edge/EdgeFactory.py
@@ -8,9 +8,10 @@ to take advantage of it's newer realtime abilities.
 
 Edge is the USGS earthquake hazard centers replacement for earthworm.
 """
+from __future__ import absolute_import
 
 import sys
-import StringIO
+from io import StringIO
 import numpy
 import numpy.ma
 import obspy.core
@@ -23,13 +24,13 @@ from datetime import datetime
 #     from obspy import earthworm
 
 # use local version of earthworm client to test memory leak fix
-import client as earthworm
+from . import client as earthworm
 
 from .. import ChannelConverter, TimeseriesUtility
 from ..TimeseriesFactory import TimeseriesFactory
 from ..TimeseriesFactoryException import TimeseriesFactoryException
 from ..ObservatoryMetadata import ObservatoryMetadata
-from RawInputClient import RawInputClient
+from .RawInputClient import RawInputClient
 
 
 class EdgeFactory(TimeseriesFactory):
@@ -140,7 +141,7 @@ class EdgeFactory(TimeseriesFactory):
         # need this until https://github.com/obspy/obspy/pull/1179
         # replace stdout
         original_stdout = sys.stdout
-        temp_stdout = StringIO.StringIO()
+        temp_stdout = StringIO()
         try:
             sys.stdout = temp_stdout
             # get the timeseries
diff --git a/geomagio/edge/RawInputClient.py b/geomagio/edge/RawInputClient.py
index d9bf23fc8..799099b20 100644
--- a/geomagio/edge/RawInputClient.py
+++ b/geomagio/edge/RawInputClient.py
@@ -222,7 +222,7 @@ class RawInputClient():
                 self._open_socket()
             self.socket.sendall(buf)
             self.sequence += 1
-        except socket.error, v:
+        except socket.error as v:
             error = 'Socket error %d' % v[0]
             sys.stderr.write(error)
             raise TimeseriesFactoryException(error)
@@ -412,7 +412,7 @@ class RawInputClient():
                 newsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                 newsocket.connect((self.host, self.port))
                 done = True
-            except socket.error, v:
+            except socket.error as v:
                 sys.stderr.write('Could not connect to socket, trying again')
                 sys.stderr.write('sockect error %d' % v[0])
                 sleep(1)
diff --git a/geomagio/edge/__init__.py b/geomagio/edge/__init__.py
index ba615d36c..589bc42bf 100644
--- a/geomagio/edge/__init__.py
+++ b/geomagio/edge/__init__.py
@@ -1,9 +1,10 @@
 """IO Module for Edge Format
 """
+from __future__ import absolute_import
 
-from EdgeFactory import EdgeFactory
-from LocationCode import LocationCode
-from RawInputClient import RawInputClient
+from .EdgeFactory import EdgeFactory
+from .LocationCode import LocationCode
+from .RawInputClient import RawInputClient
 
 __all__ = [
     'EdgeFactory',
diff --git a/geomagio/iaga2002/IAGA2002Factory.py b/geomagio/iaga2002/IAGA2002Factory.py
index cc575782d..b7f5f601e 100644
--- a/geomagio/iaga2002/IAGA2002Factory.py
+++ b/geomagio/iaga2002/IAGA2002Factory.py
@@ -1,10 +1,11 @@
 """Factory that loads IAGA2002 Files."""
+from __future__ import absolute_import
 
 import obspy.core
 from .. import ChannelConverter
 from ..TimeseriesFactory import TimeseriesFactory
-from IAGA2002Parser import IAGA2002Parser
-from IAGA2002Writer import IAGA2002Writer
+from .IAGA2002Parser import IAGA2002Parser
+from .IAGA2002Writer import IAGA2002Writer
 
 
 # pattern for iaga 2002 file names
diff --git a/geomagio/iaga2002/IAGA2002Writer.py b/geomagio/iaga2002/IAGA2002Writer.py
index b74bcc2be..5a1e2ce3a 100644
--- a/geomagio/iaga2002/IAGA2002Writer.py
+++ b/geomagio/iaga2002/IAGA2002Writer.py
@@ -1,12 +1,13 @@
+from __future__ import absolute_import
 
-from cStringIO import StringIO
+from io import StringIO
 from datetime import datetime
 import numpy
 import textwrap
 from .. import ChannelConverter, TimeseriesUtility
 from ..TimeseriesFactoryException import TimeseriesFactoryException
 from ..Util import create_empty_trace
-import IAGA2002Parser
+from . import IAGA2002Parser
 
 
 class IAGA2002Writer(object):
diff --git a/geomagio/iaga2002/StreamIAGA2002Factory.py b/geomagio/iaga2002/StreamIAGA2002Factory.py
index 7532aef0a..565a18183 100644
--- a/geomagio/iaga2002/StreamIAGA2002Factory.py
+++ b/geomagio/iaga2002/StreamIAGA2002Factory.py
@@ -1,6 +1,7 @@
 """Factory to load IAGA2002 files from an input StreamIAGA2002Factory."""
+from __future__ import absolute_import
 
-from IAGA2002Factory import IAGA2002Factory
+from .IAGA2002Factory import IAGA2002Factory
 
 
 class StreamIAGA2002Factory(IAGA2002Factory):
diff --git a/geomagio/iaga2002/__init__.py b/geomagio/iaga2002/__init__.py
index 5238db998..16f75d134 100644
--- a/geomagio/iaga2002/__init__.py
+++ b/geomagio/iaga2002/__init__.py
@@ -3,11 +3,12 @@
 Based on documentation at:
   http://www.ngdc.noaa.gov/IAGA/vdat/iagaformat.html
 """
+from __future__ import absolute_import
 
-from IAGA2002Factory import IAGA2002Factory
-from StreamIAGA2002Factory import StreamIAGA2002Factory
-from IAGA2002Parser import IAGA2002Parser
-from IAGA2002Writer import IAGA2002Writer
+from .IAGA2002Factory import IAGA2002Factory
+from .StreamIAGA2002Factory import StreamIAGA2002Factory
+from .IAGA2002Parser import IAGA2002Parser
+from .IAGA2002Writer import IAGA2002Writer
 
 
 __all__ = [
diff --git a/geomagio/imfv122/IMFV122Factory.py b/geomagio/imfv122/IMFV122Factory.py
index 667f124b3..294058f01 100644
--- a/geomagio/imfv122/IMFV122Factory.py
+++ b/geomagio/imfv122/IMFV122Factory.py
@@ -1,9 +1,10 @@
 """Factory that loads IMFV122 Files."""
+from __future__ import absolute_import
 
 import obspy.core
 from .. import ChannelConverter
 from ..TimeseriesFactory import TimeseriesFactory
-from IMFV122Parser import IMFV122Parser
+from .IMFV122Parser import IMFV122Parser
 
 
 class IMFV122Factory(TimeseriesFactory):
diff --git a/geomagio/imfv122/StreamIMFV122Factory.py b/geomagio/imfv122/StreamIMFV122Factory.py
index 4b60063d6..837082de3 100644
--- a/geomagio/imfv122/StreamIMFV122Factory.py
+++ b/geomagio/imfv122/StreamIMFV122Factory.py
@@ -1,6 +1,7 @@
 """Factory to load IMFV122 files from an input stream."""
+from __future__ import absolute_import
 
-from IMFV122Factory import IMFV122Factory
+from .IMFV122Factory import IMFV122Factory
 
 
 class StreamIMFV122Factory(IMFV122Factory):
diff --git a/geomagio/imfv122/__init__.py b/geomagio/imfv122/__init__.py
index 3b45ab11e..727ac7b80 100644
--- a/geomagio/imfv122/__init__.py
+++ b/geomagio/imfv122/__init__.py
@@ -3,10 +3,11 @@
 Based on documentation at:
   http://www.intermagnet.org/data-donnee/formats/imfv122-eng.php
 """
+from __future__ import absolute_import
 
-from IMFV122Factory import IMFV122Factory
-from IMFV122Parser import IMFV122Parser
-from StreamIMFV122Factory import StreamIMFV122Factory
+from .IMFV122Factory import IMFV122Factory
+from .IMFV122Parser import IMFV122Parser
+from .StreamIMFV122Factory import StreamIMFV122Factory
 
 
 __all__ = [
diff --git a/geomagio/imfv283/GOESIMFV283Factory.py b/geomagio/imfv283/GOESIMFV283Factory.py
index 137f74cdc..fc75ac42d 100644
--- a/geomagio/imfv283/GOESIMFV283Factory.py
+++ b/geomagio/imfv283/GOESIMFV283Factory.py
@@ -1,6 +1,7 @@
 """Factory to load IMFV283 files from an input StreamIMFV283Factory."""
+from __future__ import absolute_import
 
-from IMFV283Factory import IMFV283Factory
+from .IMFV283Factory import IMFV283Factory
 import subprocess
 import sys
 from obspy.core import Stream
diff --git a/geomagio/imfv283/IMFV283Factory.py b/geomagio/imfv283/IMFV283Factory.py
index effeec974..edd87fb06 100644
--- a/geomagio/imfv283/IMFV283Factory.py
+++ b/geomagio/imfv283/IMFV283Factory.py
@@ -1,9 +1,10 @@
 """Factory that loads IAGA2002 Files."""
+from __future__ import absolute_import
 
 import numpy
 from .. import ChannelConverter
 from ..TimeseriesFactory import TimeseriesFactory
-from IMFV283Parser import IMFV283Parser
+from .IMFV283Parser import IMFV283Parser
 from ..ObservatoryMetadata import ObservatoryMetadata
 
 
diff --git a/geomagio/imfv283/IMFV283Parser.py b/geomagio/imfv283/IMFV283Parser.py
index db7090336..32e83acba 100644
--- a/geomagio/imfv283/IMFV283Parser.py
+++ b/geomagio/imfv283/IMFV283Parser.py
@@ -1,11 +1,13 @@
 """Parsing methods for the IMFV283 Format."""
+from __future__ import absolute_import
+
 import math
 import numpy
 import sys
 import obspy
 from obspy.core import UTCDateTime
 
-import imfv283_codes
+from . import imfv283_codes
 
 # values that represent missing data points in IAGA2002
 DEAD_VALUE = 65535
diff --git a/geomagio/imfv283/StreamIMFV283Factory.py b/geomagio/imfv283/StreamIMFV283Factory.py
index d64b88638..21f46eea9 100644
--- a/geomagio/imfv283/StreamIMFV283Factory.py
+++ b/geomagio/imfv283/StreamIMFV283Factory.py
@@ -1,6 +1,7 @@
 """Factory to load IMFV283 files from an input StreamIMFV283Factory."""
+from __future__ import absolute_import
 
-from IMFV283Factory import IMFV283Factory
+from .IMFV283Factory import IMFV283Factory
 
 
 class StreamIMFV283Factory(IMFV283Factory):
diff --git a/geomagio/imfv283/__init__.py b/geomagio/imfv283/__init__.py
index d5d08ec63..8051ec49c 100644
--- a/geomagio/imfv283/__init__.py
+++ b/geomagio/imfv283/__init__.py
@@ -3,11 +3,12 @@
 Based on documentation at:
   http://http://www.intermagnet.org/data-donnee/formats/imfv283e-eng.php
 """
+from __future__ import absolute_import
 
-from GOESIMFV283Factory import GOESIMFV283Factory
-from IMFV283Factory import IMFV283Factory
-from StreamIMFV283Factory import StreamIMFV283Factory
-from IMFV283Parser import IMFV283Parser
+from .GOESIMFV283Factory import GOESIMFV283Factory
+from .IMFV283Factory import IMFV283Factory
+from .StreamIMFV283Factory import StreamIMFV283Factory
+from .IMFV283Parser import IMFV283Parser
 
 
 __all__ = [
diff --git a/geomagio/pcdcp/PCDCPFactory.py b/geomagio/pcdcp/PCDCPFactory.py
index 107d9bbe3..ad70d01ed 100644
--- a/geomagio/pcdcp/PCDCPFactory.py
+++ b/geomagio/pcdcp/PCDCPFactory.py
@@ -1,10 +1,11 @@
 """Factory that loads PCDCP Files."""
+from __future__ import absolute_import
 
 import obspy.core
 from .. import ChannelConverter
 from ..TimeseriesFactory import TimeseriesFactory
-from PCDCPParser import PCDCPParser
-from PCDCPWriter import PCDCPWriter
+from .PCDCPParser import PCDCPParser
+from .PCDCPWriter import PCDCPWriter
 
 
 # pattern for pcdcp file names
diff --git a/geomagio/pcdcp/PCDCPWriter.py b/geomagio/pcdcp/PCDCPWriter.py
index b8af9aeee..02c78ccb3 100644
--- a/geomagio/pcdcp/PCDCPWriter.py
+++ b/geomagio/pcdcp/PCDCPWriter.py
@@ -1,7 +1,8 @@
+from __future__ import absolute_import
 
 import numpy
-import PCDCPParser
-from cStringIO import StringIO
+from . import PCDCPParser
+from io import StringIO
 from datetime import datetime
 from .. import ChannelConverter, TimeseriesUtility
 from ..TimeseriesFactoryException import TimeseriesFactoryException
diff --git a/geomagio/pcdcp/StreamPCDCPFactory.py b/geomagio/pcdcp/StreamPCDCPFactory.py
index 312e9361c..c3561ef4a 100644
--- a/geomagio/pcdcp/StreamPCDCPFactory.py
+++ b/geomagio/pcdcp/StreamPCDCPFactory.py
@@ -1,6 +1,7 @@
 """Factory to load PCDCP files from an input StreamPCDCPFactory."""
+from __future__ import absolute_import
 
-from PCDCPFactory import PCDCPFactory
+from .PCDCPFactory import PCDCPFactory
 
 
 class StreamPCDCPFactory(PCDCPFactory):
diff --git a/geomagio/pcdcp/__init__.py b/geomagio/pcdcp/__init__.py
index c6759a39b..ef16c3ab6 100644
--- a/geomagio/pcdcp/__init__.py
+++ b/geomagio/pcdcp/__init__.py
@@ -1,10 +1,11 @@
 """IO Module for PCDCP Format
 """
+from __future__ import absolute_import
 
-from PCDCPFactory import PCDCPFactory
-from StreamPCDCPFactory import StreamPCDCPFactory
-from PCDCPParser import PCDCPParser
-from PCDCPWriter import PCDCPWriter
+from .PCDCPFactory import PCDCPFactory
+from .StreamPCDCPFactory import StreamPCDCPFactory
+from .PCDCPParser import PCDCPParser
+from .PCDCPWriter import PCDCPWriter
 
 
 __all__ = [
diff --git a/geomagio/temperature/StreamTEMPFactory.py b/geomagio/temperature/StreamTEMPFactory.py
index 58d4b7dca..4607d8c41 100644
--- a/geomagio/temperature/StreamTEMPFactory.py
+++ b/geomagio/temperature/StreamTEMPFactory.py
@@ -1,6 +1,7 @@
 """Factory to load temp/volt files from an input StreamTEMPFactory."""
+from __future__ import absolute_import
 
-from TEMPFactory import TEMPFactory
+from .TEMPFactory import TEMPFactory
 
 
 class StreamTEMPFactory(TEMPFactory):
diff --git a/geomagio/temperature/TEMPFactory.py b/geomagio/temperature/TEMPFactory.py
index 515e93d19..c0403a985 100644
--- a/geomagio/temperature/TEMPFactory.py
+++ b/geomagio/temperature/TEMPFactory.py
@@ -1,7 +1,8 @@
 """Factory that loads temp/volt Files."""
+from __future__ import absolute_import
 
 from ..TimeseriesFactory import TimeseriesFactory
-from TEMPWriter import TEMPWriter
+from .TEMPWriter import TEMPWriter
 
 
 # pattern for temp file names
diff --git a/geomagio/temperature/TEMPWriter.py b/geomagio/temperature/TEMPWriter.py
index 5df1b252a..f29cbedd9 100644
--- a/geomagio/temperature/TEMPWriter.py
+++ b/geomagio/temperature/TEMPWriter.py
@@ -1,6 +1,6 @@
 
 import numpy
-from cStringIO import StringIO
+from io import StringIO
 from datetime import datetime
 from .. import TimeseriesUtility
 from ..TimeseriesFactoryException import TimeseriesFactoryException
diff --git a/geomagio/temperature/__init__.py b/geomagio/temperature/__init__.py
index 81046e6ac..c5769f5da 100644
--- a/geomagio/temperature/__init__.py
+++ b/geomagio/temperature/__init__.py
@@ -1,9 +1,10 @@
 """IO Module for TEMP Format
 """
+from __future__ import absolute_import
 
-from TEMPFactory import TEMPFactory
-from StreamTEMPFactory import StreamTEMPFactory
-from TEMPWriter import TEMPWriter
+from .TEMPFactory import TEMPFactory
+from .StreamTEMPFactory import StreamTEMPFactory
+from .TEMPWriter import TEMPWriter
 
 
 __all__ = [
diff --git a/geomagio/vbf/StreamVBFFactory.py b/geomagio/vbf/StreamVBFFactory.py
index 100150b6e..ad02e5ced 100644
--- a/geomagio/vbf/StreamVBFFactory.py
+++ b/geomagio/vbf/StreamVBFFactory.py
@@ -1,6 +1,7 @@
 """Factory to load VBF files from an input StreamVBFFactory."""
+from __future__ import absolute_import
 
-from VBFFactory import VBFFactory
+from .VBFFactory import VBFFactory
 
 
 class StreamVBFFactory(VBFFactory):
diff --git a/geomagio/vbf/VBFFactory.py b/geomagio/vbf/VBFFactory.py
index 4c4d821ea..d708a3540 100644
--- a/geomagio/vbf/VBFFactory.py
+++ b/geomagio/vbf/VBFFactory.py
@@ -1,7 +1,8 @@
 """Factory that loads VBF Files."""
+from __future__ import absolute_import
 
 from ..TimeseriesFactory import TimeseriesFactory
-from VBFWriter import VBFWriter
+from .VBFWriter import VBFWriter
 
 
 # pattern for vbf file names
diff --git a/geomagio/vbf/VBFWriter.py b/geomagio/vbf/VBFWriter.py
index 45d9cc278..b7751b9a3 100644
--- a/geomagio/vbf/VBFWriter.py
+++ b/geomagio/vbf/VBFWriter.py
@@ -1,6 +1,6 @@
 
 import numpy
-from cStringIO import StringIO
+from io import StringIO
 from datetime import datetime
 from .. import ChannelConverter, TimeseriesUtility
 from ..TimeseriesFactoryException import TimeseriesFactoryException
diff --git a/geomagio/vbf/__init__.py b/geomagio/vbf/__init__.py
index 13d26cbef..59fc79065 100644
--- a/geomagio/vbf/__init__.py
+++ b/geomagio/vbf/__init__.py
@@ -1,9 +1,10 @@
 """IO Module for VBF Format
 """
+from __future__ import absolute_import
 
-from VBFFactory import VBFFactory
-from StreamVBFFactory import StreamVBFFactory
-from VBFWriter import VBFWriter
+from .VBFFactory import VBFFactory
+from .StreamVBFFactory import StreamVBFFactory
+from .VBFWriter import VBFWriter
 
 
 __all__ = [
-- 
GitLab