Skip to content

Commit 2b77060

Browse files
authored
Merge pull request #167 from xsuite/release/v0.7.1
Release 0.7.1
2 parents e5fad72 + 84dd22c commit 2b77060

File tree

5 files changed

+22
-12
lines changed

5 files changed

+22
-12
lines changed

pyproject.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "xcoll"
3-
version = "0.7.0"
3+
version = "0.7.1"
44
description = "Xsuite collimation package"
55
authors = [
66
{name="Frederik F. Van der Veken", email="[email protected]"},
@@ -22,10 +22,10 @@ dependencies = [
2222
"ruamel-yaml (>=0.17.31,<0.18.15)",
2323
"numpy>=1.0",
2424
"pandas>=1.4",
25-
"xobjects>=0.5.5",
25+
"xobjects>=0.5.6",
2626
"xdeps>=0.10.8",
27-
"xpart>=0.23.1",
28-
"xtrack>=0.94.2",
27+
"xpart>=0.23.2",
28+
"xtrack>=0.95.0",
2929
]
3030

3131
[project.optional-dependencies]
@@ -46,7 +46,7 @@ exclude = ["xcoll/lib", "xcoll/config"]
4646

4747
[poetry.group.dev.dependencies]
4848
pytest = ">=7.3"
49-
xaux = ">=0.3.9"
49+
xaux = ">=0.3.10"
5050

5151
[build-system]
5252
# Needed for pip install -e (BTW: need pip version 22)

tests/test_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
from xcoll import __version__
77

88
def test_version():
9-
assert __version__ == '0.7.0'
9+
assert __version__ == '0.7.1'

xcoll/beam_elements/geant4.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,25 @@ def angle(self, val):
7979

8080
@property
8181
def material(self):
82-
return self._material
82+
if self._material != _DEFAULT_MATERIAL:
83+
return self._material
8384

8485
@material.setter
8586
def material(self, material):
8687
if material is None:
87-
material = Material()
88+
material = _DEFAULT_MATERIAL
8889
elif isinstance(material, dict):
8990
material = Material.from_dict(material)
9091
elif isinstance(material, str):
9192
material = material_db[material]
92-
if not isinstance(material, Material):
93-
raise ValueError("Invalid material!")
94-
self._material = material
93+
elif isinstance(material, RefMaterial):
94+
if material.geant4_name is None:
95+
raise ValueError(f"RefMaterial {material} does not have a Geant4 name!")
96+
if not isinstance(material, Material) \
97+
or isinstance(material, CrystalMaterial):
98+
raise ValueError(f"Invalid material of type {type(material)}!")
99+
if self.material != material:
100+
self._material = material
95101

96102

97103
def track(self, part):

xcoll/general.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
# ======================
1313
# Do not change
1414
# ======================
15-
__version__ = '0.7.0'
15+
__version__ = '0.7.1'
1616
# ======================

xcoll/scattering_routines/environment.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ def __init__(self, *args, **kwargs):
3232
self._in_constructor = True
3333
for path in self._paths.keys():
3434
setattr(self, f'_{path}', None)
35+
self._config_dir.mkdir(parents=True, exist_ok=True)
36+
self._data_dir.mkdir(parents=True, exist_ok=True)
3537
self._config_file = self._config_dir / f'{self.__class__.__name__[:-11].lower()}.config.json'
3638
sys.path.append(self._data_dir.as_posix())
3739
self.load()
@@ -167,6 +169,8 @@ def load(self):
167169
try:
168170
data = json.load(fid)
169171
except json.JSONDecodeError:
172+
with open(self._config_file, 'w') as fid:
173+
json.dump({'paths': {}, 'read_only_paths': {}}, fid, indent=4)
170174
return
171175
if 'paths' not in data or 'read_only_paths' not in data:
172176
return

0 commit comments

Comments
 (0)