arctrl 3.0.0a3__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.
Files changed (456) hide show
  1. arctrl/__init__.py +18 -0
  2. arctrl/py/CWL/__init__.py +0 -0
  3. arctrl/py/CWL/cwltypes.py +150 -0
  4. arctrl/py/CWL/decode.py +973 -0
  5. arctrl/py/CWL/encode.py +1 -0
  6. arctrl/py/CWL/inputs.py +88 -0
  7. arctrl/py/CWL/outputs.py +85 -0
  8. arctrl/py/CWL/requirements.py +77 -0
  9. arctrl/py/CWL/tool_description.py +103 -0
  10. arctrl/py/CWL/workflow_description.py +104 -0
  11. arctrl/py/CWL/workflow_steps.py +113 -0
  12. arctrl/py/Contract/__init__.py +0 -0
  13. arctrl/py/Contract/arc.py +60 -0
  14. arctrl/py/Contract/arc_assay.py +125 -0
  15. arctrl/py/Contract/arc_investigation.py +88 -0
  16. arctrl/py/Contract/arc_run.py +125 -0
  17. arctrl/py/Contract/arc_study.py +126 -0
  18. arctrl/py/Contract/arc_workflow.py +125 -0
  19. arctrl/py/Contract/contract.py +153 -0
  20. arctrl/py/Contract/datamap.py +372 -0
  21. arctrl/py/Contract/git.py +118 -0
  22. arctrl/py/Contract/validation_packages_config.py +107 -0
  23. arctrl/py/ContractIO/__init__.py +0 -0
  24. arctrl/py/ContractIO/contract_io.py +344 -0
  25. arctrl/py/ContractIO/file_system_helper.py +264 -0
  26. arctrl/py/Core/Helper/__init__.py +0 -0
  27. arctrl/py/Core/Helper/collections_.py +438 -0
  28. arctrl/py/Core/Helper/date_time.py +26 -0
  29. arctrl/py/Core/Helper/hash_codes.py +60 -0
  30. arctrl/py/Core/Helper/identifier.py +248 -0
  31. arctrl/py/Core/Helper/orcid.py +42 -0
  32. arctrl/py/Core/Helper/printer.py +13 -0
  33. arctrl/py/Core/Helper/regex.py +554 -0
  34. arctrl/py/Core/Helper/sem_ver.py +71 -0
  35. arctrl/py/Core/Helper/url.py +148 -0
  36. arctrl/py/Core/Process/__init__.py +0 -0
  37. arctrl/py/Core/Process/column_index.py +280 -0
  38. arctrl/py/Core/Process/component.py +200 -0
  39. arctrl/py/Core/Process/factor.py +151 -0
  40. arctrl/py/Core/Process/factor_value.py +182 -0
  41. arctrl/py/Core/Process/material.py +74 -0
  42. arctrl/py/Core/Process/material_attribute.py +95 -0
  43. arctrl/py/Core/Process/material_attribute_value.py +184 -0
  44. arctrl/py/Core/Process/material_type.py +45 -0
  45. arctrl/py/Core/Process/process.py +477 -0
  46. arctrl/py/Core/Process/process_input.py +265 -0
  47. arctrl/py/Core/Process/process_output.py +235 -0
  48. arctrl/py/Core/Process/process_parameter_value.py +200 -0
  49. arctrl/py/Core/Process/process_sequence.py +435 -0
  50. arctrl/py/Core/Process/protocol.py +175 -0
  51. arctrl/py/Core/Process/protocol_parameter.py +98 -0
  52. arctrl/py/Core/Process/sample.py +82 -0
  53. arctrl/py/Core/Process/source.py +62 -0
  54. arctrl/py/Core/Table/__init__.py +0 -0
  55. arctrl/py/Core/Table/arc_table.py +1264 -0
  56. arctrl/py/Core/Table/arc_table_aux.py +575 -0
  57. arctrl/py/Core/Table/arc_tables.py +591 -0
  58. arctrl/py/Core/Table/composite_cell.py +319 -0
  59. arctrl/py/Core/Table/composite_column.py +73 -0
  60. arctrl/py/Core/Table/composite_header.py +739 -0
  61. arctrl/py/Core/__init__.py +0 -0
  62. arctrl/py/Core/arc_types.py +5064 -0
  63. arctrl/py/Core/comment.py +128 -0
  64. arctrl/py/Core/comment_list.py +127 -0
  65. arctrl/py/Core/conversion.py +1313 -0
  66. arctrl/py/Core/data.py +245 -0
  67. arctrl/py/Core/data_context.py +157 -0
  68. arctrl/py/Core/data_file.py +112 -0
  69. arctrl/py/Core/data_map.py +225 -0
  70. arctrl/py/Core/identifier_setters.py +31 -0
  71. arctrl/py/Core/iproperty_value.py +36 -0
  72. arctrl/py/Core/ontology_annotation.py +299 -0
  73. arctrl/py/Core/ontology_source_reference.py +114 -0
  74. arctrl/py/Core/person.py +259 -0
  75. arctrl/py/Core/publication.py +161 -0
  76. arctrl/py/Core/template.py +231 -0
  77. arctrl/py/Core/templates.py +148 -0
  78. arctrl/py/Core/uri.py +11 -0
  79. arctrl/py/Core/value.py +188 -0
  80. arctrl/py/FileSystem/__init__.py +0 -0
  81. arctrl/py/FileSystem/commit.py +21 -0
  82. arctrl/py/FileSystem/default_gitattributes.py +5 -0
  83. arctrl/py/FileSystem/default_gitignore.py +5 -0
  84. arctrl/py/FileSystem/file_system.py +58 -0
  85. arctrl/py/FileSystem/file_system_tree.py +426 -0
  86. arctrl/py/FileSystem/path.py +64 -0
  87. arctrl/py/Json/DataMap/__init__.py +0 -0
  88. arctrl/py/Json/DataMap/data_context.py +101 -0
  89. arctrl/py/Json/DataMap/data_map.py +53 -0
  90. arctrl/py/Json/Process/__init__.py +0 -0
  91. arctrl/py/Json/Process/assay_materials.py +46 -0
  92. arctrl/py/Json/Process/component.py +79 -0
  93. arctrl/py/Json/Process/factor.py +107 -0
  94. arctrl/py/Json/Process/factor_value.py +101 -0
  95. arctrl/py/Json/Process/material.py +226 -0
  96. arctrl/py/Json/Process/material_attribute.py +79 -0
  97. arctrl/py/Json/Process/material_attribute_value.py +101 -0
  98. arctrl/py/Json/Process/material_type.py +53 -0
  99. arctrl/py/Json/Process/process.py +296 -0
  100. arctrl/py/Json/Process/process_input.py +83 -0
  101. arctrl/py/Json/Process/process_output.py +67 -0
  102. arctrl/py/Json/Process/process_parameter_value.py +81 -0
  103. arctrl/py/Json/Process/protocol.py +354 -0
  104. arctrl/py/Json/Process/protocol_parameter.py +79 -0
  105. arctrl/py/Json/Process/sample.py +277 -0
  106. arctrl/py/Json/Process/source.py +214 -0
  107. arctrl/py/Json/Process/study_materials.py +52 -0
  108. arctrl/py/Json/Process/value.py +56 -0
  109. arctrl/py/Json/ROCrate/__init__.py +0 -0
  110. arctrl/py/Json/ROCrate/ldcontext.py +133 -0
  111. arctrl/py/Json/ROCrate/ldgraph.py +111 -0
  112. arctrl/py/Json/ROCrate/ldnode.py +290 -0
  113. arctrl/py/Json/ROCrate/ldref.py +44 -0
  114. arctrl/py/Json/ROCrate/ldvalue.py +102 -0
  115. arctrl/py/Json/Table/__init__.py +0 -0
  116. arctrl/py/Json/Table/arc_table.py +393 -0
  117. arctrl/py/Json/Table/cell_table.py +83 -0
  118. arctrl/py/Json/Table/composite_cell.py +136 -0
  119. arctrl/py/Json/Table/composite_header.py +67 -0
  120. arctrl/py/Json/Table/iotype.py +24 -0
  121. arctrl/py/Json/Table/oatable.py +82 -0
  122. arctrl/py/Json/Table/templates.py +281 -0
  123. arctrl/py/Json/__init__.py +0 -0
  124. arctrl/py/Json/assay.py +600 -0
  125. arctrl/py/Json/comment.py +206 -0
  126. arctrl/py/Json/context/rocrate/__init__.py +0 -0
  127. arctrl/py/Json/context/rocrate/isa_assay_context.py +101 -0
  128. arctrl/py/Json/context/rocrate/isa_comment_context.py +60 -0
  129. arctrl/py/Json/context/rocrate/isa_component_context.py +77 -0
  130. arctrl/py/Json/context/rocrate/isa_data_context.py +74 -0
  131. arctrl/py/Json/context/rocrate/isa_factor_context.py +74 -0
  132. arctrl/py/Json/context/rocrate/isa_factor_value_context.py +84 -0
  133. arctrl/py/Json/context/rocrate/isa_investigation_context.py +110 -0
  134. arctrl/py/Json/context/rocrate/isa_material_attribute_context.py +64 -0
  135. arctrl/py/Json/context/rocrate/isa_material_attribute_value_context.py +80 -0
  136. arctrl/py/Json/context/rocrate/isa_material_context.py +71 -0
  137. arctrl/py/Json/context/rocrate/isa_ontology_annotation_context.py +68 -0
  138. arctrl/py/Json/context/rocrate/isa_ontology_source_reference_context.py +75 -0
  139. arctrl/py/Json/context/rocrate/isa_organization_context.py +55 -0
  140. arctrl/py/Json/context/rocrate/isa_person_context.py +131 -0
  141. arctrl/py/Json/context/rocrate/isa_process_context.py +94 -0
  142. arctrl/py/Json/context/rocrate/isa_process_parameter_value_context.py +80 -0
  143. arctrl/py/Json/context/rocrate/isa_protocol_context.py +97 -0
  144. arctrl/py/Json/context/rocrate/isa_protocol_parameter_context.py +64 -0
  145. arctrl/py/Json/context/rocrate/isa_publication_context.py +78 -0
  146. arctrl/py/Json/context/rocrate/isa_sample_context.py +65 -0
  147. arctrl/py/Json/context/rocrate/isa_source_context.py +66 -0
  148. arctrl/py/Json/context/rocrate/isa_study_context.py +125 -0
  149. arctrl/py/Json/context/rocrate/property_value_context.py +73 -0
  150. arctrl/py/Json/context/rocrate/rocrate_context.py +81 -0
  151. arctrl/py/Json/converter_options.py +23 -0
  152. arctrl/py/Json/data.py +356 -0
  153. arctrl/py/Json/data_file.py +63 -0
  154. arctrl/py/Json/decode.py +155 -0
  155. arctrl/py/Json/encode.py +92 -0
  156. arctrl/py/Json/idtable.py +44 -0
  157. arctrl/py/Json/investigation.py +695 -0
  158. arctrl/py/Json/ontology_annotation.py +404 -0
  159. arctrl/py/Json/ontology_source_reference.py +255 -0
  160. arctrl/py/Json/person.py +658 -0
  161. arctrl/py/Json/property_value.py +359 -0
  162. arctrl/py/Json/publication.py +279 -0
  163. arctrl/py/Json/string_table.py +76 -0
  164. arctrl/py/Json/study.py +793 -0
  165. arctrl/py/JsonIO/DataMap/__init__.py +0 -0
  166. arctrl/py/JsonIO/DataMap/data_map.py +53 -0
  167. arctrl/py/JsonIO/Process/__init__.py +0 -0
  168. arctrl/py/JsonIO/Process/component.py +60 -0
  169. arctrl/py/JsonIO/Process/factor.py +36 -0
  170. arctrl/py/JsonIO/Process/factor_value.py +38 -0
  171. arctrl/py/JsonIO/Process/material.py +60 -0
  172. arctrl/py/JsonIO/Process/material_attribute.py +38 -0
  173. arctrl/py/JsonIO/Process/material_attribute_value.py +60 -0
  174. arctrl/py/JsonIO/Process/material_type.py +36 -0
  175. arctrl/py/JsonIO/Process/process.py +60 -0
  176. arctrl/py/JsonIO/Process/process_input.py +38 -0
  177. arctrl/py/JsonIO/Process/process_output.py +60 -0
  178. arctrl/py/JsonIO/Process/process_parameter_value.py +60 -0
  179. arctrl/py/JsonIO/Process/process_sequence.py +71 -0
  180. arctrl/py/JsonIO/Process/protocol.py +60 -0
  181. arctrl/py/JsonIO/Process/protocol_parameter.py +36 -0
  182. arctrl/py/JsonIO/Process/sample.py +60 -0
  183. arctrl/py/JsonIO/Process/source.py +60 -0
  184. arctrl/py/JsonIO/Process/study_materials.py +52 -0
  185. arctrl/py/JsonIO/Process/value.py +32 -0
  186. arctrl/py/JsonIO/Table/__init__.py +0 -0
  187. arctrl/py/JsonIO/Table/arc_table.py +121 -0
  188. arctrl/py/JsonIO/Table/composite_cell.py +36 -0
  189. arctrl/py/JsonIO/Table/composite_header.py +36 -0
  190. arctrl/py/JsonIO/Table/compression.py +85 -0
  191. arctrl/py/JsonIO/Table/iotype.py +36 -0
  192. arctrl/py/JsonIO/Table/templates.py +113 -0
  193. arctrl/py/JsonIO/__init__.py +0 -0
  194. arctrl/py/JsonIO/assay.py +113 -0
  195. arctrl/py/JsonIO/comment.py +80 -0
  196. arctrl/py/JsonIO/data.py +60 -0
  197. arctrl/py/JsonIO/data_file.py +58 -0
  198. arctrl/py/JsonIO/decode.py +9 -0
  199. arctrl/py/JsonIO/encode.py +1 -0
  200. arctrl/py/JsonIO/investigation.py +113 -0
  201. arctrl/py/JsonIO/ldobject.py +106 -0
  202. arctrl/py/JsonIO/ontology_annotation.py +80 -0
  203. arctrl/py/JsonIO/ontology_source_reference.py +80 -0
  204. arctrl/py/JsonIO/person.py +82 -0
  205. arctrl/py/JsonIO/publication.py +82 -0
  206. arctrl/py/JsonIO/study.py +114 -0
  207. arctrl/py/ROCrate/Generic/__init__.py +0 -0
  208. arctrl/py/ROCrate/Generic/comment.py +131 -0
  209. arctrl/py/ROCrate/Generic/dataset.py +817 -0
  210. arctrl/py/ROCrate/Generic/defined_term.py +131 -0
  211. arctrl/py/ROCrate/Generic/file.py +237 -0
  212. arctrl/py/ROCrate/Generic/lab_process.py +324 -0
  213. arctrl/py/ROCrate/Generic/lab_protocol.py +338 -0
  214. arctrl/py/ROCrate/Generic/organization.py +83 -0
  215. arctrl/py/ROCrate/Generic/person.py +484 -0
  216. arctrl/py/ROCrate/Generic/postal_address.py +195 -0
  217. arctrl/py/ROCrate/Generic/property_value.py +696 -0
  218. arctrl/py/ROCrate/Generic/sample.py +202 -0
  219. arctrl/py/ROCrate/Generic/scholarly_article.py +229 -0
  220. arctrl/py/ROCrate/ISAProfile/__init__.py +0 -0
  221. arctrl/py/ROCrate/ISAProfile/assay.py +70 -0
  222. arctrl/py/ROCrate/ISAProfile/data.py +65 -0
  223. arctrl/py/ROCrate/ISAProfile/dataset.py +24 -0
  224. arctrl/py/ROCrate/ISAProfile/investigation.py +73 -0
  225. arctrl/py/ROCrate/ISAProfile/lab_process.py +162 -0
  226. arctrl/py/ROCrate/ISAProfile/lab_protocol.py +37 -0
  227. arctrl/py/ROCrate/ISAProfile/person.py +72 -0
  228. arctrl/py/ROCrate/ISAProfile/property_value.py +98 -0
  229. arctrl/py/ROCrate/ISAProfile/sample.py +64 -0
  230. arctrl/py/ROCrate/ISAProfile/scholarly_article.py +98 -0
  231. arctrl/py/ROCrate/ISAProfile/study.py +74 -0
  232. arctrl/py/ROCrate/__init__.py +0 -0
  233. arctrl/py/ROCrate/arc_rocrate_metadata.py +39 -0
  234. arctrl/py/ROCrate/dyn_obj_extensions.py +1 -0
  235. arctrl/py/ROCrate/helper.py +8 -0
  236. arctrl/py/ROCrate/ldcontext.py +362 -0
  237. arctrl/py/ROCrate/ldobject.py +1247 -0
  238. arctrl/py/ROCrate/rocrate_context.py +51 -0
  239. arctrl/py/Spreadsheet/AnnotationTable/__init__.py +0 -0
  240. arctrl/py/Spreadsheet/AnnotationTable/arc_table.py +193 -0
  241. arctrl/py/Spreadsheet/AnnotationTable/composite_cell.py +78 -0
  242. arctrl/py/Spreadsheet/AnnotationTable/composite_column.py +210 -0
  243. arctrl/py/Spreadsheet/AnnotationTable/composite_header.py +623 -0
  244. arctrl/py/Spreadsheet/DataMapTable/__init__.py +0 -0
  245. arctrl/py/Spreadsheet/DataMapTable/data_map_column.py +114 -0
  246. arctrl/py/Spreadsheet/DataMapTable/data_map_header.py +618 -0
  247. arctrl/py/Spreadsheet/DataMapTable/data_map_table.py +119 -0
  248. arctrl/py/Spreadsheet/Metadata/__init__.py +0 -0
  249. arctrl/py/Spreadsheet/Metadata/assays.py +125 -0
  250. arctrl/py/Spreadsheet/Metadata/comment.py +77 -0
  251. arctrl/py/Spreadsheet/Metadata/contacts.py +134 -0
  252. arctrl/py/Spreadsheet/Metadata/conversions.py +190 -0
  253. arctrl/py/Spreadsheet/Metadata/design_descriptors.py +34 -0
  254. arctrl/py/Spreadsheet/Metadata/factors.py +107 -0
  255. arctrl/py/Spreadsheet/Metadata/ontology_annotation.py +88 -0
  256. arctrl/py/Spreadsheet/Metadata/ontology_source_reference.py +96 -0
  257. arctrl/py/Spreadsheet/Metadata/protocols.py +146 -0
  258. arctrl/py/Spreadsheet/Metadata/publication.py +122 -0
  259. arctrl/py/Spreadsheet/Metadata/run.py +122 -0
  260. arctrl/py/Spreadsheet/Metadata/sparse_table.py +508 -0
  261. arctrl/py/Spreadsheet/Metadata/study.py +312 -0
  262. arctrl/py/Spreadsheet/Metadata/workflow.py +151 -0
  263. arctrl/py/Spreadsheet/__init__.py +0 -0
  264. arctrl/py/Spreadsheet/arc_assay.py +233 -0
  265. arctrl/py/Spreadsheet/arc_investigation.py +418 -0
  266. arctrl/py/Spreadsheet/arc_run.py +190 -0
  267. arctrl/py/Spreadsheet/arc_study.py +144 -0
  268. arctrl/py/Spreadsheet/arc_workflow.py +176 -0
  269. arctrl/py/Spreadsheet/assembly_info.py +1 -0
  270. arctrl/py/Spreadsheet/collection_aux.py +167 -0
  271. arctrl/py/Spreadsheet/data_map.py +44 -0
  272. arctrl/py/Spreadsheet/template.py +460 -0
  273. arctrl/py/ValidationPackages/__init__.py +0 -0
  274. arctrl/py/ValidationPackages/validation_package.py +82 -0
  275. arctrl/py/ValidationPackages/validation_packages_config.py +132 -0
  276. arctrl/py/WebRequest/__init__.py +0 -0
  277. arctrl/py/WebRequest/web_request.py +9 -0
  278. arctrl/py/WebRequest/web_request_py.py +135 -0
  279. arctrl/py/Yaml/__init__.py +0 -0
  280. arctrl/py/Yaml/decode.py +1 -0
  281. arctrl/py/Yaml/encode.py +10 -0
  282. arctrl/py/Yaml/validation_package.py +77 -0
  283. arctrl/py/Yaml/validation_packages_config.py +86 -0
  284. arctrl/py/__init__.py +0 -0
  285. arctrl/py/arc.py +1400 -0
  286. arctrl/py/column_index.py +280 -0
  287. arctrl/py/conversion.py +2184 -0
  288. arctrl/py/cross_async.py +76 -0
  289. arctrl/py/fable_modules/dynamic_obj/__init__.py +0 -0
  290. arctrl/py/fable_modules/dynamic_obj/dyn_obj.py +136 -0
  291. arctrl/py/fable_modules/dynamic_obj/dynamic_obj.py +415 -0
  292. arctrl/py/fable_modules/dynamic_obj/fable_js.py +1 -0
  293. arctrl/py/fable_modules/dynamic_obj/fable_py.py +288 -0
  294. arctrl/py/fable_modules/dynamic_obj/hash_codes.py +82 -0
  295. arctrl/py/fable_modules/dynamic_obj/property_helper.py +25 -0
  296. arctrl/py/fable_modules/dynamic_obj/reflection_utils.py +87 -0
  297. arctrl/py/fable_modules/fable_library/__init__.py +0 -0
  298. arctrl/py/fable_modules/fable_library/array_.py +1528 -0
  299. arctrl/py/fable_modules/fable_library/async_.py +377 -0
  300. arctrl/py/fable_modules/fable_library/async_builder.py +379 -0
  301. arctrl/py/fable_modules/fable_library/big_int.py +330 -0
  302. arctrl/py/fable_modules/fable_library/bit_converter.py +131 -0
  303. arctrl/py/fable_modules/fable_library/boolean.py +26 -0
  304. arctrl/py/fable_modules/fable_library/char.py +237 -0
  305. arctrl/py/fable_modules/fable_library/choice.py +212 -0
  306. arctrl/py/fable_modules/fable_library/date.py +779 -0
  307. arctrl/py/fable_modules/fable_library/date_offset.py +79 -0
  308. arctrl/py/fable_modules/fable_library/decimal_.py +190 -0
  309. arctrl/py/fable_modules/fable_library/diagnostics.py +54 -0
  310. arctrl/py/fable_modules/fable_library/double.py +87 -0
  311. arctrl/py/fable_modules/fable_library/encoding.py +41 -0
  312. arctrl/py/fable_modules/fable_library/event.py +206 -0
  313. arctrl/py/fable_modules/fable_library/file.py +107 -0
  314. arctrl/py/fable_modules/fable_library/fsharp_collections.py +52 -0
  315. arctrl/py/fable_modules/fable_library/fsharp_core.py +123 -0
  316. arctrl/py/fable_modules/fable_library/global_.py +63 -0
  317. arctrl/py/fable_modules/fable_library/guid.py +41 -0
  318. arctrl/py/fable_modules/fable_library/int32.py +73 -0
  319. arctrl/py/fable_modules/fable_library/list.py +1788 -0
  320. arctrl/py/fable_modules/fable_library/long.py +240 -0
  321. arctrl/py/fable_modules/fable_library/mailbox_processor.py +179 -0
  322. arctrl/py/fable_modules/fable_library/map.py +1854 -0
  323. arctrl/py/fable_modules/fable_library/map_util.py +148 -0
  324. arctrl/py/fable_modules/fable_library/mutable_map.py +397 -0
  325. arctrl/py/fable_modules/fable_library/mutable_set.py +279 -0
  326. arctrl/py/fable_modules/fable_library/native.py +45 -0
  327. arctrl/py/fable_modules/fable_library/numeric.py +46 -0
  328. arctrl/py/fable_modules/fable_library/observable.py +222 -0
  329. arctrl/py/fable_modules/fable_library/option.py +128 -0
  330. arctrl/py/fable_modules/fable_library/path.py +62 -0
  331. arctrl/py/fable_modules/fable_library/range.py +117 -0
  332. arctrl/py/fable_modules/fable_library/reflection.py +463 -0
  333. arctrl/py/fable_modules/fable_library/reg_exp.py +137 -0
  334. arctrl/py/fable_modules/fable_library/resize_array.py +31 -0
  335. arctrl/py/fable_modules/fable_library/result.py +212 -0
  336. arctrl/py/fable_modules/fable_library/seq.py +1979 -0
  337. arctrl/py/fable_modules/fable_library/seq2.py +221 -0
  338. arctrl/py/fable_modules/fable_library/set.py +2414 -0
  339. arctrl/py/fable_modules/fable_library/singleton_local_time_zone.py +36 -0
  340. arctrl/py/fable_modules/fable_library/string_.py +573 -0
  341. arctrl/py/fable_modules/fable_library/system_collections_generic.py +462 -0
  342. arctrl/py/fable_modules/fable_library/system_text.py +237 -0
  343. arctrl/py/fable_modules/fable_library/task.py +116 -0
  344. arctrl/py/fable_modules/fable_library/task_builder.py +122 -0
  345. arctrl/py/fable_modules/fable_library/thread.py +5 -0
  346. arctrl/py/fable_modules/fable_library/time_span.py +283 -0
  347. arctrl/py/fable_modules/fable_library/timer.py +24 -0
  348. arctrl/py/fable_modules/fable_library/types.py +401 -0
  349. arctrl/py/fable_modules/fable_library/uri.py +109 -0
  350. arctrl/py/fable_modules/fable_library/util.py +2735 -0
  351. arctrl/py/fable_modules/fable_openpyxl/__init__.py +0 -0
  352. arctrl/py/fable_modules/fable_openpyxl/openpyxl.py +362 -0
  353. arctrl/py/fable_modules/fable_python/cognite-sdk/__init__.py +0 -0
  354. arctrl/py/fable_modules/fable_python/cognite-sdk/cognite_sdk.py +22 -0
  355. arctrl/py/fable_modules/fable_python/flask/__init__.py +0 -0
  356. arctrl/py/fable_modules/fable_python/flask/flask.py +34 -0
  357. arctrl/py/fable_modules/fable_python/jupyter/__init__.py +0 -0
  358. arctrl/py/fable_modules/fable_python/jupyter/ipy_widgets.py +47 -0
  359. arctrl/py/fable_modules/fable_python/jupyter/ipython.py +13 -0
  360. arctrl/py/fable_modules/fable_python/stdlib/__init__.py +0 -0
  361. arctrl/py/fable_modules/fable_python/stdlib/ast.py +1 -0
  362. arctrl/py/fable_modules/fable_python/stdlib/asyncio/__init__.py +0 -0
  363. arctrl/py/fable_modules/fable_python/stdlib/asyncio/events.py +17 -0
  364. arctrl/py/fable_modules/fable_python/stdlib/asyncio/futures.py +52 -0
  365. arctrl/py/fable_modules/fable_python/stdlib/asyncio/tasks.py +38 -0
  366. arctrl/py/fable_modules/fable_python/stdlib/base64_.py +1 -0
  367. arctrl/py/fable_modules/fable_python/stdlib/builtins_.py +38 -0
  368. arctrl/py/fable_modules/fable_python/stdlib/html.py +1 -0
  369. arctrl/py/fable_modules/fable_python/stdlib/json.py +1 -0
  370. arctrl/py/fable_modules/fable_python/stdlib/math_.py +1 -0
  371. arctrl/py/fable_modules/fable_python/stdlib/os_.py +1 -0
  372. arctrl/py/fable_modules/fable_python/stdlib/queue_.py +1 -0
  373. arctrl/py/fable_modules/fable_python/stdlib/string_.py +1 -0
  374. arctrl/py/fable_modules/fable_python/stdlib/sys_.py +30 -0
  375. arctrl/py/fable_modules/fable_python/stdlib/time_.py +1 -0
  376. arctrl/py/fable_modules/fable_python/stdlib/tk_inter.py +1 -0
  377. arctrl/py/fable_modules/fs_spreadsheet/Cells/__init__.py +0 -0
  378. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cell.py +338 -0
  379. arctrl/py/fable_modules/fs_spreadsheet/Cells/fs_cells_collection.py +469 -0
  380. arctrl/py/fable_modules/fs_spreadsheet/DSL/__init__.py +0 -0
  381. arctrl/py/fable_modules/fs_spreadsheet/DSL/cell_builder.py +214 -0
  382. arctrl/py/fable_modules/fs_spreadsheet/DSL/column_builder.py +139 -0
  383. arctrl/py/fable_modules/fs_spreadsheet/DSL/dsl.py +50 -0
  384. arctrl/py/fable_modules/fs_spreadsheet/DSL/expression.py +65 -0
  385. arctrl/py/fable_modules/fs_spreadsheet/DSL/operators.py +9 -0
  386. arctrl/py/fable_modules/fs_spreadsheet/DSL/row_builder.py +139 -0
  387. arctrl/py/fable_modules/fs_spreadsheet/DSL/sheet_builder.py +118 -0
  388. arctrl/py/fable_modules/fs_spreadsheet/DSL/table_builder.py +122 -0
  389. arctrl/py/fable_modules/fs_spreadsheet/DSL/transform.py +464 -0
  390. arctrl/py/fable_modules/fs_spreadsheet/DSL/types.py +314 -0
  391. arctrl/py/fable_modules/fs_spreadsheet/DSL/workbook_builder.py +106 -0
  392. arctrl/py/fable_modules/fs_spreadsheet/Json/__init__.py +0 -0
  393. arctrl/py/fable_modules/fs_spreadsheet/Json/cell.py +103 -0
  394. arctrl/py/fable_modules/fs_spreadsheet/Json/column.py +70 -0
  395. arctrl/py/fable_modules/fs_spreadsheet/Json/row.py +70 -0
  396. arctrl/py/fable_modules/fs_spreadsheet/Json/table.py +57 -0
  397. arctrl/py/fable_modules/fs_spreadsheet/Json/value.py +93 -0
  398. arctrl/py/fable_modules/fs_spreadsheet/Json/workbook.py +71 -0
  399. arctrl/py/fable_modules/fs_spreadsheet/Json/worksheet.py +217 -0
  400. arctrl/py/fable_modules/fs_spreadsheet/Ranges/__init__.py +0 -0
  401. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range.py +47 -0
  402. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_address.py +186 -0
  403. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_base.py +90 -0
  404. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_column.py +78 -0
  405. arctrl/py/fable_modules/fs_spreadsheet/Ranges/fs_range_row.py +48 -0
  406. arctrl/py/fable_modules/fs_spreadsheet/Tables/__init__.py +0 -0
  407. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table.py +393 -0
  408. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_field.py +127 -0
  409. arctrl/py/fable_modules/fs_spreadsheet/Tables/fs_table_row.py +23 -0
  410. arctrl/py/fable_modules/fs_spreadsheet/__init__.py +0 -0
  411. arctrl/py/fable_modules/fs_spreadsheet/fs_address.py +218 -0
  412. arctrl/py/fable_modules/fs_spreadsheet/fs_column.py +172 -0
  413. arctrl/py/fable_modules/fs_spreadsheet/fs_row.py +183 -0
  414. arctrl/py/fable_modules/fs_spreadsheet/fs_workbook.py +180 -0
  415. arctrl/py/fable_modules/fs_spreadsheet/fs_worksheet.py +600 -0
  416. arctrl/py/fable_modules/fs_spreadsheet/sheet_builder.py +330 -0
  417. arctrl/py/fable_modules/fs_spreadsheet_py/__init__.py +0 -0
  418. arctrl/py/fable_modules/fs_spreadsheet_py/cell.py +63 -0
  419. arctrl/py/fable_modules/fs_spreadsheet_py/cell_type.py +50 -0
  420. arctrl/py/fable_modules/fs_spreadsheet_py/fs_extension.py +60 -0
  421. arctrl/py/fable_modules/fs_spreadsheet_py/json.py +47 -0
  422. arctrl/py/fable_modules/fs_spreadsheet_py/table.py +53 -0
  423. arctrl/py/fable_modules/fs_spreadsheet_py/workbook.py +40 -0
  424. arctrl/py/fable_modules/fs_spreadsheet_py/worksheet.py +54 -0
  425. arctrl/py/fable_modules/fs_spreadsheet_py/xlsx.py +37 -0
  426. arctrl/py/fable_modules/thoth_json_core/__init__.py +0 -0
  427. arctrl/py/fable_modules/thoth_json_core/decode.py +1588 -0
  428. arctrl/py/fable_modules/thoth_json_core/encode.py +261 -0
  429. arctrl/py/fable_modules/thoth_json_core/types.py +181 -0
  430. arctrl/py/fable_modules/thoth_json_python/__init__.py +0 -0
  431. arctrl/py/fable_modules/thoth_json_python/decode.py +112 -0
  432. arctrl/py/fable_modules/thoth_json_python/encode.py +72 -0
  433. arctrl/py/fable_modules/thoth_json_python/python.py +1 -0
  434. arctrl/py/fable_modules/yamlicious/Interop/__init__.py +0 -0
  435. arctrl/py/fable_modules/yamlicious/Interop/js_interop.py +1 -0
  436. arctrl/py/fable_modules/yamlicious/Interop/py_interop.py +7 -0
  437. arctrl/py/fable_modules/yamlicious/__init__.py +0 -0
  438. arctrl/py/fable_modules/yamlicious/decode.py +1784 -0
  439. arctrl/py/fable_modules/yamlicious/encode.py +84 -0
  440. arctrl/py/fable_modules/yamlicious/library.py +10 -0
  441. arctrl/py/fable_modules/yamlicious/persil.py +57 -0
  442. arctrl/py/fable_modules/yamlicious/preprocessing.py +99 -0
  443. arctrl/py/fable_modules/yamlicious/reader.py +665 -0
  444. arctrl/py/fable_modules/yamlicious/regex.py +21 -0
  445. arctrl/py/fable_modules/yamlicious/regex_active_patterns.py +256 -0
  446. arctrl/py/fable_modules/yamlicious/writer.py +175 -0
  447. arctrl/py/fable_modules/yamlicious/yamlicious_types.py +128 -0
  448. arctrl/py/json.py +213 -0
  449. arctrl/py/rocrate_io.py +72 -0
  450. arctrl/py/template_web.py +23 -0
  451. arctrl/py/xlsx.py +148 -0
  452. arctrl/rocrate.py +21 -0
  453. arctrl-3.0.0a3.dist-info/LICENSE +21 -0
  454. arctrl-3.0.0a3.dist-info/METADATA +119 -0
  455. arctrl-3.0.0a3.dist-info/RECORD +456 -0
  456. arctrl-3.0.0a3.dist-info/WHEEL +4 -0
