Skip to content

Commit 8780076

Browse files
committed
Merge branch 'master' into excel_style
2 parents 96680f9 + ca8ef49 commit 8780076

File tree

466 files changed

+18829
-13733
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

466 files changed

+18829
-13733
lines changed

.github/PULL_REQUEST_TEMPLATE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
- [ ] closes #xxxx
22
- [ ] tests added / passed
3-
- [ ] passes ``git diff upstream/master | flake8 --diff``
3+
- [ ] passes ``git diff upstream/master --name-only -- '*.py' | flake8 --diff``
44
- [ ] whatsnew entry

.travis.yml

+48-143
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
sudo: false
22
language: python
3+
# Default Python version is usually 2.7
4+
python: 3.5
35

4-
# To turn off cached miniconda, cython files and compiler cache comment out the
5-
# USE_CACHE=true line for the build in the matrix below. To delete caches go to
6-
# https://travis-ci.org/OWNER/REPOSITORY/caches or run
6+
# To turn off cached cython files and compiler cache
7+
# set NOCACHE-true
8+
# To delete caches go to https://travis-ci.org/OWNER/REPOSITORY/caches or run
79
# travis cache --delete inside the project directory from the travis command line client
810
# The cash directories will be deleted if anything in ci/ changes in a commit
911
cache:
12+
ccache: true
1013
directories:
11-
- $HOME/miniconda # miniconda cache
1214
- $HOME/.cache # cython cache
1315
- $HOME/.ccache # compiler cache
1416

@@ -24,188 +26,88 @@ git:
2426

