digichem-core 6.0.0rc1__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/.github/workflows/python-main-pull.yml +60 -0
  2. digichem_core-6.0.0rc1/.github/workflows/python-main-push.yml +71 -0
  3. digichem_core-6.0.0rc1/.github/workflows/python-pypi-publish.yml +41 -0
  4. digichem_core-6.0.0rc1/.gitignore +201 -0
  5. digichem_core-6.0.0rc1/.gitmodules +3 -0
  6. digichem_core-6.0.0rc1/Banner.png +0 -0
  7. digichem_core-6.0.0rc1/COPYING.md +10 -0
  8. digichem_core-6.0.0rc1/LICENSE +11 -0
  9. digichem_core-6.0.0rc1/PKG-INFO +96 -0
  10. digichem_core-6.0.0rc1/README.md +52 -0
  11. digichem_core-6.0.0rc1/digichem/__init__.py +75 -0
  12. digichem_core-6.0.0rc1/digichem/basis.py +116 -0
  13. digichem_core-6.0.0rc1/digichem/config/README +3 -0
  14. digichem_core-6.0.0rc1/digichem/config/__init__.py +5 -0
  15. digichem_core-6.0.0rc1/digichem/config/base.py +321 -0
  16. digichem_core-6.0.0rc1/digichem/config/locations.py +14 -0
  17. digichem_core-6.0.0rc1/digichem/config/parse.py +90 -0
  18. digichem_core-6.0.0rc1/digichem/config/util.py +117 -0
  19. digichem_core-6.0.0rc1/digichem/data/README +4 -0
  20. digichem_core-6.0.0rc1/digichem/data/batoms/COPYING +18 -0
  21. digichem_core-6.0.0rc1/digichem/data/batoms/LICENSE +674 -0
  22. digichem_core-6.0.0rc1/digichem/data/batoms/README +2 -0
  23. digichem_core-6.0.0rc1/digichem/data/batoms/__init__.py +0 -0
  24. digichem_core-6.0.0rc1/digichem/data/batoms/batoms-renderer.py +351 -0
  25. digichem_core-6.0.0rc1/digichem/data/config/digichem.yaml +714 -0
  26. digichem_core-6.0.0rc1/digichem/data/functionals.csv +15 -0
  27. digichem_core-6.0.0rc1/digichem/data/solvents.csv +185 -0
  28. digichem_core-6.0.0rc1/digichem/data/tachyon/COPYING.md +5 -0
  29. digichem_core-6.0.0rc1/digichem/data/tachyon/LICENSE +30 -0
  30. digichem_core-6.0.0rc1/digichem/data/tachyon/tachyon_LINUXAMD64 +0 -0
  31. digichem_core-6.0.0rc1/digichem/data/vmd/common.tcl +468 -0
  32. digichem_core-6.0.0rc1/digichem/data/vmd/generate_combined_orbital_images.tcl +70 -0
  33. digichem_core-6.0.0rc1/digichem/data/vmd/generate_density_images.tcl +45 -0
  34. digichem_core-6.0.0rc1/digichem/data/vmd/generate_dipole_images.tcl +68 -0
  35. digichem_core-6.0.0rc1/digichem/data/vmd/generate_orbital_images.tcl +57 -0
  36. digichem_core-6.0.0rc1/digichem/data/vmd/generate_spin_images.tcl +66 -0
  37. digichem_core-6.0.0rc1/digichem/data/vmd/generate_structure_images.tcl +40 -0
  38. digichem_core-6.0.0rc1/digichem/datas.py +14 -0
  39. digichem_core-6.0.0rc1/digichem/exception/__init__.py +7 -0
  40. digichem_core-6.0.0rc1/digichem/exception/base.py +133 -0
  41. digichem_core-6.0.0rc1/digichem/exception/uncatchable.py +63 -0
  42. digichem_core-6.0.0rc1/digichem/file/__init__.py +1 -0
  43. digichem_core-6.0.0rc1/digichem/file/base.py +364 -0
  44. digichem_core-6.0.0rc1/digichem/file/cube.py +284 -0
  45. digichem_core-6.0.0rc1/digichem/file/fchk.py +94 -0
  46. digichem_core-6.0.0rc1/digichem/file/prattle.py +277 -0
  47. digichem_core-6.0.0rc1/digichem/file/types.py +97 -0
  48. digichem_core-6.0.0rc1/digichem/image/__init__.py +6 -0
  49. digichem_core-6.0.0rc1/digichem/image/base.py +113 -0
  50. digichem_core-6.0.0rc1/digichem/image/excited_states.py +335 -0
  51. digichem_core-6.0.0rc1/digichem/image/graph.py +293 -0
  52. digichem_core-6.0.0rc1/digichem/image/orbitals.py +239 -0
  53. digichem_core-6.0.0rc1/digichem/image/render.py +617 -0
  54. digichem_core-6.0.0rc1/digichem/image/spectroscopy.py +797 -0
  55. digichem_core-6.0.0rc1/digichem/image/structure.py +115 -0
  56. digichem_core-6.0.0rc1/digichem/image/vmd.py +826 -0
  57. digichem_core-6.0.0rc1/digichem/input/__init__.py +3 -0
  58. digichem_core-6.0.0rc1/digichem/input/base.py +78 -0
  59. digichem_core-6.0.0rc1/digichem/input/digichem_input.py +500 -0
  60. digichem_core-6.0.0rc1/digichem/input/gaussian.py +140 -0
  61. digichem_core-6.0.0rc1/digichem/log.py +179 -0
  62. digichem_core-6.0.0rc1/digichem/memory.py +166 -0
  63. digichem_core-6.0.0rc1/digichem/misc/__init__.py +4 -0
  64. digichem_core-6.0.0rc1/digichem/misc/argparse.py +44 -0
  65. digichem_core-6.0.0rc1/digichem/misc/base.py +61 -0
  66. digichem_core-6.0.0rc1/digichem/misc/io.py +239 -0
  67. digichem_core-6.0.0rc1/digichem/misc/layered_dict.py +285 -0
  68. digichem_core-6.0.0rc1/digichem/misc/text.py +139 -0
  69. digichem_core-6.0.0rc1/digichem/misc/time.py +73 -0
  70. digichem_core-6.0.0rc1/digichem/parse/__init__.py +13 -0
  71. digichem_core-6.0.0rc1/digichem/parse/base.py +220 -0
  72. digichem_core-6.0.0rc1/digichem/parse/cclib.py +138 -0
  73. digichem_core-6.0.0rc1/digichem/parse/dump.py +253 -0
  74. digichem_core-6.0.0rc1/digichem/parse/gaussian.py +130 -0
  75. digichem_core-6.0.0rc1/digichem/parse/orca.py +96 -0
  76. digichem_core-6.0.0rc1/digichem/parse/turbomole.py +201 -0
  77. digichem_core-6.0.0rc1/digichem/parse/util.py +523 -0
  78. digichem_core-6.0.0rc1/digichem/result/__init__.py +6 -0
  79. digichem_core-6.0.0rc1/digichem/result/alignment/AA.py +114 -0
  80. digichem_core-6.0.0rc1/digichem/result/alignment/AAA.py +61 -0
  81. digichem_core-6.0.0rc1/digichem/result/alignment/FAP.py +148 -0
  82. digichem_core-6.0.0rc1/digichem/result/alignment/__init__.py +3 -0
  83. digichem_core-6.0.0rc1/digichem/result/alignment/base.py +310 -0
  84. digichem_core-6.0.0rc1/digichem/result/angle.py +153 -0
  85. digichem_core-6.0.0rc1/digichem/result/atom.py +742 -0
  86. digichem_core-6.0.0rc1/digichem/result/base.py +258 -0
  87. digichem_core-6.0.0rc1/digichem/result/dipole_moment.py +332 -0
  88. digichem_core-6.0.0rc1/digichem/result/emission.py +402 -0
  89. digichem_core-6.0.0rc1/digichem/result/energy.py +323 -0
  90. digichem_core-6.0.0rc1/digichem/result/excited_state.py +821 -0
  91. digichem_core-6.0.0rc1/digichem/result/ground_state.py +94 -0
  92. digichem_core-6.0.0rc1/digichem/result/metadata.py +644 -0
  93. digichem_core-6.0.0rc1/digichem/result/multi.py +98 -0
  94. digichem_core-6.0.0rc1/digichem/result/nmr.py +1086 -0
  95. digichem_core-6.0.0rc1/digichem/result/orbital.py +647 -0
  96. digichem_core-6.0.0rc1/digichem/result/result.py +244 -0
  97. digichem_core-6.0.0rc1/digichem/result/soc.py +272 -0
  98. digichem_core-6.0.0rc1/digichem/result/spectroscopy.py +514 -0
  99. digichem_core-6.0.0rc1/digichem/result/tdm.py +267 -0
  100. digichem_core-6.0.0rc1/digichem/result/vibration.py +167 -0
  101. digichem_core-6.0.0rc1/digichem/test/__init__.py +6 -0
  102. digichem_core-6.0.0rc1/digichem/test/conftest.py +4 -0
  103. digichem_core-6.0.0rc1/digichem/test/test_basis.py +71 -0
  104. digichem_core-6.0.0rc1/digichem/test/test_calculate.py +30 -0
  105. digichem_core-6.0.0rc1/digichem/test/test_config.py +78 -0
  106. digichem_core-6.0.0rc1/digichem/test/test_cube.py +369 -0
  107. digichem_core-6.0.0rc1/digichem/test/test_exception.py +16 -0
  108. digichem_core-6.0.0rc1/digichem/test/test_file.py +104 -0
  109. digichem_core-6.0.0rc1/digichem/test/test_image.py +337 -0
  110. digichem_core-6.0.0rc1/digichem/test/test_input.py +64 -0
  111. digichem_core-6.0.0rc1/digichem/test/test_parsing.py +79 -0
  112. digichem_core-6.0.0rc1/digichem/test/test_prattle.py +36 -0
  113. digichem_core-6.0.0rc1/digichem/test/test_result.py +489 -0
  114. digichem_core-6.0.0rc1/digichem/test/test_translate.py +112 -0
  115. digichem_core-6.0.0rc1/digichem/test/util.py +207 -0
  116. digichem_core-6.0.0rc1/digichem/translate.py +591 -0
  117. digichem_core-6.0.0rc1/pyproject.toml +49 -0
