Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove py27 CI jobs #24942

Merged
merged 59 commits into from Mar 17, 2019
Merged
Show file tree
Hide file tree
Changes from 26 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
7966035
Remove py27 CI jobs
h-vetinari Jan 26, 2019
b224cd6
Remove jinja-pin for 3.7 build
h-vetinari Jan 26, 2019
aac2192
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 1, 2019
b88b87d
Reflect renamed file names in CI config / scripts
h-vetinari Feb 1, 2019
fdc0035
fix travis.yml
h-vetinari Feb 2, 2019
5de5d5f
Fix azure builds
h-vetinari Feb 2, 2019
dcccd6e
Update minimal versions to make env resolution possible
h-vetinari Feb 2, 2019
5588fbd
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 3, 2019
a01f50e
More dep resolutions
h-vetinari Feb 3, 2019
19ff3a5
Try if bumping pymysql/xlsxwriter solves failures
h-vetinari Feb 3, 2019
835679e
fix naming of azure jobs
h-vetinari Feb 3, 2019
7827b71
Unpin pymysql/xlsxwriter in affected builds to check...
h-vetinari Feb 3, 2019
8d390df
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 3, 2019
e41689f
temp fix to ease discussion: xfail failing tests
h-vetinari Feb 3, 2019
0c50978
One last test & non-strict xfail
h-vetinari Feb 3, 2019
8292752
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 3, 2019
4d5c3c8
non-strict xfail for flaky test
h-vetinari Feb 3, 2019
e641585
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 17, 2019
b32f434
Unpin moto
h-vetinari Feb 17, 2019
eae4308
Retrigger after connectivity issues
h-vetinari Feb 17, 2019
7e3c14e
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 17, 2019
e9f7619
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 19, 2019
6fdfe91
Changes in azure-pipelines.yml and tox.ini inspired by #25217
h-vetinari Feb 19, 2019
3052e35
Correct issue reference for other whatsnew
h-vetinari Feb 19, 2019
eba9941
mixed up sections
h-vetinari Feb 19, 2019
12ccef3
Retrigger Azure jobs
h-vetinari Feb 19, 2019
a24f21d
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Feb 20, 2019
59857dc
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 4, 2019
6628284
Merge whatsnew min-ver-sections
h-vetinari Mar 4, 2019
6940171
Shift pytest to pip-section (resolution error)
h-vetinari Mar 4, 2019
c600ca3
Add comment
h-vetinari Mar 4, 2019
ee045e9
Shift pytest to pip-section also for travis-job
h-vetinari Mar 4, 2019
9c94cb6
Move s3fs (and thus boto) to pip section
h-vetinari Mar 4, 2019
52e40eb
Fix two remaining failures
h-vetinari Mar 4, 2019
150e459
Retrigger
h-vetinari Mar 5, 2019
523a73f
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 5, 2019
5403c2b
Move moto/s3fs back to conda
h-vetinari Mar 5, 2019
cff7893
Fix err msg regexes
h-vetinari Mar 6, 2019
23641af
Fix install.rst
h-vetinari Mar 6, 2019
a655272
Lint
h-vetinari Mar 6, 2019
916c2cf
More lint
h-vetinari Mar 6, 2019
253ed59
Fix regex again
h-vetinari Mar 6, 2019
c172aec
Fix readme
h-vetinari Mar 6, 2019
09e2f10
Better error message regex
h-vetinari Mar 6, 2019
8feb448
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 13, 2019
31dec98
Small fixes
h-vetinari Mar 13, 2019
e3ec04e
Actually commit conflict resolution
h-vetinari Mar 13, 2019
5cdecf8
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 13, 2019
b1e0025
Try fix install error
h-vetinari Mar 13, 2019
a7c9a18
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 14, 2019
aedcdf8
Update deps of doc-job
h-vetinari Mar 14, 2019
93c6be4
Trivial diff clean-up to retrigger
h-vetinari Mar 14, 2019
d63830a
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 14, 2019
979341a
Review (jreback)
h-vetinari Mar 14, 2019
d3a50e0
Tentatively remove xfails
h-vetinari Mar 14, 2019
f7492d4
Tentatively revert regex fixes
h-vetinari Mar 14, 2019
2632664
Remove all former PY2 jobs (review jreback)
h-vetinari Mar 15, 2019
c159cfa
Merge remote-tracking branch 'upstream/master' into drop_py2_ci
h-vetinari Mar 15, 2019
fe83f86
Remove tox.ini
h-vetinari Mar 15, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 1 addition & 2 deletions .travis.yml
@@ -1,6 +1,5 @@
sudo: false
language: python
# Default Python version is usually 2.7
python: 3.5

