diff --git a/pandas/tests/io/excel/test_writers.py b/pandas/tests/io/excel/test_writers.py index 14ad97c058a55..0c61a8a18e153 100644 --- a/pandas/tests/io/excel/test_writers.py +++ b/pandas/tests/io/excel/test_writers.py @@ -342,8 +342,8 @@ def test_excel_sheet_by_name_raise(self, path, engine): gt = DataFrame(np.random.randn(10, 2)) gt.to_excel(path) - xl = ExcelFile(path) - df = pd.read_excel(xl, sheet_name=0, index_col=0) + with ExcelFile(path) as xl: + df = pd.read_excel(xl, sheet_name=0, index_col=0) tm.assert_frame_equal(gt, df) @@ -419,8 +419,8 @@ def test_mixed(self, frame, path): mixed_frame["foo"] = "bar" mixed_frame.to_excel(path, "test1") - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(mixed_frame, recons) def test_ts_frame(self, tsframe, path): @@ -431,9 +431,8 @@ def test_ts_frame(self, tsframe, path): df.index = index df.to_excel(path, "test1") - reader = ExcelFile(path) - - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(df, recons) def test_basics_with_nan(self, frame, path): @@ -451,8 +450,8 @@ def test_int_types(self, np_type, path): df = DataFrame(np.random.randint(-10, 10, size=(10, 2)), dtype=np_type) df.to_excel(path, "test1") - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) int_frame = df.astype(np.int64) tm.assert_frame_equal(int_frame, recons) @@ -475,8 +474,10 @@ def test_float_types(self, np_type, path): df = DataFrame(np.random.random_sample(10), dtype=np_type) df.to_excel(path, "test1") - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np_type) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype( + np_type + ) tm.assert_frame_equal(df, recons) @@ -486,8 +487,10 @@ def test_bool_types(self, np_type, path): df = DataFrame([1, 0, True, False], dtype=np_type) df.to_excel(path, "test1") - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np_type) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype( + np_type + ) tm.assert_frame_equal(df, recons) @@ -495,8 +498,8 @@ def test_inf_roundtrip(self, path): df = DataFrame([(1, np.inf), (2, 3), (5, -np.inf)]) df.to_excel(path, "test1") - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(df, recons) @@ -518,11 +521,11 @@ def test_sheets(self, frame, tsframe, path): with ExcelWriter(path) as writer: frame.to_excel(writer, "test1") tsframe.to_excel(writer, "test2") - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) - tm.assert_frame_equal(frame, recons) - recons = pd.read_excel(reader, sheet_name="test2", index_col=0) - tm.assert_frame_equal(tsframe, recons) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + tm.assert_frame_equal(frame, recons) + recons = pd.read_excel(reader, sheet_name="test2", index_col=0) + tm.assert_frame_equal(tsframe, recons) assert 2 == len(reader.sheet_names) assert "test1" == reader.sheet_names[0] assert "test2" == reader.sheet_names[1] @@ -539,8 +542,8 @@ def test_colaliases(self, frame, path): # column aliases col_aliases = Index(["AA", "X", "Y", "Z"]) frame.to_excel(path, "test1", header=col_aliases) - reader = ExcelFile(path) - rs = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + rs = pd.read_excel(reader, sheet_name="test1", index_col=0) xp = frame.copy() xp.columns = col_aliases tm.assert_frame_equal(xp, rs) @@ -557,8 +560,10 @@ def test_roundtrip_indexlabels(self, merge_cells, frame, path): # test index_label df = DataFrame(np.random.randn(10, 2)) >= 0 df.to_excel(path, "test1", index_label=["test"], merge_cells=merge_cells) - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np.int64) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype( + np.int64 + ) df.index.names = ["test"] assert df.index.names == recons.index.names @@ -569,15 +574,19 @@ def test_roundtrip_indexlabels(self, merge_cells, frame, path): index_label=["test", "dummy", "dummy2"], merge_cells=merge_cells, ) - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np.int64) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype( + np.int64 + ) df.index.names = ["test"] assert df.index.names == recons.index.names df = DataFrame(np.random.randn(10, 2)) >= 0 df.to_excel(path, "test1", index_label="test", merge_cells=merge_cells) - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np.int64) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype( + np.int64 + ) df.index.names = ["test"] tm.assert_frame_equal(df, recons.astype(bool)) @@ -592,8 +601,8 @@ def test_roundtrip_indexlabels(self, merge_cells, frame, path): df = frame.copy() df = df.set_index(["A", "B"]) - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1]) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1]) tm.assert_frame_equal(df, recons) def test_excel_roundtrip_indexname(self, merge_cells, path): @@ -602,8 +611,8 @@ def test_excel_roundtrip_indexname(self, merge_cells, path): df.to_excel(path, merge_cells=merge_cells) - xf = ExcelFile(path) - result = pd.read_excel(xf, sheet_name=xf.sheet_names[0], index_col=0) + with ExcelFile(path) as xf: + result = pd.read_excel(xf, sheet_name=xf.sheet_names[0], index_col=0) tm.assert_frame_equal(result, df) assert result.index.name == "foo" @@ -620,8 +629,8 @@ def test_excel_roundtrip_datetime(self, merge_cells, tsframe, path): tsf.index = [x.date() for x in tsframe.index] tsf.to_excel(path, "test1", merge_cells=merge_cells) - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(tsframe, recons) @@ -680,9 +689,8 @@ def test_to_excel_interval_no_labels(self, path): expected["new"] = pd.cut(expected[0], 10).astype(str) df.to_excel(path, "test1") - reader = ExcelFile(path) - - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(expected, recons) def test_to_excel_interval_labels(self, path): @@ -698,9 +706,8 @@ def test_to_excel_interval_labels(self, path): expected["new"] = pd.Series(list(intervals)) df.to_excel(path, "test1") - reader = ExcelFile(path) - - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(expected, recons) def test_to_excel_timedelta(self, path): @@ -718,9 +725,8 @@ def test_to_excel_timedelta(self, path): ) df.to_excel(path, "test1") - reader = ExcelFile(path) - - recons = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=0) tm.assert_frame_equal(expected, recons) def test_to_excel_periodindex(self, tsframe, path): @@ -728,8 +734,8 @@ def test_to_excel_periodindex(self, tsframe, path): xp.to_excel(path, "sht1") - reader = ExcelFile(path) - rs = pd.read_excel(reader, sheet_name="sht1", index_col=0) + with ExcelFile(path) as reader: + rs = pd.read_excel(reader, sheet_name="sht1", index_col=0) tm.assert_frame_equal(xp, rs.to_period("M")) def test_to_excel_multiindex(self, merge_cells, frame, path): @@ -742,8 +748,8 @@ def test_to_excel_multiindex(self, merge_cells, frame, path): # round trip frame.to_excel(path, "test1", merge_cells=merge_cells) - reader = ExcelFile(path) - df = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1]) + with ExcelFile(path) as reader: + df = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1]) tm.assert_frame_equal(frame, df) # GH13511 @@ -771,8 +777,10 @@ def test_to_excel_multiindex_cols(self, merge_cells, frame, path): # round trip frame.to_excel(path, "test1", merge_cells=merge_cells) - reader = ExcelFile(path) - df = pd.read_excel(reader, sheet_name="test1", header=header, index_col=[0, 1]) + with ExcelFile(path) as reader: + df = pd.read_excel( + reader, sheet_name="test1", header=header, index_col=[0, 1] + ) if not merge_cells: fm = frame.columns.format(sparsify=False, adjoin=False, names=False) frame.columns = [".".join(map(str, q)) for q in zip(*fm)] @@ -785,8 +793,8 @@ def test_to_excel_multiindex_dates(self, merge_cells, tsframe, path): tsframe.index.names = ["time", "foo"] tsframe.to_excel(path, "test1", merge_cells=merge_cells) - reader = ExcelFile(path) - recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1]) + with ExcelFile(path) as reader: + recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1]) tm.assert_frame_equal(tsframe, recons) assert recons.index.names == ("time", "foo") @@ -806,8 +814,8 @@ def test_to_excel_multiindex_no_write_index(self, path): frame2.to_excel(path, "test1", index=False) # Read it back in. - reader = ExcelFile(path) - frame3 = pd.read_excel(reader, sheet_name="test1") + with ExcelFile(path) as reader: + frame3 = pd.read_excel(reader, sheet_name="test1") # Test that it is the same as the initial frame. tm.assert_frame_equal(frame1, frame3) @@ -820,8 +828,8 @@ def test_to_excel_float_format(self, path): ) df.to_excel(path, "test1", float_format="%.2f") - reader = ExcelFile(path) - result = pd.read_excel(reader, sheet_name="test1", index_col=0) + with ExcelFile(path) as reader: + result = pd.read_excel(reader, sheet_name="test1", index_col=0) expected = DataFrame( [[0.12, 0.23, 0.57], [12.32, 123123.20, 321321.20]], @@ -979,8 +987,10 @@ def test_excel_010_hemstring( def roundtrip(data, header=True, parser_hdr=0, index=True): data.to_excel(path, header=header, merge_cells=merge_cells, index=index) - xf = ExcelFile(path) - return pd.read_excel(xf, sheet_name=xf.sheet_names[0], header=parser_hdr) + with ExcelFile(path) as xf: + return pd.read_excel( + xf, sheet_name=xf.sheet_names[0], header=parser_hdr + ) # Basic test. parser_header = 0 if use_headers else None diff --git a/pandas/tests/io/formats/test_info.py b/pandas/tests/io/formats/test_info.py index 2045557e5134a..4990a14f302a6 100644 --- a/pandas/tests/io/formats/test_info.py +++ b/pandas/tests/io/formats/test_info.py @@ -162,9 +162,9 @@ def test_info_verbose_with_counts_spacing( ): """Test header column, spacer, first line and last line in verbose mode.""" frame = DataFrame(np.random.randn(3, size)) - buf = StringIO() - frame.info(verbose=True, show_counts=True, buf=buf) - all_lines = buf.getvalue().splitlines() + with StringIO() as buf: + frame.info(verbose=True, show_counts=True, buf=buf) + all_lines = buf.getvalue().splitlines() # Here table would contain only header, separator and table lines # dframe repr, index summary, memory usage and dtypes are excluded table = all_lines[3:-2] diff --git a/pandas/tests/io/generate_legacy_storage_files.py b/pandas/tests/io/generate_legacy_storage_files.py index be6cdf1696882..f33299a1b14de 100644 --- a/pandas/tests/io/generate_legacy_storage_files.py +++ b/pandas/tests/io/generate_legacy_storage_files.py @@ -327,9 +327,8 @@ def write_legacy_pickles(output_dir): pth = f"{platform_name()}.pickle" - fh = open(os.path.join(output_dir, pth), "wb") - pickle.dump(create_pickle_data(), fh, pickle.DEFAULT_PROTOCOL) - fh.close() + with open(os.path.join(output_dir, pth), "wb") as fh: + pickle.dump(create_pickle_data(), fh, pickle.DEFAULT_PROTOCOL) print(f"created pickle file: {pth}") diff --git a/pandas/tests/io/parser/test_c_parser_only.py b/pandas/tests/io/parser/test_c_parser_only.py index da778093237b0..b23dfa6ef1548 100644 --- a/pandas/tests/io/parser/test_c_parser_only.py +++ b/pandas/tests/io/parser/test_c_parser_only.py @@ -305,9 +305,9 @@ def test_grow_boundary_at_cap(c_parser_only): parser = c_parser_only def test_empty_header_read(count): - s = StringIO("," * count) - expected = DataFrame(columns=[f"Unnamed: {i}" for i in range(count + 1)]) - df = parser.read_csv(s) + with StringIO("," * count) as s: + expected = DataFrame(columns=[f"Unnamed: {i}" for i in range(count + 1)]) + df = parser.read_csv(s) tm.assert_frame_equal(df, expected) for cnt in range(1, 101): diff --git a/pandas/tests/io/parser/test_network.py b/pandas/tests/io/parser/test_network.py index 3727fe9484084..657793450df5b 100644 --- a/pandas/tests/io/parser/test_network.py +++ b/pandas/tests/io/parser/test_network.py @@ -250,7 +250,8 @@ def test_read_csv_handles_boto_s3_object(self, s3_resource, tips_file): Bucket="pandas-test", Key="tips.csv" ) - result = read_csv(BytesIO(s3_object["Body"].read()), encoding="utf8") + with BytesIO(s3_object["Body"].read()) as buffer: + result = read_csv(buffer, encoding="utf8") assert isinstance(result, DataFrame) assert not result.empty diff --git a/pandas/tests/io/test_user_agent.py b/pandas/tests/io/test_user_agent.py index 0518ffca64cb2..87f08a42b91dd 100644 --- a/pandas/tests/io/test_user_agent.py +++ b/pandas/tests/io/test_user_agent.py @@ -209,16 +209,16 @@ def test_server_and_default_headers(responder, read_method, port, parquet_engine if parquet_engine == "fastparquet": pytest.importorskip("fsspec") - server = http.server.HTTPServer(("localhost", port), responder) - server_thread = threading.Thread(target=server.serve_forever) - server_thread.start() - if parquet_engine is None: - df_http = read_method(f"http://localhost:{port}") - else: - df_http = read_method(f"http://localhost:{port}", engine=parquet_engine) - server.shutdown() - server.server_close() - server_thread.join() + with http.server.HTTPServer(("localhost", port), responder) as server: + server_thread = threading.Thread(target=server.serve_forever) + server_thread.start() + if parquet_engine is None: + df_http = read_method(f"http://localhost:{port}") + else: + df_http = read_method(f"http://localhost:{port}", engine=parquet_engine) + server.shutdown() + server.server_close() + server_thread.join() assert not df_http.empty @@ -255,25 +255,25 @@ def test_server_and_custom_headers(responder, read_method, port, parquet_engine) custom_user_agent = "Super Cool One" df_true = pd.DataFrame({"header": [custom_user_agent]}) - server = http.server.HTTPServer(("localhost", port), responder) - server_thread = threading.Thread(target=server.serve_forever) - server_thread.start() - - if parquet_engine is None: - df_http = read_method( - f"http://localhost:{port}", - storage_options={"User-Agent": custom_user_agent}, - ) - else: - df_http = read_method( - f"http://localhost:{port}", - storage_options={"User-Agent": custom_user_agent}, - engine=parquet_engine, - ) - server.shutdown() - - server.server_close() - server_thread.join() + with http.server.HTTPServer(("localhost", port), responder) as server: + server_thread = threading.Thread(target=server.serve_forever) + server_thread.start() + + if parquet_engine is None: + df_http = read_method( + f"http://localhost:{port}", + storage_options={"User-Agent": custom_user_agent}, + ) + else: + df_http = read_method( + f"http://localhost:{port}", + storage_options={"User-Agent": custom_user_agent}, + engine=parquet_engine, + ) + server.shutdown() + + server.server_close() + server_thread.join() tm.assert_frame_equal(df_true, df_http) @@ -291,17 +291,17 @@ def test_server_and_all_custom_headers(responder, read_method, port): "User-Agent": custom_user_agent, "Auth": custom_auth_token, } - server = http.server.HTTPServer(("localhost", port), responder) - server_thread = threading.Thread(target=server.serve_forever) - server_thread.start() + with http.server.HTTPServer(("localhost", port), responder) as server: + server_thread = threading.Thread(target=server.serve_forever) + server_thread.start() - df_http = read_method( - f"http://localhost:{port}", - storage_options=storage_options, - ) - server.shutdown() - server.server_close() - server_thread.join() + df_http = read_method( + f"http://localhost:{port}", + storage_options=storage_options, + ) + server.shutdown() + server.server_close() + server_thread.join() df_http = df_http[df_http["0"].isin(storage_options.keys())] df_http = df_http.sort_values(["0"]).reset_index()