Repository: silx-kit/silx
Issue: Nightly debian build failed

Those tests fail:
```
======================================================================
ERROR: testAttributeValues (silx.io.test.test_dictdump.TestDictToH5)
Any NX data types can be used
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/tester/silx/build/lib.linux-x86_64-3.7/silx/io/test/test_dictdump.py", line 159, in testAttributeValues
    dictdump.dicttoh5(ddict, h5file)
  File "/home/tester/silx/build/lib.linux-x86_64-3.7/silx/io/dictdump.py", line 282, in dicttoh5
    h5f[h5path + key[0]].attrs[key[1]] = treedict[key]
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/usr/lib/python3/dist-packages/h5py/_hl/attrs.py", line 95, in __setitem__
    self.create(name, data=value, dtype=base.guess_dtype(value))
  File "/usr/lib/python3/dist-packages/h5py/_hl/attrs.py", line 171, in create
    htype = h5t.py_create(original_dtype, logical=True)
  File "h5py/h5t.pyx", line 1611, in h5py.h5t.py_create
  File "h5py/h5t.pyx", line 1633, in h5py.h5t.py_create
  File "h5py/h5t.pyx", line 1694, in h5py.h5t.py_create
TypeError: No conversion path for dtype: dtype('<U3')

======================================================================
ERROR: testAttributeValues (silx.io.test.test_dictdump.TestDictToNx)
Any NX data types can be used
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/tester/silx/build/lib.linux-x86_64-3.7/silx/io/test/test_dictdump.py", line 249, in testAttributeValues
    dictdump.dicttonx(ddict, h5file)
  File "/home/tester/silx/build/lib.linux-x86_64-3.7/silx/io/dictdump.py", line 352, in dicttonx
    create_dataset_args=create_dataset_args,
  File "/home/tester/silx/build/lib.linux-x86_64-3.7/silx/io/dictdump.py", line 282, in dicttoh5
    h5f[h5path + key[0]].attrs[key[1]] = treedict[key]
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "/usr/lib/python3/dist-packages/h5py/_hl/attrs.py", line 95, in __setitem__
    self.create(name, data=value, dtype=base.guess_dtype(value))
  File "/usr/lib/python3/dist-packages/h5py/_hl/attrs.py", line 171, in create
    htype = h5t.py_create(original_dtype, logical=True)
  File "h5py/h5t.pyx", line 1611, in h5py.h5t.py_create
  File "h5py/h5t.pyx", line 1633, in h5py.h5t.py_create
  File "h5py/h5t.pyx", line 1694, in h5py.h5t.py_create
TypeError: No conversion path for dtype: dtype('<U3')
```

Changed files:
silx/io/dictdump.py

diff --git a/silx/io/dictdump.py b/silx/io/dictdump.py
index dbaf2c0d4..4531da380 100644
--- a/silx/io/dictdump.py
+++ b/silx/io/dictdump.py
@@ -1,6 +1,6 @@
 # coding: utf-8
 # /*##########################################################################
-# Copyright (C) 2016-2019 European Synchrotron Radiation Facility
+# Copyright (C) 2016-2020 European Synchrotron Radiation Facility
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal
@@ -279,7 +279,15 @@ def dicttoh5(treedict, h5file, h5path='/',
                     continue
 
             # Write attribute
-            h5f[h5path + key[0]].attrs[key[1]] = treedict[key]
+            value = treedict[key]
+
+            # Makes list/tuple of str being encoded as vlen unicode array
+            # Workaround for h5py<2.9.0 (e.g. debian 10).
+            if (isinstance(value, (list, tuple)) and
+                    numpy.asarray(value).dtype.type == numpy.unicode_):
+                value = numpy.array(value, dtype=h5py.special_dtype(vlen=str))
+
+            h5f[h5path + key[0]].attrs[key[1]] = value
 
 
 def dicttonx(