digichem-core 6.0.0rc1__tar.gz → 6.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/.github/workflows/python-main-pull.yml +1 -1
  2. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/PKG-INFO +6 -2
  3. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/README.md +5 -1
  4. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/__init__.py +2 -2
  5. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/config/base.py +2 -2
  6. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/batoms/batoms-renderer.py +11 -2
  7. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/file/prattle.py +20 -16
  8. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/input/digichem_input.py +1 -1
  9. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/atom.py +3 -3
  10. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/metadata.py +3 -0
  11. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_translate.py +1 -1
  12. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/translate.py +7 -7
  13. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/.github/workflows/python-main-push.yml +0 -0
  14. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/.github/workflows/python-pypi-publish.yml +0 -0
  15. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/.gitignore +0 -0
  16. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/.gitmodules +0 -0
  17. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/Banner.png +0 -0
  18. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/COPYING.md +0 -0
  19. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/LICENSE +0 -0
  20. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/basis.py +0 -0
  21. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/config/README +0 -0
  22. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/config/__init__.py +0 -0
  23. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/config/locations.py +0 -0
  24. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/config/parse.py +0 -0
  25. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/config/util.py +0 -0
  26. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/README +0 -0
  27. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/batoms/COPYING +0 -0
  28. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/batoms/LICENSE +0 -0
  29. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/batoms/README +0 -0
  30. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/batoms/__init__.py +0 -0
  31. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/config/digichem.yaml +0 -0
  32. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/functionals.csv +0 -0
  33. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/solvents.csv +0 -0
  34. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/tachyon/COPYING.md +0 -0
  35. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/tachyon/LICENSE +0 -0
  36. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/tachyon/tachyon_LINUXAMD64 +0 -0
  37. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/common.tcl +0 -0
  38. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/generate_combined_orbital_images.tcl +0 -0
  39. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/generate_density_images.tcl +0 -0
  40. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/generate_dipole_images.tcl +0 -0
  41. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/generate_orbital_images.tcl +0 -0
  42. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/generate_spin_images.tcl +0 -0
  43. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/data/vmd/generate_structure_images.tcl +0 -0
  44. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/datas.py +0 -0
  45. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/exception/__init__.py +0 -0
  46. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/exception/base.py +0 -0
  47. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/exception/uncatchable.py +0 -0
  48. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/file/__init__.py +0 -0
  49. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/file/base.py +0 -0
  50. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/file/cube.py +0 -0
  51. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/file/fchk.py +0 -0
  52. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/file/types.py +0 -0
  53. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/__init__.py +0 -0
  54. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/base.py +0 -0
  55. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/excited_states.py +0 -0
  56. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/graph.py +0 -0
  57. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/orbitals.py +0 -0
  58. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/render.py +0 -0
  59. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/spectroscopy.py +0 -0
  60. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/structure.py +0 -0
  61. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/image/vmd.py +0 -0
  62. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/input/__init__.py +0 -0
  63. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/input/base.py +0 -0
  64. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/input/gaussian.py +0 -0
  65. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/log.py +0 -0
  66. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/memory.py +0 -0
  67. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/__init__.py +0 -0
  68. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/argparse.py +0 -0
  69. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/base.py +0 -0
  70. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/io.py +0 -0
  71. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/layered_dict.py +0 -0
  72. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/text.py +0 -0
  73. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/misc/time.py +0 -0
  74. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/__init__.py +0 -0
  75. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/base.py +0 -0
  76. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/cclib.py +0 -0
  77. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/dump.py +0 -0
  78. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/gaussian.py +0 -0
  79. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/orca.py +0 -0
  80. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/turbomole.py +0 -0
  81. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/parse/util.py +0 -0
  82. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/__init__.py +0 -0
  83. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/alignment/AA.py +0 -0
  84. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/alignment/AAA.py +0 -0
  85. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/alignment/FAP.py +0 -0
  86. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/alignment/__init__.py +0 -0
  87. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/alignment/base.py +0 -0
  88. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/angle.py +0 -0
  89. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/base.py +0 -0
  90. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/dipole_moment.py +0 -0
  91. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/emission.py +0 -0
  92. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/energy.py +0 -0
  93. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/excited_state.py +0 -0
  94. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/ground_state.py +0 -0
  95. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/multi.py +0 -0
  96. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/nmr.py +0 -0
  97. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/orbital.py +0 -0
  98. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/result.py +0 -0
  99. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/soc.py +0 -0
  100. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/spectroscopy.py +0 -0
  101. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/tdm.py +0 -0
  102. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/result/vibration.py +0 -0
  103. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/__init__.py +0 -0
  104. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/conftest.py +0 -0
  105. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_basis.py +0 -0
  106. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_calculate.py +0 -0
  107. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_config.py +0 -0
  108. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_cube.py +0 -0
  109. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_exception.py +0 -0
  110. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_file.py +0 -0
  111. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_image.py +0 -0
  112. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_input.py +0 -0
  113. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_parsing.py +0 -0
  114. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_prattle.py +0 -0
  115. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/test_result.py +0 -0
  116. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/digichem/test/util.py +0 -0
  117. {digichem_core-6.0.0rc1 → digichem_core-6.0.1}/pyproject.toml +0 -0
