Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if element == "H":
isotopes.insert(1, "D")
isotopes.insert(2, "T")
mass_numbers = [mass_number(isotope) for isotope in isotopes]
sorted_isotopes = [
mass_number
for (isotope, mass_number) in sorted(zip(mass_numbers, isotopes))
]
return sorted_isotopes
if argument is not None:
try:
element = atomic_symbol(argument)
isotopes_list = known_isotopes_for_element(element)
except InvalidElementError:
raise InvalidElementError(
"known_isotopes is unable to get "
f"isotopes from an input of: {argument}"
)
except InvalidParticleError:
raise InvalidParticleError("Invalid particle in known_isotopes.")
elif argument is None:
isotopes_list = []
for atomic_numb in range(1, len(_Elements.keys()) + 1):
isotopes_list += known_isotopes_for_element(atomic_numb)
return isotopes_list
attribute will raise an `~plasmapy.utils.InvalidElementError`.
If it is not an isotope, then this attribute will raise an
`~plasmapy.utils.InvalidIsotopeError`.
Examples
--------
>>> deuterium = Particle("D")
>>> deuterium.isotope_name
'deuterium'
>>> iron_isotope = Particle("Fe-56", Z=16)
>>> iron_isotope.isotope_name
'iron-56'
"""
if not self.element:
raise InvalidElementError(_category_errmsg(self.particle, "element"))
elif not self.isotope:
raise InvalidIsotopeError(_category_errmsg(self, "isotope"))
if self.isotope == "D":
isotope_name = "deuterium"
elif self.isotope == "T":
isotope_name = "tritium"
else:
isotope_name = f"{self.element_name}-{self.mass_number}"
return isotope_name
--------
>>> gold = Particle('Au')
>>> gold.periodic_table.category
'transition metal'
>>> gold.periodic_table.period
6
>>> gold.periodic_table.group
11
>>> gold.periodic_table.block
'd'
"""
if self.element:
return self._attributes["periodic table"]
else: # coverage: ignore
raise InvalidElementError(_category_errmsg(self.particle, "element"))
If the particle is not an element, then this attribute will
raise an `~plasmapy.utils.InvalidElementError`.
Examples
--------
>>> proton = Particle('p+')
>>> proton.atomic_number
1
>>> curium = Particle('Cm')
>>> curium.atomic_number
96
"""
if not self.element:
raise InvalidElementError(_category_errmsg(self, "element"))
return self._attributes["atomic number"]
ValueError
If ``n`` is not positive.
Examples
--------
>>> Particle("Fe 6+").recombine()
Particle("Fe 5+")
>>> helium_particle = Particle("He-4 2+")
>>> helium_particle.recombine(n=2, inplace=True)
>>> helium_particle
Particle("He-4 0+")
"""
if not self.element:
raise InvalidElementError(
f"{self.particle} cannot undergo recombination because "
f"it is not a neutral atom or ion."
)
if not self.is_category(any_of={"charged", "uncharged"}):
raise ChargeError(
f"{self.particle} cannot undergo recombination because "
f"its charge is not specified."
)
if not isinstance(n, Integral):
raise TypeError("n must be a positive integer.")
if n <= 0:
raise ValueError("n must be a positive number.")
base_particle = self.isotope if self.isotope else self.element
new_integer_charge = self.integer_charge - n
ValueError
If ``n`` is not positive.
Examples
--------
>>> Particle("Fe 6+").ionize()
Particle("Fe 7+")
>>> helium_particle = Particle("He-4 0+")
>>> helium_particle.ionize(n=2, inplace=True)
>>> helium_particle
Particle("He-4 2+")
"""
if not self.element:
raise InvalidElementError(
f"Cannot ionize {self.particle} because it is not a "
f"neutral atom or ion."
)
if not self.is_category(any_of={"charged", "uncharged"}):
raise ChargeError(
f"Cannot ionize {self.particle} because its charge "
f"is not specified."
)
if self.integer_charge == self.atomic_number:
raise InvalidIonError(
f"The particle {self.particle} is already fully "
f"ionized and cannot be ionized further."
)
if not isinstance(n, Integral):
raise TypeError("n must be a positive integer.")
if n <= 0:
isotopes.append(isotope)
if element == "H":
isotopes.insert(1, "D")
isotopes.insert(2, "T")
mass_numbers = [mass_number(isotope) for isotope in isotopes]
sorted_isotopes = [
mass_number
for (isotope, mass_number) in sorted(zip(mass_numbers, isotopes))
]
return sorted_isotopes
if argument is not None:
try:
element = atomic_symbol(argument)
isotopes_list = known_isotopes_for_element(element)
except InvalidElementError:
raise InvalidElementError(
"known_isotopes is unable to get "
f"isotopes from an input of: {argument}"
)
except InvalidParticleError:
raise InvalidParticleError("Invalid particle in known_isotopes.")
elif argument is None:
isotopes_list = []
for atomic_numb in range(1, len(_Elements.keys()) + 1):
isotopes_list += known_isotopes_for_element(atomic_numb)
return isotopes_list