Skip to content

Commit 9caf58f

Browse files
mroeschkejreback
authored andcommitted
CLN: PY3 String/BytesIO (#25954)
1 parent 4814a28 commit 9caf58f

Some content is hidden

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

72 files changed

+128
-130
lines changed

pandas/_libs/tslibs/parsing.pyx

+1-8
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
"""
33
Parsing functions for datetime and datetime-like strings.
44
"""
5-
import sys
65
import re
76
import time
7+
from io import StringIO
88

99
from cpython.datetime cimport datetime
1010

@@ -13,13 +13,6 @@ import numpy as np
1313

1414
import six
1515

16-
# Avoid import from outside _libs
17-
if sys.version_info.major == 2:
18-
from StringIO import StringIO
19-
else:
20-
from io import StringIO
21-
22-
2316
# dateutil compat
2417
from dateutil.tz import (tzoffset,
2518
tzlocal as _dateutil_tzlocal,

pandas/compat/__init__.py

-7
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,9 @@
3939

4040
try:
4141
import __builtin__ as builtins
42-
# not writeable when instantiated with string, doesn't handle unicode well
43-
from cStringIO import StringIO as cStringIO
44-
# always writeable
45-
from StringIO import StringIO
46-
BytesIO = StringIO
4742
import httplib
4843
except ImportError:
4944
import builtins
50-
from io import StringIO, BytesIO
51-
cStringIO = StringIO
5245
import http.client as httplib
5346

5447
from pandas.compat.chainmap import DeepChainMap

pandas/core/computation/expr.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33

44
import ast
55
from functools import partial, reduce
6+
from io import StringIO
67
import itertools as it
78
import operator
89
import tokenize
910

1011
import numpy as np
1112

12-
from pandas.compat import StringIO, lmap
13+
from pandas.compat import lmap
1314

1415
import pandas as pd
1516
from pandas import compat

pandas/core/computation/scope.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import datetime
66
import inspect
7+
from io import StringIO
78
import itertools
89
import pprint
910
import struct
@@ -12,7 +13,7 @@
1213
import numpy as np
1314

1415
from pandas._libs.tslibs import Timestamp
15-
from pandas.compat import DeepChainMap, StringIO
16+
from pandas.compat import DeepChainMap
1617

1718
from pandas.core.base import StringMixin
1819
import pandas.core.computation as compu

pandas/core/frame.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import collections
1414
from collections import OrderedDict, abc
1515
import functools
16+
from io import StringIO
1617
import itertools
1718
import sys
1819
import warnings
@@ -33,7 +34,7 @@
3334
validate_axis_style_args)
3435

3536
from pandas import compat
36-
from pandas.compat import PY36, StringIO, lmap, lzip, raise_with_traceback
37+
from pandas.compat import PY36, lmap, lzip, raise_with_traceback
3738
from pandas.compat.numpy import function as nv
3839
from pandas.core.dtypes.cast import (
3940
maybe_upcast,

pandas/core/series.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Data structure for 1-dimensional cross-sectional and time series data
33
"""
44
from collections import OrderedDict, abc
5+
from io import StringIO
56
from shutil import get_terminal_size
67
from textwrap import dedent
78
import warnings
@@ -12,7 +13,7 @@
1213

1314
from pandas._libs import iNaT, index as libindex, lib, tslibs
1415
import pandas.compat as compat
15-
from pandas.compat import PY36, StringIO
16+
from pandas.compat import PY36
1617
from pandas.compat.numpy import function as nv
1718
from pandas.util._decorators import Appender, Substitution, deprecate
1819
from pandas.util._validators import validate_bool_kwarg

pandas/io/clipboards.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
""" io on the clipboard """
2+
from io import StringIO
23
import warnings
34

45
import pandas.compat as compat
5-
from pandas.compat import StringIO
66

77
from pandas.core.dtypes.generic import ABCDataFrame
88

pandas/io/common.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import csv
66
import gzip
77
from http.client import HTTPException # noqa
8+
from io import BytesIO
89
import lzma
910
import mmap
1011
import os
@@ -16,7 +17,6 @@
1617
import zipfile
1718

1819
import pandas.compat as compat
19-
from pandas.compat import BytesIO
2020
from pandas.errors import ( # noqa
2121
AbstractMethodError, DtypeWarning, EmptyDataError, ParserError,
2222
ParserWarning)
@@ -411,7 +411,7 @@ def _get_handle(path_or_buf, mode, encoding=None, compression=None,
411411
return f, handles
412412

413413

414-
class BytesZipFile(zipfile.ZipFile, BytesIO):
414+
class BytesZipFile(zipfile.ZipFile, BytesIO): # type: ignore
415415
"""
416416
Wrapper for standard library class ZipFile and allow the returned file-like
417417
handle to accept byte strings via `write` method.

pandas/io/formats/csvs.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
"""
55

66
import csv as csvlib
7+
from io import StringIO
78
import os
89
import warnings
910
from zipfile import ZipFile
1011

1112
import numpy as np
1213

1314
from pandas._libs import writers as libwriters
14-
from pandas.compat import StringIO
1515

1616
from pandas.core.dtypes.generic import (
1717
ABCDatetimeIndex, ABCIndexClass, ABCMultiIndex, ABCPeriodIndex)

pandas/io/formats/format.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"""
66

77
from functools import partial
8+
from io import StringIO
89
from shutil import get_terminal_size
910
from unicodedata import east_asian_width
1011

@@ -15,7 +16,7 @@
1516
from pandas._libs import lib
1617
from pandas._libs.tslib import format_array_from_datetime
1718
from pandas._libs.tslibs import NaT, Timedelta, Timestamp, iNaT
18-
from pandas.compat import StringIO, lzip
19+
from pandas.compat import lzip
1920

2021
from pandas.core.dtypes.common import (
2122
is_categorical_dtype, is_datetime64_dtype, is_datetime64tz_dtype,

pandas/io/json/json.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# pylint: disable-msg=E1101,W0613,W0603
2+
from io import StringIO
23
from itertools import islice
34
import os
45

56
import numpy as np
67

78
import pandas._libs.json as json
89
from pandas._libs.tslibs import iNaT
9-
from pandas.compat import StringIO, to_str
10+
from pandas.compat import to_str
1011
from pandas.errors import AbstractMethodError
1112

1213
from pandas.core.dtypes.common import is_period_dtype

pandas/io/packers.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@
3939
"""
4040

4141
from datetime import date, datetime, timedelta
42+
from io import BytesIO
4243
import os
4344
from textwrap import dedent
4445
import warnings
4546

4647
from dateutil.parser import parse
4748
import numpy as np
4849

49-
import pandas.compat as compat
5050
from pandas.errors import PerformanceWarning
5151
from pandas.util._move import (
5252
BadMove as _BadMove, move_into_mutable_buffer as _move_into_mutable_buffer)
@@ -150,7 +150,7 @@ def writer(fh):
150150
with open(path_or_buf, mode) as fh:
151151
writer(fh)
152152
elif path_or_buf is None:
153-
buf = compat.BytesIO()
153+
buf = BytesIO()
154154
writer(buf)
155155
return buf.getvalue()
156156
else:
@@ -207,7 +207,7 @@ def read(fh):
207207
# treat as a binary-like
208208
fh = None
209209
try:
210-
fh = compat.BytesIO(path_or_buf)
210+
fh = BytesIO(path_or_buf)
211211
return read(fh)
212212
finally:
213213
if fh is not None:
@@ -802,12 +802,12 @@ def __iter__(self):
802802
if path_exists:
803803
fh = open(self.path, 'rb')
804804
else:
805-
fh = compat.BytesIO(self.path)
805+
fh = BytesIO(self.path)
806806

807807
else:
808808

809809
if not hasattr(self.path, 'read'):
810-
fh = compat.BytesIO(self.path)
810+
fh = BytesIO(self.path)
811811

812812
else:
813813

pandas/io/parsers.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from collections import defaultdict
66
import csv
77
import datetime
8+
from io import StringIO
89
import re
910
import sys
1011
from textwrap import fill
@@ -17,7 +18,7 @@
1718
import pandas._libs.parsers as parsers
1819
from pandas._libs.tslibs import parsing
1920
import pandas.compat as compat
20-
from pandas.compat import StringIO, lrange, lzip
21+
from pandas.compat import lrange, lzip
2122
from pandas.errors import (
2223
AbstractMethodError, EmptyDataError, ParserError, ParserWarning)
2324
from pandas.util._decorators import Appender

pandas/io/pickle.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
""" pickle compat """
2+
from io import BytesIO
23
import pickle
34
import warnings
45

56
from numpy.lib.format import read_array
67

7-
from pandas.compat import BytesIO, pickle_compat as pc
8+
from pandas.compat import pickle_compat as pc
89

910
from pandas.io.common import _get_handle, _stringify_path
1011

pandas/io/sas/sas_xport.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"""
1010

1111
from datetime import datetime
12+
from io import BytesIO
1213
import struct
1314
import warnings
1415

@@ -17,7 +18,6 @@
1718
from pandas.util._decorators import Appender
1819

1920
import pandas as pd
20-
from pandas import compat
2121

2222
from pandas.io.common import BaseIterator, get_filepath_or_buffer
2323

@@ -249,7 +249,7 @@ def __init__(self, filepath_or_buffer, index=None, encoding='ISO-8859-1',
249249
contents = contents.encode(self._encoding)
250250
except UnicodeEncodeError:
251251
pass
252-
self.filepath_or_buffer = compat.BytesIO(contents)
252+
self.filepath_or_buffer = BytesIO(contents)
253253

254254
self._read_header()
255255

pandas/io/stata.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
from collections import OrderedDict
1414
import datetime
15+
from io import BytesIO
1516
import os
1617
import struct
1718
import sys
@@ -23,7 +24,7 @@
2324
from pandas._libs.lib import infer_dtype
2425
from pandas._libs.tslibs import NaT, Timestamp
2526
from pandas._libs.writers import max_len_string_array
26-
from pandas.compat import BytesIO, lmap, lrange, lzip
27+
from pandas.compat import lmap, lrange, lzip
2728
from pandas.util._decorators import Appender, deprecate_kwarg
2829

2930
from pandas.core.dtypes.common import (

pandas/tests/dtypes/test_inference.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from datetime import date, datetime, time, timedelta
1010
from decimal import Decimal
1111
from fractions import Fraction
12+
from io import StringIO
1213
from numbers import Number
1314
import re
1415

@@ -17,7 +18,7 @@
1718
import pytz
1819

1920
from pandas._libs import iNaT, lib, missing as libmissing
20-
from pandas.compat import StringIO, lrange
21+
from pandas.compat import lrange
2122
import pandas.util._test_decorators as td
2223

2324
from pandas.core.dtypes import inference

pandas/tests/extension/base/io.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
from io import StringIO
2+
13
import numpy as np
24
import pytest
35

4-
from pandas.compat import StringIO
5-
66
import pandas as pd
77

88
from .base import BaseExtensionTests

pandas/tests/frame/test_block_internals.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
# -*- coding: utf-8 -*-
22

33
from datetime import datetime, timedelta
4+
from io import StringIO
45
import itertools
56

67
import numpy as np
78
import pytest
89

9-
from pandas.compat import StringIO
10-
1110
import pandas as pd
1211
from pandas import (
1312
Categorical, DataFrame, Series, Timestamp, compat, date_range,

pandas/tests/frame/test_query_eval.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# -*- coding: utf-8 -*-
2-
2+
from io import StringIO
33
import operator
44

55
import numpy as np
66
import pytest
77

8-
from pandas.compat import StringIO, lrange
8+
from pandas.compat import lrange
99
import pandas.util._test_decorators as td
1010

1111
import pandas as pd

pandas/tests/frame/test_replace.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# -*- coding: utf-8 -*-
22

33
from datetime import datetime
4+
from io import StringIO
45
import re
56

67
import numpy as np
78
import pytest
89

9-
from pandas.compat import StringIO, lrange
10+
from pandas.compat import lrange
1011

1112
import pandas as pd
1213
from pandas import DataFrame, Index, Series, Timestamp, compat, date_range

0 commit comments

Comments
 (0)