# To turn off cached cython files and compiler cache
Expand Down Expand Up @@ -38,7 +37,7 @@ matrix:

- dist: trusty
env:
- JOB="2.7" ENV_FILE="ci/deps/travis-27.yaml" PATTERN="(not slow or (single and db))"
- JOB="3.5" ENV_FILE="ci/deps/travis-35.yaml" PATTERN="(not slow or (single and db))"
addons:
apt:
packages:
Expand Down
1 change: 0 additions & 1 deletion azure-pipelines.yml
Expand Up @@ -10,7 +10,6 @@ jobs:
name: Linux
vmImage: ubuntu-16.04

# Windows Python 2.7 needs VC 9.0 installed, handled in the template
- template: ci/azure/windows.yml
parameters:
name: Windows
Expand Down
14 changes: 7 additions & 7 deletions ci/azure/posix.yml
Expand Up @@ -9,20 +9,20 @@ jobs:
strategy:
matrix:
${{ if eq(parameters.name, 'macOS') }}:
py35_np_120:
py35_macos:
ENV_FILE: ci/deps/azure-macos-35.yaml
CONDA_PY: "35"
PATTERN: "not slow and not network"

${{ if eq(parameters.name, 'Linux') }}:
py27_np_120:
ENV_FILE: ci/deps/azure-27-compat.yaml
CONDA_PY: "27"
py35_compat:
ENV_FILE: ci/deps/azure-35-compat.yaml
CONDA_PY: "35"
PATTERN: "not slow and not network"

py27_locale_slow_old_np:
ENV_FILE: ci/deps/azure-27-locale.yaml
CONDA_PY: "27"
py36_locale_slow_old_np:
ENV_FILE: ci/deps/azure-36-locale.yaml
CONDA_PY: "36"
PATTERN: "slow"
LOCALE_OVERRIDE: "zh_CN.UTF-8"
EXTRA_APT: "language-pack-zh-hans"
Expand Down
13 changes: 3 additions & 10 deletions ci/azure/windows.yml
Expand Up @@ -12,23 +12,16 @@ jobs:
ENV_FILE: ci/deps/azure-windows-36.yaml
CONDA_PY: "36"

py27_np121:
ENV_FILE: ci/deps/azure-windows-27.yaml
CONDA_PY: "27"
py37_np141:
ENV_FILE: ci/deps/azure-windows-37.yaml
CONDA_PY: "37"

steps:
- task: CondaEnvironment@1
inputs:
updateConda: no
packageSpecs: ''

- powershell: |
$wc = New-Object net.webclient
$wc.Downloadfile("https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi", "VCForPython27.msi")
Start-Process "VCForPython27.msi" /qn -Wait
displayName: 'Install VC 9.0 only for Python 2.7'
condition: eq(variables.CONDA_PY, '27')

