|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
From e8a80ba09abed0a5033fb1bcbf28676381526229 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
Date: Sun, 28 Feb 2016 10:47:57 -0500
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
Subject: [PATCH] Add b'' prefixes for Python 3
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
---
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
igor/struct.py | 18 +++++++++---------
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
igor/util.py | 4 ++--
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
2 files changed, 11 insertions(+), 11 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
diff --git a/igor/struct.py b/igor/struct.py
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
index a50ede5296..ec7f20ce12 100644
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
--- a/igor/struct.py
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+++ b/igor/struct.py
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
@@ -395,11 +395,11 @@ class Structure (_struct.Struct):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
The structures automatically calculate the flattened data format:
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> run.format
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '@Ihhhhhh'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'@Ihhhhhh'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> run.size # 4 + 2*3*2
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
16
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> experiment.format
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '@HIhhhhhhIhhhhhh'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'@HIhhhhhhIhhhhhh'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> experiment.size # 2 + 2 + 2*(4 + 2*3*2)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
36
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
@@ -448,15 +448,15 @@ class Structure (_struct.Struct):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> experiment.pack_into(buffer=b, data=d)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> b.tostring()[:17]
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> b.tostring()[17:]
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> run0 = d['runs'].pop(0)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> b = experiment.pack(data=d)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> b[:17]
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '\x00\x01\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f '
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'\x00\x01\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f '
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> b[17:]
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '!\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'!\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
If you set ``count=0``, the field is ignored.
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
@@ -464,7 +464,7 @@ class Structure (_struct.Struct):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
... version, Field('f', 'ignored', count=0, array=True), runs],
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
... byte_order='>')
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> experiment2.format
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '>HIhhhhhhIhhhhhh'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'>HIhhhhhhIhhhhhh'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> d = experiment2.unpack(b)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> pprint(d)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
{'ignored': array([], dtype=float64),
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
@@ -690,9 +690,9 @@ class DynamicStructure (Structure):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> d['data'] = [1,2,3,4]
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> dynamic_length_vector.pack(d)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '\x00\x00\x00\x04\x00\x01\x00\x02\x00\x03\x00\x04'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'\x00\x00\x00\x04\x00\x01\x00\x02\x00\x03\x00\x04'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> dynamic_data_vector.pack(d)
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '\x00\x00\x00\x04\x00\x01\x00\x02\x00\x03\x00\x04'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'\x00\x00\x00\x04\x00\x01\x00\x02\x00\x03\x00\x04'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
The implementation is a good deal more complicated than the one
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
for ``Structure``, because we must make multiple calls to
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
diff --git a/igor/util.py b/igor/util.py
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
index ecc783a684..0b34977d2e 100644
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
--- a/igor/util.py
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+++ b/igor/util.py
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
@@ -115,9 +115,9 @@ def _bytes(obj, encoding='utf-8'):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
"""Convert bytes or strings into bytes
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> _bytes(b'123')
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '123'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'123'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
>>> _bytes('123')
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
- '123'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
+ b'123'
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
"""
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
if _sys.version_info >= (3,):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
if isinstance(obj, bytes):
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
--
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
2.5.0
|
|
![](https://seccdn.libravatar.org/avatar/74d2a4e8b5849d63c6838ef3fb9772b27447d57f0ac32af5cd03096343616233?s=16&d=retro) |
1d20423 |
|