Skip to content

Commit 765e506

Browse files
committed
merge for update
2 parents e4d5c38 + ee64ebc commit 765e506

File tree

340 files changed

+9639
-9115
lines changed

Some content is hidden

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

340 files changed

+9639
-9115
lines changed

.travis.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ matrix:
3030
- python: 3.5
3131

3232
include:
33+
- dist: bionic
34+
# 18.04
35+
python: 3.8-dev
36+
env:
37+
- JOB="3.8-dev" PATTERN="(not slow and not network)"
38+
3339
- dist: trusty
3440
env:
3541
- JOB="3.7" ENV_FILE="ci/deps/travis-37.yaml" PATTERN="(not slow and not network)"
@@ -71,24 +77,27 @@ before_install:
7177
# This overrides travis and tells it to look nowhere.
7278
- export BOTO_CONFIG=/dev/null
7379

80+
7481
install:
7582
- echo "install start"
7683
- ci/prep_cython_cache.sh
7784
- ci/setup_env.sh
7885
- ci/submit_cython_cache.sh
7986
- echo "install done"
8087

88+
8189
before_script:
8290
# display server (for clipboard functionality) needs to be started here,
8391
# does not work if done in install:setup_env.sh (GH-26103)
8492
- export DISPLAY=":99.0"
8593
- echo "sh -e /etc/init.d/xvfb start"
86-
- sh -e /etc/init.d/xvfb start
94+
- if [ "$JOB" != "3.8-dev" ]; then sh -e /etc/init.d/xvfb start; fi
8795
- sleep 3
8896

8997
script:
9098
- echo "script start"
91-
- source activate pandas-dev
99+
- echo "$JOB"
100+
- if [ "$JOB" != "3.8-dev" ]; then source activate pandas-dev; fi
92101
- ci/run_tests.sh
93102

94103
after_script:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div align="center">
2-
<img src="https://github.com/pandas-dev/pandas/blob/master/doc/logo/pandas_logo.png"><br>
2+
<img src="https://dev.pandas.io/static/img/pandas.svg"><br>
33
</div>
44

55
-----------------

asv_bench/benchmarks/ctors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class SeriesConstructors:
6767
def setup(self, data_fmt, with_index, dtype):
6868
if data_fmt in (gen_of_str, gen_of_tuples) and with_index:
6969
raise NotImplementedError(
70-
"Series constructors do not support " "using generators with indexes"
70+
"Series constructors do not support using generators with indexes"
7171
)
7272
N = 10 ** 4
7373
if dtype == "float":

asv_bench/benchmarks/eval.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def time_add(self, engine, threads):
2727

2828
def time_and(self, engine, threads):
2929
pd.eval(
30-
"(self.df > 0) & (self.df2 > 0) & " "(self.df3 > 0) & (self.df4 > 0)",
30+
"(self.df > 0) & (self.df2 > 0) & (self.df3 > 0) & (self.df4 > 0)",
3131
engine=engine,
3232
)
3333

asv_bench/benchmarks/io/hdf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ def time_write_store_table_dc(self):
8888

8989
def time_query_store_table_wide(self):
9090
self.store.select(
91-
"table_wide", where="index > self.start_wide and " "index < self.stop_wide"
91+
"table_wide", where="index > self.start_wide and index < self.stop_wide"
9292
)
9393

9494
def time_query_store_table(self):
95-
self.store.select("table", where="index > self.start and " "index < self.stop")
95+
self.store.select("table", where="index > self.start and index < self.stop")
9696

9797
def time_store_repr(self):
9898
repr(self.store)

asv_bench/benchmarks/join_merge.py

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,10 @@ def time_merge_ordered(self):
273273

274274

275275
class MergeAsof:
276-
params = [["backward", "forward", "nearest"]]
277-
param_names = ["direction"]
276+
params = [["backward", "forward", "nearest"], [None, 5]]
277+
param_names = ["direction", "tolerance"]
278278

279-
def setup(self, direction):
279+
def setup(self, direction, tolerance):
280280
one_count = 200000
281281
two_count = 1000000
282282

@@ -303,6 +303,9 @@ def setup(self, direction):
303303
df1["time32"] = np.int32(df1.time)
304304
df2["time32"] = np.int32(df2.time)
305305

