@@ -71,7 +71,7 @@ def __init__(
71
71
self ._species : Composition = species # type: ignore
72
72
self .coords : np .ndarray = coords # type: ignore
73
73
self .properties : dict = properties or {}
74
- self .label = label if label else self . species_string
74
+ self ._label = label
75
75
76
76
def __getattr__ (self , attr ):
77
77
# overriding getattr doesn't play nicely with pickle, so we can't use self._properties
@@ -86,7 +86,7 @@ def species(self) -> Composition:
86
86
return self ._species
87
87
88
88
@species .setter
89
- def species (self , species : SpeciesLike | CompositionLike ):
89
+ def species (self , species : SpeciesLike | CompositionLike ) -> None :
90
90
if not isinstance (species , Composition ):
91
91
try :
92
92
species = Composition ({get_el_sp (species ): 1 }) # type: ignore
@@ -97,13 +97,22 @@ def species(self, species: SpeciesLike | CompositionLike):
97
97
raise ValueError ("Species occupancies sum to more than 1!" )
98
98
self ._species = species
99
99
100
+ @property
101
+ def label (self ) -> str :
102
+ """Site label."""
103
+ return self ._label if self ._label is not None else self .species_string
104
+
105
+ @label .setter
106
+ def label (self , label : str ) -> None :
107
+ self ._label = label
108
+
100
109
@property
101
110
def x (self ) -> float :
102
111
"""Cartesian x coordinate."""
103
112
return self .coords [0 ]
104
113
105
114
@x .setter
106
- def x (self , x : float ):
115
+ def x (self , x : float ) -> None :
107
116
self .coords [0 ] = x
108
117
109
118
@property
@@ -112,7 +121,7 @@ def y(self) -> float:
112
121
return self .coords [1 ]
113
122
114
123
@y .setter
115
- def y (self , y : float ):
124
+ def y (self , y : float ) -> None :
116
125
self .coords [1 ] = y
117
126
118
127
@property
@@ -121,7 +130,7 @@ def z(self) -> float:
121
130
return self .coords [2 ]
122
131
123
132
@z .setter
124
- def z (self , z : float ):
133
+ def z (self , z : float ) -> None :
125
134
self .coords [2 ] = z
126
135
127
136
def distance (self , other ) -> float :
@@ -345,7 +354,7 @@ def __init__(
345
354
self ._species : Composition = species # type: ignore
346
355
self ._coords : np .ndarray | None = None
347
356
self .properties : dict = properties or {}
348
- self .label = label if label else self . species_string
357
+ self ._label = label
349
358
350
359
def __hash__ (self ) -> int :
351
360
"""
@@ -360,7 +369,7 @@ def lattice(self) -> Lattice:
360
369
return self ._lattice
361
370
362
371
@lattice .setter
363
- def lattice (self , lattice : Lattice ):
372
+ def lattice (self , lattice : Lattice ) -> None :
364
373
"""Sets Lattice associated with PeriodicSite."""
365
374
self ._lattice = lattice
366
375
self ._coords = self ._lattice .get_cartesian_coords (self ._frac_coords )
@@ -373,7 +382,7 @@ def coords(self) -> np.ndarray:
373
382
return self ._coords
374
383
375
384
@coords .setter
376
- def coords (self , coords ):
385
+ def coords (self , coords ) -> None :
377
386
"""Set Cartesian coordinates."""
378
387
self ._coords = np .array (coords )
379
388
self ._frac_coords = self ._lattice .get_fractional_coords (self ._coords )
@@ -384,7 +393,7 @@ def frac_coords(self) -> np.ndarray:
384
393
return self ._frac_coords
385
394
386
395
@frac_coords .setter
387
- def frac_coords (self , frac_coords ):
396
+ def frac_coords (self , frac_coords ) -> None :
388
397
"""Set fractional coordinates."""
389
398
self ._frac_coords = np .array (frac_coords )
390
399
self ._coords = self ._lattice .get_cartesian_coords (self ._frac_coords )
@@ -395,7 +404,7 @@ def a(self) -> float:
395
404
return self ._frac_coords [0 ]
396
405
397
406
@a .setter
398
- def a (self , a : float ):
407
+ def a (self , a : float ) -> None :
399
408
self ._frac_coords [0 ] = a
400
409
self ._coords = self ._lattice .get_cartesian_coords (self ._frac_coords )
401
410
@@ -405,7 +414,7 @@ def b(self) -> float:
405
414
return self ._frac_coords [1 ]
406
415
407
416
@b .setter
408
- def b (self , b : float ):
417
+ def b (self , b : float ) -> None :
409
418
self ._frac_coords [1 ] = b
410
419
self ._coords = self ._lattice .get_cartesian_coords (self ._frac_coords )
411
420
@@ -415,7 +424,7 @@ def c(self) -> float:
415
424
return self ._frac_coords [2 ]
416
425
417
426
@c .setter
418
- def c (self , c : float ):
427
+ def c (self , c : float ) -> None :
419
428
self ._frac_coords [2 ] = c
420
429
self ._coords = self ._lattice .get_cartesian_coords (self ._frac_coords )
421
430
@@ -425,7 +434,7 @@ def x(self) -> float:
425
434
return self .coords [0 ]
426
435
427
436
@x .setter
428
- def x (self , x : float ):
437
+ def x (self , x : float ) -> None :
429
438
self .coords [0 ] = x
430
439
self ._frac_coords = self ._lattice .get_fractional_coords (self .coords )
431
440
@@ -435,7 +444,7 @@ def y(self) -> float:
435
444
return self .coords [1 ]
436
445
437
446
@y .setter
438
- def y (self , y : float ):
447
+ def y (self , y : float ) -> None :
439
448
self .coords [1 ] = y
440
449
self ._frac_coords = self ._lattice .get_fractional_coords (self .coords )
441
450
@@ -445,7 +454,7 @@ def z(self) -> float:
445
454
return self .coords [2 ]
446
455
447
456
@z .setter
448
- def z (self , z : float ):
457
+ def z (self , z : float ) -> None :
449
458
self .coords [2 ] = z
450
459
self ._frac_coords = self ._lattice .get_fractional_coords (self .coords )
451
460
@@ -455,7 +464,7 @@ def to_unit_cell(self, in_place=False) -> PeriodicSite | None:
455
464
if in_place :
456
465
self .frac_coords = np .array (frac_coords )
457
466
return None
458
- return PeriodicSite (self .species , frac_coords , self .lattice , properties = self .properties )
467
+ return PeriodicSite (self .species , frac_coords , self .lattice , properties = self .properties , label = self . label )
459
468
460
469
def is_periodic_image (self , other : PeriodicSite , tolerance : float = 1e-8 , check_lattice : bool = True ) -> bool :
461
470
"""
0 commit comments