File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed
Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -230,14 +230,22 @@ def get_filters(
230230 return tuple (filter_classes )
231231
232232
233- def from_filter_options (filter_id : int , filter_options : tuple [int , ...]) -> FilterBase :
233+ def from_filter_options (
234+ filter_id : int | str , filter_options : tuple [int , ...]
235+ ) -> FilterBase :
234236 """Returns corresponding compression filter configuration instance.
235237
236238 :param filter_id: HDF5 compression filter ID
237239 :param filter_options: Compression filter configuration as stored in HDF5 datasets
238240 :raises ValueError: Unsupported or invalid filter_id, filter_options combination
239241 :raises NotImplementedError: Given filter or version of the filter is not supported
240242 """
243+ if isinstance (filter_id , str ):
244+ try :
245+ filter_id = FILTERS [filter_id ]
246+ except KeyError :
247+ raise ValueError (f"Unsupported filter id: { filter_id } " )
248+
241249 for filter_cls in FILTER_CLASSES :
242250 if filter_id == filter_cls .filter_id :
243251 return filter_cls ._from_filter_options (filter_options )
Original file line number Diff line number Diff line change @@ -499,7 +499,7 @@ def testStringsZstd(self):
499499 self ._test_strings ("zstd" )
500500
501501
502- class TestFromFilterOptions (unittest .TestCase ):
502+ class TestFromFilterOptionsMethods (unittest .TestCase ):
503503 """Test _from_filter_options methods"""
504504
505505 def testBitshuffle (self ):
@@ -690,6 +690,14 @@ def testZstd(self):
690690 self .assertEqual (compression_filter .filter_options , expected_options )
691691
692692
693+ class TestFromFilterOptions (unittest .TestCase ):
694+ """Test from_filter_options function"""
695+
696+ def test_filter_name (self ):
697+ compression_filter = hdf5plugin .from_filter_options ("bzip2" , (5 ,))
698+ self .assertEqual (compression_filter , hdf5plugin .BZip2 (blocksize = 5 ))
699+
700+
693701class TestFromFilterOptionsRoundtrip (unittest .TestCase ):
694702 """Test from_filter_options function roundtrip"""
695703
@@ -1027,6 +1035,7 @@ def suite() -> unittest.TestSuite:
10271035 for cls in (
10281036 TestHDF5PluginRW ,
10291037 TestStrings ,
1038+ TestFromFilterOptionsMethods ,
10301039 TestFromFilterOptions ,
10311040 TestFromFilterOptionsRoundtrip ,
10321041 TestPackage ,
You can’t perform that action at this time.
0 commit comments