|
58 | 58 | # |
59 | 59 | # Get version dynamically from the same source as pyproject.toml |
60 | 60 | try: |
61 | | - # First, try to import from the generated ics module (same as pyproject.toml) |
62 | | - sys.path.insert(0, os.path.abspath("../../gen")) |
| 61 | + # First, try the installed package (e.g. ReadTheDocs, pip install .) |
63 | 62 | import ics |
64 | 63 | version = ics.__version__ |
65 | 64 | release = ics.__full_version__ |
66 | | -except ImportError: |
| 65 | +except (ImportError, AttributeError): |
67 | 66 | try: |
68 | | - # Fallback: try dunamai directly (for build environments) |
69 | | - import dunamai |
70 | | - version = dunamai.Version.from_git().serialize(metadata=False) |
71 | | - release = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") |
72 | | - except ImportError: |
73 | | - # Fallback if neither is available |
74 | | - version = "unknown" |
75 | | - release = version |
76 | | - except Exception: |
77 | | - # Fallback if not in a git repository or other issues |
78 | | - version = "unknown" |
79 | | - release = version |
| 67 | + # Fallback for local dev: import from generated source tree |
| 68 | + gen_path = os.path.abspath("../../gen") |
| 69 | + sys.path.insert(0, gen_path) |
| 70 | + try: |
| 71 | + import ics |
| 72 | + version = ics.__version__ |
| 73 | + release = ics.__full_version__ |
| 74 | + finally: |
| 75 | + sys.path.remove(gen_path) |
| 76 | + except (ImportError, AttributeError): |
| 77 | + try: |
| 78 | + # Last resort: dunamai from git tags |
| 79 | + import dunamai |
| 80 | + version = dunamai.Version.from_git().serialize(metadata=False) |
| 81 | + release = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") |
| 82 | + except Exception: |
| 83 | + version = "unknown" |
| 84 | + release = version |
80 | 85 |
|
81 | 86 | # The language for content autogenerated by Sphinx. Refer to documentation |
82 | 87 | # for a list of supported languages. |
|
0 commit comments