- script: |
ci\\incremental\\setup_conda_environment.cmd
displayName: 'Before Install'
Expand Down
14 changes: 7 additions & 7 deletions ci/deps/azure-27-compat.yaml → ci/deps/azure-35-compat.yaml
Expand Up @@ -3,25 +3,25 @@ channels:
- defaults
- conda-forge
dependencies:
- beautifulsoup4==4.4.1
- bottleneck=1.2.0
- cython=0.28.2
- hypothesis>=3.58.0
- jinja2=2.8
- numexpr=2.6.1
- numpy=1.12.0
- openpyxl=2.5.5
- openpyxl=2.2.6
- pytables=3.4.2
- python-dateutil=2.5.0
- python=2.7*
- pytz=2013b
- python=3.5*
- pytz=2015.4
- scipy=0.18.1
- xlrd=1.0.0
- xlsxwriter=0.5.2
- xlwt=0.7.5
- xlsxwriter=0.7.7
- xlwt=1.0.0
jreback marked this conversation as resolved.
Show resolved Hide resolved
# universal
- pytest
- pytest-xdist
- pytest-mock
- pip:
- html5lib==1.0b2
- beautifulsoup4==4.2.1
- hypothesis>=3.58.0
13 changes: 6 additions & 7 deletions ci/deps/azure-27-locale.yaml → ci/deps/azure-36-locale.yaml
Expand Up @@ -3,6 +3,7 @@ channels:
- defaults
- conda-forge
dependencies:
- beautifulsoup4==4.5.1
- bottleneck=1.2.0
- cython=0.28.2
- lxml
Expand All @@ -11,19 +12,17 @@ dependencies:
- openpyxl=2.4.0
- python-dateutil
- python-blosc
- python=2.7
- pytz
- pytz=2013b
- python=3.6
- pytz=2016.10
- scipy
- sqlalchemy=0.8.1
- sqlalchemy=1.1.4
jreback marked this conversation as resolved.
Show resolved Hide resolved
- xlrd=1.0.0
- xlsxwriter=0.5.2
- xlwt=0.7.5
- xlsxwriter=0.9.4
- xlwt=1.2.0
# universal
- pytest
- pytest-xdist
- pytest-mock
- hypothesis>=3.58.0
- pip:
- html5lib==1.0b2
- beautifulsoup4==4.2.1
2 changes: 1 addition & 1 deletion ci/deps/azure-windows-36.yaml
Expand Up @@ -15,7 +15,7 @@ dependencies:
- pyarrow
- pytables
- python-dateutil
- python=3.6.6
- python=3.6.*
- pytz
- scipy
- xlrd
Expand Down
10 changes: 5 additions & 5 deletions ci/deps/azure-windows-27.yaml → ci/deps/azure-windows-37.yaml
Expand Up @@ -5,17 +5,17 @@ channels:
dependencies:
- beautifulsoup4
- bottleneck
- dateutil
- gcsfs
- html5lib
- jinja2=2.8
- jinja2
- lxml
- matplotlib=2.0.1
- matplotlib=3.0.1
jreback marked this conversation as resolved.
Show resolved Hide resolved
- numexpr
- numpy=1.12*
- numpy=1.14.*
- openpyxl
- pytables
- python=2.7.*
- python=3.7.*
- python-dateutil
- pytz
- s3fs
- scipy
Expand Down
17 changes: 8 additions & 9 deletions ci/deps/travis-27.yaml → ci/deps/travis-35.yaml
Expand Up @@ -6,11 +6,9 @@ dependencies:
- beautifulsoup4
- bottleneck
- cython=0.28.2
- fastparquet>=0.2.1
- gcsfs
- html5lib
- ipython
- jemalloc=4.5.0.post
- jinja2=2.8
- lxml
- matplotlib=2.2.2
Expand All @@ -24,27 +22,28 @@ dependencies:
- py
- pyarrow=0.9.0
- PyCrypto
- pymysql=0.6.3
- pymysql=0.6.6
- pytables
- blosc=1.14.3
- python-blosc
- python-dateutil=2.5.0
- python=2.7*
- pytz=2013b
- python=3.5*
- pytz=2015.4
- s3fs
- scipy
- sqlalchemy=0.9.6
- sqlalchemy=1.0.8
- xarray=0.9.6
- xlrd=1.0.0
- xlsxwriter=0.5.2
- xlwt=0.7.5
- xlsxwriter=0.7.7
- xlwt=1.0.0
# universal
- pytest
- pytest-xdist
- pytest-mock
- moto==1.3.4
- hypothesis>=3.58.0
- pip:
- backports.lzma
- fastparquet>=0.2.1
- moto
- pandas-gbq
- pathlib
4 changes: 2 additions & 2 deletions ci/run_with_env.cmd
@@ -1,5 +1,5 @@
:: EXPECTED ENV VARS: PYTHON_ARCH (either x86 or x64)
:: CONDA_PY (either 27, 33, 35 etc. - only major version is extracted)
:: CONDA_PY (either 35, 36 etc. - only major version is extracted)
::
::
:: To build extensions for 64 bit Python 3, we need to configure environment
Expand Down Expand Up @@ -45,7 +45,7 @@ SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
SET MAJOR_PYTHON_VERSION=%CONDA_PY:~0,1%

