This is an automated email from the ASF dual-hosted git repository.
wesm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 3917e85 ARROW-2292: [Python] Rename frombuffer() to py_buffer()
3917e85 is described below
commit 3917e85d4ac0c9144e6112b627e44641da6a9b86
Author: Antoine Pitrou <[email protected]>
AuthorDate: Mon Mar 12 14:10:29 2018 -0400
ARROW-2292: [Python] Rename frombuffer() to py_buffer()
Author: Antoine Pitrou <[email protected]>
Closes #1736 from pitrou/ARROW-2292-py_buffer and squashes the following
commits:
41bf5f8f <Antoine Pitrou> ARROW-2292: Rename frombuffer() to py_buffer()
---
python/doc/source/api.rst | 2 +-
python/doc/source/ipc.rst | 5 ++--
python/doc/source/memory.rst | 2 +-
python/pyarrow/__init__.py | 11 +++++----
python/pyarrow/io.pxi | 11 +++++----
python/pyarrow/serialization.py | 4 ++--
python/pyarrow/tests/test_io.py | 38 +++++++++++++++---------------
python/pyarrow/tests/test_serialization.py | 6 ++---
python/pyarrow/util.py | 8 +++----
9 files changed, 46 insertions(+), 41 deletions(-)
diff --git a/python/doc/source/api.rst b/python/doc/source/api.rst
index 3db1a04..cb99933 100644
--- a/python/doc/source/api.rst
+++ b/python/doc/source/api.rst
@@ -213,7 +213,7 @@ Input / Output and Shared Memory
allocate_buffer
compress
decompress
- frombuffer
+ py_buffer
foreign_buffer
Buffer
ResizableBuffer
diff --git a/python/doc/source/ipc.rst b/python/doc/source/ipc.rst
index bce8b1e..c77888a 100644
--- a/python/doc/source/ipc.rst
+++ b/python/doc/source/ipc.rst
@@ -296,12 +296,13 @@ which are zero-copy convertible to Python ``memoryview``
objects:
memoryview(components['data'][0])
-A memoryview can be converted back to a ``Buffer`` with ``pyarrow.frombuffer``:
+A memoryview can be converted back to a Arrow ``Buffer`` with
+``pyarrow.py_buffer``:
.. ipython:: python
mv = memoryview(components['data'][0])
- buf = pa.frombuffer(mv)
+ buf = pa.py_buffer(mv)
An object can be reconstructed from its component-based representation using
``deserialize_components``:
diff --git a/python/doc/source/memory.rst b/python/doc/source/memory.rst
index 4806bbb..34664b8 100644
--- a/python/doc/source/memory.rst
+++ b/python/doc/source/memory.rst
@@ -50,7 +50,7 @@ implements the buffer protocol. Let's consider a bytes object:
import pyarrow as pa
data = b'abcdefghijklmnopqrstuvwxyz'
- buf = pa.frombuffer(data)
+ buf = pa.py_buffer(data)
buf
buf.size
diff --git a/python/pyarrow/__init__.py b/python/pyarrow/__init__.py
index 965a37b..bfd7d4d 100644
--- a/python/pyarrow/__init__.py
+++ b/python/pyarrow/__init__.py
@@ -28,7 +28,8 @@ except DistributionNotFound:
def parse_version(root):
from setuptools_scm import version_from_scm
import setuptools_scm.git
- describe = setuptools_scm.git.DEFAULT_DESCRIBE + " --match
'apache-arrow-[0-9]*'"
+ describe = (setuptools_scm.git.DEFAULT_DESCRIBE +
+ " --match 'apache-arrow-[0-9]*'")
# Strip catchall from the commandline
describe = describe.replace("--match *.*", "")
version = setuptools_scm.git.parse(root, describe)
@@ -86,8 +87,8 @@ from pyarrow.lib import (null, bool_,
from pyarrow.lib import TimestampType
# Buffers, allocation
-from pyarrow.lib import (Buffer, ResizableBuffer, foreign_buffer, compress,
- decompress, allocate_buffer, frombuffer)
+from pyarrow.lib import (Buffer, ResizableBuffer, foreign_buffer, py_buffer,
+ compress, decompress, allocate_buffer)
from pyarrow.lib import (MemoryPool, total_allocated_bytes,
set_memory_pool, default_memory_pool,
@@ -163,7 +164,9 @@ def _plasma_store_entry_point():
# ----------------------------------------------------------------------
# Deprecations
-from pyarrow.util import _deprecate_class # noqa
+from pyarrow.util import _deprecate_api # noqa
+
+frombuffer = _deprecate_api('frombuffer', 'py_buffer', py_buffer, '0.9.0')
# ----------------------------------------------------------------------
# Returning absolute path to the pyarrow include directory (if bundled, e.g. in
diff --git a/python/pyarrow/io.pxi b/python/pyarrow/io.pxi
index 15ecd01..3947323 100644
--- a/python/pyarrow/io.pxi
+++ b/python/pyarrow/io.pxi
@@ -26,6 +26,7 @@ import six
import sys
import threading
import time
+import warnings
# 64K
@@ -211,7 +212,7 @@ cdef class NativeFile:
if isinstance(data, six.string_types):
data = tobytes(data)
- cdef Buffer arrow_buffer = frombuffer(data)
+ cdef Buffer arrow_buffer = py_buffer(data)
cdef const uint8_t* buf = arrow_buffer.buffer.get().data()
cdef int64_t bufsize = len(arrow_buffer)
@@ -833,14 +834,14 @@ cdef class BufferReader(NativeFile):
if isinstance(obj, Buffer):
self.buffer = obj
else:
- self.buffer = frombuffer(obj)
+ self.buffer = py_buffer(obj)
self.rd_file.reset(new CBufferReader(self.buffer.buffer))
self.is_readable = True
self.closed = False
-def frombuffer(object obj):
+def py_buffer(object obj):
"""
Construct an Arrow buffer from a Python bytes object
"""
@@ -966,7 +967,7 @@ def compress(object buf, codec='lz4', asbytes=False,
memory_pool=None):
check_status(CCodec.Create(c_codec, &compressor))
if not isinstance(buf, Buffer):
- buf = frombuffer(buf)
+ buf = py_buffer(buf)
c_buf = (<Buffer> buf).buffer.get()
@@ -1031,7 +1032,7 @@ def decompress(object buf, decompressed_size=None,
codec='lz4',
check_status(CCodec.Create(c_codec, &compressor))
if not isinstance(buf, Buffer):
- buf = frombuffer(buf)
+ buf = py_buffer(buf)
c_buf = (<Buffer> buf).buffer.get()
diff --git a/python/pyarrow/serialization.py b/python/pyarrow/serialization.py
index bdf7535..6c8df35 100644
--- a/python/pyarrow/serialization.py
+++ b/python/pyarrow/serialization.py
@@ -23,7 +23,7 @@ import numpy as np
from pyarrow.compat import builtin_pickle
from pyarrow.lib import (SerializationContext, _default_serialization_context,
- frombuffer)
+ py_buffer)
try:
import cloudpickle
@@ -46,7 +46,7 @@ def _deserialize_numpy_array_list(data):
def _pickle_to_buffer(x):
pickled = builtin_pickle.dumps(x, protocol=builtin_pickle.HIGHEST_PROTOCOL)
- return frombuffer(pickled)
+ return py_buffer(pickled)
def _load_pickle_from_buffer(data):
diff --git a/python/pyarrow/tests/test_io.py b/python/pyarrow/tests/test_io.py
index fe68013..5913810 100644
--- a/python/pyarrow/tests/test_io.py
+++ b/python/pyarrow/tests/test_io.py
@@ -170,7 +170,7 @@ def test_python_file_closing():
def test_buffer_bytes():
val = b'some data'
- buf = pa.frombuffer(val)
+ buf = pa.py_buffer(val)
assert isinstance(buf, pa.Buffer)
assert not buf.is_mutable
@@ -182,7 +182,7 @@ def test_buffer_bytes():
def test_buffer_memoryview():
val = b'some data'
- buf = pa.frombuffer(val)
+ buf = pa.py_buffer(val)
assert isinstance(buf, pa.Buffer)
assert not buf.is_mutable
@@ -194,7 +194,7 @@ def test_buffer_memoryview():
def test_buffer_bytearray():
val = bytearray(b'some data')
- buf = pa.frombuffer(val)
+ buf = pa.py_buffer(val)
assert isinstance(buf, pa.Buffer)
assert buf.is_mutable
@@ -206,14 +206,14 @@ def test_buffer_bytearray():
def test_buffer_invalid():
with pytest.raises(TypeError,
match="(bytes-like object|buffer interface)"):
- pa.frombuffer(None)
+ pa.py_buffer(None)
def test_buffer_to_numpy():
# Make sure creating a numpy array from an arrow buffer works
byte_array = bytearray(20)
byte_array[0] = 42
- buf = pa.frombuffer(byte_array)
+ buf = pa.py_buffer(byte_array)
array = np.frombuffer(buf, dtype="uint8")
assert array[0] == byte_array[0]
byte_array[0] += 1
@@ -224,14 +224,14 @@ def test_buffer_to_numpy():
def test_buffer_from_numpy():
# C-contiguous
arr = np.arange(12, dtype=np.int8).reshape((3, 4))
- buf = pa.frombuffer(arr)
+ buf = pa.py_buffer(arr)
assert buf.to_pybytes() == arr.tobytes()
# F-contiguous; note strides informations is lost
- buf = pa.frombuffer(arr.T)
+ buf = pa.py_buffer(arr.T)
assert buf.to_pybytes() == arr.tobytes()
# Non-contiguous
with pytest.raises(ValueError, match="not contiguous"):
- buf = pa.frombuffer(arr.T[::2])
+ buf = pa.py_buffer(arr.T[::2])
def test_buffer_equals():
@@ -250,11 +250,11 @@ def test_buffer_equals():
b2 = bytearray(b1)
b3 = bytearray(b1)
b3[0] = 42
- buf1 = pa.frombuffer(b1)
- buf2 = pa.frombuffer(b2)
- buf3 = pa.frombuffer(b2)
- buf4 = pa.frombuffer(b3)
- buf5 = pa.frombuffer(np.frombuffer(b2, dtype=np.int16))
+ buf1 = pa.py_buffer(b1)
+ buf2 = pa.py_buffer(b2)
+ buf3 = pa.py_buffer(b2)
+ buf4 = pa.py_buffer(b3)
+ buf5 = pa.py_buffer(np.frombuffer(b2, dtype=np.int16))
eq(buf1, buf1)
eq(buf1, buf2)
eq(buf2, buf3)
@@ -266,7 +266,7 @@ def test_buffer_equals():
def test_buffer_hashing():
# Buffers are unhashable
with pytest.raises(TypeError, match="unhashable"):
- hash(pa.frombuffer(b'123'))
+ hash(pa.py_buffer(b'123'))
def test_foreign_buffer():
@@ -307,7 +307,7 @@ def test_compress_decompress():
test_data = (np.random.randint(0, 255, size=INPUT_SIZE)
.astype(np.uint8)
.tostring())
- test_buf = pa.frombuffer(test_data)
+ test_buf = pa.py_buffer(test_data)
codecs = ['lz4', 'snappy', 'gzip', 'zstd', 'brotli']
for codec in codecs:
@@ -333,7 +333,7 @@ def test_compress_decompress():
def test_buffer_memoryview_is_immutable():
val = b'some data'
- buf = pa.frombuffer(val)
+ buf = pa.py_buffer(val)
assert not buf.is_mutable
assert isinstance(buf, pa.Buffer)
@@ -368,9 +368,9 @@ def test_uninitialized_buffer():
with check_uninitialized():
memoryview(buf)
with check_uninitialized():
- buf.equals(pa.frombuffer(b''))
+ buf.equals(pa.py_buffer(b''))
with check_uninitialized():
- pa.frombuffer(b'').equals(buf)
+ pa.py_buffer(b'').equals(buf)
def test_memory_output_stream():
@@ -400,7 +400,7 @@ def test_inmemory_write_after_closed():
def test_buffer_protocol_ref_counting():
def make_buffer(bytes_obj):
- return bytearray(pa.frombuffer(bytes_obj))
+ return bytearray(pa.py_buffer(bytes_obj))
buf = make_buffer(b'foo')
gc.collect()
diff --git a/python/pyarrow/tests/test_serialization.py
b/python/pyarrow/tests/test_serialization.py
index 64aab06..7ddf395 100644
--- a/python/pyarrow/tests/test_serialization.py
+++ b/python/pyarrow/tests/test_serialization.py
@@ -445,7 +445,7 @@ def test_buffer_serialization():
pass
def serialize_buffer_class(obj):
- return pa.frombuffer(b"hello")
+ return pa.py_buffer(b"hello")
def deserialize_buffer_class(serialized_obj):
return serialized_obj
@@ -581,7 +581,7 @@ def test_serialize_subclasses():
def test_serialize_to_components_invalid_cases():
- buf = pa.frombuffer(b'hello')
+ buf = pa.py_buffer(b'hello')
components = {
'num_tensors': 0,
@@ -631,7 +631,7 @@ def test_deserialize_buffer_in_different_process():
import subprocess
f = tempfile.NamedTemporaryFile(delete=False)
- b = pa.serialize(pa.frombuffer(b'hello')).to_buffer()
+ b = pa.serialize(pa.py_buffer(b'hello')).to_buffer()
f.write(b.to_pybytes())
f.close()
diff --git a/python/pyarrow/util.py b/python/pyarrow/util.py
index d984e19..b882565 100644
--- a/python/pyarrow/util.py
+++ b/python/pyarrow/util.py
@@ -27,11 +27,11 @@ def implements(f):
return decorator
-def _deprecate_class(old_name, new_name, klass, next_version='0.5.0'):
+def _deprecate_api(old_name, new_name, api, next_version):
msg = ('pyarrow.{0} is deprecated as of {1}, please use {2} instead'
.format(old_name, next_version, new_name))
- def deprecated_factory(*args, **kwargs):
+ def wrapper(*args, **kwargs):
warnings.warn(msg, FutureWarning)
- return klass(*args)
- return deprecated_factory
+ return api(*args)
+ return wrapper
--
To stop receiving notification emails like this one, please contact
[email protected].