Skip to content

CLN: PY3 String/BytesIO #25954

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Apr 3, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions pandas/_libs/tslibs/parsing.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
"""
Parsing functions for datetime and datetime-like strings.
"""
import sys
import re
import time
from io import StringIO

from cpython.datetime cimport datetime

Expand All @@ -13,13 +13,6 @@ import numpy as np

import six

# Avoid import from outside _libs
if sys.version_info.major == 2:
from StringIO import StringIO
else:
from io import StringIO


# dateutil compat
from dateutil.tz import (tzoffset,
tzlocal as _dateutil_tzlocal,
Expand Down
7 changes: 0 additions & 7 deletions pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,9 @@

try:
import __builtin__ as builtins
# not writeable when instantiated with string, doesn't handle unicode well
from cStringIO import StringIO as cStringIO
# always writeable
from StringIO import StringIO
BytesIO = StringIO
import httplib
except ImportError:
import builtins
from io import StringIO, BytesIO
cStringIO = StringIO
import http.client as httplib

from pandas.compat.chainmap import DeepChainMap
Expand Down
3 changes: 2 additions & 1 deletion pandas/core/computation/expr.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@

import ast
from functools import partial, reduce
from io import StringIO
import itertools as it
import operator
import tokenize

import numpy as np

from pandas.compat import StringIO, lmap
from pandas.compat import lmap

import pandas as pd
from pandas import compat
Expand Down
3 changes: 2 additions & 1 deletion pandas/core/computation/scope.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import datetime
import inspect
from io import StringIO
import itertools
import pprint
import struct
Expand All @@ -12,7 +13,7 @@
import numpy as np

from pandas._libs.tslibs import Timestamp
from pandas.compat import DeepChainMap, StringIO
from pandas.compat import DeepChainMap

from pandas.core.base import StringMixin
import pandas.core.computation as compu
Expand Down
3 changes: 2 additions & 1 deletion pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import collections
from collections import OrderedDict, abc
import functools
from io import StringIO
import itertools
import sys
import warnings
Expand All @@ -33,7 +34,7 @@
validate_axis_style_args)

