Coverage for /builds/ase/ase/ase/visualize/sage.py: 22.22%
18 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
1# fmt: off
3from ase.data import covalent_radii
4from ase.data.colors import jmol_colors
7def view_sage_jmol(atoms, repeat=None, *args, **kwargs):
8 try:
9 from .sage.plot.plot3d.shapes import ColorCube, Sphere
10 except Exception: # XXX Which kind of exception exactly?
11 raise ImportError(
12 'view_sage_jmol requires sage (http://www.sagemath.org/) ' +
13 'and is intended to be used directly in the browser')
15 if repeat is not None:
16 atoms = atoms.repeat(repeat)
18 cell = atoms.cell.diagonal() / 2
19 model = ColorCube(list(cell), ['blue', 'blue', 'blue'], opacity=0.1)
20 for atom in atoms:
21 atomic_number = atom.number
22 color = tuple(jmol_colors[atomic_number])
23 radius = covalent_radii[atomic_number]
24 model += Sphere(radius, color=color).translate(
25 *(atom.position - atoms.cell.diagonal() / 2))
26 model.show(aspect_ratio=1, frame=False)
29view_sage = view_sage_jmol