@@ -8,7 +8,7 @@ on:
8
8
  branches: [ "main" ]
9
9
 
10
10
  permissions:
11
- contents: write
11
+ contents: read
12
12
 
13
13
  jobs:
14
14
  build:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: digichem-core
3
- Version: 6.0.0rc1
3
+ Version: 6.0.1
4
4
  Summary: Open-source library for Digichem core components
5
5
  Project-URL: Homepage, https://github.com/Digichem-Project/digichem-core
6
6
  Project-URL: Documentation, https://doc.digi-chem.co.uk
@@ -53,6 +53,10 @@ This is Digichem-core, the open-source library for Digichem. If you are looking
53
53
  - Alternatively, if you are looking for the full Digichem program, try [Build-boy](https://github.com/Digichem-Project/build-boy)
54
54
  - If you'd like more information on the Digichem project, check out the [website](https://www.digi-chem.co.uk)
55
55
 
56
+ ## Documentation
57
+
58
+ Please refer to the main Digichem [documentation](https://doc.digi-chem.co.uk) for further reading.
59
+
56
60
  ## Dependencies
57
61
 
58
62
  - adjustText
@@ -93,4 +97,4 @@ Documentation coming soon.
93
97
 
94
98
  Digichem-core is licensed under the BSD-3-Clause license, but some files are licensed separately. See [COPYING.md](COPYING.md) for full details.
95
99
 
96
- The Digichem logo and branding is Copyright Digichem 2024, you may not use them in any way (although you are welcome to look at them).
100
+ The Digichem logo and branding is Copyright Digichem 2024, you may not use them in any way (although you are welcome to look at them).
@@ -9,6 +9,10 @@ This is Digichem-core, the open-source library for Digichem. If you are looking
9
9
  - Alternatively, if you are looking for the full Digichem program, try [Build-boy](https://github.com/Digichem-Project/build-boy)
10
10
  - If you'd like more information on the Digichem project, check out the [website](https://www.digi-chem.co.uk)
11
11
 
12
+ ## Documentation
13
+
14
+ Please refer to the main Digichem [documentation](https://doc.digi-chem.co.uk) for further reading.
15
+
12
16
  ## Dependencies
13
17
 
14
18
  - adjustText
@@ -49,4 +53,4 @@ Documentation coming soon.
49
53
 
50
54
  Digichem-core is licensed under the BSD-3-Clause license, but some files are licensed separately. See [COPYING.md](COPYING.md) for full details.
51
55
 
52
- The Digichem logo and branding is Copyright Digichem 2024, you may not use them in any way (although you are welcome to look at them).
56
+ The Digichem logo and branding is Copyright Digichem 2024, you may not use them in any way (although you are welcome to look at them).
@@ -20,7 +20,7 @@ from digichem.datas import get_resource
20
20
  # development = prerelease is not None
21
21
  # # The full version number of this package.
22
22
  # __version__ = "{}.{}.{}{}".format(major_version, minor_version, revision, "-pre.{}".format(prerelease) if development else "")
23
- __version__ = "6.0.0-pre.1"
23
+ __version__ = "6.0.1"
24
24
  _v_parts = __version__.split("-")[0].split(".")
25
25
  major_version = int(_v_parts[0])
26
26
  minor_version = int(_v_parts[1])
@@ -39,7 +39,7 @@ __author__ = [
39
39
  ]
40
40
 
41
41
  # Program date (when we were last updated). This is changed automatically.
42
- _last_updated_string = "31/05/2024"
42
+ _last_updated_string = "01/08/2024"
43
43
  last_updated = datetime.strptime(_last_updated_string, "%d/%m/%Y")
44
44
 
45
45
  # The sys attribute 'frozen' is our flag, '_MEIPASS' is the dir location.
@@ -72,7 +72,7 @@ Possible options are:
72
72
  batoms = Options(help = "Beautiful Atoms/Blender specific options (only applies if engine == 'batoms'",
73
73
  blender = Option(help = "Path to the blender executable, in which beautiful atoms should be installed", default = None),
74
74
  cpus = Option(help = "The number of CPUs/threads to use. This option is overridden if running in a calculation environemnt (where it uses the same number of CPUs as the calculation did)", type = int, default = 1),
75
- render_samples = Option(help = "The number of render samples (or passes) to use. Higher values result in higher image quality and greater render times", type = int, default = 256),
75
+ render_samples = Option(help = "The number of render samples (or passes) to use. Higher values result in higher image quality and greater render times", type = int, default = 64),
76
76
  perspective = Option(help = "The perspective mode", choices = ["orthographic", "perspective"], default = "orthographic")
77
77
  # TODO: Colour options.
78
78
  ),
@@ -318,4 +318,4 @@ To disable the maximum width, set to null.""", type = int, default = 1500),
318
318
  except FileNotFoundError as e:
319
319
  # We lost the race, give up.
320
320
  raise Exception("Failed to write settings to file '{}'; one of the parent directories does not exist".format(path)) from e
321
-
321
+
@@ -210,8 +210,8 @@ def main():
210
210
  parser.add_argument("--isovalues", help = "List of isovalues to render", nargs = "*", type = float, default = [])
211
211
  parser.add_argument("--isotype", help = "Whether to render positive, negative or both isosurfaces for each isovalue", choices = ["positive", "negative", "both"], default = "both")
212
212
  parser.add_argument("--isocolor", help = "The colouring method to use for isosurfaces", choices = ["sign", "cube"], default = "sign")
213
- parser.add_argument("--primary-color", help = "RGBA for one of the colors to use for isosurfaces", type = float, nargs = 4, default = [0.1, 0.1, 0.9, 0.7])
214
- parser.add_argument("--secondary-color", help = "RGBA for the other color to use for isosurfaces", type = float, nargs = 4, default = [1, 0.058, 0.0, 0.7])
213
+ parser.add_argument("--primary-color", help = "RGBA for one of the colors to use for isosurfaces", type = float, nargs = 4, default = [0.1, 0.1, 0.9, 0.65])
214
+ parser.add_argument("--secondary-color", help = "RGBA for the other color to use for isosurfaces", type = float, nargs = 4, default = [1, 0.058, 0.0, 0.65])
215
215
  parser.add_argument("--style", help = "Material style for isosurfaces", choices = ('default', 'metallic', 'plastic', 'ceramic', 'mirror'), default = "default")
216
216
  parser.add_argument("--cpus", help = "Number of parallel CPUs to use for rendering", type = int, default = 1)
217
217
  parser.add_argument("--use-gpu", help = "Whether to enable GPU rendering", action = "store_true")
@@ -243,6 +243,10 @@ def main():
243
243
  if args.rotations is not None:
244
244
  rotations = [yaml.safe_load(rotation) for rotation in args.rotations]
245
245
 
246
+ # Remove the starting cube object.
247
+ bpy.ops.object.select_all(action='SELECT')
248
+ bpy.ops.object.delete()
249
+
246
250
  # Load the input data.
247
251
  mol = add_molecule(
248
252
  args.cube_file,
@@ -326,6 +330,11 @@ def main():
326
330
  # Enable to add an outline.
327
331
  #bpy.context.scene.render.use_freestyle = True
328
332
 
333
+ # We have plenty of memory to play with, use one tile.
334
+ bpy.context.scene.cycles.tile_x = args.resolution
335
+ bpy.context.scene.cycles.tile_y = args.resolution
336
+ bpy.context.scene.cycles.tile_size = args.resolution
337
+
329
338
  # Performance options.
330
339
  bpy.context.scene.render.threads_mode = 'FIXED'
331
340
  bpy.context.scene.render.threads = args.cpus
@@ -155,22 +155,20 @@ class Openprattle_converter():
155
155
  inputs = self.input_file
156
156
 
157
157
  # GO.
158
- try:
159
- done_process = subprocess.run(
160
- sig,
161
- input = inputs,
162
- stdout = subprocess.PIPE,
163
- stderr = subprocess.PIPE,
164
- # TODO: Using universal newlines is probably not safe here; some formats are binary (.cdx etc...)
165
- universal_newlines = True,
166
- check = True,
167
- )
168
-
169
- except CalledProcessError as e:
170
- self.handle_logging(e.stderr)
171
- raise
158
+ done_process = subprocess.run(
159
+ sig,
160
+ input = inputs,
161
+ stdout = subprocess.PIPE,
162
+ stderr = subprocess.PIPE,
163
+ # TODO: Using universal newlines is probably not safe here; some formats are binary (.cdx etc...)
164
+ universal_newlines = True,
165
+ )
172
166
 
167
+ # This can throw exceptions.
173
168
  self.handle_logging(done_process.stderr)
169
+
170
+ if done_process.returncode != 0:
171
+ raise Digichem_exception("prattle subprocess returned code {}".format(done_process.returncode))
174
172
 
175
173
  # Return our output.
176
174
  return done_process.stdout if output_file is None else None
@@ -178,17 +176,20 @@ class Openprattle_converter():
178
176
  def handle_logging(self, raw_output):
179
177
  """
180
178
  """
179
+ exceptions = []
181
180
  for raw_message in raw_output.split("\n"):
182
181
  if raw_message == "":
183
182
  # Nothing returned, nothing to do.
184
- return
183
+ continue
185
184
 
186
185
  # Each message should be in JSON, but check.
187
186
  try:
188
187
  message = json.loads(raw_message)
189
188
  message_text = message['message']
190
189
  if message['exception']:
191
- message_text += "\n" + message['exception']
190
+ exceptions.append(Exception(message['exception']))
191
+ continue
192
+ #message_text += "\n" + message['exception']
192
193
  digichem.log.get_logger().log(
193
194
  message['levelno'],
194
195
  message_text
@@ -196,6 +197,9 @@ class Openprattle_converter():
196
197
 
197
198
  except Exception:
198
199
  digichem.log.get_logger().error("Unexpected output from oprattle: '{}'".format(raw_message), exc_info=False)
200
+
201
+ if len(exceptions) > 0:
202
+ raise exceptions[0]
199
203
 
200
204
 
201
205
 
@@ -496,5 +496,5 @@ def si_from_file(file_name, file_type = None, *, gen3D = None, **kwargs):
496
496
  return Digichem_coords.from_com(com_file, file_name = file_name, **kwargs)
497
497
 
498
498
  except:
499
- raise ValueError("Could not parse input coordinates from '{}'".format(file_name))
499
+ raise ValueError("Could not parse coordinates from '{}'".format(file_name))
500
500
 
@@ -501,7 +501,7 @@ class Atom_list(Result_container, Unmergeable_container_mixin, Molecule_mixin):
501
501
  # Then coordinates.
502
502
  # No effort is made here to truncate coordinates to a certain precision.
503
503
  for atom in self:
504
- xyz += "{} {:f} {:f} {:f}\n".format(atom.element.symbol, atom.coords[0], atom.coords[1], atom.coords[2])
504
+ xyz += "{} {:f} {:f} {:f}\n".format(atom.element.symbol, float(atom.coords[0]), float(atom.coords[1]), float(atom.coords[2]))
505
505
 
506
506
  return xyz
507
507
 
@@ -698,7 +698,7 @@ class Atom(Atom_ABC):
698
698
  :param data: The data to parse.
699
699
  :param result_set: The partially constructed result set which is being populated.
700
700
  """
701
- return [self(atom_dict.get('index', index +1), atom_dict['element'], (atom_dict['coords']['x']['value'], atom_dict['coords']['y']['value'], atom_dict['coords']['z']['value']), atom_dict['mass']['value']) for index, atom_dict in enumerate(data)]
701
+ return [self(atom_dict.get('index', index +1), atom_dict['element'], (float(atom_dict['coords']['x']['value']), float(atom_dict['coords']['y']['value']), float(atom_dict['coords']['z']['value'])), atom_dict['mass']['value']) for index, atom_dict in enumerate(data)]
702
702
 
703
703
  @classmethod
704
704
  def list_from_parser(self, parser):
@@ -729,7 +729,7 @@ class Atom(Atom_ABC):
729
729
  zip_data = zip_longest(atomnos, atomcoords, atommasses, fillvalue = None)
730
730
 
731
731
  # Loop through and rebuild our objects.
732
- return [self(index+1, atomic_number, tuple(coords), mass) for index, (atomic_number, coords, mass) in enumerate(zip_data)]
732
+ return [self(index+1, atomic_number, (float(coords[0]), float(coords[1]), float(coords[2])), mass) for index, (atomic_number, coords, mass) in enumerate(zip_data)]
733
733
 
734
734
  @classmethod
735
735
  def list_from_coords(self, coords):
@@ -162,6 +162,7 @@ class Metadata(Result_object):
162
162
  pressure = None,
163
163
  orbital_spin_type = None,
164
164
  digichem_version = None,
165
+ silico_version = None,
165
166
  solvent = None,
166
167
  num_cpu = None,
167
168
  memory_available = None,
@@ -221,6 +222,8 @@ class Metadata(Result_object):
221
222
  self.pressure = pressure
222
223
  self.orbital_spin_type = orbital_spin_type
223
224
  # TOOD: Ideally this would be parsed from the calculation output somehow, but this is fine for now.
225
+ if silico_version:
226
+ self.digichem_version = silico_version
224
227
  self.digichem_version = digichem.__version__ if digichem_version is None else digichem_version
225
228
  self.solvent = solvent
226
229
  self.num_cpu = num_cpu
@@ -99,7 +99,7 @@ def test_grid_points():
99
99
 
100
100
  assert default.translate("gaussian") == 0
101
101
  assert default.translate("orca") == 100
102
- assert default.translate("turbomole") == 100
102
+ assert default.translate("turbomole") == "m3"
103
103
 
104
104
  # Check the named values.
105
105
  for name, value in [("Tiny", 25), ("Small", 50), ("Medium", 100), ("Large", 200), ("Huge", 500)]:
@@ -146,7 +146,7 @@ class Basis_set(Translate):
146
146
  basis_set["turbomole"] = basis_set['name'][:-5] + "**"
147
147
 
148
148
  # Gaussian has a strange, contracted style naming scheme for Karlsruhe,
149
- # and a misleading/incorrect name for def2-SVP(P).
149
+ # and a misleading/incorrect name for def2-SV(P).
150
150
  #print(basis_set['name'])
151
151
  if basis_set['name'] == "def2-SV(P)":
152
152
  basis_set['gaussian'] = "def2SVPP"
@@ -452,12 +452,12 @@ class Cube_grid_points(Translate):
452
452
  """A class for converting between cube grid sizes."""
453
453
 
454
454
  table = [
455
- {"name": "Default", "points": 100, "gaussian": 0, "turbomole": 100, "orca": 100}, # Default depends on the calc program. Gaussian uses a special value of 'zero' to select a default algorithm.
456
- {"name": "Tiny", "points": 25},
457
- {"name": "Small", "points": 50},
458
- {"name": "Medium", "points": 100},
459
- {"name": "Large", "points": 200},
460
- {"name": "Huge", "points": 500},
455
+ {"name": "Default", "points": 100, "gaussian": 0, "turbomole": "m3", "orca": 100}, # Default depends on the calc program. Gaussian uses a special value of 'zero' to select a default algorithm.
456
+ {"name": "Tiny", "points": 25, "turbomole": "1", },
457
+ {"name": "Small", "points": 50, "turbomole": "2", },
458
+ {"name": "Medium", "points": 100, "turbomole": "3", },
459
+ {"name": "Large", "points": 200, "turbomole": "4", },
460
+ {"name": "Huge", "points": 500, "turbomole": "5", },
461
461
 
462
462
  ]
463
463
 
File without changes