diff --git a/pvlib/atmosphere.py b/pvlib/atmosphere.py index ab4446a9c3..743010e398 100644 --- a/pvlib/atmosphere.py +++ b/pvlib/atmosphere.py @@ -3,8 +3,6 @@ absolute airmass and to determine pressure from altitude or vice versa. """ -from __future__ import division - from warnings import warn import numpy as np @@ -211,8 +209,7 @@ def get_relative_airmass(zenith, model='kastenyoung1989'): Sandia Report, (2012). ''' - # need to filter first because python 2.7 does not support raising a - # negative number to a negative power. + # set zenith values greater than 90 to nans z = np.where(zenith > 90, np.nan, zenith) zenith_rad = np.radians(z) diff --git a/pvlib/clearsky.py b/pvlib/clearsky.py index 6543244e30..0aa80129d9 100644 --- a/pvlib/clearsky.py +++ b/pvlib/clearsky.py @@ -3,8 +3,6 @@ to calculate clear sky GHI, DNI, and DHI. """ -from __future__ import division - import os from collections import OrderedDict import calendar diff --git a/pvlib/iotools/ecmwf_macc.py b/pvlib/iotools/ecmwf_macc.py index ef0ee2259c..4fa8ebd061 100644 --- a/pvlib/iotools/ecmwf_macc.py +++ b/pvlib/iotools/ecmwf_macc.py @@ -2,7 +2,6 @@ Read data from ECMWF MACC Reanalysis. """ -from __future__ import division import threading import pandas as pd diff --git a/pvlib/iotools/epw.py b/pvlib/iotools/epw.py index 6b6c5ddd2d..4a714d0f2d 100644 --- a/pvlib/iotools/epw.py +++ b/pvlib/iotools/epw.py @@ -3,13 +3,7 @@ """ import io - -try: - # python 2 compatibility - from urllib2 import urlopen, Request -except ImportError: - from urllib.request import urlopen, Request - +from urllib.request import urlopen, Request import pandas as pd diff --git a/pvlib/iotools/psm3.py b/pvlib/iotools/psm3.py index 560a259962..caa7ee9813 100644 --- a/pvlib/iotools/psm3.py +++ b/pvlib/iotools/psm3.py @@ -7,11 +7,7 @@ import io import requests import pandas as pd -# Python-2 compatible JSONDecodeError -try: - from json import JSONDecodeError -except ImportError: - JSONDecodeError = ValueError +from json import JSONDecodeError URL = "http://developer.nrel.gov/api/solar/nsrdb_psm3_download.csv" diff --git a/pvlib/iotools/surfrad.py b/pvlib/iotools/surfrad.py index 503b9da732..22e451cfeb 100644 --- a/pvlib/iotools/surfrad.py +++ b/pvlib/iotools/surfrad.py @@ -2,13 +2,7 @@ Import functions for NOAA SURFRAD Data. """ import io - -try: - # python 2 compatibility - from urllib2 import urlopen, Request -except ImportError: - from urllib.request import urlopen, Request - +from urllib.request import urlopen, Request import pandas as pd import numpy as np diff --git a/pvlib/iotools/tmy.py b/pvlib/iotools/tmy.py index 9c5ba9e9ca..a3860c352d 100644 --- a/pvlib/iotools/tmy.py +++ b/pvlib/iotools/tmy.py @@ -5,13 +5,7 @@ import datetime import io import re - -try: - # python 2 compatibility - from urllib2 import urlopen, Request -except ImportError: - from urllib.request import urlopen, Request - +from urllib.request import urlopen, Request import dateutil import pandas as pd @@ -160,7 +154,7 @@ def read_tmy3(filename=None, coerce_year=None, recolumn=True): try: filename = _interactive_load() except ImportError: - raise ImportError('Interactive load failed. Tkinter not supported ' + raise ImportError('Interactive load failed. tkinter not supported ' 'on this system. Try installing X-Quartz and ' 'reloading') @@ -210,9 +204,9 @@ def read_tmy3(filename=None, coerce_year=None, recolumn=True): def _interactive_load(): - import Tkinter - from tkFileDialog import askopenfilename - Tkinter.Tk().withdraw() # Start interactive file input + import tkinter + from tkinter.filedialog import askopenfilename + tkinter.Tk().withdraw() # Start interactive file input return askopenfilename() @@ -406,7 +400,7 @@ def read_tmy2(filename): try: filename = _interactive_load() except ImportError: - raise ImportError('Interactive load failed. Tkinter not supported ' + raise ImportError('Interactive load failed. tkinter not supported ' 'on this system. Try installing X-Quartz and ' 'reloading') diff --git a/pvlib/irradiance.py b/pvlib/irradiance.py index 000cf3216c..494d13be5a 100644 --- a/pvlib/irradiance.py +++ b/pvlib/irradiance.py @@ -4,8 +4,6 @@ irradiance, and total irradiance under various conditions. """ -from __future__ import division - import datetime from collections import OrderedDict from functools import partial diff --git a/pvlib/pvsystem.py b/pvlib/pvsystem.py index 35701bd3a2..c3aab0147e 100644 --- a/pvlib/pvsystem.py +++ b/pvlib/pvsystem.py @@ -3,16 +3,10 @@ performance of PV modules and inverters. """ -from __future__ import division - from collections import OrderedDict import io import os -try: - from urllib2 import urlopen -except ImportError: - from urllib.request import urlopen - +from urllib.request import urlopen import numpy as np import pandas as pd @@ -1632,14 +1626,8 @@ def retrieve_sam(name=None, path=None): else: csvdata = path elif name is None and path is None: - try: - # python 2 - import Tkinter as tkinter - from tkFileDialog import askopenfilename - except ImportError: - # python 3 - import tkinter - from tkinter.filedialog import askopenfilename + import tkinter + from tkinter.filedialog import askopenfilename tkinter.Tk().withdraw() csvdata = askopenfilename() diff --git a/pvlib/solarposition.py b/pvlib/solarposition.py index d55737040b..be7f33aefa 100644 --- a/pvlib/solarposition.py +++ b/pvlib/solarposition.py @@ -8,7 +8,6 @@ # Tony Lorenzo (@alorenzo175), University of Arizona, 2015 # Cliff hansen (@cwhanse), Sandia National Laboratories, 2018 -from __future__ import division import os import datetime as dt try: diff --git a/pvlib/spa.py b/pvlib/spa.py index 3a44a2efed..6c99a03f0c 100644 --- a/pvlib/spa.py +++ b/pvlib/spa.py @@ -6,7 +6,6 @@ # Contributors: # Created by Tony Lorenzo (@alorenzo175), Univ. of Arizona, 2015 -from __future__ import division import os import threading import warnings diff --git a/pvlib/test/conftest.py b/pvlib/test/conftest.py index e91adb8689..d26ff00f4b 100644 --- a/pvlib/test/conftest.py +++ b/pvlib/test/conftest.py @@ -41,8 +41,6 @@ def inner(): data_dir = os.path.join(test_dir, os.pardir, 'data') -has_python2 = parse_version(platform.python_version()) < parse_version('3') - platform_is_windows = platform.system() == 'Windows' skip_windows = pytest.mark.skipif(platform_is_windows, reason='does not run on windows') diff --git a/pvlib/test/test_conftest.py b/pvlib/test/test_conftest.py index e2a836537c..14cc7e5d79 100644 --- a/pvlib/test/test_conftest.py +++ b/pvlib/test/test_conftest.py @@ -1,10 +1,9 @@ import pytest -from conftest import fail_on_pvlib_version, platform_is_windows, has_python2 +from conftest import fail_on_pvlib_version -# allow xpass for python 2 on windows -@pytest.mark.xfail(strict=(not (platform_is_windows and has_python2)), +@pytest.mark.xfail(strict=True, reason='fail_on_pvlib_version should cause test to fail') @fail_on_pvlib_version('0.0') def test_fail_on_pvlib_version(): @@ -16,8 +15,7 @@ def test_fail_on_pvlib_version_pass(): pass -@pytest.mark.xfail(strict=(not (platform_is_windows and has_python2)), - reason='ensure that the test is called') +@pytest.mark.xfail(strict=True, reason='ensure that the test is called') @fail_on_pvlib_version('100000.0') def test_fail_on_pvlib_version_fail_in_test(): raise Exception diff --git a/pvlib/test/test_ecmwf_macc.py b/pvlib/test/test_ecmwf_macc.py index de0e389403..8823b789e5 100644 --- a/pvlib/test/test_ecmwf_macc.py +++ b/pvlib/test/test_ecmwf_macc.py @@ -2,7 +2,6 @@ tests for :mod:`pvlib.iotools.ecmwf_macc` """ -from __future__ import division import os import datetime import numpy as np diff --git a/pvlib/tracking.py b/pvlib/tracking.py index f81b0e8571..9859022bc4 100644 --- a/pvlib/tracking.py +++ b/pvlib/tracking.py @@ -1,5 +1,3 @@ -from __future__ import division - import numpy as np import pandas as pd