Skip to content

Commit 1d30d70

Browse files
committed
Merge remote-tracking branch 'upstream/master' into allow-special-characters-query
2 parents 4354ad3 + a3ba3e1 commit 1d30d70

Some content is hidden

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

51 files changed

+820
-800
lines changed

asv_bench/benchmarks/stat_ops.py

Lines changed: 28 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,14 @@
77

88
class FrameOps:
99

10-
params = [ops, ["float", "int"], [0, 1], [True, False]]
11-
param_names = ["op", "dtype", "axis", "use_bottleneck"]
10+
params = [ops, ["float", "int"], [0, 1]]
11+
param_names = ["op", "dtype", "axis"]
1212

13-
def setup(self, op, dtype, axis, use_bottleneck):
13+
def setup(self, op, dtype, axis):
1414
df = pd.DataFrame(np.random.randn(100000, 4)).astype(dtype)
15-
try:
16-
pd.options.compute.use_bottleneck = use_bottleneck
17-
except TypeError:
18-
from pandas.core import nanops
19-
20-
nanops._USE_BOTTLENECK = use_bottleneck
2115
self.df_func = getattr(df, op)
2216

23-
def time_op(self, op, dtype, axis, use_bottleneck):
17+
def time_op(self, op, dtype, axis):
2418
self.df_func(axis=axis)
2519

2620

@@ -46,20 +40,14 @@ def time_op(self, level, op):
4640

4741
class SeriesOps:
4842

49-
params = [ops, ["float", "int"], [True, False]]
50-
param_names = ["op", "dtype", "use_bottleneck"]
43+
params = [ops, ["float", "int"]]
44+
param_names = ["op", "dtype"]
5145

52-
def setup(self, op, dtype, use_bottleneck):
46+
def setup(self, op, dtype):
5347
s = pd.Series(np.random.randn(100000)).astype(dtype)
54-
try:
55-
pd.options.compute.use_bottleneck = use_bottleneck
56-
except TypeError:
57-
from pandas.core import nanops
58-
59-
nanops._USE_BOTTLENECK = use_bottleneck
6048
self.s_func = getattr(s, op)
6149

62-
def time_op(self, op, dtype, use_bottleneck):
50+
def time_op(self, op, dtype):
6351
self.s_func()
6452

6553

@@ -101,61 +89,49 @@ def time_average_old(self, constructor, pct):
10189

10290
class Correlation:
10391

104-
params = [["spearman", "kendall", "pearson"], [True, False]]
105-
param_names = ["method", "use_bottleneck"]
92+
params = [["spearman", "kendall", "pearson"]]
93+
param_names = ["method"]
10694

107-
def setup(self, method, use_bottleneck):
108-
try:
109-
pd.options.compute.use_bottleneck = use_bottleneck
110-
except TypeError:
111-
from pandas.core import nanops
95+
def setup(self, method):
96+
self.df = pd.DataFrame(np.random.randn(500, 15))
97+
self.df2 = pd.DataFrame(np.random.randn(500, 15))
98+
self.df_wide = pd.DataFrame(np.random.randn(500, 100))
99+
self.df_wide_nans = self.df_wide.where(np.random.random((500, 100)) < 0.9)
100+
self.s = pd.Series(np.random.randn(500))
101+
self.s2 = pd.Series(np.random.randn(500))
112102

113-
nanops._USE_BOTTLENECK = use_bottleneck
114-
self.df = pd.DataFrame(np.random.randn(1000, 30))
115-
self.df2 = pd.DataFrame(np.random.randn(1000, 30))
116-
self.df_wide = pd.DataFrame(np.random.randn(1000, 200))
117-
self.df_wide_nans = self.df_wide.where(np.random.random((1000, 200)) < 0.9)
118-
self.s = pd.Series(np.random.randn(1000))
119-
self.s2 = pd.Series(np.random.randn(1000))
120-
121-
def time_corr(self, method, use_bottleneck):
103+
def time_corr(self, method):
122104
self.df.corr(method=method)
123105

124-
def time_corr_wide(self, method, use_bottleneck):
106+
def time_corr_wide(self, method):
125107
self.df_wide.corr(method=method)
126108

127-
def time_corr_wide_nans(self, method, use_bottleneck):
109+
def time_corr_wide_nans(self, method):
128110
self.df_wide_nans.corr(method=method)
129111

130-
def peakmem_corr_wide(self, method, use_bottleneck):
112+
def peakmem_corr_wide(self, method):
131113
self.df_wide.corr(method=method)
132114

133-
def time_corr_series(self, method, use_bottleneck):
115+
def time_corr_series(self, method):
134116
self.s.corr(self.s2, method=method)
135117

136-
def time_corrwith_cols(self, method, use_bottleneck):
118+
def time_corrwith_cols(self, method):
137119
self.df.corrwith(self.df2, method=method)
138120

139-
def time_corrwith_rows(self, method, use_bottleneck):
121+
def time_corrwith_rows(self, method):
140122
self.df.corrwith(self.df2, axis=1, method=method)
141123

142124