@@ -0,0 +1,60 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: Python tests and lint
5
+
6
+ on:
7
+ pull_request:
8
+ branches: [ "main" ]
9
+
10
+ permissions:
11
+ contents: write
12
+
13
+ jobs:
14
+ build:
15
+
16
+ defaults:
17
+ run:
18
+ shell: bash -l {0}
19
+
20
+ runs-on: ubuntu-latest
21
+
22
+ steps:
23
+ - uses: actions/checkout@v3
24
+ with:
25
+ submodules: recursive
26
+ - name: Set up Python 3.9
27
+ uses: actions/setup-python@v3
28
+ with:
29
+ python-version: "3.9"
30
+ - name: Install openbabel
31
+ run: |
32
+ sudo apt install openbabel libopenbabel-dev
33
+ sudo ln -s /usr/include/openbabel3 /usr/local/include/openbabel3
34
+ - name: Install PIP dependencies
35
+ run: |
36
+ python -m pip install --upgrade pip
37
+ pip install flake8 "pytest<8.0" pytest-lazy-fixture
38
+ - name: Install dependencies
39
+ run: |
40
+ sudo apt install swig
41
+ pip install -e .
42
+ #if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
43
+ - name: Install PySOC
44
+ run: |
45
+ cd ~/
46
+ git clone https://github.com/Digichem-Project/pysoc.git
47
+ pip install -r pysoc/requirements.txt
48
+ echo "PYTHONPATH=$PYTHONPATH:$HOME/pysoc" >> $GITHUB_ENV
49
+ echo "$HOME/pysoc/bin" >> $GITHUB_PATH
50
+ - name: Lint with flake8
51
+ run: |
52
+ # stop the build if there are Python syntax errors or undefined names
53
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
54
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
55
+ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
56
+ - name: Test with pytest
57
+ run: |
58
+ export PYTHONPATH="./:$PYTHONPATH"
59
+ pytest
60
+
@@ -0,0 +1,71 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: Python tests and lint
5
+
6
+ on:
7
+ push:
8
+ branches: [ "main" ]
9
+
10
+ permissions:
11
+ contents: write
12
+
13
+ jobs:
14
+ build:
15
+
16
+ defaults:
17
+ run:
18
+ shell: bash -l {0}
19
+
20
+ runs-on: ubuntu-latest
21
+
22
+ steps:
23
+ - uses: actions/checkout@v3
24
+ with:
25
+ submodules: recursive
26
+ - name: Set up Python 3.9
27
+ uses: actions/setup-python@v3
28
+ with:
29
+ python-version: "3.9"
30
+ - name: Install openbabel
31
+ run: |
32
+ sudo apt install openbabel libopenbabel-dev
33
+ sudo ln -s /usr/include/openbabel3 /usr/local/include/openbabel3
34
+ - name: Install PIP dependencies
35
+ run: |
36
+ python -m pip install --upgrade pip
37
+ pip install flake8 "pytest<8.0" pytest-lazy-fixture
38
+ - name: Install dependencies
39
+ run: |
40
+ sudo apt install swig
41
+ pip install -e .
42
+ #if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
43
+ - name: Install PySOC
44
+ run: |
45
+ cd ~/
46
+ git clone https://github.com/Digichem-Project/pysoc.git
47
+ pip install -r pysoc/requirements.txt
48
+ echo "PYTHONPATH=$PYTHONPATH:$HOME/pysoc" >> $GITHUB_ENV
49
+ echo "$HOME/pysoc/bin" >> $GITHUB_PATH
50
+ - name: Lint with flake8
51
+ run: |
52
+ # stop the build if there are Python syntax errors or undefined names
53
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
54
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
55
+ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
56
+ - name: Set last modified
57
+ run: |
58
+ new_date=$(date '+%d\/%m\/%Y')
59
+ sed -E "s/_last_updated_string = \"[0-9]{2}\/[0-9]{2}\/[0-9]{4}\"/_last_updated_string = \"$new_date\"/g" -i digichem/__init__.py
60
+ - name: Test with pytest
61
+ run: |
62
+ export PYTHONPATH="./:$PYTHONPATH"
63
+ pytest
64
+ - name: Commit changes
65
+ run: |
66
+ git config --global user.email "osl@st-andrews.ac.uk"
67
+ git config --global user.name "Oliver Lee"
68
+ git add digichem/__init__.py
69
+ git commit -m "chore: update last modified"
70
+ git push
71
+
@@ -0,0 +1,41 @@
1
+ # This workflow will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
+
4
+ # This workflow uses actions that are not certified by GitHub.
5
+ # They are provided by a third-party and are governed by
6
+ # separate terms of service, privacy policy, and support
7
+ # documentation.
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ deploy:
20
+
21
+ runs-on: ubuntu-latest
22
+ environment:
23
+ name: pypi
24
+ url: https://pypi.org/p/digichem-core
25
+ permissions:
26
+ id-token: write
27
+
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - name: Set up Python
31
+ uses: actions/setup-python@v4
32
+ with:
33
+ python-version: '3.x'
34
+ - name: Install dependencies
35
+ run: |
36
+ python -m pip install --upgrade pip
37
+ pip install build
38
+ - name: Build package
39
+ run: python -m build
40
+ - name: Publish package
41
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,201 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ local_settings.py
60
+ db.sqlite3
61
+ db.sqlite3-journal
62
+
63
+ # Flask stuff:
64
+ instance/
65
+ .webassets-cache
66
+
67
+ # Scrapy stuff:
68
+ .scrapy
69
+
70
+ # Sphinx documentation
71
+ docs/_build/
72
+
73
+ # PyBuilder
74
+ .pybuilder/
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ # For a library or package, you might want to ignore these files since the code is
86
+ # intended to run in multiple environments; otherwise, check them in:
87
+ # .python-version
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath parsed files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+
133
+ # pytype static type analyzer
134
+ .pytype/
135
+
136
+ # Cython debug symbols
137
+ cython_debug/
138
+
139
+ #######################################################
140
+ # Eclipse
141
+ .metadata
142
+ bin/
143
+ tmp/
144
+ *.tmp
145
+ *.bak
146
+ *.swp
147
+ *~.nib
148
+ local.properties
149
+ .settings/
150
+ .loadpath
151
+ .recommenders
152
+
153
+ # External tool builders
154
+ .externalToolBuilders/
155
+
156
+ # Locally stored "Eclipse launch configurations"
157
+ *.launch
158
+
159
+ # PyDev specific (Python IDE for Eclipse)
160
+ *.pydevproject
161
+
162
+ # CDT-specific (C/C++ Development Tooling)
163
+ .cproject
164
+
165
+ # CDT- autotools
166
+ .autotools
167
+
168
+ # Java annotation processor (APT)
169
+ .factorypath
170
+
171
+ # PDT-specific (PHP Development Tools)
172
+ .buildpath
173
+
174
+ # sbteclipse plugin
175
+ .target
176
+
177
+ # Tern plugin
178
+ .tern-project
179
+
180
+ # TeXlipse plugin
181
+ .texlipse
182
+
183
+ # STS (Spring Tool Suite)
184
+ .springBeans
185
+
186
+ # Code Recommenders
187
+ .recommenders/
188
+
189
+ # Annotation Processing
190
+ .apt_generated/
191
+ .apt_generated_test/
192
+
193
+ # Scala IDE specific (Scala & Java development for Eclipse)
194
+ .cache-main
195
+ .scala_dependencies
196
+ .worksheet
197
+
198
+ # Uncomment this line if you wish to ignore the project description file.
199
+ # Typically, this file would be tracked if it contains build/dependency configurations:
200
+ .project
201
+ .vscode
@@ -0,0 +1,3 @@
1
+ [submodule "digichem/test/data"]
2
+ path = digichem/test/data
3
+ url = https://github.com/Digichem-Project/digichem-test-data.git
Binary file
@@ -0,0 +1,10 @@
1
+ Copyright (C) 2024 Digichem.
2
+ The Digichem-core repository is free, open-source software.
3
+
4
+ The main code base is licensed under the BSD-3-Clause license, see [`LICENSE`](LICENSE) for full details.
5
+
6
+ Code distributed under the [`digichem/data/batoms`](digichem/data/batoms) directory is licensed separately under the GNU General Public License V3, see [`digichem/data/batoms/LICENSE`](digichem/data/batoms/LICENSE) for full license details.
7
+
8
+ The Digichem logo and banner is not licensed for use, and remains Copyright (C) 2024 Digichem.
9
+
10
+ Code distributed under the [`digichem/data/tachyon`](digichem/data/tachyon) directory is Copyright (c) 1994-2013 John E. Stone, and is licensed separately under the BSD-3-Clause license, see [`digichem/data/tachyon/LICENSE`](digichem/data/tachyon/LICENSE) for full license details. The Tachyon ray-tracer and John E. Stone are in no-way affiliated with Digichem.
@@ -0,0 +1,11 @@
1
+ Copyright 2024 Digichem
2
+
3
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
+
5
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
+
7
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
+
9
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
+
11
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.3
2
+ Name: digichem-core
3
+ Version: 6.0.0rc1
4
+ Summary: Open-source library for Digichem core components
5
+ Project-URL: Homepage, https://github.com/Digichem-Project/digichem-core
6
+ Project-URL: Documentation, https://doc.digi-chem.co.uk
7
+ Project-URL: Issues, https://github.com/Digichem-Project/digichem-core/issues
8
+ Author-email: "Oliver S. Lee" <osl@digi-chem.ac.uk>
9
+ License: Copyright 2024 Digichem
10
+
11
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
14
+
15
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
16
+
17
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20
+ License-File: COPYING.md
21
+ License-File: LICENSE
22
+ Classifier: License :: OSI Approved :: BSD License
23
+ Classifier: Operating System :: Unix
24
+ Classifier: Programming Language :: Python :: 3
25
+ Requires-Python: >=3.9
26
+ Requires-Dist: adjusttext
27
+ Requires-Dist: basis-set-exchange
28
+ Requires-Dist: cclib
29
+ Requires-Dist: colour-science
30
+ Requires-Dist: configurables
31
+ Requires-Dist: deepmerge
32
+ Requires-Dist: dill
33
+ Requires-Dist: matplotlib
34
+ Requires-Dist: openprattle
35
+ Requires-Dist: periodictable
36
+ Requires-Dist: pillow
37
+ Requires-Dist: pyyaml
38
+ Requires-Dist: rdkit
39
+ Requires-Dist: scipy
40
+ Provides-Extra: test
41
+ Requires-Dist: pytest; extra == 'test'
42
+ Requires-Dist: pytest-lazy-fixture; extra == 'test'
43
+ Description-Content-Type: text/markdown
44
+
45
+ <img src="Banner.png" alt="Banner" />
46
+
47
+ # Digichem-core
48
+
49
+ Welcome to Digichem: the computational chemistry management suite!
50
+
51
+ This is Digichem-core, the open-source library for Digichem. If you are looking to build your own computational workflows using the tools that Digichem has to offer, then you have come to the right place.
52
+
53
+ - Alternatively, if you are looking for the full Digichem program, try [Build-boy](https://github.com/Digichem-Project/build-boy)
54
+ - If you'd like more information on the Digichem project, check out the [website](https://www.digi-chem.co.uk)
55
+
56
+ ## Dependencies
57
+
58
+ - adjustText
59
+ - basis_set_exchange
60
+ - cclib
61
+ - colour-science
62
+ - deepmerge
63
+ - dill
64
+ - matplotlib
65
+ - openprattle
66
+ - periodictable
67
+ - pillow
68
+ - pyyaml
69
+ - rdkit
70
+ - scipy
71
+
72
+ ## Installation
73
+
74
+ ### Pip
75
+
76
+ Digichem-core can be installed using pip. Simply run the following command:
77
+
78
+ ```Shell
79
+ pip install digichem-core
80
+ ```
81
+
82
+ Or, on some platforms:
83
+
84
+ ```Shell
85
+ pip3 install digichem-core
86
+ ```
87
+
88
+ ## Usage
89
+
90
+ Documentation coming soon.
91
+
92
+ ## License
93
+
94
+ 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
+
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).
@@ -0,0 +1,52 @@
1
+ <img src="Banner.png" alt="Banner" />
2
+
3
+ # Digichem-core
4
+
5
+ Welcome to Digichem: the computational chemistry management suite!
6
+
7
+ This is Digichem-core, the open-source library for Digichem. If you are looking to build your own computational workflows using the tools that Digichem has to offer, then you have come to the right place.
8
+
9
+ - Alternatively, if you are looking for the full Digichem program, try [Build-boy](https://github.com/Digichem-Project/build-boy)
10
+ - If you'd like more information on the Digichem project, check out the [website](https://www.digi-chem.co.uk)
11
+
12
+ ## Dependencies
13
+
14
+ - adjustText
15
+ - basis_set_exchange
16
+ - cclib
17
+ - colour-science
18
+ - deepmerge
19
+ - dill
20
+ - matplotlib
21
+ - openprattle
22
+ - periodictable
23
+ - pillow
24
+ - pyyaml
25
+ - rdkit
26
+ - scipy
27
+
28
+ ## Installation
29
+
30
+ ### Pip
31
+
32
+ Digichem-core can be installed using pip. Simply run the following command:
33
+
34
+ ```Shell
35
+ pip install digichem-core
36
+ ```
37
+
38
+ Or, on some platforms:
39
+
40
+ ```Shell
41
+ pip3 install digichem-core
42
+ ```
43
+
44
+ ## Usage
45
+
46
+ Documentation coming soon.
47
+
48
+ ## License
49
+
50
+ 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
+
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).
@@ -0,0 +1,75 @@
1
+ """Computational chemistry management"""
2
+
3
+ from datetime import datetime
4
+ import sys
5
+
6
+ import digichem.log
7
+ from digichem.datas import get_resource
8
+
9
+ ####################
10
+ # Package metadata.#
11
+ ####################
12
+
13
+
14
+ # # Version information.
15
+ # major_version = 6
16
+ # minor_version = 0
17
+ # revision = 0
18
+ # prerelease = 1
19
+ # # Whether this is a development version.
20
+ # development = prerelease is not None
21
+ # # The full version number of this package.
22
+ # __version__ = "{}.{}.{}{}".format(major_version, minor_version, revision, "-pre.{}".format(prerelease) if development else "")
23
+ __version__ = "6.0.0-pre.1"
24
+ _v_parts = __version__.split("-")[0].split(".")
25
+ major_version = int(_v_parts[0])
26
+ minor_version = int(_v_parts[1])
27
+ revision = int(_v_parts[2])
28
+ if "-pre" in __version__:
29
+ development = True
30
+ prerelease = int(__version__.split(".")[3])
31
+ else:
32
+ development = False
33
+ prerelease = None
34
+
35
+
36
+ # Those who wrote this.
37
+ __author__ = [
38
+ "Oliver S. Lee"
39
+ ]
40
+
41
+ # Program date (when we were last updated). This is changed automatically.
42
+ _last_updated_string = "31/05/2024"
43
+ last_updated = datetime.strptime(_last_updated_string, "%d/%m/%Y")
44
+
45
+ # The sys attribute 'frozen' is our flag, '_MEIPASS' is the dir location.
46
+ # https://pyinstaller.readthedocs.io/en/stable/runtime-information.html#run-time-information
47
+ if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
48
+ frozen = True
49
+
50
+ # We are frozen, expand PATH to include the possibly bundled oprattle.
51
+ from pathlib import Path
52
+ import os
53
+ freeze_dir = Path(sys._MEIPASS)
54
+ if freeze_dir.name == "_internal":
55
+ freeze_dir = freeze_dir.parent
56
+
57
+ os.environ['PATH'] = os.environ.get("PATH", "") + ":" + str(freeze_dir)
58
+
59
+ else:
60
+ frozen = False
61
+
62
+ import rdkit.RDLogger
63
+ # WrapLogs() outputs rdkit logging to python's stderr (which might be redirected to an urwid widget).
64
+ # If/when rdkit is further intergrated into digichem, this call will likely be moved elsewhere.
65
+ #rdkit.Chem.rdchem.WrapLogs()
66
+ # Sadly the behaviour of WrapLogs() is a bit bizzare, although we do get redirection to our custom widgets etc,
67
+ # logs are also still dumped to screen...
68
+ # for now, disable logging...
69
+ rdkit.RDLogger.DisableLog('rdApp.*')
70
+
71
+ # Setup the logger
72
+ digichem.log.init_logger()
73
+
74
+ # At end to avoid circular imports.
75
+ import digichem.config