@@ -0,0 +1,114 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.option import default_arg
4
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
5
+ from ..fable_modules.fable_library.types import Array
6
+ from ..fable_modules.fable_library.util import safe_hash
7
+ from .comment import Comment
8
+ from .Helper.collections_ import ResizeArray_map
9
+ from .Helper.hash_codes import (box_hash_array, box_hash_option, box_hash_seq)
10
+
11
+ def _expr558() -> TypeInfo:
12
+ return class_type("ARCtrl.OntologySourceReference", None, OntologySourceReference)
13
+
14
+
15
+ class OntologySourceReference:
16
+ def __init__(self, description: str | None=None, file: str | None=None, name: str | None=None, version: str | None=None, comments: Array[Comment] | None=None) -> None:
17
+ self._description: str | None = description
18
+ self._file: str | None = file
19
+ self._name: str | None = name
20
+ self._version: str | None = version
21
+ self._comments: Array[Comment] = default_arg(comments, [])
22
+
23
+ @property
24
+ def Description(self, __unit: None=None) -> str | None:
25
+ this: OntologySourceReference = self
26
+ return this._description
27
+
28
+ @Description.setter
29
+ def Description(self, description: str | None=None) -> None:
30
+ this: OntologySourceReference = self
31
+ this._description = description
32
+
33
+ @property
34
+ def File(self, __unit: None=None) -> str | None:
35
+ this: OntologySourceReference = self
36
+ return this._file
37
+
38
+ @File.setter
39
+ def File(self, file: str | None=None) -> None:
40
+ this: OntologySourceReference = self
41
+ this._file = file
42
+
43
+ @property
44
+ def Name(self, __unit: None=None) -> str | None:
45
+ this: OntologySourceReference = self
46
+ return this._name
47
+
48
+ @Name.setter
49
+ def Name(self, name: str | None=None) -> None:
50
+ this: OntologySourceReference = self
51
+ this._name = name
52
+
53
+ @property
54
+ def Version(self, __unit: None=None) -> str | None:
55
+ this: OntologySourceReference = self
56
+ return this._version
57
+
58
+ @Version.setter
59
+ def Version(self, version: str | None=None) -> None:
60
+ this: OntologySourceReference = self
61
+ this._version = version
62
+
63
+ @property
64
+ def Comments(self, __unit: None=None) -> Array[Comment]:
65
+ this: OntologySourceReference = self
66
+ return this._comments
67
+
68
+ @Comments.setter
69
+ def Comments(self, comments: Array[Comment]) -> None:
70
+ this: OntologySourceReference = self
71
+ this._comments = comments
72
+
73
+ @staticmethod
74
+ def make(description: str | None, file: str | None, name: str | None, version: str | None, comments: Array[Comment]) -> OntologySourceReference:
75
+ return OntologySourceReference(description, file, name, version, comments)
76
+
77
+ @staticmethod
78
+ def create(description: str | None=None, file: str | None=None, name: str | None=None, version: str | None=None, comments: Array[Comment] | None=None) -> OntologySourceReference:
79
+ comments_1: Array[Comment] = default_arg(comments, [])
80
+ return OntologySourceReference.make(description, file, name, version, comments_1)
81
+
82
+ @staticmethod
83
+ def empty() -> OntologySourceReference:
84
+ return OntologySourceReference.create()
85
+
86
+ def Copy(self, __unit: None=None) -> OntologySourceReference:
87
+ this: OntologySourceReference = self
88
+ def f(c: Comment) -> Comment:
89
+ return c.Copy()
90
+
91
+ next_comments: Array[Comment] = ResizeArray_map(f, this.Comments)
92
+ description: str | None = this.Description
93
+ file: str | None = this.File
94
+ name: str | None = this.Name
95
+ version: str | None = this.Version
96
+ return OntologySourceReference.make(description, file, name, version, next_comments)
97
+
98
+ def __hash__(self, __unit: None=None) -> Any:
99
+ this: OntologySourceReference = self
100
+ return box_hash_array([box_hash_option(this.Description), box_hash_option(this.File), box_hash_option(this.Name), box_hash_option(this.Version), box_hash_seq(this.Comments)])
101
+
102
+ def __eq__(self, obj: Any=None) -> bool:
103
+ this: OntologySourceReference = self
104
+ return (safe_hash(this) == safe_hash(obj)) if isinstance(obj, OntologySourceReference) else False
105
+
106
+
107
+ OntologySourceReference_reflection = _expr558
108
+
109
+ def OntologySourceReference__ctor_7C9A7CF8(description: str | None=None, file: str | None=None, name: str | None=None, version: str | None=None, comments: Array[Comment] | None=None) -> OntologySourceReference:
110
+ return OntologySourceReference(description, file, name, version, comments)
111
+
112
+
113
+ __all__ = ["OntologySourceReference_reflection"]
114
+
@@ -0,0 +1,259 @@
1
+ from __future__ import annotations
2
+ from typing import Any
3
+ from ..fable_modules.fable_library.array_ import (try_find, exists, filter)
4
+ from ..fable_modules.fable_library.list import (append, singleton, FSharpList, map, choose, of_array)
5
+ from ..fable_modules.fable_library.option import (default_arg, map as map_1)
6
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
7
+ from ..fable_modules.fable_library.seq import length
8
+ from ..fable_modules.fable_library.string_ import (join, to_text, printf)
9
+ from ..fable_modules.fable_library.system_text import (StringBuilder__ctor, StringBuilder__Append_Z721C83C5)
10
+ from ..fable_modules.fable_library.types import (Array, to_string)
11
+ from ..fable_modules.fable_library.util import (equals, ignore)
12
+ from .comment import Comment
13
+ from .Helper.collections_ import ResizeArray_map
14
+ from .Helper.hash_codes import (box_hash_array, box_hash_option, box_hash_seq, hash_1)
15
+ from .ontology_annotation import OntologyAnnotation
16
+
17
+ def _expr553() -> TypeInfo:
18
+ return class_type("ARCtrl.Person", None, Person)
19
+
20
+
21
+ class Person:
22
+ def __init__(self, orcid: str | None=None, last_name: str | None=None, first_name: str | None=None, mid_initials: str | None=None, email: str | None=None, phone: str | None=None, fax: str | None=None, address: str | None=None, affiliation: str | None=None, roles: Array[OntologyAnnotation] | None=None, comments: Array[Comment] | None=None) -> None:
23
+ self._orcid: str | None = orcid
24
+ self._lastName: str | None = last_name
25
+ self._firstName: str | None = first_name
26
+ self._midInitials: str | None = mid_initials
27
+ self._email: str | None = email
28
+ self._phone: str | None = phone
29
+ self._fax: str | None = fax
30
+ self._address: str | None = address
31
+ self._affiliation: str | None = affiliation
32
+ self._roles: Array[OntologyAnnotation] = default_arg(roles, [])
33
+ self._comments: Array[Comment] = default_arg(comments, [])
34
+
35
+ @property
36
+ def ORCID(self, __unit: None=None) -> str | None:
37
+ this: Person = self
38
+ return this._orcid
39
+
40
+ @ORCID.setter
41
+ def ORCID(self, orcid: str | None=None) -> None:
42
+ this: Person = self
43
+ this._orcid = orcid
44
+
45
+ @property
46
+ def FirstName(self, __unit: None=None) -> str | None:
47
+ this: Person = self
48
+ return this._firstName
49
+
50
+ @FirstName.setter
51
+ def FirstName(self, first_name: str | None=None) -> None:
52
+ this: Person = self
53
+ this._firstName = first_name
54
+
55
+ @property
56
+ def LastName(self, __unit: None=None) -> str | None:
57
+ this: Person = self
58
+ return this._lastName
59
+
60
+ @LastName.setter
61
+ def LastName(self, last_name: str | None=None) -> None:
62
+ this: Person = self
63
+ this._lastName = last_name
64
+
65
+ @property
66
+ def MidInitials(self, __unit: None=None) -> str | None:
67
+ this: Person = self
68
+ return this._midInitials
69
+
70
+ @MidInitials.setter
71
+ def MidInitials(self, mid_initials: str | None=None) -> None:
72
+ this: Person = self
73
+ this._midInitials = mid_initials
74
+
75
+ @property
76
+ def Address(self, __unit: None=None) -> str | None:
77
+ this: Person = self
78
+ return this._address
79
+
80
+ @Address.setter
81
+ def Address(self, address: str | None=None) -> None:
82
+ this: Person = self
83
+ this._address = address
84
+
85
+ @property
86
+ def Affiliation(self, __unit: None=None) -> str | None:
87
+ this: Person = self
88
+ return this._affiliation
89
+
90
+ @Affiliation.setter
91
+ def Affiliation(self, affiliation: str | None=None) -> None:
92
+ this: Person = self
93
+ this._affiliation = affiliation
94
+
95
+ @property
96
+ def EMail(self, __unit: None=None) -> str | None:
97
+ this: Person = self
98
+ return this._email
99
+
100
+ @EMail.setter
101
+ def EMail(self, email: str | None=None) -> None:
102
+ this: Person = self
103
+ this._email = email
104
+
105
+ @property
106
+ def Phone(self, __unit: None=None) -> str | None:
107
+ this: Person = self
108
+ return this._phone
109
+
110
+ @Phone.setter
111
+ def Phone(self, phone: str | None=None) -> None:
112
+ this: Person = self
113
+ this._phone = phone
114
+
115
+ @property
116
+ def Fax(self, __unit: None=None) -> str | None:
117
+ this: Person = self
118
+ return this._fax
119
+
120
+ @Fax.setter
121
+ def Fax(self, fax: str | None=None) -> None:
122
+ this: Person = self
123
+ this._fax = fax
124
+
125
+ @property
126
+ def Roles(self, __unit: None=None) -> Array[OntologyAnnotation]:
127
+ this: Person = self
128
+ return this._roles
129
+
130
+ @Roles.setter
131
+ def Roles(self, roles: Array[OntologyAnnotation]) -> None:
132
+ this: Person = self
133
+ this._roles = roles
134
+
135
+ @property
136
+ def Comments(self, __unit: None=None) -> Array[Comment]:
137
+ this: Person = self
138
+ return this._comments
139
+
140
+ @Comments.setter
141
+ def Comments(self, comments: Array[Comment]) -> None:
142
+ this: Person = self
143
+ this._comments = comments
144
+
145
+ @staticmethod
146
+ def make(orcid: str | None, last_name: str | None, first_name: str | None, mid_initials: str | None, email: str | None, phone: str | None, fax: str | None, address: str | None, affiliation: str | None, roles: Array[OntologyAnnotation], comments: Array[Comment]) -> Person:
147
+ return Person(orcid, last_name, first_name, mid_initials, email, phone, fax, address, affiliation, roles, comments)
148
+
149
+ @staticmethod
150
+ def create(orcid: str | None=None, last_name: str | None=None, first_name: str | None=None, mid_initials: str | None=None, email: str | None=None, phone: str | None=None, fax: str | None=None, address: str | None=None, affiliation: str | None=None, roles: Array[OntologyAnnotation] | None=None, comments: Array[Comment] | None=None) -> Person:
151
+ roles_1: Array[OntologyAnnotation] = default_arg(roles, [])
152
+ comments_1: Array[Comment] = default_arg(comments, [])
153
+ return Person.make(orcid, last_name, first_name, mid_initials, email, phone, fax, address, affiliation, roles_1, comments_1)
154
+
155
+ @staticmethod
156
+ def empty() -> Person:
157
+ return Person.create()
158
+
159
+ @staticmethod
160
+ def try_get_by_full_name(first_name: str, mid_initials: str, last_name: str, persons: Array[Person]) -> Person | None:
161
+ def predicate(p: Person) -> bool:
162
+ if mid_initials == "":
163
+ if equals(p.FirstName, first_name):
164
+ return equals(p.LastName, last_name)
165
+
166
+ else:
167
+ return False
168
+
169
+
170
+ elif equals(p.MidInitials, mid_initials) if equals(p.FirstName, first_name) else False:
171
+ return equals(p.LastName, last_name)
172
+
173
+ else:
174
+ return False
175
+
176
+
177
+ return try_find(predicate, persons)
178
+
179
+ @staticmethod
180
+ def exists_by_full_name(first_name: str, mid_initials: str, last_name: str, persons: Array[Person]) -> bool:
181
+ def _arrow549(p: Person) -> bool:
182
+ return (equals(p.LastName, last_name) if equals(p.FirstName, first_name) else False) if (mid_initials == "") else (equals(p.LastName, last_name) if (equals(p.MidInitials, mid_initials) if equals(p.FirstName, first_name) else False) else False)
183
+
184
+ return exists(_arrow549, persons)
185
+
186
+ @staticmethod
187
+ def add(persons: FSharpList[Person], person: Person) -> FSharpList[Person]:
188
+ return append(persons, singleton(person))
189
+
190
+ @staticmethod
191
+ def remove_by_full_name(first_name: str, mid_initials: str, last_name: str, persons: Array[Person]) -> Array[Person]:
192
+ def _arrow550(p: Person) -> bool:
193
+ return (not (equals(p.LastName, last_name) if equals(p.FirstName, first_name) else False)) if (mid_initials == "") else (not (equals(p.LastName, last_name) if (equals(p.MidInitials, mid_initials) if equals(p.FirstName, first_name) else False) else False))
194
+
195
+ return filter(_arrow550, persons)
196
+
197
+ def Copy(self, __unit: None=None) -> Person:
198
+ this: Person = self
199
+ def f(c: Comment) -> Comment:
200
+ return c.Copy()
201
+
202
+ next_comments: Array[Comment] = ResizeArray_map(f, this.Comments)
203
+ def f_1(c_1: OntologyAnnotation) -> OntologyAnnotation:
204
+ return c_1.Copy()
205
+
206
+ next_roles: Array[OntologyAnnotation] = ResizeArray_map(f_1, this.Roles)
207
+ orcid: str | None = this.ORCID
208
+ last_name: str | None = this.LastName
209
+ first_name: str | None = this.FirstName
210
+ mid_initials: str | None = this.MidInitials
211
+ email: str | None = this.EMail
212
+ phone: str | None = this.Phone
213
+ fax: str | None = this.Fax
214
+ address: str | None = this.Address
215
+ affiliation: str | None = this.Affiliation
216
+ return Person.make(orcid, last_name, first_name, mid_initials, email, phone, fax, address, affiliation, next_roles, next_comments)
217
+
218
+ def __hash__(self, __unit: None=None) -> Any:
219
+ this: Person = self
220
+ return box_hash_array([box_hash_option(this.ORCID), box_hash_option(this.LastName), box_hash_option(this.FirstName), box_hash_option(this.MidInitials), box_hash_option(this.EMail), box_hash_option(this.Phone), box_hash_option(this.Fax), box_hash_option(this.Address), box_hash_option(this.Affiliation), box_hash_seq(this.Roles), box_hash_seq(this.Comments)])
221
+
222
+ def __eq__(self, obj: Any=None) -> bool:
223
+ this: Person = self
224
+ return hash_1(this) == hash_1(obj)
225
+
226
+ def __str__(self, __unit: None=None) -> str:
227
+ this: Person = self
228
+ sb: Any = StringBuilder__ctor()
229
+ ignore(StringBuilder__Append_Z721C83C5(sb, "Person {\n\t"))
230
+ def mapping_1(tupled_arg_1: tuple[str, str]) -> str:
231
+ return to_text(printf("%s = %A"))(tupled_arg_1[0])(tupled_arg_1[1])
232
+
233
+ def chooser(tupled_arg: tuple[str, str | None]) -> tuple[str, str] | None:
234
+ def mapping(o: str, tupled_arg: Any=tupled_arg) -> tuple[str, str]:
235
+ return (tupled_arg[0], o)
236
+
237
+ return map_1(mapping, tupled_arg[1])
238
+
239
+ def _arrow551(__unit: None=None) -> str:
240
+ arg: Array[OntologyAnnotation] = this.Roles
241
+ return to_text(printf("%A"))(arg)
242
+
243
+ def _arrow552(__unit: None=None) -> str:
244
+ arg_1: Array[Comment] = this.Comments
245
+ return to_text(printf("%A"))(arg_1)
246
+
247
+ ignore(StringBuilder__Append_Z721C83C5(sb, join(",\n\t", map(mapping_1, choose(chooser, of_array([("FirstName", this.FirstName), ("LastName", this.LastName), ("MidInitials", this.MidInitials), ("EMail", this.EMail), ("Phone", this.Phone), ("Address", this.Address), ("Affiliation", this.Affiliation), ("Fax", this.Fax), ("ORCID", this.ORCID), ("Roles", _arrow551() if (length(this.Roles) > 0) else None), ("Comments", _arrow552() if (length(this.Comments) > 0) else None)]))))))
248
+ ignore(StringBuilder__Append_Z721C83C5(sb, "\n}"))
249
+ return to_string(sb)
250
+
251
+
252
+ Person_reflection = _expr553
253
+
254
+ def Person__ctor_Z2F6491B5(orcid: str | None=None, last_name: str | None=None, first_name: str | None=None, mid_initials: str | None=None, email: str | None=None, phone: str | None=None, fax: str | None=None, address: str | None=None, affiliation: str | None=None, roles: Array[OntologyAnnotation] | None=None, comments: Array[Comment] | None=None) -> Person:
255
+ return Person(orcid, last_name, first_name, mid_initials, email, phone, fax, address, affiliation, roles, comments)
256
+
257
+
258
+ __all__ = ["Person_reflection"]
259
+
@@ -0,0 +1,161 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from typing import Any
4
+ from ..fable_modules.fable_library.list import (map, choose, of_array)
5
+ from ..fable_modules.fable_library.option import (default_arg, map as map_1)
6
+ from ..fable_modules.fable_library.reflection import (TypeInfo, class_type)
7
+ from ..fable_modules.fable_library.seq import length
8
+ from ..fable_modules.fable_library.string_ import (join, to_text, printf)
9
+ from ..fable_modules.fable_library.system_text import (StringBuilder__ctor, StringBuilder__Append_Z721C83C5)
10
+ from ..fable_modules.fable_library.types import (Array, to_string)
11
+ from ..fable_modules.fable_library.util import (safe_hash, ignore)
12
+ from .comment import Comment
13
+ from .Helper.collections_ import ResizeArray_map
14
+ from .Helper.hash_codes import (box_hash_array, box_hash_option, box_hash_seq)
15
+ from .ontology_annotation import OntologyAnnotation
16
+
17
+ def _expr557() -> TypeInfo:
18
+ return class_type("ARCtrl.Publication", None, Publication)
19
+
20
+
21
+ class Publication:
22
+ def __init__(self, pub_med_id: str | None=None, doi: str | None=None, authors: str | None=None, title: str | None=None, status: OntologyAnnotation | None=None, comments: Array[Comment] | None=None) -> None:
23
+ self._pubMedID: str | None = pub_med_id
24
+ self._doi: str | None = doi
25
+ self._authors: str | None = authors
26
+ self._title: str | None = title
27
+ self._status: OntologyAnnotation | None = status
28
+ self._comments: Array[Comment] = default_arg(comments, [])
29
+
30
+ @property
31
+ def PubMedID(self, __unit: None=None) -> str | None:
32
+ this: Publication = self
33
+ return this._pubMedID
34
+
35
+ @PubMedID.setter
36
+ def PubMedID(self, pub_med_id: str | None=None) -> None:
37
+ this: Publication = self
38
+ this._pubMedID = pub_med_id
39
+
40
+ @property
41
+ def DOI(self, __unit: None=None) -> str | None:
42
+ this: Publication = self
43
+ return this._doi
44
+
45
+ @DOI.setter
46
+ def DOI(self, doi: str | None=None) -> None:
47
+ this: Publication = self
48
+ this._doi = doi
49
+
50
+ @property
51
+ def Authors(self, __unit: None=None) -> str | None:
52
+ this: Publication = self
53
+ return this._authors
54
+
55
+ @Authors.setter
56
+ def Authors(self, authors: str | None=None) -> None:
57
+ this: Publication = self
58
+ this._authors = authors
59
+
60
+ @property
61
+ def Title(self, __unit: None=None) -> str | None:
62
+ this: Publication = self
63
+ return this._title
64
+
65
+ @Title.setter
66
+ def Title(self, title: str | None=None) -> None:
67
+ this: Publication = self
68
+ this._title = title
69
+
70
+ @property
71
+ def Status(self, __unit: None=None) -> OntologyAnnotation | None:
72
+ this: Publication = self
73
+ return this._status
74
+
75
+ @Status.setter
76
+ def Status(self, status: OntologyAnnotation | None=None) -> None:
77
+ this: Publication = self
78
+ this._status = status
79
+
80
+ @property
81
+ def Comments(self, __unit: None=None) -> Array[Comment]:
82
+ this: Publication = self
83
+ return this._comments
84
+
85
+ @Comments.setter
86
+ def Comments(self, comments: Array[Comment]) -> None:
87
+ this: Publication = self
88
+ this._comments = comments
89
+
90
+ @staticmethod
91
+ def make(pub_med_id: str | None, doi: str | None, authors: str | None, title: str | None, status: OntologyAnnotation | None, comments: Array[Comment]) -> Publication:
92
+ return Publication(pub_med_id, doi, authors, title, status, comments)
93
+
94
+ @staticmethod
95
+ def create(pub_med_id: str | None=None, doi: str | None=None, authors: str | None=None, title: str | None=None, status: OntologyAnnotation | None=None, comments: Array[Comment] | None=None) -> Publication:
96
+ comments_1: Array[Comment] = default_arg(comments, [])
97
+ return Publication.make(pub_med_id, doi, authors, title, status, comments_1)
98
+
99
+ @staticmethod
100
+ def empty(__unit: None=None) -> Publication:
101
+ return Publication.create()
102
+
103
+ def Copy(self, __unit: None=None) -> Publication:
104
+ this: Publication = self
105
+ def f(c: Comment) -> Comment:
106
+ return c.Copy()
107
+
108
+ next_comments: Array[Comment] = ResizeArray_map(f, this.Comments)
109
+ pub_med_id: str | None = this.PubMedID
110
+ doi: str | None = this.DOI
111
+ authors: str | None = this.Authors
112
+ title: str | None = this.Title
113
+ status: OntologyAnnotation | None = this.Status
114
+ return Publication.make(pub_med_id, doi, authors, title, status, next_comments)
115
+
116
+ def __hash__(self, __unit: None=None) -> Any:
117
+ this: Publication = self
118
+ return box_hash_array([box_hash_option(this.DOI), box_hash_option(this.Title), box_hash_option(this.Authors), box_hash_option(this.PubMedID), box_hash_option(this.Status), box_hash_seq(this.Comments)])
119
+
120
+ def __eq__(self, obj: Any=None) -> bool:
121
+ this: Publication = self
122
+ return (safe_hash(this) == safe_hash(obj)) if isinstance(obj, Publication) else False
123
+
124
+ def __str__(self, __unit: None=None) -> str:
125
+ this: Publication = self
126
+ sb: Any = StringBuilder__ctor()
127
+ ignore(StringBuilder__Append_Z721C83C5(sb, "Publication {\n\t"))
128
+ def mapping_2(tupled_arg_1: tuple[str, str]) -> str:
129
+ return to_text(printf("%s = %A"))(tupled_arg_1[0])(tupled_arg_1[1])
130
+
131
+ def chooser(tupled_arg: tuple[str, str | None]) -> tuple[str, str] | None:
132
+ def mapping_1(o: str, tupled_arg: Any=tupled_arg) -> tuple[str, str]:
133
+ return (tupled_arg[0], o)
134
+
135
+ return map_1(mapping_1, tupled_arg[1])
136
+
137
+ def _arrow555(__unit: None=None) -> str | None:
138
+ option: OntologyAnnotation | None = this.Status
139
+ def _arrow554(__unit: None=None) -> Callable[[OntologyAnnotation], str]:
140
+ clo: Callable[[OntologyAnnotation], str] = to_text(printf("%A"))
141
+ return clo
142
+
143
+ return map_1(_arrow554(), option)
144
+
145
+ def _arrow556(__unit: None=None) -> str:
146
+ arg_1: Array[Comment] = this.Comments
147
+ return to_text(printf("%A"))(arg_1)
148
+
149
+ ignore(StringBuilder__Append_Z721C83C5(sb, join(",\n\t", map(mapping_2, choose(chooser, of_array([("PubMedID", this.PubMedID), ("DOI", this.DOI), ("Authors", this.Authors), ("Title", this.Title), ("Status", _arrow555()), ("Comments", _arrow556() if (length(this.Comments) > 0) else None)]))))))
150
+ ignore(StringBuilder__Append_Z721C83C5(sb, "\n}"))
151
+ return to_string(sb)
152
+
153
+
154
+ Publication_reflection = _expr557
155
+
156
+ def Publication__ctor_Z645CED36(pub_med_id: str | None=None, doi: str | None=None, authors: str | None=None, title: str | None=None, status: OntologyAnnotation | None=None, comments: Array[Comment] | None=None) -> Publication:
157
+ return Publication(pub_med_id, doi, authors, title, status, comments)
158
+
159
+
160
+ __all__ = ["Publication_reflection"]
161
+