Class DapUnpacker
source code
object --+
|
DapUnpacker
A XDR data unpacker.
Unpacking data from a base type:
>>> from dap.dtypes import *
>>> dapvar = BaseType(data=1, name='dapvar', type='Byte')
>>> print dapvar.data
1
>>> from dap.server import SimpleHandler
>>> from dap.helper import escape_dods
>>> dataset = DatasetType(name='test')
>>> dataset['dapvar'] = dapvar
>>> headers, output = SimpleHandler(dataset).dods()
>>> print escape_dods(''.join(output), pad='')
Dataset {
Byte dapvar;
} test;
Data:
\x01\x00\x00\x00
>>> headers, output = SimpleHandler(dataset).dods()
>>> xdrdata = ''.join(output)
>>> start = xdrdata.index('Data:\n') + len('Data:\n')
>>> xdrdata = xdrdata[start:]
>>> data = DapUnpacker(xdrdata, (), dapvar.type)
>>> print data.getvalue()
1
An array of bytes:
>>> dapvar = ArrayType(name='dapvar', data=range(5), shape=[5], type='Byte')
>>> dataset['dapvar'] = dapvar
>>> headers, output = SimpleHandler(dataset).dods()
>>> xdrdata = ''.join(output)
>>> start = xdrdata.index('Data:\n') + len('Data:\n')
>>> xdrdata = xdrdata[start:]
>>> data = DapUnpacker(xdrdata, dapvar.shape, dapvar.type, outshape=[5])
>>> print data.getvalue()
[0 1 2 3 4]
Another array:
>>> dapvar = ArrayType(name='dapvar', data=range(25), shape=[5,5], type='Float32')
>>> dataset['dapvar'] = dapvar
>>> headers, output = SimpleHandler(dataset).dods()
>>> xdrdata = ''.join(output)
>>> start = xdrdata.index('Data:\n') + len('Data:\n')
>>> xdrdata = xdrdata[start:]
>>> data = DapUnpacker(xdrdata, dapvar.shape, dapvar.type, outshape=[5,5])
>>> print data.getvalue()
[[ 0. 1. 2. 3. 4.]
[ 5. 6. 7. 8. 9.]
[ 10. 11. 12. 13. 14.]
[ 15. 16. 17. 18. 19.]
[ 20. 21. 22. 23. 24.]]
One more:
>>> dapvar = ArrayType(name='dapvar', data=['um', 'dois', 'três'], shape=[3], type='String')
>>> dataset['dapvar'] = dapvar
>>> headers, output = SimpleHandler(dataset).dods()
>>> for line in output:
... print repr(line)
'Dataset {\n'
' String dapvar[dapvar = 3];\n'
'} test;\n'
'Data:\n'
'\x00\x00\x00\x03'
'\x00\x00\x00\x02um\x00\x00'
'\x00\x00\x00\x04dois'
'\x00\x00\x00\x05tr\xc3\xaas\x00\x00\x00'
>>> headers, output = SimpleHandler(dataset).dods()
>>> xdrdata = ''.join(output)
>>> start = xdrdata.index('Data:\n') + len('Data:\n')
>>> xdrdata = xdrdata[start:]
>>> data = DapUnpacker(xdrdata, dapvar.shape, dapvar.type, outshape=[3])
>>> print data.getvalue()
[um dois três]
|
__init__(self,
data,
shape,
type,
outshape=None)
x.__init__(...) initializes x; see x.__class__.__doc__ for
signature
|
|
getvalue(self)
Unpack the XDR-encoded data.
|
|
_unpack_uint(self)
|
|
_unpack_bytes(self,
count)
|
|
_unpack_string(self,
count)
|
|
Inherited from object:
__delattr__,
__getattribute__,
__hash__,
__new__,
__reduce__,
__reduce_ex__,
__repr__,
__setattr__,
__str__
|
|
Inherited from object:
__class__
|
__init__(self,
data,
shape,
type,
outshape=None)
(Constructor)
| source code |
x.__init__(...) initializes x; see x.__class__.__doc__ for
signature
-
- Overrides:
object.__init__
- (inherited documentation)
|
Unpack the XDR-encoded data.
-
|