2527
matrix:
2628
fast_finish: true
29+
exclude:
30+
# Exclude the default Python 3.5 build
31+
- python: 3.5
2732
include:
28-
- language: objective-c
29-
os: osx
30-
compiler: clang
31-
osx_image: xcode6.4
33+
- os: osx
34+
language: generic
3235
env:
33-
- PYTHON_VERSION=3.5
34-
- JOB_NAME: "35_osx"
35-
- TEST_ARGS="--skip-slow --skip-network"
36-
- BUILD_TYPE=conda
37-
- JOB_TAG=_OSX
38-
- TRAVIS_PYTHON_VERSION=3.5
39-
- CACHE_NAME="35_osx"
40-
- USE_CACHE=true
41-
- python: 2.7
36+
- JOB="3.5_OSX" TEST_ARGS="--skip-slow --skip-network"
37+
- os: linux
4238
env:
43-
- PYTHON_VERSION=2.7
44-
- JOB_NAME: "27_slow_nnet_LOCALE"
45-
- TEST_ARGS="--only-slow --skip-network"
46-
- LOCALE_OVERRIDE="zh_CN.UTF-8"
47-
- FULL_DEPS=true
48-
- JOB_TAG=_LOCALE
49-
- CACHE_NAME="27_slow_nnet_LOCALE"
50-
- USE_CACHE=true
39+
- JOB="2.7_LOCALE" TEST_ARGS="--only-slow --skip-network" LOCALE_OVERRIDE="zh_CN.UTF-8"
5140
addons:
5241
apt:
5342
packages:
5443
- language-pack-zh-hans
55-
- python: 2.7
44+
- os: linux
5645
env:
57-
- PYTHON_VERSION=2.7
58-
- JOB_NAME: "27_nslow"
59-
- TEST_ARGS="--skip-slow"
60-
- FULL_DEPS=true
61-
- CLIPBOARD_GUI=gtk2
62-
- LINT=true
63-
- CACHE_NAME="27_nslow"
64-
- USE_CACHE=true
46+
- JOB="2.7" TEST_ARGS="--skip-slow" LINT=true
6547
addons:
6648
apt:
6749
packages:
6850
- python-gtk2
69-
- python: 3.5
51+
- os: linux
7052
env:
71-
- PYTHON_VERSION=3.5
72-
- JOB_NAME: "35_nslow"
73-
- TEST_ARGS="--skip-slow --skip-network"
74-
- FULL_DEPS=true
75-
- CLIPBOARD=xsel
76-
- COVERAGE=true
77-
- CACHE_NAME="35_nslow"
78-
# - USE_CACHE=true # Don't use cache for 35_nslow
53+
- JOB="3.5" TEST_ARGS="--skip-slow --skip-network" COVERAGE=true
7954
addons:
8055
apt:
8156
packages:
8257
- xsel
83-
- python: 3.6
58+
- os: linux
8459
env:
85-
- PYTHON_VERSION=3.6
86-
- JOB_NAME: "36"
87-
- TEST_ARGS="--skip-slow --skip-network"
88-
- PANDAS_TESTING_MODE="deprecate"
89-
addons:
90-
apt:
91-
packages:
92-
- libatlas-base-dev
93-
- gfortran
94-
# In allow_failures
95-
- python: 2.7
60+
- JOB="3.6" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate" CONDA_FORGE=true
61+
# In allow_failures
62+
- os: linux
9663
env:
97-
- PYTHON_VERSION=2.7
98-
- JOB_NAME: "27_slow"
99-
- JOB_TAG=_SLOW
100-
- TEST_ARGS="--only-slow --skip-network"
101-
- FULL_DEPS=true
102-
- CACHE_NAME="27_slow"
103-
- USE_CACHE=true
104-
# In allow_failures
105-
- python: 2.7
64+
- JOB="2.7_SLOW" TEST_ARGS="--only-slow --skip-network"
65+
# In allow_failures
66+
- os: linux
10667
env:
107-
- PYTHON_VERSION=2.7
108-
- JOB_NAME: "27_build_test_conda"
109-
- JOB_TAG=_BUILD_TEST
110-
- TEST_ARGS="--skip-slow"
111-
- FULL_DEPS=true
112-
- BUILD_TEST=true
113-
- CACHE_NAME="27_build_test_conda"
114-
- USE_CACHE=true
115-
# In allow_failures
116-
- python: 3.5
68+
- JOB="2.7_BUILD_TEST" TEST_ARGS="--skip-slow" BUILD_TEST=true
69+
# In allow_failures
70+
- os: linux
11771
env:
118-
- PYTHON_VERSION=3.5
119-
- JOB_NAME: "35_numpy_dev"
120-
- JOB_TAG=_NUMPY_DEV
121-
- TEST_ARGS="--skip-slow --skip-network"
122-
- PANDAS_TESTING_MODE="deprecate"
123-
- CACHE_NAME="35_numpy_dev"
124-
- USE_CACHE=true
125-
addons:
126-
apt:
127-
packages:
128-
- libatlas-base-dev
129-
- gfortran
130-
# In allow_failures
131-
- python: 3.5
72+
- JOB="3.6_NUMPY_DEV" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate"
73+
# In allow_failures
74+
- os: linux
13275
env:
133-
- PYTHON_VERSION=3.5
134-
- JOB_NAME: "doc_build"
135-
- FULL_DEPS=true
136-
- DOC_BUILD=true
137-
- JOB_TAG=_DOC_BUILD
138-
- CACHE_NAME="doc_build"
139-
- USE_CACHE=true
76+
- JOB="3.5_DOC" DOC=true
14077
allow_failures:
141-
- python: 2.7
78+
- os: linux
14279
env:
143-
- PYTHON_VERSION=2.7
144-
- JOB_NAME: "27_slow"
145-
- JOB_TAG=_SLOW
146-
- TEST_ARGS="--only-slow --skip-network"
147-
- FULL_DEPS=true
148-
- CACHE_NAME="27_slow"
149-
- USE_CACHE=true
150-
- python: 2.7
80+
- JOB="2.7_SLOW" TEST_ARGS="--only-slow --skip-network"
81+
- os: linux
15182
env:
152-
- PYTHON_VERSION=2.7
153-
- JOB_NAME: "27_build_test_conda"
154-
- JOB_TAG=_BUILD_TEST
155-
- TEST_ARGS="--skip-slow"
156-
- FULL_DEPS=true
157-
- BUILD_TEST=true
158-
- CACHE_NAME="27_build_test_conda"
159-
- USE_CACHE=true
160-
- python: 3.5
83+
- JOB="2.7_BUILD_TEST" TEST_ARGS="--skip-slow" BUILD_TEST=true
84+
- os: linux
16185
env:
162-
- PYTHON_VERSION=3.5
163-
- JOB_NAME: "35_numpy_dev"
164-
- JOB_TAG=_NUMPY_DEV
165-
- TEST_ARGS="--skip-slow --skip-network"
166-
- PANDAS_TESTING_MODE="deprecate"
167-
- CACHE_NAME="35_numpy_dev"
168-
- USE_CACHE=true
169-
addons:
170-
apt:
171-
packages:
172-
- libatlas-base-dev
173-
- gfortran
174-
- python: 3.5
86+
- JOB="3.6_NUMPY_DEV" TEST_ARGS="--skip-slow --skip-network" PANDAS_TESTING_MODE="deprecate"
87+
- os: linux
17588
env:
176-
- PYTHON_VERSION=3.5
177-
- JOB_NAME: "doc_build"
178-
- FULL_DEPS=true
179-
- DOC_BUILD=true
180-
- JOB_TAG=_DOC_BUILD
181-
- CACHE_NAME="doc_build"
182-
- USE_CACHE=true
89+
- JOB="3.5_DOC" DOC=true
18390

