@@ -1243,6 +1243,37 @@ suggestion_public_objects = [
12431243]
12441244suggestion = create_module(suggestion_module_name, suggestion_module_doc, suggestion_public_objects)
12451245
1246+ version_module_doc = """ libzim version module
1247+ - Get versions of libzim.
1248+ - Print version of libzim.
1249+
1250+ Usage:
1251+ versions = Version.get_versions()
1252+ Version.print_version()"""
1253+ version_public_objects = [
1254+ Version,
1255+ ]
1256+ version_module_name = f" {__name__}.version"
1257+ version = create_module(version_module_name, version_module_doc, version_public_objects)
1258+
1259+ cdef class Version:
1260+ __module__ = version_module_name
1261+ @staticmethod
1262+ def get_versions() -> [(string , string )]:
1263+ return zim.getVersions()
1264+
1265+ @staticmethod
1266+ def print_version(out: Union[sys.stdout , sys.stderr] = sys.stdout ):
1267+ versions = Version.get_versions()
1268+ for i, version in enumerate (versions):
1269+ output = " "
1270+ if i > 0 :
1271+ output += " + "
1272+ output += version[0 ].decode(" utf-8" )
1273+ output += " "
1274+ output += version[1 ].decode(" utf-8" )
1275+ print (output, file = out)
1276+
12461277
12471278
12481279class ModuleLoader (importlib.abc.Loader ):
@@ -1253,7 +1284,8 @@ class ModuleLoader(importlib.abc.Loader):
12531284 ' libzim.writer' : writer,
12541285 ' libzim.reader' : reader,
12551286 ' libzim.search' : search,
1256- ' libzim.suggestion' : suggestion
1287+ ' libzim.suggestion' : suggestion,
1288+ ' libzim.version' : version
12571289 }.get(spec.name, None )
12581290
12591291 @staticmethod
@@ -1272,5 +1304,5 @@ class ModuleFinder(importlib.abc.MetaPathFinder):
12721304# register finder for our submodules
12731305sys.meta_path.insert(0 , ModuleFinder())
12741306
1275- __all__ = [" writer" , " reader" , " search" , " suggestion" ]
1307+ __all__ = [" writer" , " reader" , " search" , " suggestion" , " version " ]
12761308
0 commit comments