306+
df1["timeu64"] = np.uint64(df1.time)
307+
df2["timeu64"] = np.uint64(df2.time)
308+
306309
self.df1a = df1[["time", "value1"]]
307310
self.df2a = df2[["time", "value2"]]
308311
self.df1b = df1[["time", "key", "value1"]]
@@ -313,22 +316,52 @@ def setup(self, direction):
313316
self.df2d = df2[["time32", "value2"]]
314317
self.df1e = df1[["time", "key", "key2", "value1"]]
315318
self.df2e = df2[["time", "key", "key2", "value2"]]
319+
self.df1f = df1[["timeu64", "value1"]]
320+
self.df2f = df2[["timeu64", "value2"]]
321+
322+
def time_on_int(self, direction, tolerance):
323+
merge_asof(
324+
self.df1a, self.df2a, on="time", direction=direction, tolerance=tolerance
325+
)
316326

317-
def time_on_int(self, direction):
318-
merge_asof(self.df1a, self.df2a, on="time", direction=direction)
327+
def time_on_int32(self, direction, tolerance):
328+
merge_asof(
329+
self.df1d, self.df2d, on="time32", direction=direction, tolerance=tolerance
330+
)
319331

320-
def time_on_int32(self, direction):
321-
merge_asof(self.df1d, self.df2d, on="time32", direction=direction)
332+
def time_on_uint64(self, direction, tolerance):
333+
merge_asof(
334+
self.df1f, self.df2f, on="timeu64", direction=direction, tolerance=tolerance
335+
)
322336

323-
def time_by_object(self, direction):
324-
merge_asof(self.df1b, self.df2b, on="time", by="key", direction=direction)
337+
def time_by_object(self, direction, tolerance):
338+
merge_asof(
339+
self.df1b,
340+
self.df2b,
341+
on="time",
342+
by="key",
343+
direction=direction,
344+
tolerance=tolerance,
345+
)
325346

326-
def time_by_int(self, direction):
327-
merge_asof(self.df1c, self.df2c, on="time", by="key2", direction=direction)
347+
def time_by_int(self, direction, tolerance):
348+
merge_asof(
349+
self.df1c,
350+
self.df2c,
351+
on="time",
352+
by="key2",
353+
direction=direction,
354+
tolerance=tolerance,
355+
)
328356

329-
def time_multiby(self, direction):
357+
def time_multiby(self, direction, tolerance):
330358
merge_asof(
331-
self.df1e, self.df2e, on="time", by=["key", "key2"], direction=direction
359+
self.df1e,
360+
self.df2e,
361+
on="time",
362+
by=["key", "key2"],
363+
direction=direction,
364+
tolerance=tolerance,
332365
)
333366

334367

asv_bench/benchmarks/rolling.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ def peakmem_rolling(self, constructor, window, dtype, method):
2828
class Apply:
2929
params = (
3030
["DataFrame", "Series"],
31-
[10, 1000],
31+
[3, 300],
3232
["int", "float"],
3333
[sum, np.sum, lambda x: np.sum(x) + 5],
3434
[True, False],
3535
)
36-
param_names = ["contructor", "window", "dtype", "function", "raw"]
36+
param_names = ["constructor", "window", "dtype", "function", "raw"]
3737

3838
def setup(self, constructor, window, dtype, function, raw):
39-
N = 10 ** 5
39+
N = 10 ** 3
4040
arr = (100 * np.random.random(N)).astype(dtype)
4141
self.roll = getattr(pd, constructor)(arr).rolling(window)
4242

azure-pipelines.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
condition: true
3434

3535
- script: |
36+
sudo apt-get update
3637
sudo apt-get install -y libc6-dev-i386
3738
ci/setup_env.sh
3839
displayName: 'Setup environment and build pandas'

ci/build38.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash -e
2+
# Special build for python3.8 until numpy puts its own wheels up
3+
4+
sudo apt-get install build-essential gcc xvfb
5+
pip install --no-deps -U pip wheel setuptools
6+
pip install python-dateutil pytz cython pytest pytest-xdist hypothesis
7+
8+
# Possible alternative for getting numpy:
9+
pip install --pre -f https://7933911d6844c6c53a7d-47bd50c35cd79bd838daf386af554a83.ssl.cf2.rackcdn.com/ numpy
10+
11+
python setup.py build_ext -inplace
12+
python -m pip install -v --no-build-isolation -e .
13+
14+
python -c "import sys; print(sys.version_info)"
15+
python -c "import pandas as pd"
16+
python -c "import hypothesis"
17+
18+
# TODO: Is there anything else in setup_env that we really want to do?
19+
# ci/setup_env.sh