18491
before_install:
18592
- echo "before_install"
18693
- source ci/travis_process_gbq_encryption.sh
187-
- echo $VIRTUAL_ENV
18894
- export PATH="$HOME/miniconda3/bin:$PATH"
18995
- df -h
190-
- date
19196
- pwd
19297
- uname -a
193-
- python -V
19498
- git --version
19599
- git tag
196100
- ci/before_install_travis.sh
197-
- export DISPLAY=:99.0
101+
- export DISPLAY=":99.0"
198102

199103
install:
200104
- echo "install start"
201-
- ci/check_cache.sh
202105
- ci/prep_cython_cache.sh
203106
- ci/install_travis.sh
204107
- ci/submit_cython_cache.sh
205108
- echo "install done"
206109

207110
before_script:
208-
- source activate pandas && pip install codecov
209111
- ci/install_db_travis.sh
210112

211113
script:
@@ -217,12 +119,15 @@ script:
217119
- echo "script done"
218120

219121
after_success:
220-
- source activate pandas && codecov
122+
- ci/upload_coverage.sh
221123

222124
after_script:
223125
- echo "after_script start"
224-
- ci/install_test.sh
225126
- source activate pandas && python -c "import pandas; pandas.show_versions();"
226-
- ci/print_skipped.py /tmp/single.xml
227-
- ci/print_skipped.py /tmp/multiple.xml
127+
- if [ -e /tmp/single.xml ]; then
128+
ci/print_skipped.py /tmp/single.xml;
129+
fi
130+
- if [ -e /tmp/multiple.xml ]; then
131+
ci/print_skipped.py /tmp/multiple.xml;
132+
fi
228133
- echo "after_script done"

Makefile

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
tseries: pandas/lib.pyx pandas/tslib.pyx pandas/hashtable.pyx
1+
tseries: pandas/_libs/lib.pyx pandas/_libs/tslib.pyx pandas/_libs/hashtable.pyx
22
python setup.py build_ext --inplace
33

44
.PHONY : develop build clean clean_pyc tseries doc
@@ -9,9 +9,6 @@ clean:
99
clean_pyc:
1010
-find . -name '*.py[co]' -exec rm {} \;
1111

12-
sparse: pandas/src/sparse.pyx
13-
python setup.py build_ext --inplace
14-
1512
build: clean_pyc
1613
python setup.py build_ext --inplace
1714

README.md

+11-3
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@
4141
<tr>
4242
<td></td>
4343
<td>
44-
<a href="https://ci.appveyor.com/project/jreback/pandas-465">
45-
<img src="https://ci.appveyor.com/api/projects/status/iblk29s98quexwxi/branch/master?svg=true" alt="appveyor build status" />
44+
<a href="https://ci.appveyor.com/project/pandas-dev/pandas">
45+
<img src="https://ci.appveyor.com/api/projects/status/86vn83mxgnl4xf1s/branch/master?svg=true" alt="appveyor build status" />
4646
</a>
4747
</td>
4848
</tr>
@@ -54,7 +54,15 @@
5454
<td>Conda</td>
5555
<td>
5656
<a href="http://pandas.pydata.org">
57-
<img src="http://pubbadges.s3-website-us-east-1.amazonaws.com/pkgs-downloads-pandas.png" alt="conda downloads" />
57+
<img src="http://pubbadges.s3-website-us-east-1.amazonaws.com/pkgs-downloads-pandas.png" alt="conda default downloads" />
58+
</a>
59+
</td>
60+
</tr>
61+
<tr>
62+
<td>Conda-forge</td>
63+
<td>
64+
<a href="http://pandas.pydata.org">
65+
<img src="https://anaconda.org/conda-forge/pandas/badges/downloads.svg" alt="conda-forge downloads" />
5866
</a>
5967
</td>
6068
</tr>

