Skip to content

Commit 0849947

Browse files
923 fixes (#229)
* Fixed Exception ignored while calling deallocator. Issue 228 * possible fixes for rtd generation. Issue #227
1 parent 9a5f5d0 commit 0849947

2 files changed

Lines changed: 24 additions & 17 deletions

File tree

doc/source/conf.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -58,25 +58,30 @@
5858
#
5959
# Get version dynamically from the same source as pyproject.toml
6060
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 .)
6362
import ics
6463
version = ics.__version__
6564
release = ics.__full_version__
66-
except ImportError:
65+
except (ImportError, AttributeError):
6766
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
8085

8186
# The language for content autogenerated by Sphinx. Refer to documentation
8287
# for a list of supported languages.

src/ics/py_neo_device_ex.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def __init__(self):
1616
super().__init__()
1717

1818
def __del__(self):
19-
if self._auto_handle_close is True:
19+
if self._auto_handle_close and ics is not None:
2020
ics.close_device(self)
2121

2222
def __str__(self):
@@ -101,7 +101,9 @@ def open(self, *args, **kwargs):
101101

102102
def close(self):
103103
"""Close the device. Returns the number of errors on close. See ics.close_device for details on arguments."""
104-
return ics.close_device(self)
104+
result = ics.close_device(self)
105+
self._handle = None
106+
return result
105107

106108
def load_default_settings(self):
107109
"""Loads default settings on the device. Requires the device to be open. See ics.load_default_settings for details on arguments."""

0 commit comments

Comments
 (0)