@@ -15,8 +15,8 @@ def get_version(java_class_or_python_package) -> str:
1515 """
1616 Return the version of a Java class or Python package.
1717
18- For Python package, uses importlib.metadata.version if available
19- (Python 3.8+), with pkg_resources.get_distribution as a fallback .
18+ For Python packages, invokes importlib.metadata.version on the given
19+ object's base __module__ or __package__ (before the first dot symbol) .
2020
2121 For Java classes, requires org.scijava:scijava-common on the classpath.
2222
@@ -32,8 +32,16 @@ def get_version(java_class_or_python_package) -> str:
3232 VersionUtils = jimport ("org.scijava.util.VersionUtils" )
3333 return str (VersionUtils .getVersion (java_class_or_python_package ))
3434
35- # Assume we were given a Python package name.
36- return version (java_class_or_python_package )
35+ # Assume we were given a Python package name or module.
36+ package_name = None
37+ if hasattr (java_class_or_python_package , "__module__" ):
38+ package_name = java_class_or_python_package .__module__
39+ elif hasattr (java_class_or_python_package , "__package__" ):
40+ package_name = java_class_or_python_package .__package__
41+ else :
42+ package_name = str (java_class_or_python_package )
43+
44+ return version (package_name .split ("." )[0 ])
3745
3846
3947def is_version_at_least (actual_version : str , minimum_version : str ) -> bool :
0 commit comments