IF "%CONDA_PY:~2,1%" == "" (
:: CONDA_PY style, such as 27, 34 etc.
:: CONDA_PY style, such as 36, 37 etc.
SET MINOR_PYTHON_VERSION=%CONDA_PY:~1,1%
) ELSE (
IF "%CONDA_PY:~3,1%" == "." (
Expand Down
28 changes: 27 additions & 1 deletion doc/source/whatsnew/v0.25.0.rst
Expand Up @@ -28,7 +28,33 @@ Other Enhancements
Backwards incompatible API changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- :meth:`Timestamp.strptime` will now rise a NotImplementedError (:issue:`21257`)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed a typo here ("rise" -> "raise"), which is why the diff shifts it down

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, the typo was not the only error here. The issue should be #25016, PR was #25124.

Might be worth fixing separately, but I've also fixed it here.

@jreback @mroeschke @saurav2608

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@h-vetinari - thanks. I will correct it independent of this.

- :meth:`Timestamp.strptime` will now raise a NotImplementedError (:issue:`25016`)

.. _whatsnew_0250.api_breaking.deps:

Dependencies have increased minimum versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Due to dropping support for Python 2.7, a number of optional dependencies have updated
minimum versions. If installed, we now require:

+-----------------+-----------------+----------+
| Package | Minimum Version | Required |
+=================+=================+==========+
| beautifulsoup4 | 4.4.1 | |
+-----------------+-----------------+----------+
| openpyxl | 2.2.6 | |
jreback marked this conversation as resolved.
Show resolved Hide resolved
+-----------------+-----------------+----------+
| pymysql | 0.6.6 | |
+-----------------+-----------------+----------+
| pytz | 2015.4 | |
+-----------------+-----------------+----------+
| sqlalchemy | 1.0.8 | |
+-----------------+-----------------+----------+
| xlsxwriter | 0.7.7 | |
+-----------------+-----------------+----------+
| xlwt | 1.0.0 | |
+-----------------+-----------------+----------+

.. _whatsnew_0250.api.other:

Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/io/test_excel.py
Expand Up @@ -10,7 +10,7 @@
from numpy import nan
import pytest

from pandas.compat import PY36, BytesIO, iteritems, map, range, u
from pandas.compat import PY35, PY36, BytesIO, iteritems, map, range, u
import pandas.util._test_decorators as td

import pandas as pd
Expand Down Expand Up @@ -2182,6 +2182,8 @@ def test_write_cells_merge_styled(self, merge_cells, ext, engine):
assert xcell_b1.font == openpyxl_sty_merged
assert xcell_a2.font == openpyxl_sty_merged

@pytest.mark.xfail(PY35 and not PY36, reason='only fails on Linux?',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this changing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because I wasn't able to make this test work on PY35 regardless of the versions I tried.

strict=False)
@pytest.mark.parametrize("mode,expected", [
('w', ['baz']), ('a', ['foo', 'bar', 'baz'])])
def test_write_append_mode(self, merge_cells, ext, engine, mode, expected):
Expand Down
7 changes: 6 additions & 1 deletion pandas/tests/io/test_sql.py
Expand Up @@ -28,7 +28,7 @@
import pytest

import pandas.compat as compat
from pandas.compat import PY36, lrange, range, string_types
from pandas.compat import PY35, PY36, lrange, range, string_types

from pandas.core.dtypes.common import (
is_datetime64_dtype, is_datetime64tz_dtype)
Expand Down Expand Up @@ -935,6 +935,7 @@ def test_read_sql_delegate(self):
iris_frame2 = sql.read_sql('iris', self.conn)
tm.assert_frame_equal(iris_frame1, iris_frame2)

@pytest.mark.xfail(PY35 and not PY36, reason='too many warnings?')
def test_not_reflect_all_tables(self):
# create invalid table
qry = """CREATE TABLE invalid (x INTEGER, y UNKNOWN);"""
Expand All @@ -951,6 +952,7 @@ def test_not_reflect_all_tables(self):
# Verify some things
assert len(w) == 0

@pytest.mark.xfail(PY35 and not PY36, reason='too many warnings?')
def test_warning_case_insensitive_table_name(self):
# see gh-7815
#
Expand Down Expand Up @@ -1781,6 +1783,7 @@ def test_default_date_load(self):
# IMPORTANT - sqlite has no native date type, so shouldn't parse, but
assert not issubclass(df.DateCol.dtype.type, np.datetime64)

@pytest.mark.xfail(PY35 and not PY36, reason='too many warnings?')
def test_bigint_warning(self):
# test no warning for BIGINT (to support int64) is raised (GH7433)
df = DataFrame({'a': [1, 2]}, dtype='int64')
Expand Down Expand Up @@ -1827,6 +1830,8 @@ def test_default_type_conversion(self):
# Bool column with NA = int column with NA values => becomes float
assert issubclass(df.BoolColWithNull.dtype.type, np.floating)

@pytest.mark.xfail(PY35 and not PY36, reason='unkown; also flaky',
strict=False)
def test_read_procedure(self):
import pymysql
# see GH7324. Although it is more an api test, it is added to the
Expand Down
34 changes: 3 additions & 31 deletions tox.ini
Expand Up @@ -4,14 +4,14 @@
# and then run "tox" from this directory.

[tox]
envlist = py27, py35, py36
envlist = py35, py36, py37

[testenv]
deps =
cython
nose
pytest
pytz>=2011k
pytz>=2015.4
python-dateutil
beautifulsoup4
lxml
Expand Down Expand Up @@ -43,40 +43,12 @@ commands =
# tox should provide a preinstall-commands hook.
pip uninstall pandas -qy

[testenv:py27]
deps =
numpy==1.8.1
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been in an unrunnable state since a looooong time (more than 2 years, #15206)

boto
bigquery
{[testenv]deps}

[testenv:py35]
deps =
numpy==1.10.0
numpy==1.12.0
{[testenv]deps}

[testenv:py36]
deps =
numpy
{[testenv]deps}

[testenv:openpyxl1]
usedevelop = True
deps =
{[testenv]deps}
openpyxl<2.0.0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for this one.

commands = {envbindir}/pytest {toxinidir}/pandas/io/tests/test_excel.py

[testenv:openpyxl20]
usedevelop = True
deps =
{[testenv]deps}
openpyxl<2.2.0
commands = {envbindir}/pytest {posargs} {toxinidir}/pandas/io/tests/test_excel.py

[testenv:openpyxl22]
usedevelop = True
deps =
{[testenv]deps}
openpyxl>=2.2.0
commands = {envbindir}/pytest {posargs} {toxinidir}/pandas/io/tests/test_excel.py