From e398b411502c3f4bbf354e5cf36b2fdc8d7bac5a Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Tue, 29 Oct 2019 09:49:04 +0100
Subject: [PATCH] Add Field.itemsize (yields Field.dtype.numpy_dtype.itemsize)

---
 pystencils/field.py            |  4 ++++
 pystencils_tests/test_field.py | 14 ++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/pystencils/field.py b/pystencils/field.py
index 2c25dce..aa0d1d3 100644
--- a/pystencils/field.py
+++ b/pystencils/field.py
@@ -357,6 +357,10 @@ class Field(AbstractField):
     def dtype(self):
         return self._dtype
 
+    @property
+    def itemsize(self):
+        return self.dtype.numpy_dtype.itemsize
+
     def __repr__(self):
         return self._field_name
 
diff --git a/pystencils_tests/test_field.py b/pystencils_tests/test_field.py
index d4b9c6a..49bd448 100644
--- a/pystencils_tests/test_field.py
+++ b/pystencils_tests/test_field.py
@@ -3,8 +3,7 @@ import pytest
 import sympy as sp
 
 import pystencils as ps
-from pystencils.field import Field, FieldType
-from pystencils.field import layout_string_to_tuple
+from pystencils.field import Field, FieldType, layout_string_to_tuple
 
 
 def test_field_basic():
@@ -117,3 +116,14 @@ def test_string_creation():
     assert x.index_shape == (4,)
     assert y.index_shape == (3, 5)
     assert z.spatial_shape == (3, 47)
+
+
+def test_itemsize():
+
+    x = ps.fields('x: float32[1d]')
+    y = ps.fields('y:  float64[2d]')
+    i = ps.fields('i:  int16[1d]')
+
+    assert x.itemsize == 4
+    assert y.itemsize == 8
+    assert i.itemsize == 2
-- 
GitLab