143125
class Covariance:
144126

145-
params = [[True, False]]
146-
param_names = ["use_bottleneck"]
147-
148-
def setup(self, use_bottleneck):
149-
try:
150-
pd.options.compute.use_bottleneck = use_bottleneck
151-
except TypeError:
152-
from pandas.core import nanops
127+
params = []
128+
param_names = []
153129

154-
nanops._USE_BOTTLENECK = use_bottleneck
130+
def setup(self):
155131
self.s = pd.Series(np.random.randn(100000))
156132
self.s2 = pd.Series(np.random.randn(100000))
157133

158-
def time_cov_series(self, use_bottleneck):
134+
def time_cov_series(self):
159135
self.s.cov(self.s2)
160136

161137

doc/make.py

Lines changed: 35 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def __init__(
6060
if single_doc and single_doc.endswith(".rst"):
6161
self.single_doc_html = os.path.splitext(single_doc)[0] + ".html"
6262
elif single_doc:
63-
self.single_doc_html = "reference/api/pandas.{}.html".format(single_doc)
63+
self.single_doc_html = f"reference/api/pandas.{single_doc}.html"
6464

6565
def _process_single_doc(self, single_doc):
6666
"""
@@ -76,25 +76,23 @@ def _process_single_doc(self, single_doc):
7676
if os.path.exists(os.path.join(SOURCE_PATH, single_doc)):
7777
return single_doc
7878
else:
79-
raise FileNotFoundError("File {} not found".format(single_doc))
79+
raise FileNotFoundError(f"File {single_doc} not found")
8080

8181
elif single_doc.startswith("pandas."):
8282
try:
8383
obj = pandas # noqa: F821
8484
for name in single_doc.split("."):
8585
obj = getattr(obj, name)
8686
except AttributeError:
87-
raise ImportError("Could not import {}".format(single_doc))
87+
raise ImportError(f"Could not import {single_doc}")
8888
else:
8989
return single_doc[len("pandas.") :]
9090
else:
9191
raise ValueError(
92-
(
93-
"--single={} not understood. Value should be a "
94-
"valid path to a .rst or .ipynb file, or a "
95-
"valid pandas object (e.g. categorical.rst or "
96-
"pandas.DataFrame.head)"
97-
).format(single_doc)
92+
f"--single={single_doc} not understood. "
93+
"Value should be a valid path to a .rst or .ipynb file, "
94+
"or a valid pandas object "
95+
"(e.g. categorical.rst or pandas.DataFrame.head)"
9896
)
9997

10098
@staticmethod
@@ -113,7 +111,7 @@ def _run_os(*args):
113111
"""
114112
subprocess.check_call(args, stdout=sys.stdout, stderr=sys.stderr)
115113

116-
def _sphinx_build(self, kind):
114+
def _sphinx_build(self, kind: str):
117115
"""
118116
Call sphinx to build documentation.
119117
@@ -128,15 +126,15 @@ def _sphinx_build(self, kind):
128126
>>> DocBuilder(num_jobs=4)._sphinx_build('html')
129127
"""
130128
if kind not in ("html", "latex"):
131-
raise ValueError("kind must be html or latex, " "not {}".format(kind))
129+
raise ValueError(f"kind must be html or latex, not {kind}")
132130

133131
cmd = ["sphinx-build", "-b", kind]
134132
if self.num_jobs:
135133
cmd += ["-j", str(self.num_jobs)]
136134
if self.warnings_are_errors:
137135
cmd += ["-W", "--keep-going"]
138136
if self.verbosity:
139-
cmd.append("-{}".format("v" * self.verbosity))
137+
cmd.append(f"-{'v' * self.verbosity}")
140138
cmd += [
141139
"-d",
142140
os.path.join(BUILD_PATH, "doctrees"),
@@ -156,7 +154,7 @@ def _get_page_title(self, page):
156154
"""
157155
Open the rst file `page` and extract its title.
158156
"""
159-
fname = os.path.join(SOURCE_PATH, "{}.rst".format(page))
157+
fname = os.path.join(SOURCE_PATH, f"{page}.rst")
160158
option_parser = docutils.frontend.OptionParser(
161159
components=(docutils.parsers.rst.Parser,)
162160
)
@@ -184,18 +182,6 @@ def _add_redirects(self):
184182
Create in the build directory an html file with a redirect,
185183
for every row in REDIRECTS_FILE.
186184
"""
187-
html = """
188-
<html>
189-
<head>
190-
<meta http-equiv="refresh" content="0;URL={url}"/>
191-
</head>
192-
<body>
193-
<p>
194-
The page has been moved to <a href="{url}">{title}</a>
195-
</p>
196-
</body>
197-
<html>
198-
"""
199185
with open(REDIRECTS_FILE) as mapping_fd:
200186
reader = csv.reader(mapping_fd)
201187
for row in reader:
@@ -214,15 +200,23 @@ def _add_redirects(self):
214200

215201
if os.path.exists(path):
216202
raise RuntimeError(
217-
("Redirection would overwrite an existing file: " "{}").format(
218-
path
219-
)
203+
f"Redirection would overwrite an existing file: {path}"
220204
)
221205

222206
with open(path, "w") as moved_page_fd:
223-
moved_page_fd.write(
224-
html.format(url="{}.html".format(row[1]), title=title)
225-
)
207+
html = f"""\
208+
<html>
209+
<head>
210+
<meta http-equiv="refresh" content="0;URL={row[1]}.html"/>
211+
</head>
212+
<body>
213+
<p>
214+
The page has been moved to <a href="{row[1]}.html">{title}</a>
215+
</p>
216+
</body>
217+
<html>"""
218+
219+
moved_page_fd.write(html)
226220

227221
def html(self):
228222
"""
@@ -290,15 +284,14 @@ def zip_html(self):
290284
def main():
291285
cmds = [method for method in dir(DocBuilder) if not method.startswith("_")]
292286

287+
joined = ",".join(cmds)
293288
argparser = argparse.ArgumentParser(
294-
description="pandas documentation builder",
295-
epilog="Commands: {}".format(",".join(cmds)),
289+
description="pandas documentation builder", epilog=f"Commands: {joined}",
296290
)
291+
292+
joined = ", ".join(cmds)
297293
argparser.add_argument(
298-
"command",
299-
nargs="?",
300-
default="html",
301-
help="command to run: {}".format(", ".join(cmds)),
294+
"command", nargs="?", default="html", help=f"command to run: {joined}",
302295
)
303296
argparser.add_argument(
304297
"--num-jobs", type=int, default=0, help="number of jobs used by sphinx-build"
@@ -312,10 +305,9 @@ def main():
312305
type=str,
313306
default=None,
314307
help=(
315-
'filename (relative to the "source" folder)'
316-
" of section or method name to compile, e.g. "
317-
'"development/contributing.rst",'
318-
' "ecosystem.rst", "pandas.DataFrame.join"'
308+
"filename (relative to the 'source' folder) of section or method name to "
309+
"compile, e.g. 'development/contributing.rst', "
310+
"'ecosystem.rst', 'pandas.DataFrame.join'"
319311
),
320312
)
321313
argparser.add_argument(
@@ -340,11 +332,8 @@ def main():
340332
args = argparser.parse_args()
341333

342334
if args.command not in cmds:
343-
raise ValueError(
344-
"Unknown command {}. Available options: {}".format(
345-
args.command, ", ".join(cmds)
346-
)
347-
)
335+
joined = ", ".join(cmds)
336+
raise ValueError(f"Unknown command {args.command}. Available options: {joined}")
348337

349338
# Below we update both os.environ and sys.path. The former is used by
350339
# external libraries (namely Sphinx) to compile this module and resolve

doc/redirects.csv

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,6 @@ generated/pandas.DataFrame.from_records,../reference/api/pandas.DataFrame.from_r
360360
generated/pandas.DataFrame.ge,../reference/api/pandas.DataFrame.ge
361361
generated/pandas.DataFrame.get,../reference/api/pandas.DataFrame.get
362362
generated/pandas.DataFrame.get_value,../reference/api/pandas.DataFrame.get_value
363-
generated/pandas.DataFrame.get_values,../reference/api/pandas.DataFrame.get_values
364363
generated/pandas.DataFrame.groupby,../reference/api/pandas.DataFrame.groupby
365364
generated/pandas.DataFrame.gt,../reference/api/pandas.DataFrame.gt
366365
generated/pandas.DataFrame.head,../reference/api/pandas.DataFrame.head
@@ -643,7 +642,6 @@ generated/pandas.Index.get_level_values,../reference/api/pandas.Index.get_level_
643642
generated/pandas.Index.get_loc,../reference/api/pandas.Index.get_loc
644643
generated/pandas.Index.get_slice_bound,../reference/api/pandas.Index.get_slice_bound
645644
generated/pandas.Index.get_value,../reference/api/pandas.Index.get_value
646-
generated/pandas.Index.get_values,../reference/api/pandas.Index.get_values
647645
generated/pandas.Index.groupby,../reference/api/pandas.Index.groupby
648646
generated/pandas.Index.has_duplicates,../reference/api/pandas.Index.has_duplicates
649647
generated/pandas.Index.hasnans,../reference/api/pandas.Index.hasnans
@@ -1044,7 +1042,6 @@ generated/pandas.Series.from_csv,../reference/api/pandas.Series.from_csv
10441042
generated/pandas.Series.ge,../reference/api/pandas.Series.ge
10451043
generated/pandas.Series.get,../reference/api/pandas.Series.get
10461044
generated/pandas.Series.get_value,../reference/api/pandas.Series.get_value
1047-
generated/pandas.Series.get_values,../reference/api/pandas.Series.get_values
10481045
generated/pandas.Series.groupby,../reference/api/pandas.Series.groupby
10491046
generated/pandas.Series.gt,../reference/api/pandas.Series.gt
10501047
generated/pandas.Series.hasnans,../reference/api/pandas.Series.hasnans

0 commit comments

Comments
 (0)