from pandas import compat
from pandas.compat import PY36, StringIO, lmap, lzip, raise_with_traceback
from pandas.compat import PY36, lmap, lzip, raise_with_traceback
from pandas.compat.numpy import function as nv
from pandas.core.dtypes.cast import (
maybe_upcast,
Expand Down
3 changes: 2 additions & 1 deletion pandas/core/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Data structure for 1-dimensional cross-sectional and time series data
"""
from collections import OrderedDict, abc
from io import StringIO
from shutil import get_terminal_size
from textwrap import dedent
import warnings
Expand All @@ -12,7 +13,7 @@

from pandas._libs import iNaT, index as libindex, lib, tslibs
import pandas.compat as compat
from pandas.compat import PY36, StringIO
from pandas.compat import PY36
from pandas.compat.numpy import function as nv
from pandas.util._decorators import Appender, Substitution, deprecate
from pandas.util._validators import validate_bool_kwarg
Expand Down
2 changes: 1 addition & 1 deletion pandas/io/clipboards.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
""" io on the clipboard """
from io import StringIO
import warnings

import pandas.compat as compat
from pandas.compat import StringIO

from pandas.core.dtypes.generic import ABCDataFrame

Expand Down
4 changes: 2 additions & 2 deletions pandas/io/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import csv
import gzip
from http.client import HTTPException # noqa
from io import BytesIO
import lzma
import mmap
import os
Expand All @@ -16,7 +17,6 @@
import zipfile

import pandas.compat as compat
from pandas.compat import BytesIO
from pandas.errors import ( # noqa
AbstractMethodError, DtypeWarning, EmptyDataError, ParserError,
ParserWarning)
Expand Down Expand Up @@ -411,7 +411,7 @@ def _get_handle(path_or_buf, mode, encoding=None, compression=None,
return f, handles


class BytesZipFile(zipfile.ZipFile, BytesIO):
class BytesZipFile(zipfile.ZipFile, BytesIO): # type: ignore
"""
Wrapper for standard library class ZipFile and allow the returned file-like
handle to accept byte strings via `write` method.
Expand Down
2 changes: 1 addition & 1 deletion pandas/io/formats/csvs.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
"""

import csv as csvlib
from io import StringIO
import os
import warnings
from zipfile import ZipFile

import numpy as np

from pandas._libs import writers as libwriters
from pandas.compat import StringIO

from pandas.core.dtypes.generic import (
ABCDatetimeIndex, ABCIndexClass, ABCMultiIndex, ABCPeriodIndex)
Expand Down
3 changes: 2 additions & 1 deletion pandas/io/formats/format.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"""

from functools import partial
from io import StringIO
from shutil import get_terminal_size
from unicodedata import east_asian_width

Expand All @@ -15,7 +16,7 @@
from pandas._libs import lib
from pandas._libs.tslib import format_array_from_datetime
from pandas._libs.tslibs import NaT, Timedelta, Timestamp, iNaT
from pandas.compat import StringIO, lzip
from pandas.compat import lzip

from pandas.core.dtypes.common import (
is_categorical_dtype, is_datetime64_dtype, is_datetime64tz_dtype,
Expand Down
3 changes: 2 additions & 1 deletion pandas/io/json/json.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# pylint: disable-msg=E1101,W0613,W0603
from io import StringIO
from itertools import islice
import os

import numpy as np

import pandas._libs.json as json
from pandas._libs.tslibs import iNaT
from pandas.compat import StringIO, to_str
from pandas.compat import to_str
from pandas.errors import AbstractMethodError

from pandas.core.dtypes.common import is_period_dtype
Expand Down
10 changes: 5 additions & 5 deletions pandas/io/packers.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@
"""

from datetime import date, datetime, timedelta
from io import BytesIO
import os
from textwrap import dedent
import warnings

from dateutil.parser import parse
import numpy as np

import pandas.compat as compat
from pandas.errors import PerformanceWarning
from pandas.util._move import (
BadMove as _BadMove, move_into_mutable_buffer as _move_into_mutable_buffer)
Expand Down Expand Up @@ -150,7 +150,7 @@ def writer(fh):
with open(path_or_buf, mode) as fh:
writer(fh)
elif path_or_buf is None:
buf = compat.BytesIO()
buf = BytesIO()
writer(buf)
return buf.getvalue()
else:
Expand Down Expand Up @@ -207,7 +207,7 @@ def read(fh):
# treat as a binary-like
fh = None
try:
fh = compat.BytesIO(path_or_buf)
fh = BytesIO(path_or_buf)
return read(fh)
finally:
if fh is not None:
Expand Down Expand Up @@ -802,12 +802,12 @@ def __iter__(self):
if path_exists:
fh = open(self.path, 'rb')
else:
fh = compat.BytesIO(self.path)
fh = BytesIO(self.path)

else:

if not hasattr(self.path, 'read'):
fh = compat.BytesIO(self.path)
fh = BytesIO(self.path)

else:

Expand Down
3 changes: 2 additions & 1 deletion pandas/io/parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from collections import defaultdict
import csv
import datetime
from io import StringIO
import re
import sys
from textwrap import fill
Expand All @@ -17,7 +18,7 @@
import pandas._libs.parsers as parsers
from pandas._libs.tslibs import parsing
import pandas.compat as compat
from pandas.compat import StringIO, lrange, lzip
from pandas.compat import lrange, lzip
from pandas.errors import (
AbstractMethodError, EmptyDataError, ParserError, ParserWarning)
from pandas.util._decorators import Appender
Expand Down
3 changes: 2 additions & 1 deletion pandas/io/pickle.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
""" pickle compat """
from io import BytesIO
import pickle
import warnings

from numpy.lib.format import read_array

from pandas.compat import BytesIO, pickle_compat as pc
from pandas.compat import pickle_compat as pc

from pandas.io.common import _get_handle, _stringify_path

Expand Down
4 changes: 2 additions & 2 deletions pandas/io/sas/sas_xport.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"""

from datetime import datetime
from io import BytesIO
import struct
import warnings

Expand All @@ -17,7 +18,6 @@
from pandas.util._decorators import Appender

import pandas as pd
from pandas import compat

from pandas.io.common import BaseIterator, get_filepath_or_buffer

Expand Down Expand Up @@ -249,7 +249,7 @@ def __init__(self, filepath_or_buffer, index=None, encoding='ISO-8859-1',
contents = contents.encode(self._encoding)
except UnicodeEncodeError:
pass
self.filepath_or_buffer = compat.BytesIO(contents)
self.filepath_or_buffer = BytesIO(contents)

self._read_header()

Expand Down
3 changes: 2 additions & 1 deletion pandas/io/stata.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

from collections import OrderedDict
import datetime
from io import BytesIO
import os
import struct
import sys
Expand All @@ -23,7 +24,7 @@
from pandas._libs.lib import infer_dtype
from pandas._libs.tslibs import NaT, Timestamp
from pandas._libs.writers import max_len_string_array
from pandas.compat import BytesIO, lmap, lrange, lzip
from pandas.compat import lmap, lrange, lzip
from pandas.util._decorators import Appender, deprecate_kwarg

from pandas.core.dtypes.common import (
Expand Down
3 changes: 2 additions & 1 deletion pandas/tests/dtypes/test_inference.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from datetime import date, datetime, time, timedelta
from decimal import Decimal
from fractions import Fraction
from io import StringIO
from numbers import Number
import re

Expand All @@ -17,7 +18,7 @@
import pytz

from pandas._libs import iNaT, lib, missing as libmissing
from pandas.compat import StringIO, lrange
from pandas.compat import lrange
import pandas.util._test_decorators as td

from pandas.core.dtypes import inference
Expand Down
4 changes: 2 additions & 2 deletions pandas/tests/extension/base/io.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from io import StringIO

import numpy as np
import pytest

from pandas.compat import StringIO

import pandas as pd

from .base import BaseExtensionTests
Expand Down
3 changes: 1 addition & 2 deletions pandas/tests/frame/test_block_internals.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# -*- coding: utf-8 -*-

from datetime import datetime, timedelta
from io import StringIO
import itertools

import numpy as np
import pytest

from pandas.compat import StringIO

import pandas as pd
from pandas import (
Categorical, DataFrame, Series, Timestamp, compat, date_range,
Expand Down
4 changes: 2 additions & 2 deletions pandas/tests/frame/test_query_eval.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-

from io import StringIO
import operator

import numpy as np
import pytest

from pandas.compat import StringIO, lrange
from pandas.compat import lrange
import pandas.util._test_decorators as td

import pandas as pd
Expand Down
3 changes: 2 additions & 1 deletion pandas/tests/frame/test_replace.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# -*- coding: utf-8 -*-

from datetime import datetime
from io import StringIO
import re

import numpy as np
import pytest

from pandas.compat import StringIO, lrange
from pandas.compat import lrange

import pandas as pd
from pandas import DataFrame, Index, Series, Timestamp, compat, date_range
Expand Down
Loading