ci/code_checks.sh

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ if [[ -z "$CHECK" || "$CHECK" == "patterns" ]]; then
122122
MSG='Check for non-standard imports' ; echo $MSG
123123
invgrep -R --include="*.py*" -E "from pandas.core.common import " pandas
124124
invgrep -R --include="*.py*" -E "from collections.abc import " pandas
125-
# invgrep -R --include="*.py*" -E "from numpy import nan " pandas # GH#24822 not yet implemented since the offending imports have not all been removed
125+
invgrep -R --include="*.py*" -E "from numpy import nan " pandas
126126
RET=$(($RET + $?)) ; echo $MSG "DONE"
127127

128128
MSG='Check for use of exec' ; echo $MSG
@@ -171,10 +171,6 @@ if [[ -z "$CHECK" || "$CHECK" == "patterns" ]]; then
171171
invgrep -R --include="*.py" --include="*.pyx" --include="*.rst" -E "\.\. (autosummary|contents|currentmodule|deprecated|function|image|important|include|ipython|literalinclude|math|module|note|raw|seealso|toctree|versionadded|versionchanged|warning):[^:]" ./pandas ./doc/source
172172
RET=$(($RET + $?)) ; echo $MSG "DONE"
173173

174-
MSG='Check that the deprecated `assert_raises_regex` is not used (`pytest.raises(match=pattern)` should be used instead)' ; echo $MSG
175-
invgrep -R --exclude=*.pyc --exclude=testing.py --exclude=test_util.py assert_raises_regex pandas
176-
RET=$(($RET + $?)) ; echo $MSG "DONE"
177-
178174
# Check for the following code in testing: `unittest.mock`, `mock.Mock()` or `mock.patch`
179175
MSG='Check that unittest.mock is not used (pytest builtin monkeypatch fixture should be used instead)' ; echo $MSG
180176
invgrep -r -E --include '*.py' '(unittest(\.| import )mock|mock\.Mock\(\)|mock\.patch)' pandas/tests/
@@ -208,7 +204,7 @@ import sys
208204
import pandas
209205
210206
blacklist = {'bs4', 'gcsfs', 'html5lib', 'http', 'ipython', 'jinja2', 'hypothesis',
211-
'lxml', 'numexpr', 'openpyxl', 'py', 'pytest', 's3fs', 'scipy',
207+
'lxml', 'matplotlib', 'numexpr', 'openpyxl', 'py', 'pytest', 's3fs', 'scipy',
212208
'tables', 'urllib.request', 'xlrd', 'xlsxwriter', 'xlwt'}
213209
214210
# GH#28227 for some of these check for top-level modules, while others are

ci/deps/azure-36-32bit.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ channels:
33
- defaults
44
- conda-forge
55
dependencies:
6+
- attrs=19.1.0
67
- gcc_linux-32
78
- gcc_linux-32
89
- gxx_linux-32
@@ -11,7 +12,7 @@ dependencies:
1112
- python=3.6.*
1213
- pytz=2017.2
1314
# universal
14-
- pytest>=4.0.2,<5.0.0
15+
- pytest
1516
- pytest-xdist
1617
- pytest-mock
1718
- pytest-azurepipelines

ci/setup_env.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#!/bin/bash -e
22

3+
if [ "$JOB" == "3.8-dev" ]; then
4+
/bin/bash ci/build38.sh
5+
exit 0
6+
fi
37

48
# edit the locale file if needed
59
if [ -n "$LOCALE_OVERRIDE" ]; then
@@ -51,6 +55,7 @@ echo
5155
echo "update conda"
5256
conda config --set ssl_verify false
5357
conda config --set quiet true --set always_yes true --set changeps1 false
58+
conda install pip # create conda to create a historical artifact for pip & setuptools
5459
conda update -n base conda
5560

5661
echo "conda info -a"
@@ -118,8 +123,8 @@ conda list pandas
118123
echo "[Build extensions]"
119124
python setup.py build_ext -q -i
120125

121-
# XXX: Some of our environments end up with old verisons of pip (10.x)
122-
# Adding a new enough verison of pip to the requirements explodes the
126+
# XXX: Some of our environments end up with old versions of pip (10.x)
127+
# Adding a new enough version of pip to the requirements explodes the
123128
# solve time. Just using pip to update itself.
124129
# - py35_macos
125130
# - py35_compat

doc/logo/pandas_logo.png

-21.3 KB
Binary file not shown.

doc/logo/pandas_logo.py

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)