RELEASE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Release Notes
22
=============
33

4-
The list of changes to pandas between each release can be found
4+
The list of changes to Pandas between each release can be found
55
[here](http://pandas.pydata.org/pandas-docs/stable/whatsnew.html). For full
66
details, see the commit logs at http://github.com/pandas-dev/pandas.

appveyor.yml

+3-10
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,6 @@ environment:
3030
CONDA_PY: "27"
3131
CONDA_NPY: "110"
3232

33-
- CONDA_ROOT: "C:\\Miniconda3_64"
34-
PYTHON_VERSION: "3.5"
35-
PYTHON_ARCH: "64"
36-
CONDA_PY: "35"
37-
CONDA_NPY: "111"
38-
39-
4033
# We always use a 64-bit machine, but can build x86 distributions
4134
# with the PYTHON_ARCH variable (which is used by CMD_IN_ENV).
4235
platform:
@@ -79,11 +72,11 @@ install:
7972
- cmd: conda info -a
8073

8174
# create our env
82-
- cmd: conda create -q -n pandas python=%PYTHON_VERSION% cython pytest
75+
- cmd: conda create -n pandas python=%PYTHON_VERSION% cython pytest pytest-xdist
8376
- cmd: activate pandas
84-
- SET REQ=ci\requirements-%PYTHON_VERSION%-%PYTHON_ARCH%.run
77+
- SET REQ=ci\requirements-%PYTHON_VERSION%_WIN.run
8578
- cmd: echo "installing requirements from %REQ%"
86-
- cmd: conda install -n pandas -q --file=%REQ%
79+
- cmd: conda install -n pandas --file=%REQ%
8780
- cmd: conda list -n pandas
8881
- cmd: echo "installing requirements from %REQ% - done"
8982

asv_bench/benchmarks/binary_ops.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,4 @@ def setup(self):
107107
self.s = Series(date_range('20010101', periods=self.N, freq='T', tz='US/Eastern'))
108108
self.ts = self.s[self.halfway]
109109

110-
self.s2 = Series(date_range('20010101', periods=self.N, freq='s', tz='US/Eastern'))
110+
self.s2 = Series(date_range('20010101', periods=self.N, freq='s', tz='US/Eastern'))

asv_bench/benchmarks/categoricals.py

+34
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,37 @@ def time_value_counts_dropna(self):
6363

6464
def time_rendering(self):
6565
str(self.sel)
66+
67+
68+
class Categoricals3(object):
69+
goal_time = 0.2
70+
71+
def setup(self):
72+
N = 100000
73+
ncats = 100
74+
75+
self.s1 = Series(np.array(tm.makeCategoricalIndex(N, ncats)))
76+
self.s1_cat = self.s1.astype('category')
77+
self.s1_cat_ordered = self.s1.astype('category', ordered=True)
78+
79+
self.s2 = Series(np.random.randint(0, ncats, size=N))
80+
self.s2_cat = self.s2.astype('category')
81+
self.s2_cat_ordered = self.s2.astype('category', ordered=True)
82+
83+
def time_rank_string(self):
84+
self.s1.rank()
85+
86+
def time_rank_string_cat(self):
87+
self.s1_cat.rank()
88+
89+
def time_rank_string_cat_ordered(self):
90+
self.s1_cat_ordered.rank()
91+
92+
def time_rank_int(self):
93+
self.s2.rank()
94+
95+
def time_rank_int_cat(self):
96+
self.s2_cat.rank()
97+
98+
def time_rank_int_cat_ordered(self):
99+
self.s2_cat_ordered.rank()

0 commit comments

Comments
 (0)