pymetadata 0.5.0__py3-none-any.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.

Potentially problematic release.


This version of pymetadata might be problematic. Click here for more details.

Files changed (42) hide show
  1. pymetadata/__init__.py +14 -0
  2. pymetadata/cache.py +52 -0
  3. pymetadata/chebi.py +92 -0
  4. pymetadata/console.py +18 -0
  5. pymetadata/core/__init__.py +1 -0
  6. pymetadata/core/annotation.py +396 -0
  7. pymetadata/core/creator.py +46 -0
  8. pymetadata/core/synonym.py +12 -0
  9. pymetadata/core/xref.py +66 -0
  10. pymetadata/examples/__init__.py +1 -0
  11. pymetadata/examples/cache_path_example.py +15 -0
  12. pymetadata/examples/omex_example.py +46 -0
  13. pymetadata/examples/results/test_from_files.omex +0 -0
  14. pymetadata/examples/results/test_from_omex.omex +0 -0
  15. pymetadata/examples/results/testomex/README.md +3 -0
  16. pymetadata/examples/results/testomex/manifest.xml +9 -0
  17. pymetadata/examples/results/testomex/models/omex_comp.xml +174 -0
  18. pymetadata/examples/results/testomex/models/omex_comp_flat.xml +215 -0
  19. pymetadata/examples/results/testomex/models/omex_minimal.xml +99 -0
  20. pymetadata/examples/test.omex +0 -0
  21. pymetadata/identifiers/__init__.py +1 -0
  22. pymetadata/identifiers/miriam.py +43 -0
  23. pymetadata/identifiers/registry.py +397 -0
  24. pymetadata/log.py +29 -0
  25. pymetadata/metadata/__init__.py +6 -0
  26. pymetadata/metadata/eco.py +15918 -0
  27. pymetadata/metadata/kisao.py +2731 -0
  28. pymetadata/metadata/sbo.py +3754 -0
  29. pymetadata/omex.py +771 -0
  30. pymetadata/omex_v2.py +30 -0
  31. pymetadata/ontologies/__init__.py +1 -0
  32. pymetadata/ontologies/ols.py +214 -0
  33. pymetadata/ontologies/ontology.py +312 -0
  34. pymetadata/py.typed +0 -0
  35. pymetadata/resources/chebi_webservice_wsdl.xml +509 -0
  36. pymetadata/resources/ontologies/README.md +4 -0
  37. pymetadata/resources/templates/ontology_enum.pytemplate +61 -0
  38. pymetadata/unichem.py +190 -0
  39. pymetadata-0.5.0.dist-info/METADATA +154 -0
  40. pymetadata-0.5.0.dist-info/RECORD +42 -0
  41. pymetadata-0.5.0.dist-info/WHEEL +4 -0
  42. pymetadata-0.5.0.dist-info/licenses/LICENSE +7 -0
