@@ -21,6 +21,7 @@ def data_kind(data, x=None, y=None, z=None):
21
21
Possible types:
22
22
23
23
* a file name provided as 'data'
24
+ * an io.StringIO in-memory stream provided as 'data'
24
25
* an xarray.DataArray provided as 'data'
25
26
* a matrix provided as 'data'
26
27
* 1D arrays x and y (and z, optionally)
@@ -30,8 +31,8 @@ def data_kind(data, x=None, y=None, z=None):
30
31
31
32
Parameters
32
33
----------
33
- data : str, xarray.DataArray, 2d array, or None
34
- Data file name, xarray.DataArray or numpy array.
34
+ data : str, io.StringIO, xarray.DataArray, 2d array, or None
35
+ Data file name, io.StringIO, xarray.DataArray or numpy array.
35
36
x/y : 1d arrays or None
36
37
x and y columns as numpy arrays.
37
38
z : 1d array or None
@@ -41,11 +42,13 @@ def data_kind(data, x=None, y=None, z=None):
41
42
Returns
42
43
-------
43
44
kind : str
44
- One of: ``'file'``, ``'grid'``, ``'matrix'``, ``'vectors'``.
45
+ One of: ``'file'``, ``'buffer'``, ``'grid'``, ``'matrix'``,
46
+ ``'vectors'``.
45
47
46
48
Examples
47
49
--------
48
50
51
+ >>> import io
49
52
>>> import numpy as np
50
53
>>> import xarray as xr
51
54
>>> data_kind(data=None, x=np.array([1, 2, 3]), y=np.array([4, 5, 6]))
@@ -54,6 +57,8 @@ def data_kind(data, x=None, y=None, z=None):
54
57
'matrix'
55
58
>>> data_kind(data='my-data-file.txt', x=None, y=None)
56
59
'file'
60
+ >>> data_kind(data=io.StringIO("sometext"), x=None, y=None)
61
+ 'buffer'
57
62
>>> data_kind(data=xr.DataArray(np.random.rand(4, 3)))
58
63
'grid'
59
64
@@ -63,7 +68,7 @@ def data_kind(data, x=None, y=None, z=None):
63
68
if data is not None and (x is not None or y is not None or z is not None ):
64
69
raise GMTInvalidInput ("Too much data. Use either data or x and y." )
65
70
if data is None and (x is None or y is None ):
66
- raise GMTInvalidInput ("Must provided both x and y." )
71
+ raise GMTInvalidInput ("Must provide both x and y." )
67
72
68
73
if isinstance (data , str ):
69
74
kind = "file"
0 commit comments