chython 2.4__cp312-cp312-win_amd64.whl
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.
- chython/__init__.py +31 -0
- chython/_functions.py +69 -0
- chython/algorithms/__init__.py +18 -0
- chython/algorithms/_isomorphism.cp312-win_amd64.pyd +0 -0
- chython/algorithms/_isomorphism.pyx +189 -0
- chython/algorithms/aromatics/__init__.py +27 -0
- chython/algorithms/aromatics/_rules.py +124 -0
- chython/algorithms/aromatics/kekule.py +530 -0
- chython/algorithms/aromatics/test/__init__.py +18 -0
- chython/algorithms/aromatics/test/test_kekule.py +160 -0
- chython/algorithms/aromatics/test/test_thiele.py +263 -0
- chython/algorithms/aromatics/thiele.py +226 -0
- chython/algorithms/calculate2d/__init__.py +23 -0
- chython/algorithms/calculate2d/clean2d.js +1 -0
- chython/algorithms/calculate2d/molecule.py +149 -0
- chython/algorithms/calculate2d/reaction.py +80 -0
- chython/algorithms/depict.py +523 -0
- chython/algorithms/fingerprints/__init__.py +48 -0
- chython/algorithms/fingerprints/linear.py +208 -0
- chython/algorithms/fingerprints/morgan.py +137 -0
- chython/algorithms/fingerprints/test/__init__.py +18 -0
- chython/algorithms/fingerprints/test/test_linear.py +127 -0
- chython/algorithms/fingerprints/test/test_morgan.py +79 -0
- chython/algorithms/isomorphism.py +667 -0
- chython/algorithms/mapping/__init__.py +28 -0
- chython/algorithms/mapping/_groups.py +94 -0
- chython/algorithms/mapping/_reactions.py +72 -0
- chython/algorithms/mapping/attention.py +216 -0
- chython/algorithms/mapping/fixmapper.py +84 -0
- chython/algorithms/mapping/groups.py +137 -0
- chython/algorithms/mcs.py +202 -0
- chython/algorithms/morgan.py +82 -0
- chython/algorithms/rings.py +551 -0
- chython/algorithms/smiles.py +556 -0
- chython/algorithms/standardize/__init__.py +30 -0
- chython/algorithms/standardize/_charged.py +115 -0
- chython/algorithms/standardize/_groups.py +926 -0
- chython/algorithms/standardize/_metal_organics.py +189 -0
- chython/algorithms/standardize/_reagents.py +44 -0
- chython/algorithms/standardize/_salts.py +68 -0
- chython/algorithms/standardize/molecule.py +479 -0
- chython/algorithms/standardize/reaction.py +429 -0
- chython/algorithms/standardize/resonance.py +196 -0
- chython/algorithms/standardize/salts.py +128 -0
- chython/algorithms/standardize/saturation.py +378 -0
- chython/algorithms/standardize/test/__init__.py +18 -0
- chython/algorithms/standardize/test/test_groups.py +118 -0
- chython/algorithms/stereo.py +1222 -0
- chython/algorithms/tautomers/__init__.py +171 -0
- chython/algorithms/tautomers/_acid.py +59 -0
- chython/algorithms/tautomers/_base.py +116 -0
- chython/algorithms/tautomers/_keto_enol.py +107 -0
- chython/algorithms/tautomers/acid_base.py +214 -0
- chython/algorithms/tautomers/heteroarenes.py +108 -0
- chython/algorithms/tautomers/keto_enol.py +148 -0
- chython/algorithms/tautomers/test/__init__.py +18 -0
- chython/algorithms/tautomers/test/test_tautomers.py +80 -0
- chython/algorithms/test/__init__.py +18 -0
- chython/algorithms/test/test_isomorphism.py +58 -0
- chython/algorithms/test/test_smiles.py +76 -0
- chython/algorithms/x3dom.py +355 -0
- chython/containers/__init__.py +43 -0
- chython/containers/_pack_v2.cp312-win_amd64.pyd +0 -0
- chython/containers/_pack_v2.pyx +271 -0
- chython/containers/_unpack_v0v2.cp312-win_amd64.pyd +0 -0
- chython/containers/_unpack_v0v2.pyx +300 -0
- chython/containers/bonds.py +255 -0
- chython/containers/cgr.py +115 -0
- chython/containers/graph.py +200 -0
- chython/containers/molecule.py +695 -0
- chython/containers/query.py +66 -0
- chython/containers/reaction.py +324 -0
- chython/exceptions.py +114 -0
- chython/files/MRVrw.py +523 -0
- chython/files/PDBrw.py +257 -0
- chython/files/RDFrw.py +298 -0
- chython/files/SDFrw.py +221 -0
- chython/files/__init__.py +29 -0
- chython/files/_convert.py +207 -0
- chython/files/_mapping.py +117 -0
- chython/files/_xyz.cp312-win_amd64.pyd +0 -0
- chython/files/_xyz.pyx +74 -0
- chython/files/daylight/__init__.py +24 -0
- chython/files/daylight/parser.py +157 -0
- chython/files/daylight/smarts.py +107 -0
- chython/files/daylight/smiles.py +245 -0
- chython/files/daylight/test/__init__.py +18 -0
- chython/files/daylight/test/test_daylight_smarts.py +289 -0
- chython/files/daylight/test/test_daylight_smiles.py +101 -0
- chython/files/daylight/test/test_parser.py +118 -0
- chython/files/daylight/test/test_tokenize.py +77 -0
- chython/files/daylight/tokenize.py +376 -0
- chython/files/libinchi/__init__.py +22 -0
- chython/files/libinchi/libinchi.dll +0 -0
- chython/files/libinchi/wrapper.py +555 -0
- chython/files/mdl/__init__.py +25 -0
- chython/files/mdl/emol.py +209 -0
- chython/files/mdl/erxn.py +67 -0
- chython/files/mdl/mol.py +144 -0
- chython/files/mdl/read.py +225 -0
- chython/files/mdl/rxn.py +67 -0
- chython/files/mdl/stereo.py +63 -0
- chython/files/mdl/write.py +165 -0
- chython/files/xyz.py +78 -0
- chython/periodictable/__init__.py +69 -0
- chython/periodictable/base/__init__.py +25 -0
- chython/periodictable/base/dynamic.py +149 -0
- chython/periodictable/base/element.py +452 -0
- chython/periodictable/base/groups.py +90 -0
- chython/periodictable/base/periods.py +46 -0
- chython/periodictable/base/query.py +473 -0
- chython/periodictable/base/vector.py +119 -0
- chython/periodictable/groupI.py +252 -0
- chython/periodictable/groupII.py +223 -0
- chython/periodictable/groupIII.py +1154 -0
- chython/periodictable/groupIV.py +210 -0
- chython/periodictable/groupIX.py +196 -0
- chython/periodictable/groupV.py +192 -0
- chython/periodictable/groupVI.py +183 -0
- chython/periodictable/groupVII.py +162 -0
- chython/periodictable/groupVIII.py +161 -0
- chython/periodictable/groupX.py +166 -0
- chython/periodictable/groupXI.py +164 -0
- chython/periodictable/groupXII.py +158 -0
- chython/periodictable/groupXIII.py +239 -0
- chython/periodictable/groupXIV.py +262 -0
- chython/periodictable/groupXV.py +276 -0
- chython/periodictable/groupXVI.py +457 -0
- chython/periodictable/groupXVII.py +324 -0
- chython/periodictable/groupXVIII.py +260 -0
- chython/reactor/__init__.py +24 -0
- chython/reactor/base.py +212 -0
- chython/reactor/deprotection.py +565 -0
- chython/reactor/groups.py +128 -0
- chython/reactor/reactions/__init__.py +157 -0
- chython/reactor/reactions/_amidation.py +58 -0
- chython/reactor/reactions/_amine_isocyanate.py +52 -0
- chython/reactor/reactions/_buchwald_hartwig.py +50 -0
- chython/reactor/reactions/_esterification.py +49 -0
- chython/reactor/reactions/_macmillan.py +43 -0
- chython/reactor/reactions/_reductive_amination.py +50 -0
- chython/reactor/reactions/_sonogashira.py +49 -0
- chython/reactor/reactions/_sulfonamidation.py +52 -0
- chython/reactor/reactions/_suzuki_miyaura.py +88 -0
- chython/reactor/reactions/ufe.py +99 -0
- chython/reactor/reactor.py +170 -0
- chython/reactor/retro/__init__.py +77 -0
- chython/reactor/retro/_amidation.py +39 -0
- chython/reactor/retro/_aryl_amination.py +32 -0
- chython/reactor/retro/_mitsunobu.py +49 -0
- chython/reactor/retro/_sonogashira.py +49 -0
- chython/reactor/retro/_suzuki_miyaura.py +54 -0
- chython/reactor/scaffold.py +122 -0
- chython/reactor/test/__init__.py +18 -0
- chython/reactor/test/test_deprotection.py +57 -0
- chython/reactor/test/test_reactor.py +40 -0
- chython/reactor/test/test_scaffold.py +57 -0
- chython/reactor/test/test_transformer.py +40 -0
- chython/reactor/transformer.py +62 -0
- chython/utils/__init__.py +57 -0
- chython/utils/free_wilson.py +114 -0
- chython/utils/grid.py +130 -0
- chython/utils/rdkit.py +165 -0
- chython/utils/retro.py +139 -0
- chython/utils/svg.py +57 -0
- chython/utils/test/__init__.py +18 -0
- chython/utils/test/test_rdkit.py +71 -0
- chython-2.4.dist-info/LICENSE +165 -0
- chython-2.4.dist-info/METADATA +101 -0
- chython-2.4.dist-info/RECORD +171 -0
- chython-2.4.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,1154 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2019-2024 Ramil Nugmanov <nougmanoff@protonmail.com>
|
|
4
|
+
# Copyright 2019 Tagir Akhmetshin <tagirshin@gmail.com>
|
|
5
|
+
# This file is part of chython.
|
|
6
|
+
#
|
|
7
|
+
# chython is free software; you can redistribute it and/or modify
|
|
8
|
+
# it under the terms of the GNU Lesser General Public License as published by
|
|
9
|
+
# the Free Software Foundation; either version 3 of the License, or
|
|
10
|
+
# (at your option) any later version.
|
|
11
|
+
#
|
|
12
|
+
# This program is distributed in the hope that it will be useful,
|
|
13
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15
|
+
# GNU Lesser General Public License for more details.
|
|
16
|
+
#
|
|
17
|
+
# You should have received a copy of the GNU Lesser General Public License
|
|
18
|
+
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
|
19
|
+
#
|
|
20
|
+
from .base import Element
|
|
21
|
+
from .base.groups import GroupIII
|
|
22
|
+
from .base.periods import PeriodIV, PeriodV, PeriodVI, PeriodVII
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Sc(Element, PeriodIV, GroupIII):
|
|
26
|
+
__slots__ = ()
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def atomic_number(self):
|
|
30
|
+
return 21
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def isotopes_distribution(self):
|
|
34
|
+
return {44: 0., 45: 1.0}
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def isotopes_masses(self):
|
|
38
|
+
return {44: 43.959403, 45: 44.955910}
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def _common_valences(self):
|
|
42
|
+
return 0, 3
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def _valences_exceptions(self):
|
|
46
|
+
return (3, False, 0, ()), (-3, False, 0, ((1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'), (1, 'F')))
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def atomic_radius(self):
|
|
50
|
+
return 1.84
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def mdl_isotope(self):
|
|
54
|
+
return 45
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class Y(Element, PeriodV, GroupIII):
|
|
58
|
+
__slots__ = ()
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def atomic_number(self):
|
|
62
|
+
return 39
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def isotopes_distribution(self):
|
|
66
|
+
return {86: 0., 89: 1.0, 90: 0.}
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def isotopes_masses(self):
|
|
70
|
+
return {86: 85.914886, 89: 88.905848, 90: 89.907152}
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def _common_valences(self):
|
|
74
|
+
return 0, 3
|
|
75
|
+
|
|
76
|
+
@property
|
|
77
|
+
def _valences_exceptions(self):
|
|
78
|
+
return (3, False, 0, ()),
|
|
79
|
+
|
|
80
|
+
@property
|
|
81
|
+
def atomic_radius(self):
|
|
82
|
+
return 2.12
|
|
83
|
+
|
|
84
|
+
@property
|
|
85
|
+
def mdl_isotope(self):
|
|
86
|
+
return 89
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class La(Element, PeriodVI, GroupIII):
|
|
90
|
+
__slots__ = ()
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
def atomic_number(self):
|
|
94
|
+
return 57
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def isotopes_distribution(self):
|
|
98
|
+
return {138: 0.0009, 139: 0.9991}
|
|
99
|
+
|
|
100
|
+
@property
|
|
101
|
+
def isotopes_masses(self):
|
|
102
|
+
return {138: 137.907107, 139: 138.906348}
|
|
103
|
+
|
|
104
|
+
@property
|
|
105
|
+
def _common_valences(self):
|
|
106
|
+
return 0, 3
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def _valences_exceptions(self):
|
|
110
|
+
return (3, False, 0, ()),
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def atomic_radius(self):
|
|
114
|
+
return 2.12 # unknown, taken radius of previous element in group
|
|
115
|
+
|
|
116
|
+
@property
|
|
117
|
+
def mdl_isotope(self):
|
|
118
|
+
return 139
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class Ce(Element, PeriodVI, GroupIII):
|
|
122
|
+
__slots__ = ()
|
|
123
|
+
|
|
124
|
+
@property
|
|
125
|
+
def atomic_number(self):
|
|
126
|
+
return 58
|
|
127
|
+
|
|
128
|
+
@property
|
|
129
|
+
def isotopes_distribution(self):
|
|
130
|
+
return {136: 0.00185, 138: 0.00251, 140: 0.8845, 142: 0.11114}
|
|
131
|
+
|
|
132
|
+
@property
|
|
133
|
+
def isotopes_masses(self):
|
|
134
|
+
return {136: 135.90714, 138: 137.905986, 140: 139.905434, 142: 141.90924}
|
|
135
|
+
|
|
136
|
+
@property
|
|
137
|
+
def _common_valences(self):
|
|
138
|
+
return 0, 3
|
|
139
|
+
|
|
140
|
+
@property
|
|
141
|
+
def _valences_exceptions(self):
|
|
142
|
+
return ((3, False, 0, ()),
|
|
143
|
+
(0, False, 0, ((1, 'O'), (1, 'O'), (1, 'O'), (1, 'O'))),
|
|
144
|
+
(0, False, 0, ((1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'))),
|
|
145
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'), (1, 'Cl'), (1, 'Cl'))),
|
|
146
|
+
(0, False, 0, ((2, 'O'), (2, 'O'))))
|
|
147
|
+
|
|
148
|
+
@property
|
|
149
|
+
def atomic_radius(self):
|
|
150
|
+
return 2.12 # unknown, taken radius of previous element in group
|
|
151
|
+
|
|
152
|
+
@property
|
|
153
|
+
def mdl_isotope(self):
|
|
154
|
+
return 140
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
class Pr(Element, PeriodVI, GroupIII):
|
|
158
|
+
__slots__ = ()
|
|
159
|
+
|
|
160
|
+
@property
|
|
161
|
+
def atomic_number(self):
|
|
162
|
+
return 59
|
|
163
|
+
|
|
164
|
+
@property
|
|
165
|
+
def isotopes_distribution(self):
|
|
166
|
+
return {141: 1.0}
|
|
167
|
+
|
|
168
|
+
@property
|
|
169
|
+
def isotopes_masses(self):
|
|
170
|
+
return {141: 140.907648}
|
|
171
|
+
|
|
172
|
+
@property
|
|
173
|
+
def _common_valences(self):
|
|
174
|
+
return 0, 3
|
|
175
|
+
|
|
176
|
+
@property
|
|
177
|
+
def _valences_exceptions(self):
|
|
178
|
+
return ((3, False, 0, ()),
|
|
179
|
+
(0, False, 0, ((1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'))),
|
|
180
|
+
(0, False, 0, ((2, 'O'), (2, 'O'))))
|
|
181
|
+
|
|
182
|
+
@property
|
|
183
|
+
def atomic_radius(self):
|
|
184
|
+
return 2.47
|
|
185
|
+
|
|
186
|
+
@property
|
|
187
|
+
def mdl_isotope(self):
|
|
188
|
+
return 141
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class Nd(Element, PeriodVI, GroupIII):
|
|
192
|
+
__slots__ = ()
|
|
193
|
+
|
|
194
|
+
@property
|
|
195
|
+
def atomic_number(self):
|
|
196
|
+
return 60
|
|
197
|
+
|
|
198
|
+
@property
|
|
199
|
+
def isotopes_distribution(self):
|
|
200
|
+
return {142: 0.272, 143: 0.122, 144: 0.238, 145: 0.083, 146: 0.172, 148: 0.057, 150: 0.056}
|
|
201
|
+
|
|
202
|
+
@property
|
|
203
|
+
def isotopes_masses(self):
|
|
204
|
+
return {142: 141.907719, 143: 142.90981, 144: 143.910083, 145: 144.912569, 146: 145.913112, 148: 147.916889,
|
|
205
|
+
150: 149.920887}
|
|
206
|
+
|
|
207
|
+
@property
|
|
208
|
+
def _common_valences(self):
|
|
209
|
+
return 0, 3
|
|
210
|
+
|
|
211
|
+
@property
|
|
212
|
+
def _valences_exceptions(self):
|
|
213
|
+
return ((3, False, 0, ()),
|
|
214
|
+
(0, False, 0, ((1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'))),
|
|
215
|
+
(0, False, 0, ((2, 'O'),)),
|
|
216
|
+
(0, False, 0, ((1, 'O'), (1, 'O'))),
|
|
217
|
+
(0, False, 0, ((1, 'F'), (1, 'F'))),
|
|
218
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
219
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
220
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
221
|
+
(0, False, 0, ((1, 'F'), (1, 'Cl'))),
|
|
222
|
+
(0, False, 0, ((1, 'F'), (1, 'Br'))),
|
|
223
|
+
(0, False, 0, ((1, 'F'), (1, 'I'))),
|
|
224
|
+
(0, False, 0, ((1, 'C'), (1, 'C'))),
|
|
225
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))))
|
|
226
|
+
|
|
227
|
+
@property
|
|
228
|
+
def atomic_radius(self):
|
|
229
|
+
return 2.06
|
|
230
|
+
|
|
231
|
+
@property
|
|
232
|
+
def mdl_isotope(self):
|
|
233
|
+
return 144
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
class Pm(Element, PeriodVI, GroupIII):
|
|
237
|
+
__slots__ = ()
|
|
238
|
+
|
|
239
|
+
@property
|
|
240
|
+
def atomic_number(self):
|
|
241
|
+
return 61
|
|
242
|
+
|
|
243
|
+
@property
|
|
244
|
+
def isotopes_distribution(self):
|
|
245
|
+
return {145: 1.0}
|
|
246
|
+
|
|
247
|
+
@property
|
|
248
|
+
def isotopes_masses(self):
|
|
249
|
+
return {145: 144.912749}
|
|
250
|
+
|
|
251
|
+
@property
|
|
252
|
+
def _common_valences(self):
|
|
253
|
+
return 0, 3
|
|
254
|
+
|
|
255
|
+
@property
|
|
256
|
+
def _valences_exceptions(self):
|
|
257
|
+
return (3, False, 0, ()),
|
|
258
|
+
|
|
259
|
+
@property
|
|
260
|
+
def atomic_radius(self):
|
|
261
|
+
return 2.05
|
|
262
|
+
|
|
263
|
+
@property
|
|
264
|
+
def mdl_isotope(self):
|
|
265
|
+
return 145
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
class Sm(Element, PeriodVI, GroupIII):
|
|
269
|
+
__slots__ = ()
|
|
270
|
+
|
|
271
|
+
@property
|
|
272
|
+
def atomic_number(self):
|
|
273
|
+
return 62
|
|
274
|
+
|
|
275
|
+
@property
|
|
276
|
+
def isotopes_distribution(self):
|
|
277
|
+
return {144: 0.0307, 145: 0., 147: 0.1499, 148: 0.1124, 149: 0.1382, 150: 0.0738, 152: 0.2675, 153: 0.,
|
|
278
|
+
154: 0.2275}
|
|
279
|
+
|
|
280
|
+
@property
|
|
281
|
+
def isotopes_masses(self):
|
|
282
|
+
return {144: 143.911995, 145: 144.913410, 147: 146.914893, 148: 147.914818, 149: 148.917180, 150: 149.917271,
|
|
283
|
+
152: 151.919728, 153: 152.922097, 154: 153.922205}
|
|
284
|
+
|
|
285
|
+
@property
|
|
286
|
+
def _common_valences(self):
|
|
287
|
+
return 0, 3
|
|
288
|
+
|
|
289
|
+
@property
|
|
290
|
+
def _valences_exceptions(self):
|
|
291
|
+
return ((3, False, 0, ()),
|
|
292
|
+
(0, False, 0, ((1, 'O'), (1, 'O'))),
|
|
293
|
+
(0, False, 0, ((1, 'F'), (1, 'F'))),
|
|
294
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
295
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
296
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
297
|
+
(0, False, 0, ((1, 'F'), (1, 'Cl'))),
|
|
298
|
+
(0, False, 0, ((1, 'F'), (1, 'Br'))),
|
|
299
|
+
(0, False, 0, ((1, 'F'), (1, 'I'))),
|
|
300
|
+
(0, False, 0, ((1, 'C'), (1, 'C'))),
|
|
301
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))),
|
|
302
|
+
(0, False, 0, ((2, 'O'),)))
|
|
303
|
+
|
|
304
|
+
@property
|
|
305
|
+
def atomic_radius(self):
|
|
306
|
+
return 2.38
|
|
307
|
+
|
|
308
|
+
@property
|
|
309
|
+
def mdl_isotope(self):
|
|
310
|
+
return 150
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
class Eu(Element, PeriodVI, GroupIII):
|
|
314
|
+
__slots__ = ()
|
|
315
|
+
|
|
316
|
+
@property
|
|
317
|
+
def atomic_number(self):
|
|
318
|
+
return 63
|
|
319
|
+
|
|
320
|
+
@property
|
|
321
|
+
def isotopes_distribution(self):
|
|
322
|
+
return {151: 0.4781, 152: 0., 153: 0.5219}
|
|
323
|
+
|
|
324
|
+
@property
|
|
325
|
+
def isotopes_masses(self):
|
|
326
|
+
return {151: 150.919846, 152: 151.921744, 153: 152.921226}
|
|
327
|
+
|
|
328
|
+
@property
|
|
329
|
+
def _common_valences(self):
|
|
330
|
+
return 0, 3
|
|
331
|
+
|
|
332
|
+
@property
|
|
333
|
+
def _valences_exceptions(self):
|
|
334
|
+
return ((3, False, 0, ()),
|
|
335
|
+
(0, False, 0, ((1, 'O'), (1, 'O'))),
|
|
336
|
+
(0, False, 0, ((1, 'F'), (1, 'F'))),
|
|
337
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
338
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
339
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
340
|
+
(0, False, 0, ((1, 'F'), (1, 'Cl'))),
|
|
341
|
+
(0, False, 0, ((1, 'F'), (1, 'Br'))),
|
|
342
|
+
(0, False, 0, ((1, 'F'), (1, 'I'))),
|
|
343
|
+
(0, False, 0, ((1, 'C'), (1, 'C'))),
|
|
344
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))),
|
|
345
|
+
(0, False, 0, ((2, 'O'),)))
|
|
346
|
+
|
|
347
|
+
@property
|
|
348
|
+
def atomic_radius(self):
|
|
349
|
+
return 2.31
|
|
350
|
+
|
|
351
|
+
@property
|
|
352
|
+
def mdl_isotope(self):
|
|
353
|
+
return 152
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class Gd(Element, PeriodVI, GroupIII):
|
|
357
|
+
__slots__ = ()
|
|
358
|
+
|
|
359
|
+
@property
|
|
360
|
+
def atomic_number(self):
|
|
361
|
+
return 64
|
|
362
|
+
|
|
363
|
+
@property
|
|
364
|
+
def isotopes_distribution(self):
|
|
365
|
+
return {152: 0.002, 153: 0., 154: 0.0218, 155: 0.148, 156: 0.2047, 157: 0.1565, 158: 0.2484, 160: 0.2186}
|
|
366
|
+
|
|
367
|
+
@property
|
|
368
|
+
def isotopes_masses(self):
|
|
369
|
+
return {152: 151.919788, 153: 152.921750, 154: 153.920862, 155: 154.922619, 156: 155.922120, 157: 156.923957,
|
|
370
|
+
158: 157.924101, 160: 159.927051}
|
|
371
|
+
|
|
372
|
+
@property
|
|
373
|
+
def _common_valences(self):
|
|
374
|
+
return 0, 3
|
|
375
|
+
|
|
376
|
+
@property
|
|
377
|
+
def _valences_exceptions(self):
|
|
378
|
+
return (3, False, 0, ()),
|
|
379
|
+
|
|
380
|
+
@property
|
|
381
|
+
def atomic_radius(self):
|
|
382
|
+
return 2.33
|
|
383
|
+
|
|
384
|
+
@property
|
|
385
|
+
def mdl_isotope(self):
|
|
386
|
+
return 157
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
class Tb(Element, PeriodVI, GroupIII):
|
|
390
|
+
__slots__ = ()
|
|
391
|
+
|
|
392
|
+
@property
|
|
393
|
+
def atomic_number(self):
|
|
394
|
+
return 65
|
|
395
|
+
|
|
396
|
+
@property
|
|
397
|
+
def isotopes_distribution(self):
|
|
398
|
+
return {159: 1.0, 160: 0.}
|
|
399
|
+
|
|
400
|
+
@property
|
|
401
|
+
def isotopes_masses(self):
|
|
402
|
+
return {159: 158.925343, 160: 159.927168}
|
|
403
|
+
|
|
404
|
+
@property
|
|
405
|
+
def _common_valences(self):
|
|
406
|
+
return 0, 3
|
|
407
|
+
|
|
408
|
+
@property
|
|
409
|
+
def _valences_exceptions(self):
|
|
410
|
+
return ((3, False, 0, ()),
|
|
411
|
+
(0, False, 0, ((1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'))),
|
|
412
|
+
(0, False, 0, ((2, 'O'), (2, 'O'))))
|
|
413
|
+
|
|
414
|
+
@property
|
|
415
|
+
def atomic_radius(self):
|
|
416
|
+
return 2.25
|
|
417
|
+
|
|
418
|
+
@property
|
|
419
|
+
def mdl_isotope(self):
|
|
420
|
+
return 159
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
class Dy(Element, PeriodVI, GroupIII):
|
|
424
|
+
__slots__ = ()
|
|
425
|
+
|
|
426
|
+
@property
|
|
427
|
+
def atomic_number(self):
|
|
428
|
+
return 66
|
|
429
|
+
|
|
430
|
+
@property
|
|
431
|
+
def isotopes_distribution(self):
|
|
432
|
+
return {156: 0.0006, 158: 0.001, 160: 0.0234, 161: 0.1891, 162: 0.2551, 163: 0.249, 164: 0.2818}
|
|
433
|
+
|
|
434
|
+
@property
|
|
435
|
+
def isotopes_masses(self):
|
|
436
|
+
return {156: 155.924278, 158: 157.924405, 160: 159.925194, 161: 160.92693, 162: 161.926795, 163: 162.928728,
|
|
437
|
+
164: 163.929171}
|
|
438
|
+
|
|
439
|
+
@property
|
|
440
|
+
def _common_valences(self):
|
|
441
|
+
return 0, 3
|
|
442
|
+
|
|
443
|
+
@property
|
|
444
|
+
def _valences_exceptions(self):
|
|
445
|
+
return ((3, False, 0, ()),
|
|
446
|
+
(0, False, 0, ((1, 'F'), (1, 'F'), (1, 'F'), (1, 'F'))),
|
|
447
|
+
(0, False, 0, ((2, 'O'), (2, 'O'))))
|
|
448
|
+
|
|
449
|
+
@property
|
|
450
|
+
def atomic_radius(self):
|
|
451
|
+
return 2.28
|
|
452
|
+
|
|
453
|
+
@property
|
|
454
|
+
def mdl_isotope(self):
|
|
455
|
+
return 163
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
class Ho(Element, PeriodVI, GroupIII):
|
|
459
|
+
__slots__ = ()
|
|
460
|
+
|
|
461
|
+
@property
|
|
462
|
+
def atomic_number(self):
|
|
463
|
+
return 67
|
|
464
|
+
|
|
465
|
+
@property
|
|
466
|
+
def isotopes_distribution(self):
|
|
467
|
+
return {165: 1.0, 166: 0.}
|
|
468
|
+
|
|
469
|
+
@property
|
|
470
|
+
def isotopes_masses(self):
|
|
471
|
+
return {165: 164.930319, 166: 165.932284}
|
|
472
|
+
|
|
473
|
+
@property
|
|
474
|
+
def _common_valences(self):
|
|
475
|
+
return 0, 3
|
|
476
|
+
|
|
477
|
+
@property
|
|
478
|
+
def _valences_exceptions(self):
|
|
479
|
+
return ((3, False, 0, ()),
|
|
480
|
+
(0, False, 0, ((1, 'O'), (1, 'O'))),
|
|
481
|
+
(0, False, 0, ((1, 'F'), (1, 'F'))),
|
|
482
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
483
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
484
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
485
|
+
(0, False, 0, ((1, 'F'), (1, 'Cl'))),
|
|
486
|
+
(0, False, 0, ((1, 'F'), (1, 'Br'))),
|
|
487
|
+
(0, False, 0, ((1, 'F'), (1, 'I'))),
|
|
488
|
+
(0, False, 0, ((1, 'C'), (1, 'C'))),
|
|
489
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))),
|
|
490
|
+
(0, False, 0, ((2, 'O'),)))
|
|
491
|
+
|
|
492
|
+
@property
|
|
493
|
+
def atomic_radius(self):
|
|
494
|
+
return 2.26
|
|
495
|
+
|
|
496
|
+
@property
|
|
497
|
+
def mdl_isotope(self):
|
|
498
|
+
return 165
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
class Er(Element, PeriodVI, GroupIII):
|
|
502
|
+
__slots__ = ()
|
|
503
|
+
|
|
504
|
+
@property
|
|
505
|
+
def atomic_number(self):
|
|
506
|
+
return 68
|
|
507
|
+
|
|
508
|
+
@property
|
|
509
|
+
def isotopes_distribution(self):
|
|
510
|
+
return {162: 0.0014, 164: 0.0161, 166: 0.3361, 167: 0.2293, 168: 0.2678, 170: 0.1493}
|
|
511
|
+
|
|
512
|
+
@property
|
|
513
|
+
def isotopes_masses(self):
|
|
514
|
+
return {162: 161.928775, 164: 163.929197, 166: 165.93029, 167: 166.932045, 168: 167.932368, 170: 169.93546}
|
|
515
|
+
|
|
516
|
+
@property
|
|
517
|
+
def _common_valences(self):
|
|
518
|
+
return 0, 3
|
|
519
|
+
|
|
520
|
+
@property
|
|
521
|
+
def _valences_exceptions(self):
|
|
522
|
+
return (3, False, 0, ()),
|
|
523
|
+
|
|
524
|
+
@property
|
|
525
|
+
def atomic_radius(self):
|
|
526
|
+
return 2.26
|
|
527
|
+
|
|
528
|
+
@property
|
|
529
|
+
def mdl_isotope(self):
|
|
530
|
+
return 167
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
class Tm(Element, PeriodVI, GroupIII):
|
|
534
|
+
__slots__ = ()
|
|
535
|
+
|
|
536
|
+
@property
|
|
537
|
+
def atomic_number(self):
|
|
538
|
+
return 69
|
|
539
|
+
|
|
540
|
+
@property
|
|
541
|
+
def isotopes_distribution(self):
|
|
542
|
+
return {169: 1.0, 170: 0.}
|
|
543
|
+
|
|
544
|
+
@property
|
|
545
|
+
def isotopes_masses(self):
|
|
546
|
+
return {169: 168.934211, 170: 169.935801}
|
|
547
|
+
|
|
548
|
+
@property
|
|
549
|
+
def _common_valences(self):
|
|
550
|
+
return 0, 3
|
|
551
|
+
|
|
552
|
+
@property
|
|
553
|
+
def _valences_exceptions(self):
|
|
554
|
+
return ((3, False, 0, ()),
|
|
555
|
+
(0, False, 0, ((1, 'O'), (1, 'O'))),
|
|
556
|
+
(0, False, 0, ((1, 'F'), (1, 'F'))),
|
|
557
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
558
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
559
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
560
|
+
(0, False, 0, ((1, 'F'), (1, 'Cl'))),
|
|
561
|
+
(0, False, 0, ((1, 'F'), (1, 'Br'))),
|
|
562
|
+
(0, False, 0, ((1, 'F'), (1, 'I'))),
|
|
563
|
+
(0, False, 0, ((1, 'C'), (1, 'C'))),
|
|
564
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))),
|
|
565
|
+
(0, False, 0, ((2, 'O'),)))
|
|
566
|
+
|
|
567
|
+
@property
|
|
568
|
+
def atomic_radius(self):
|
|
569
|
+
return 2.22
|
|
570
|
+
|
|
571
|
+
@property
|
|
572
|
+
def mdl_isotope(self):
|
|
573
|
+
return 169
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
class Yb(Element, PeriodVI, GroupIII):
|
|
577
|
+
__slots__ = ()
|
|
578
|
+
|
|
579
|
+
@property
|
|
580
|
+
def atomic_number(self):
|
|
581
|
+
return 70
|
|
582
|
+
|
|
583
|
+
@property
|
|
584
|
+
def isotopes_distribution(self):
|
|
585
|
+
return {168: 0.0013, 169: 0., 170: 0.0304, 171: 0.1428, 172: 0.2183, 173: 0.1613, 174: 0.3183, 176: 0.1276}
|
|
586
|
+
|
|
587
|
+
@property
|
|
588
|
+
def isotopes_masses(self):
|
|
589
|
+
return {168: 167.933894, 169: 168.935190, 170: 169.934759, 171: 170.936322, 172: 171.936378, 173: 172.938207,
|
|
590
|
+
174: 173.938858, 176: 175.942568}
|
|
591
|
+
|
|
592
|
+
@property
|
|
593
|
+
def _common_valences(self):
|
|
594
|
+
return 0, 3
|
|
595
|
+
|
|
596
|
+
@property
|
|
597
|
+
def _valences_exceptions(self):
|
|
598
|
+
return ((3, False, 0, ()),
|
|
599
|
+
(0, False, 0, ((1, 'O'), (1, 'O'))),
|
|
600
|
+
(0, False, 0, ((1, 'F'), (1, 'F'))),
|
|
601
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
602
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
603
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
604
|
+
(0, False, 0, ((1, 'F'), (1, 'Cl'))),
|
|
605
|
+
(0, False, 0, ((1, 'F'), (1, 'Br'))),
|
|
606
|
+
(0, False, 0, ((1, 'F'), (1, 'I'))),
|
|
607
|
+
(0, False, 0, ((1, 'C'), (1, 'C'))),
|
|
608
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))),
|
|
609
|
+
(0, False, 0, ((2, 'O'),)))
|
|
610
|
+
|
|
611
|
+
@property
|
|
612
|
+
def atomic_radius(self):
|
|
613
|
+
return 2.22
|
|
614
|
+
|
|
615
|
+
@property
|
|
616
|
+
def mdl_isotope(self):
|
|
617
|
+
return 173
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
class Lu(Element, PeriodVI, GroupIII):
|
|
621
|
+
__slots__ = ()
|
|
622
|
+
|
|
623
|
+
@property
|
|
624
|
+
def atomic_number(self):
|
|
625
|
+
return 71
|
|
626
|
+
|
|
627
|
+
@property
|
|
628
|
+
def isotopes_distribution(self):
|
|
629
|
+
return {175: 0.9741, 176: 0.0259, 177: 0.}
|
|
630
|
+
|
|
631
|
+
@property
|
|
632
|
+
def isotopes_masses(self):
|
|
633
|
+
return {175: 174.940768, 176: 175.942682, 177: 176.943758}
|
|
634
|
+
|
|
635
|
+
@property
|
|
636
|
+
def _common_valences(self):
|
|
637
|
+
return 0, 3
|
|
638
|
+
|
|
639
|
+
@property
|
|
640
|
+
def _valences_exceptions(self):
|
|
641
|
+
return (3, False, 0, ()),
|
|
642
|
+
|
|
643
|
+
@property
|
|
644
|
+
def atomic_radius(self):
|
|
645
|
+
return 2.17
|
|
646
|
+
|
|
647
|
+
@property
|
|
648
|
+
def mdl_isotope(self):
|
|
649
|
+
return 175
|
|
650
|
+
|
|
651
|
+
|
|
652
|
+
class Ac(Element, PeriodVII, GroupIII):
|
|
653
|
+
__slots__ = ()
|
|
654
|
+
|
|
655
|
+
@property
|
|
656
|
+
def atomic_number(self):
|
|
657
|
+
return 89
|
|
658
|
+
|
|
659
|
+
@property
|
|
660
|
+
def isotopes_distribution(self):
|
|
661
|
+
return {225: 0., 227: 1.0}
|
|
662
|
+
|
|
663
|
+
@property
|
|
664
|
+
def isotopes_masses(self):
|
|
665
|
+
return {225: 225.023230, 227: 227.027752}
|
|
666
|
+
|
|
667
|
+
@property
|
|
668
|
+
def _common_valences(self):
|
|
669
|
+
return 0, 3
|
|
670
|
+
|
|
671
|
+
@property
|
|
672
|
+
def _valences_exceptions(self):
|
|
673
|
+
return (3, False, 0, ()),
|
|
674
|
+
|
|
675
|
+
@property
|
|
676
|
+
def atomic_radius(self):
|
|
677
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
678
|
+
|
|
679
|
+
@property
|
|
680
|
+
def mdl_isotope(self):
|
|
681
|
+
return 227
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
class Th(Element, PeriodVII, GroupIII):
|
|
685
|
+
__slots__ = ()
|
|
686
|
+
|
|
687
|
+
@property
|
|
688
|
+
def atomic_number(self):
|
|
689
|
+
return 90
|
|
690
|
+
|
|
691
|
+
@property
|
|
692
|
+
def isotopes_distribution(self):
|
|
693
|
+
return {227: 0., 232: 1.0}
|
|
694
|
+
|
|
695
|
+
@property
|
|
696
|
+
def isotopes_masses(self):
|
|
697
|
+
return {227: 227.027704, 232: 232.038050}
|
|
698
|
+
|
|
699
|
+
@property
|
|
700
|
+
def _common_valences(self):
|
|
701
|
+
return 0, 4
|
|
702
|
+
|
|
703
|
+
@property
|
|
704
|
+
def _valences_exceptions(self):
|
|
705
|
+
return ((4, False, 0, ()),
|
|
706
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'), (1, 'Br'))),
|
|
707
|
+
(0, False, 0, ((1, 'I'), (1, 'I'), (1, 'I'))),
|
|
708
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
709
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
710
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))))
|
|
711
|
+
|
|
712
|
+
@property
|
|
713
|
+
def atomic_radius(self):
|
|
714
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
715
|
+
|
|
716
|
+
@property
|
|
717
|
+
def mdl_isotope(self):
|
|
718
|
+
return 232
|
|
719
|
+
|
|
720
|
+
|
|
721
|
+
class Pa(Element, PeriodVII, GroupIII):
|
|
722
|
+
__slots__ = ()
|
|
723
|
+
|
|
724
|
+
@property
|
|
725
|
+
def atomic_number(self):
|
|
726
|
+
return 91
|
|
727
|
+
|
|
728
|
+
@property
|
|
729
|
+
def isotopes_distribution(self):
|
|
730
|
+
return {231: 1.0, 233: 0.}
|
|
731
|
+
|
|
732
|
+
@property
|
|
733
|
+
def isotopes_masses(self):
|
|
734
|
+
return {231: 231.035879, 233: 233.040247}
|
|
735
|
+
|
|
736
|
+
@property
|
|
737
|
+
def _common_valences(self):
|
|
738
|
+
return 0, 4, 5
|
|
739
|
+
|
|
740
|
+
@property
|
|
741
|
+
def _valences_exceptions(self):
|
|
742
|
+
return ((4, False, 0, ()),
|
|
743
|
+
(0, False, 0, ((1, 'H'), (1, 'H'), (1, 'H'))),
|
|
744
|
+
(0, False, 0, ((2, 'O'),)))
|
|
745
|
+
|
|
746
|
+
@property
|
|
747
|
+
def atomic_radius(self):
|
|
748
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
749
|
+
|
|
750
|
+
@property
|
|
751
|
+
def mdl_isotope(self):
|
|
752
|
+
return 231
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
class U(Element, PeriodVII, GroupIII):
|
|
756
|
+
__slots__ = ()
|
|
757
|
+
|
|
758
|
+
@property
|
|
759
|
+
def atomic_number(self):
|
|
760
|
+
return 92
|
|
761
|
+
|
|
762
|
+
@property
|
|
763
|
+
def isotopes_distribution(self):
|
|
764
|
+
return {234: 5.5e-05, 235: 0.0072, 238: 0.992745}
|
|
765
|
+
|
|
766
|
+
@property
|
|
767
|
+
def isotopes_masses(self):
|
|
768
|
+
return {234: 234.040946, 235: 235.043923, 238: 238.050783}
|
|
769
|
+
|
|
770
|
+
@property
|
|
771
|
+
def _common_valences(self):
|
|
772
|
+
return 0, 3, 4, 5, 6
|
|
773
|
+
|
|
774
|
+
@property
|
|
775
|
+
def _valences_exceptions(self):
|
|
776
|
+
return ((3, False, 0, ()), (4, False, 0, ()),
|
|
777
|
+
(2, False, 0, ((2, 'O'), (2, 'O'))))
|
|
778
|
+
|
|
779
|
+
@property
|
|
780
|
+
def atomic_radius(self):
|
|
781
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
782
|
+
|
|
783
|
+
@property
|
|
784
|
+
def mdl_isotope(self):
|
|
785
|
+
return 238
|
|
786
|
+
|
|
787
|
+
|
|
788
|
+
class Np(Element, PeriodVII, GroupIII):
|
|
789
|
+
__slots__ = ()
|
|
790
|
+
|
|
791
|
+
@property
|
|
792
|
+
def atomic_number(self):
|
|
793
|
+
return 93
|
|
794
|
+
|
|
795
|
+
@property
|
|
796
|
+
def isotopes_distribution(self):
|
|
797
|
+
return {237: 1.0}
|
|
798
|
+
|
|
799
|
+
@property
|
|
800
|
+
def isotopes_masses(self):
|
|
801
|
+
return {237: 237.048173}
|
|
802
|
+
|
|
803
|
+
@property
|
|
804
|
+
def _common_valences(self):
|
|
805
|
+
return 0, 2, 3, 4, 5, 6, 7
|
|
806
|
+
|
|
807
|
+
@property
|
|
808
|
+
def _valences_exceptions(self):
|
|
809
|
+
return ((3, False, 0, ()), (4, False, 0, ()),
|
|
810
|
+
(1, False, 0, ((2, 'O'), (2, 'O'))),
|
|
811
|
+
(2, False, 0, ((2, 'O'), (2, 'O'))))
|
|
812
|
+
|
|
813
|
+
@property
|
|
814
|
+
def atomic_radius(self):
|
|
815
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
816
|
+
|
|
817
|
+
@property
|
|
818
|
+
def mdl_isotope(self):
|
|
819
|
+
return 237
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
class Pu(Element, PeriodVII, GroupIII):
|
|
823
|
+
__slots__ = ()
|
|
824
|
+
|
|
825
|
+
@property
|
|
826
|
+
def atomic_number(self):
|
|
827
|
+
return 94
|
|
828
|
+
|
|
829
|
+
@property
|
|
830
|
+
def isotopes_distribution(self):
|
|
831
|
+
return {239: 1.0, 242: 0.}
|
|
832
|
+
|
|
833
|
+
@property
|
|
834
|
+
def isotopes_masses(self):
|
|
835
|
+
return {239: 239.052163, 242: 242.058743}
|
|
836
|
+
|
|
837
|
+
@property
|
|
838
|
+
def _common_valences(self):
|
|
839
|
+
return 0, 3, 4, 5, 6
|
|
840
|
+
|
|
841
|
+
@property
|
|
842
|
+
def _valences_exceptions(self):
|
|
843
|
+
return ((3, False, 0, ()), (4, False, 0, ()),
|
|
844
|
+
(1, False, 0, ((2, 'O'), (2, 'O'))),
|
|
845
|
+
(2, False, 0, ((2, 'O'), (2, 'O'))),
|
|
846
|
+
(0, False, 0, ((2, 'Se'), )),
|
|
847
|
+
(0, False, 0, ((2, 'S'),)),
|
|
848
|
+
(0, False, 0, ((2, 'Te'),)),
|
|
849
|
+
(0, False, 0, ((2, 'O'),)),
|
|
850
|
+
(0, False, 0, ((1, 'Cl'), (1, 'Cl'))),
|
|
851
|
+
(0, False, 0, ((1, 'Br'), (1, 'Br'))),
|
|
852
|
+
(0, False, 0, ((1, 'I'), (1, 'I'))),
|
|
853
|
+
(0, False, 0, ((1, 'H'), (1, 'H'))))
|
|
854
|
+
|
|
855
|
+
@property
|
|
856
|
+
def atomic_radius(self):
|
|
857
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
858
|
+
|
|
859
|
+
@property
|
|
860
|
+
def mdl_isotope(self):
|
|
861
|
+
return 244
|
|
862
|
+
|
|
863
|
+
|
|
864
|
+
class Am(Element, PeriodVII, GroupIII):
|
|
865
|
+
__slots__ = ()
|
|
866
|
+
|
|
867
|
+
@property
|
|
868
|
+
def atomic_number(self):
|
|
869
|
+
return 95
|
|
870
|
+
|
|
871
|
+
@property
|
|
872
|
+
def isotopes_distribution(self):
|
|
873
|
+
return {241: 1.0, 243: 0.}
|
|
874
|
+
|
|
875
|
+
@property
|
|
876
|
+
def isotopes_masses(self):
|
|
877
|
+
return {241: 241.056829, 243: 243.061380}
|
|
878
|
+
|
|
879
|
+
@property
|
|
880
|
+
def _common_valences(self):
|
|
881
|
+
return 0, 2, 3, 4
|
|
882
|
+
|
|
883
|
+
@property
|
|
884
|
+
def _valences_exceptions(self):
|
|
885
|
+
return (3, False, 0, ()),
|
|
886
|
+
|
|
887
|
+
@property
|
|
888
|
+
def atomic_radius(self):
|
|
889
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
890
|
+
|
|
891
|
+
@property
|
|
892
|
+
def mdl_isotope(self):
|
|
893
|
+
return 243
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
class Cm(Element, PeriodVII, GroupIII):
|
|
897
|
+
__slots__ = ()
|
|
898
|
+
|
|
899
|
+
@property
|
|
900
|
+
def atomic_number(self):
|
|
901
|
+
return 96
|
|
902
|
+
|
|
903
|
+
@property
|
|
904
|
+
def isotopes_distribution(self):
|
|
905
|
+
return {243: 0., 244: 1.0, 248: 0.}
|
|
906
|
+
|
|
907
|
+
@property
|
|
908
|
+
def isotopes_masses(self):
|
|
909
|
+
return {243: 243.061389, 244: 244.062753, 248: 248.072349}
|
|
910
|
+
|
|
911
|
+
@property
|
|
912
|
+
def _common_valences(self):
|
|
913
|
+
return 0, 3, 4
|
|
914
|
+
|
|
915
|
+
@property
|
|
916
|
+
def _valences_exceptions(self):
|
|
917
|
+
return (0, False, 0, ((2, 'O'),)), (0, False, 0, ((1, 'H'), (1, 'H')))
|
|
918
|
+
|
|
919
|
+
@property
|
|
920
|
+
def atomic_radius(self):
|
|
921
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
922
|
+
|
|
923
|
+
@property
|
|
924
|
+
def mdl_isotope(self):
|
|
925
|
+
return 247
|
|
926
|
+
|
|
927
|
+
|
|
928
|
+
class Bk(Element, PeriodVII, GroupIII):
|
|
929
|
+
__slots__ = ()
|
|
930
|
+
|
|
931
|
+
@property
|
|
932
|
+
def atomic_number(self):
|
|
933
|
+
return 97
|
|
934
|
+
|
|
935
|
+
@property
|
|
936
|
+
def isotopes_distribution(self):
|
|
937
|
+
return {249: 1.0}
|
|
938
|
+
|
|
939
|
+
@property
|
|
940
|
+
def isotopes_masses(self):
|
|
941
|
+
return {249: 249.074987}
|
|
942
|
+
|
|
943
|
+
@property
|
|
944
|
+
def _common_valences(self):
|
|
945
|
+
return 0, 2, 3, 4
|
|
946
|
+
|
|
947
|
+
@property
|
|
948
|
+
def _valences_exceptions(self):
|
|
949
|
+
return (3, False, 0, ()), (4, False, 0, ())
|
|
950
|
+
|
|
951
|
+
@property
|
|
952
|
+
def atomic_radius(self):
|
|
953
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
954
|
+
|
|
955
|
+
@property
|
|
956
|
+
def mdl_isotope(self):
|
|
957
|
+
return 247
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
class Cf(Element, PeriodVII, GroupIII):
|
|
961
|
+
__slots__ = ()
|
|
962
|
+
|
|
963
|
+
@property
|
|
964
|
+
def atomic_number(self):
|
|
965
|
+
return 98
|
|
966
|
+
|
|
967
|
+
@property
|
|
968
|
+
def isotopes_distribution(self):
|
|
969
|
+
return {249: 1.0}
|
|
970
|
+
|
|
971
|
+
@property
|
|
972
|
+
def isotopes_masses(self):
|
|
973
|
+
return {249: 249.074854}
|
|
974
|
+
|
|
975
|
+
@property
|
|
976
|
+
def _common_valences(self):
|
|
977
|
+
return 0, 2, 3, 4
|
|
978
|
+
|
|
979
|
+
@property
|
|
980
|
+
def _valences_exceptions(self):
|
|
981
|
+
return (3, False, 0, ()),
|
|
982
|
+
|
|
983
|
+
@property
|
|
984
|
+
def atomic_radius(self):
|
|
985
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
986
|
+
|
|
987
|
+
@property
|
|
988
|
+
def mdl_isotope(self):
|
|
989
|
+
return 251
|
|
990
|
+
|
|
991
|
+
|
|
992
|
+
class Es(Element, PeriodVII, GroupIII):
|
|
993
|
+
__slots__ = ()
|
|
994
|
+
|
|
995
|
+
@property
|
|
996
|
+
def atomic_number(self):
|
|
997
|
+
return 99
|
|
998
|
+
|
|
999
|
+
@property
|
|
1000
|
+
def isotopes_distribution(self):
|
|
1001
|
+
return {252: 1.0}
|
|
1002
|
+
|
|
1003
|
+
@property
|
|
1004
|
+
def isotopes_masses(self):
|
|
1005
|
+
return {252: 252.08298}
|
|
1006
|
+
|
|
1007
|
+
@property
|
|
1008
|
+
def _common_valences(self):
|
|
1009
|
+
return 0, 2, 3
|
|
1010
|
+
|
|
1011
|
+
@property
|
|
1012
|
+
def _valences_exceptions(self):
|
|
1013
|
+
return (3, False, 0, ()),
|
|
1014
|
+
|
|
1015
|
+
@property
|
|
1016
|
+
def atomic_radius(self):
|
|
1017
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
1018
|
+
|
|
1019
|
+
@property
|
|
1020
|
+
def mdl_isotope(self):
|
|
1021
|
+
return 252
|
|
1022
|
+
|
|
1023
|
+
|
|
1024
|
+
class Fm(Element, PeriodVII, GroupIII):
|
|
1025
|
+
__slots__ = ()
|
|
1026
|
+
|
|
1027
|
+
@property
|
|
1028
|
+
def atomic_number(self):
|
|
1029
|
+
return 100
|
|
1030
|
+
|
|
1031
|
+
@property
|
|
1032
|
+
def isotopes_distribution(self):
|
|
1033
|
+
return {257: 1.0}
|
|
1034
|
+
|
|
1035
|
+
@property
|
|
1036
|
+
def isotopes_masses(self):
|
|
1037
|
+
return {257: 257.095106}
|
|
1038
|
+
|
|
1039
|
+
@property
|
|
1040
|
+
def _common_valences(self):
|
|
1041
|
+
return 0, 2, 3
|
|
1042
|
+
|
|
1043
|
+
@property
|
|
1044
|
+
def _valences_exceptions(self):
|
|
1045
|
+
return (3, False, 0, ()),
|
|
1046
|
+
|
|
1047
|
+
@property
|
|
1048
|
+
def atomic_radius(self):
|
|
1049
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
1050
|
+
|
|
1051
|
+
@property
|
|
1052
|
+
def mdl_isotope(self):
|
|
1053
|
+
return 257
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
class Md(Element, PeriodVII, GroupIII):
|
|
1057
|
+
__slots__ = ()
|
|
1058
|
+
|
|
1059
|
+
@property
|
|
1060
|
+
def atomic_number(self):
|
|
1061
|
+
return 101
|
|
1062
|
+
|
|
1063
|
+
@property
|
|
1064
|
+
def isotopes_distribution(self):
|
|
1065
|
+
return {258: 1.0}
|
|
1066
|
+
|
|
1067
|
+
@property
|
|
1068
|
+
def isotopes_masses(self):
|
|
1069
|
+
return {258: 258.098431}
|
|
1070
|
+
|
|
1071
|
+
@property
|
|
1072
|
+
def _common_valences(self):
|
|
1073
|
+
return 0, 2, 3
|
|
1074
|
+
|
|
1075
|
+
@property
|
|
1076
|
+
def _valences_exceptions(self):
|
|
1077
|
+
return (3, False, 0, ()),
|
|
1078
|
+
|
|
1079
|
+
@property
|
|
1080
|
+
def atomic_radius(self):
|
|
1081
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
1082
|
+
|
|
1083
|
+
@property
|
|
1084
|
+
def mdl_isotope(self):
|
|
1085
|
+
return 258
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
class No(Element, PeriodVII, GroupIII):
|
|
1089
|
+
__slots__ = ()
|
|
1090
|
+
|
|
1091
|
+
@property
|
|
1092
|
+
def atomic_number(self):
|
|
1093
|
+
return 102
|
|
1094
|
+
|
|
1095
|
+
@property
|
|
1096
|
+
def isotopes_distribution(self):
|
|
1097
|
+
return {259: 1.0}
|
|
1098
|
+
|
|
1099
|
+
@property
|
|
1100
|
+
def isotopes_masses(self):
|
|
1101
|
+
return {259: 259.10103}
|
|
1102
|
+
|
|
1103
|
+
@property
|
|
1104
|
+
def _common_valences(self):
|
|
1105
|
+
return 0, 2, 3
|
|
1106
|
+
|
|
1107
|
+
@property
|
|
1108
|
+
def _valences_exceptions(self):
|
|
1109
|
+
return (2, False, 0, ()),
|
|
1110
|
+
|
|
1111
|
+
@property
|
|
1112
|
+
def atomic_radius(self):
|
|
1113
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
1114
|
+
|
|
1115
|
+
@property
|
|
1116
|
+
def mdl_isotope(self):
|
|
1117
|
+
return 259
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
class Lr(Element, PeriodVII, GroupIII):
|
|
1121
|
+
__slots__ = ()
|
|
1122
|
+
|
|
1123
|
+
@property
|
|
1124
|
+
def atomic_number(self):
|
|
1125
|
+
return 103
|
|
1126
|
+
|
|
1127
|
+
@property
|
|
1128
|
+
def isotopes_distribution(self):
|
|
1129
|
+
return {266: 1.0}
|
|
1130
|
+
|
|
1131
|
+
@property
|
|
1132
|
+
def isotopes_masses(self):
|
|
1133
|
+
return {266: 266.11983}
|
|
1134
|
+
|
|
1135
|
+
@property
|
|
1136
|
+
def _common_valences(self):
|
|
1137
|
+
return 0, 3
|
|
1138
|
+
|
|
1139
|
+
@property
|
|
1140
|
+
def _valences_exceptions(self):
|
|
1141
|
+
return (3, False, 0, ()),
|
|
1142
|
+
|
|
1143
|
+
@property
|
|
1144
|
+
def atomic_radius(self):
|
|
1145
|
+
return 2.17 # unknown, taken radius of previous element in group
|
|
1146
|
+
|
|
1147
|
+
@property
|
|
1148
|
+
def mdl_isotope(self):
|
|
1149
|
+
return 260
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
__all__ = ['Sc', 'Y',
|
|
1153
|
+
'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu',
|
|
1154
|
+
'Ac', 'Th', 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm', 'Md', 'No', 'Lr']
|