@@ -0,0 +1,509 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.3.0.2 svn-revision#b53771461f7d15f7842d8b88fd794780f6b9c4b4. -->
3
+ <definitions xmlns:tns="https://www.ebi.ac.uk/webservices/chebi" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="ChebiWebServices" targetNamespace="https://www.ebi.ac.uk/webservices/chebi">
4
+ <types>
5
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="https://www.ebi.ac.uk/webservices/chebi">
6
+
7
+ <xsd:complexType name="LiteEntity">
8
+ <xsd:sequence>
9
+ <xsd:element maxOccurs="1" minOccurs="1" name="chebiId" type="xsd:string"/>
10
+ <xsd:element maxOccurs="1" minOccurs="0" name="chebiAsciiName" type="xsd:string"/>
11
+ <xsd:element maxOccurs="1" minOccurs="0" name="searchScore" type="xsd:float"/>
12
+ <xsd:element maxOccurs="1" minOccurs="0" name="entityStar" type="xsd:int"/>
13
+ </xsd:sequence>
14
+ </xsd:complexType>
15
+
16
+ <xsd:complexType name="LiteEntityList">
17
+ <xsd:sequence>
18
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="ListElement" type="tns:LiteEntity"/>
19
+ </xsd:sequence>
20
+ </xsd:complexType>
21
+
22
+ <xsd:complexType name="OntologyDataItemList">
23
+ <xsd:sequence>
24
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="ListElement" type="tns:OntologyDataItem"/>
25
+ </xsd:sequence>
26
+ </xsd:complexType>
27
+
28
+ <xsd:complexType name="CommentDataItem">
29
+ <xsd:sequence>
30
+ <xsd:element maxOccurs="1" minOccurs="1" name="text" type="xsd:string"/>
31
+ <xsd:element maxOccurs="1" minOccurs="1" name="date" type="xsd:string"/>
32
+ </xsd:sequence>
33
+ </xsd:complexType>
34
+
35
+ <xsd:complexType name="DataItem">
36
+ <xsd:sequence>
37
+ <xsd:element maxOccurs="1" minOccurs="1" name="data" type="xsd:string"/>
38
+ <xsd:element maxOccurs="1" minOccurs="0" name="type" type="xsd:string"/>
39
+ <xsd:element maxOccurs="1" minOccurs="0" name="source" type="xsd:string"/>
40
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="Comments" type="tns:CommentDataItem"/>
41
+ </xsd:sequence>
42
+ </xsd:complexType>
43
+
44
+ <xsd:complexType name="StructureDataItem">
45
+ <xsd:sequence>
46
+ <xsd:element maxOccurs="1" minOccurs="1" name="structure" type="xsd:string"/>
47
+ <xsd:element maxOccurs="1" minOccurs="1" name="type" type="xsd:string"/>
48
+ <xsd:element maxOccurs="1" minOccurs="0" name="dimension" type="xsd:string"/>
49
+ <xsd:element maxOccurs="1" minOccurs="0" name="defaultStructure" type="xsd:boolean"/>
50
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="Comments" type="tns:CommentDataItem"/>
51
+ </xsd:sequence>
52
+ </xsd:complexType>
53
+
54
+ <xsd:complexType name="OntologyDataItem">
55
+ <xsd:sequence>
56
+ <xsd:element maxOccurs="1" minOccurs="1" name="chebiName" type="xsd:string"/>
57
+ <xsd:element maxOccurs="1" minOccurs="1" name="chebiId" type="xsd:string"/>
58
+ <xsd:element maxOccurs="1" minOccurs="1" name="type" type="xsd:string"/>
59
+ <xsd:element maxOccurs="1" minOccurs="1" name="status" type="xsd:string"/>
60
+ <xsd:element maxOccurs="1" minOccurs="1" name="cyclicRelationship" type="xsd:boolean"/>
61
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="Comments" type="tns:CommentDataItem"/>
62
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="OntologyElement" type="tns:OntologyDataItem"/>
63
+ </xsd:sequence>
64
+ </xsd:complexType>
65
+
66
+ <xsd:complexType name="CompoundOriginDataItem">
67
+ <xsd:sequence>
68
+ <xsd:element maxOccurs="1" minOccurs="1" name="speciesText" type="xsd:string"/>
69
+ <xsd:element maxOccurs="1" minOccurs="0" name="speciesAccession" type="xsd:string"/>
70
+ <xsd:element maxOccurs="1" minOccurs="0" name="componentText" type="xsd:string"/>
71
+ <xsd:element maxOccurs="1" minOccurs="0" name="componentAccession" type="xsd:string"/>
72
+ <xsd:element maxOccurs="1" minOccurs="0" name="strainText" type="xsd:string"/>
73
+ <xsd:element maxOccurs="1" minOccurs="0" name="strainAccession" type="xsd:string"/>
74
+ <xsd:element maxOccurs="1" minOccurs="1" name="SourceType" type="xsd:string"/>
75
+ <xsd:element maxOccurs="1" minOccurs="1" name="SourceAccession" type="xsd:string"/>
76
+ </xsd:sequence>
77
+ </xsd:complexType>
78
+
79
+ <xsd:complexType name="Entity">
80
+ <xsd:sequence>
81
+ <xsd:element maxOccurs="1" minOccurs="1" name="chebiId" type="xsd:string"/>
82
+ <xsd:element maxOccurs="1" minOccurs="1" name="chebiAsciiName" type="xsd:string"/>
83
+ <xsd:element maxOccurs="1" minOccurs="0" name="definition" type="xsd:string"/>
84
+ <xsd:element maxOccurs="1" minOccurs="1" name="status" type="xsd:string"/>
85
+ <xsd:element maxOccurs="1" minOccurs="0" name="smiles" type="xsd:string"/>
86
+ <xsd:element maxOccurs="1" minOccurs="0" name="inchi" type="xsd:string"/>
87
+ <xsd:element maxOccurs="1" minOccurs="0" name="inchiKey" type="xsd:string"/>
88
+ <xsd:element maxOccurs="1" minOccurs="0" name="charge" type="xsd:string"/>
89
+ <xsd:element maxOccurs="1" minOccurs="0" name="mass" type="xsd:string"/>
90
+ <xsd:element maxOccurs="1" minOccurs="0" name="monoisotopicMass" type="xsd:string"/>
91
+ <xsd:element maxOccurs="1" minOccurs="0" name="entityStar" type="xsd:int"/>
92
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="SecondaryChEBIIds" type="xsd:string"/>
93
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="Synonyms" type="tns:DataItem"/>
94
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="IupacNames" type="tns:DataItem"/>
95
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="Formulae" type="tns:DataItem"/>
96
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="RegistryNumbers" type="tns:DataItem"/>
97
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="Citations" type="tns:DataItem"/>
98
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="ChemicalStructures" type="tns:StructureDataItem"/>
99
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="DatabaseLinks" type="tns:DataItem"/>
100
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="OntologyParents" type="tns:OntologyDataItem"/>
101
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="OntologyChildren" type="tns:OntologyDataItem"/>
102
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="GeneralComments" type="tns:CommentDataItem"/>
103
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="CompoundOrigins" type="tns:CompoundOriginDataItem"/>
104
+ </xsd:sequence>
105
+ </xsd:complexType>
106
+
107
+ <xsd:complexType name="UpdatedPolymer">
108
+ <xsd:sequence>
109
+ <xsd:element maxOccurs="1" minOccurs="1" name="updatedStructure" type="xsd:string"/>
110
+ <xsd:element maxOccurs="1" minOccurs="1" name="globalFormula" type="xsd:string"/>
111
+ <xsd:element maxOccurs="1" minOccurs="1" name="globalCharge" type="xsd:string"/>
112
+ <xsd:element maxOccurs="1" minOccurs="1" name="chebiId" type="xsd:string"/>
113
+ </xsd:sequence>
114
+ </xsd:complexType>
115
+
116
+
117
+ <complexType name="getLiteEntityResponse">
118
+ <sequence>
119
+ <element name="return" type="tns:LiteEntityList"/>
120
+ </sequence>
121
+ </complexType>
122
+ <element name="getLiteEntityResponse" type="tns:getLiteEntityResponse"/>
123
+
124
+ <simpleType name="SearchCategory">
125
+ <restriction base="xsd:string">
126
+ <enumeration value="ALL"/>
127
+ <enumeration value="CHEBI ID"/>
128
+ <enumeration value="CHEBI NAME"/>
129
+ <enumeration value="DEFINITION"/>
130
+ <enumeration value="ALL NAMES"/>
131
+ <enumeration value="IUPAC NAME"/>
132
+ <enumeration value="CITATIONS"/>
133
+ <enumeration value="REGISTRY NUMBERS"/>
134
+ <enumeration value="MANUAL XREFS"/>
135
+ <enumeration value="AUTOMATIC XREFS"/>
136
+ <enumeration value="FORMULA"/>
137
+ <enumeration value="MASS"/>
138
+ <enumeration value="MONOISOTOPIC MASS"/>
139
+ <enumeration value="CHARGE"/>
140
+ <enumeration value="INCHI/INCHI KEY"/>
141
+ <enumeration value="SMILES"/>
142
+ <enumeration value="SPECIES"/>
143
+ </restriction>
144
+ </simpleType>
145
+
146
+ <simpleType name="StructureSearchCategory">
147
+ <restriction base="xsd:string">
148
+ <enumeration value="IDENTITY"/>
149
+ <enumeration value="SUBSTRUCTURE"/>
150
+ <enumeration value="SIMILARITY"/>
151
+ </restriction>
152
+ </simpleType>
153
+
154
+ <simpleType name="StructureType">
155
+ <restriction base="xsd:string">
156
+ <enumeration value="MOLFILE"/>
157
+ <enumeration value="CML"/>
158
+ <enumeration value="SMILES"/>
159
+ <!--<enumeration value="INCHI"/>-->
160
+ </restriction>
161
+ </simpleType>
162
+
163
+ <simpleType name="RelationshipType">
164
+ <restriction base="xsd:string">
165
+ <enumeration value="is a"/>
166
+ <enumeration value="has part"/>
167
+ <enumeration value="is conjugate base of"/>
168
+ <enumeration value="is conjugate acid of"/>
169
+ <enumeration value="is tautomer of"/>
170
+ <enumeration value="is enantiomer of"/>
171
+ <enumeration value="has functional parent"/>
172
+ <enumeration value="has parent hydride"/>
173
+ <enumeration value="is substituent group from"/>
174
+ <enumeration value="has role"/>
175
+ </restriction>
176
+ </simpleType>
177
+
178
+ <simpleType name="StarsCategory">
179
+ <restriction base="xsd:string">
180
+ <enumeration value="ALL"/>
181
+ <enumeration value="TWO ONLY"/>
182
+ <enumeration value="THREE ONLY"/>
183
+ </restriction>
184
+ </simpleType>
185
+
186
+ <complexType name="getLiteEntity">
187
+ <sequence>
188
+ <element name="search" type="xsd:string"/>
189
+ <element name="searchCategory" type="tns:SearchCategory"/>
190
+ <element name="maximumResults" type="xsd:int"/>
191
+ <element name="stars" type="tns:StarsCategory"/>
192
+ </sequence>
193
+ </complexType>
194
+ <element name="getLiteEntity" type="tns:getLiteEntity"/>
195
+
196
+ <complexType name="getCompleteEntityResponse">
197
+ <sequence>
198
+ <element name="return" type="tns:Entity"/>
199
+ </sequence>
200
+ </complexType>
201
+ <element name="getCompleteEntityResponse" type="tns:getCompleteEntityResponse"/>
202
+
203
+ <complexType name="getCompleteEntity">
204
+ <sequence>
205
+ <element name="chebiId" type="xsd:string"/>
206
+ </sequence>
207
+ </complexType>
208
+ <element name="getCompleteEntity" type="tns:getCompleteEntity"/>
209
+
210
+ <!--Returns a the complete entity's using a list of LiteEntities. The maximum list passed is 50-->
211
+ <complexType name="getCompleteEntityByListResponse">
212
+ <sequence>
213
+ <xsd:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:Entity"/>
214
+ </sequence>
215
+ </complexType>
216
+ <element name="getCompleteEntityByListResponse" type="tns:getCompleteEntityByListResponse"/>
217
+
218
+ <complexType name="getCompleteEntityByList">
219
+ <sequence>
220
+ <xsd:element maxOccurs="50" minOccurs="0" name="ListOfChEBIIds" type="xsd:string"/>
221
+ </sequence>
222
+ </complexType>
223
+ <element name="getCompleteEntityByList" type="tns:getCompleteEntityByList"/>
224
+
225
+ <complexType name="getOntologyParentsResponse">
226
+ <sequence>
227
+ <element name="return" type="tns:OntologyDataItemList"/>
228
+ </sequence>
229
+ </complexType>
230
+ <element name="getOntologyParentsResponse" type="tns:getOntologyParentsResponse"/>
231
+
232
+ <complexType name="getOntologyParents">
233
+ <sequence>
234
+ <element name="chebiId" type="xsd:string"/>
235
+ </sequence>
236
+ </complexType>
237
+ <element name="getOntologyParents" type="tns:getOntologyParents"/>
238
+
239
+ <complexType name="getOntologyChildrenResponse">
240
+ <sequence>
241
+ <element name="return" type="tns:OntologyDataItemList"/>
242
+ </sequence>
243
+ </complexType>
244
+ <element name="getOntologyChildrenResponse" type="tns:getOntologyChildrenResponse"/>
245
+
246
+ <complexType name="getOntologyChildren">
247
+ <sequence>
248
+ <element name="chebiId" type="xsd:string"/>
249
+ </sequence>
250
+ </complexType>
251
+ <element name="getOntologyChildren" type="tns:getOntologyChildren"/>
252
+ <complexType name="getAllOntologyChildrenInPathResponse">
253
+ <sequence>
254
+ <element name="return" type="tns:OntologyDataItemList"/>
255
+ </sequence>
256
+ </complexType>
257
+ <element name="getAllOntologyChildrenInPathResponse" type="tns:getAllOntologyChildrenInPathResponse"/>
258
+
259
+ <complexType name="getAllOntologyChildrenInPath">
260
+ <sequence>
261
+ <element name="chebiId" type="xsd:string"/>
262
+ <element name="relationshipType" type="tns:RelationshipType"/>
263
+ <element name="structureOnly" type="xsd:boolean"/>
264
+ </sequence>
265
+ </complexType>
266
+ <element name="getAllOntologyChildrenInPath" type="tns:getAllOntologyChildrenInPath"/>
267
+
268
+ <complexType name="getStructureSearchResponse">
269
+ <sequence>
270
+ <element name="return" type="tns:LiteEntityList"/>
271
+ </sequence>
272
+ </complexType>
273
+ <element name="getStructureSearchResponse" type="tns:getLiteEntityResponse"/>
274
+
275
+ <complexType name="getStructureSearch">
276
+ <sequence>
277
+ <element name="structure" type="xsd:string"/>
278
+ <element name="type" type="tns:StructureType"/>
279
+ <element name="structureSearchCategory" type="tns:StructureSearchCategory"/>
280
+ <element name="totalResults" type="xsd:int"/>
281
+ <element name="tanimotoCutoff" type="xsd:float"/>
282
+ </sequence>
283
+ </complexType>
284
+ <element name="getStructureSearch" type="tns:getStructureSearch"/>
285
+
286
+ <complexType name="getUpdatedPolymer">
287
+ <sequence>
288
+ <element name="chebiId" type="xsd:string"/>
289
+ <xsd:element maxOccurs="unbounded" minOccurs="1" name="polymerisationIndex" type="xsd:string"/>
290
+ </sequence>
291
+ </complexType>
292
+ <element name="getUpdatedPolymer" type="tns:getUpdatedPolymer"/>
293
+
294
+ <complexType name="getUpdatedPolymerResponse">
295
+ <sequence>
296
+ <element name="return" type="tns:UpdatedPolymer"/>
297
+ </sequence>
298
+ </complexType>
299
+ <element name="getUpdatedPolymerResponse" type="tns:getUpdatedPolymerResponse"/>
300
+
301
+ <element name="ChebiWebServiceFault" type="tns:ChebiWebServiceFault"/>
302
+
303
+ <complexType name="ChebiWebServiceFault">
304
+ <sequence>
305
+ <element name="faultInfo" type="xsd:string"/>
306
+ <element name="message" type="xsd:string"/>
307
+ </sequence>
308
+ </complexType>
309
+
310
+ </xsd:schema>
311
+ </types>
312
+ <message name="getLiteEntity">
313
+ <part name="parameters" element="tns:getLiteEntity"/>
314
+ </message>
315
+ <message name="getLiteEntityResponse">
316
+ <part name="result" element="tns:getLiteEntityResponse"/>
317
+ </message>
318
+ <message name="getCompleteEntity">
319
+ <part name="parameters" element="tns:getCompleteEntity"/>
320
+ </message>
321
+ <message name="getCompleteEntityResponse">
322
+ <part name="result" element="tns:getCompleteEntityResponse"/>
323
+ </message>
324
+ <message name="getCompleteEntityByList">
325
+ <part name="parameters" element="tns:getCompleteEntityByList"/>
326
+ </message>
327
+ <message name="getCompleteEntityByListResponse">
328
+ <part name="result" element="tns:getCompleteEntityByListResponse"/>
329
+ </message>
330
+ <message name="getOntologyParents">
331
+ <part name="parameters" element="tns:getOntologyParents"/>
332
+ </message>
333
+ <message name="getOntologyParentsResponse">
334
+ <part name="result" element="tns:getOntologyParentsResponse"/>
335
+ </message>
336
+ <message name="getOntologyChildren">
337
+ <part name="parameters" element="tns:getOntologyChildren"/>
338
+ </message>
339
+ <message name="getOntologyChildrenResponse">
340
+ <part name="result" element="tns:getOntologyChildrenResponse"/>
341
+ </message>
342
+ <message name="getAllOntologyChildrenInPath">
343
+ <part name="parameters" element="tns:getAllOntologyChildrenInPath"/>
344
+ </message>
345
+ <message name="getAllOntologyChildrenInPathResponse">
346
+ <part name="result" element="tns:getAllOntologyChildrenInPathResponse"/>
347
+ </message>
348
+ <message name="getStructureSearch">
349
+ <part name="parameters" element="tns:getStructureSearch"/>
350
+ </message>
351
+ <message name="getStructureSearchResponse">
352
+ <part name="result" element="tns:getStructureSearchResponse"/>
353
+ </message>
354
+ <message name="getUpdatedPolymer">
355
+ <part name="parameters" element="tns:getUpdatedPolymer"/>
356
+ </message>
357
+ <message name="getUpdatedPolymerResponse">
358
+ <part name="result" element="tns:getUpdatedPolymerResponse"/>
359
+ </message>
360
+ <message name="chebiWebServiceFault">
361
+ <part name="ChebiWebServiceFault" element="tns:ChebiWebServiceFault"/>
362
+ </message>
363
+ <portType name="ChebiWebServicePortType">
364
+ <operation name="getLiteEntity">
365
+ <input message="tns:getLiteEntity"/>
366
+ <output message="tns:getLiteEntityResponse"/>
367
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
368
+ </operation>
369
+ <operation name="getCompleteEntity">
370
+ <input message="tns:getCompleteEntity"/>
371
+ <output message="tns:getCompleteEntityResponse"/>
372
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
373
+ </operation>
374
+ <operation name="getCompleteEntityByList">
375
+ <input message="tns:getCompleteEntityByList"/>
376
+ <output message="tns:getCompleteEntityByListResponse"/>
377
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
378
+ </operation>
379
+ <operation name="getOntologyParents">
380
+ <input message="tns:getOntologyParents"/>
381
+ <output message="tns:getOntologyParentsResponse"/>
382
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
383
+ </operation>
384
+ <operation name="getOntologyChildren">
385
+ <input message="tns:getOntologyChildren"/>
386
+ <output message="tns:getOntologyChildrenResponse"/>
387
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
388
+ </operation>
389
+ <operation name="getAllOntologyChildrenInPath">
390
+ <input message="tns:getAllOntologyChildrenInPath"/>
391
+ <output message="tns:getLiteEntityResponse"/>
392
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
393
+ </operation>
394
+ <operation name="getStructureSearch">
395
+ <input message="tns:getStructureSearch"/>
396
+ <output message="tns:getStructureSearchResponse"/>
397
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
398
+ </operation>
399
+ <operation name="getUpdatedPolymer">
400
+ <input message="tns:getUpdatedPolymer"/>
401
+ <output message="tns:getUpdatedPolymerResponse"/>
402
+ <fault name="chebiWebServiceFault" message="tns:chebiWebServiceFault"/>
403
+ </operation>
404
+ </portType>
405
+ <binding name="ChebiWebServiceBinding" type="tns:ChebiWebServicePortType">
406
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
407
+ <operation name="getCompleteEntity">
408
+ <soap:operation soapAction=""/>
409
+ <input>
410
+ <soap:body use="literal"/>
411
+ </input>
412
+ <output>
413
+ <soap:body use="literal"/>
414
+ </output>
415
+ <fault name="chebiWebServiceFault">
416
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
417
+ </fault>
418
+ </operation>
419
+ <operation name="getCompleteEntityByList">
420
+ <soap:operation soapAction=""/>
421
+ <input>
422
+ <soap:body use="literal"/>
423
+ </input>
424
+ <output>
425
+ <soap:body use="literal"/>
426
+ </output>
427
+ <fault name="chebiWebServiceFault">
428
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
429
+ </fault>
430
+ </operation>
431
+ <operation name="getLiteEntity">
432
+ <soap:operation soapAction=""/>
433
+ <input>
434
+ <soap:body use="literal"/>
435
+ </input>
436
+ <output>
437
+ <soap:body use="literal"/>
438
+ </output>
439
+ <fault name="chebiWebServiceFault">
440
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
441
+ </fault>
442
+ </operation>
443
+ <operation name="getOntologyParents">
444
+ <soap:operation soapAction=""/>
445
+ <input>
446
+ <soap:body use="literal"/>
447
+ </input>
448
+ <output>
449
+ <soap:body use="literal"/>
450
+ </output>
451
+ <fault name="chebiWebServiceFault">
452
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
453
+ </fault>
454
+ </operation>
455
+ <operation name="getOntologyChildren">
456
+ <soap:operation soapAction=""/>
457
+ <input>
458
+ <soap:body use="literal"/>
459
+ </input>
460
+ <output>
461
+ <soap:body use="literal"/>
462
+ </output>
463
+ <fault name="chebiWebServiceFault">
464
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
465
+ </fault>
466
+ </operation>
467
+ <operation name="getAllOntologyChildrenInPath">
468
+ <soap:operation soapAction=""/>
469
+ <input>
470
+ <soap:body use="literal"/>
471
+ </input>
472
+ <output>
473
+ <soap:body use="literal"/>
474
+ </output>
475
+ <fault name="chebiWebServiceFault">
476
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
477
+ </fault>
478
+ </operation>
479
+ <operation name="getStructureSearch">
480
+ <soap:operation soapAction=""/>
481
+ <input>
482
+ <soap:body use="literal"/>
483
+ </input>
484
+ <output>
485
+ <soap:body use="literal"/>
486
+ </output>
487
+ <fault name="chebiWebServiceFault">
488
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
489
+ </fault>
490
+ </operation>
491
+ <operation name="getUpdatedPolymer">
492
+ <soap:operation soapAction=""/>
493
+ <input>
494
+ <soap:body use="literal"/>
495
+ </input>
496
+ <output>
497
+ <soap:body use="literal"/>
498
+ </output>
499
+ <fault name="chebiWebServiceFault">
500
+ <soap:fault name="chebiWebServiceFault" use="literal"/>
501
+ </fault>
502
+ </operation>
503
+ </binding>
504
+ <service name="ChebiWebServiceService">
505
+ <port name="ChebiWebServicePort" binding="tns:ChebiWebServiceBinding">
506
+ <soap:address location="http://www.ebi.ac.uk:80/webservices/chebi/2.0/webservice"/>
507
+ </port>
508
+ </service>
509
+ </definitions>
@@ -0,0 +1,4 @@
1
+ # Ontologies
2
+
3
+ Ontologies have been downloaded from bioportal and other resources as OWL files.
4
+ See `ontologies/ontology.py` for information on the download links.
@@ -0,0 +1,61 @@
1
+ """{{ontology_id}} ontology."""
2
+
3
+ from typing import Union, Optional
4
+ from enum import Enum
5
+
6
+
7
+ {{ontology_id}}Type = Union[str, '{{ontology_id}}']
8
+
9
+ _terms = {
10
+ {% for tid in terms %}
11
+ {% if tid.startswith(ontology_id) %}
12
+ "{{tid}}": "{{terms[tid].name}}",
13
+ {% endif %}
14
+ {% endfor %}
15
+ }
16
+
17
+ pattern = r"{{pattern}}"
18
+
19
+
20
+ class {{ontology_id}}(str, Enum):
21
+ """Enum for {{ontology_id}} ontology."""
22
+
23
+ {% for t in terms.values() %}
24
+ # {{t.name}}
25
+ {{t.id}} = "{{t.id}}"
26
+ {{t.var_name}} = "{{t.id}}"
27
+
28
+ {% endfor %}
29
+ @staticmethod
30
+ def get_name({{ontology_id.lower()}}: '{{ontology_id}}') -> Optional[str]:
31
+ """Get name for term.
32
+
33
+ :returns: None if term does not exist in ontology.
34
+ """
35
+ return _terms.get({{ontology_id.lower()}}.value, None)
36
+
37
+ @classmethod
38
+ def validate(cls, {{ontology_id.lower()}}: '{{ontology_id}}Type') -> '{{ontology_id}}':
39
+ """Validate and normalize {{ontology_id.lower()}}."""
40
+ term: '{{ontology_id}}'
41
+ if isinstance({{ontology_id.lower()}}, str):
42
+ if not {{ontology_id.lower()}}.startswith("{{ontology_id}}"):
43
+ raise ValueError({{ontology_id.lower()}} + " is not a {{ontology_id}} id.")
44
+ if {{ontology_id.lower()}}.startswith("{{ontology_id}}:"):
45
+ {{ontology_id.lower()}} = {{ontology_id.lower()}}.replace(":", "_")
46
+
47
+ term = getattr(cls, {{ontology_id.lower()}})
48
+
49
+ elif isinstance({{ontology_id.lower()}}, '{{ontology_id}}'):
50
+ term = {{ontology_id.lower()}}
51
+ else:
52
+ raise ValueError
53
+
54
+ return term
55
+
56
+ __all__ = [
57
+ "{{ontology_id}}",
58
+ "{{ontology_id}}Type",
59
+ ]
60
+
61
+