35
35
# EXOplanet Transit Interpretation Code (EXOTIC)
36
36
# # NOTE: See companion file version.py for version info.
37
37
# ########################################################################### #
38
- import importlib_metadata as metadata
38
+
39
+ # Import metadata handling based on Python version
40
+ try :
41
+ from importlib import metadata # Python 3.8+
42
+ except ImportError :
43
+ # Fallback to importlib_metadata for older versions
44
+ import importlib_metadata as metadata # Python <3.8
45
+
39
46
from pathlib import Path
40
47
import sys
41
48
42
- # extend PYTHONPATH
49
+ # Extend PYTHONPATH to include current directory and parent directory
50
+ # This ensures imports can find modules in the current package structure
43
51
path_update = ['.' , str (Path (__file__ ).resolve ().parent )]
44
52
for p in path_update :
45
53
if p not in sys .path :
46
54
sys .path .append (p )
47
55
48
- try : # module import
56
+ # Import custom version reading function for fallback scenario
57
+ try :
58
+ # First attempt: import as a relative module (when running as part of a package)
49
59
from .api .versioning import version_read
50
- except ImportError : # package import
60
+ except ImportError :
61
+ # Second attempt: import as an absolute package (when running standalone)
51
62
from api .versioning import version_read
52
63
53
- ignore = True
54
-
64
+ # Version detection
55
65
try :
66
+ # First attempt: get version from package metadata
56
67
__version__ = metadata .version (__name__ )
57
68
except metadata .PackageNotFoundError :
58
- # package is not installed, try reading from exotic script
69
+ # Second attempt: package is not installed, try reading version from exotic script
59
70
try :
60
71
__version__ = version_read ("exotic.py" )
61
72
except IOError :
62
- # unable to read from exotic script
63
- __version__ = "unknown"
64
- pass
65
- pass
73
+ # Unable to read from exotic script
74
+ __version__ = "unknown"
0 commit comments