File: aiida.engine.rst

package info (click to toggle)
python-sphinx-autodoc2 0.5.0-6
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 1,268 kB
  • sloc: python: 3,407; xml: 72; makefile: 9
file content (2034 lines) | stat: -rw-r--r-- 89,901 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
:py:mod:`aiida.engine`
======================

.. py:module:: aiida.engine

.. autodoc2-docstring:: aiida.engine
   :allowtitles:

Package Contents
----------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`AiiDAPersister <aiida.engine.persistence.AiiDAPersister>`
     - .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister
          :summary:
   * - :py:obj:`Awaitable <aiida.engine.processes.workchains.awaitable.Awaitable>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.Awaitable
          :summary:
   * - :py:obj:`AwaitableAction <aiida.engine.processes.workchains.awaitable.AwaitableAction>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction
          :summary:
   * - :py:obj:`AwaitableTarget <aiida.engine.processes.workchains.awaitable.AwaitableTarget>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget
          :summary:
   * - :py:obj:`BaseRestartWorkChain <aiida.engine.processes.workchains.restart.BaseRestartWorkChain>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain
          :summary:
   * - :py:obj:`CalcJob <aiida.engine.processes.calcjobs.calcjob.CalcJob>`
     - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob
          :summary:
   * - :py:obj:`CalcJobImporter <aiida.engine.processes.calcjobs.importer.CalcJobImporter>`
     - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.importer.CalcJobImporter
          :summary:
   * - :py:obj:`CalcJobOutputPort <aiida.engine.processes.ports.CalcJobOutputPort>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort
          :summary:
   * - :py:obj:`CalcJobProcessSpec <aiida.engine.processes.process_spec.CalcJobProcessSpec>`
     - .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec
          :summary:
   * - :py:obj:`DaemonClient <aiida.engine.daemon.client.DaemonClient>`
     - .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient
          :summary:
   * - :py:obj:`ExitCode <aiida.engine.processes.exit_code.ExitCode>`
     - .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode
          :summary:
   * - :py:obj:`ExitCodesNamespace <aiida.engine.processes.exit_code.ExitCodesNamespace>`
     - .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace
          :summary:
   * - :py:obj:`FunctionProcess <aiida.engine.processes.functions.FunctionProcess>`
     - .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess
          :summary:
   * - :py:obj:`InputPort <aiida.engine.processes.ports.InputPort>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort
          :summary:
   * - :py:obj:`InterruptableFuture <aiida.engine.utils.InterruptableFuture>`
     - .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture
          :summary:
   * - :py:obj:`JobManager <aiida.engine.processes.calcjobs.manager.JobManager>`
     - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager
          :summary:
   * - :py:obj:`JobsList <aiida.engine.processes.calcjobs.manager.JobsList>`
     - .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList
          :summary:
   * - :py:obj:`ObjectLoader <aiida.engine.persistence.ObjectLoader>`
     - .. autodoc2-docstring:: aiida.engine.persistence.ObjectLoader
          :summary:
   * - :py:obj:`PortNamespace <aiida.engine.processes.ports.PortNamespace>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace
          :summary:
   * - :py:obj:`Process <aiida.engine.processes.process.Process>`
     - .. autodoc2-docstring:: aiida.engine.processes.process.Process
          :summary:
   * - :py:obj:`ProcessBuilder <aiida.engine.processes.builder.ProcessBuilder>`
     - .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder
          :summary:
   * - :py:obj:`ProcessBuilderNamespace <aiida.engine.processes.builder.ProcessBuilderNamespace>`
     - .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace
          :summary:
   * - :py:obj:`ProcessFuture <aiida.engine.processes.futures.ProcessFuture>`
     - .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture
          :summary:
   * - :py:obj:`ProcessHandlerReport <aiida.engine.processes.workchains.utils.ProcessHandlerReport>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport
          :summary:
   * - :py:obj:`ProcessSpec <aiida.engine.processes.process_spec.ProcessSpec>`
     - .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec
          :summary:
   * - :py:obj:`Runner <aiida.engine.runners.Runner>`
     - .. autodoc2-docstring:: aiida.engine.runners.Runner
          :summary:
   * - :py:obj:`WithNonDb <aiida.engine.processes.ports.WithNonDb>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb
          :summary:
   * - :py:obj:`WithSerialize <aiida.engine.processes.ports.WithSerialize>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize
          :summary:
   * - :py:obj:`WorkChain <aiida.engine.processes.workchains.workchain.WorkChain>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain
          :summary:

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`append_ <aiida.engine.processes.workchains.context.append_>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.context.append_
          :summary:
   * - :py:obj:`assign_ <aiida.engine.processes.workchains.context.assign_>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.context.assign_
          :summary:
   * - :py:obj:`calcfunction <aiida.engine.processes.functions.calcfunction>`
     - .. autodoc2-docstring:: aiida.engine.processes.functions.calcfunction
          :summary:
   * - :py:obj:`construct_awaitable <aiida.engine.processes.workchains.awaitable.construct_awaitable>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.construct_awaitable
          :summary:
   * - :py:obj:`get_object_loader <aiida.engine.persistence.get_object_loader>`
     - .. autodoc2-docstring:: aiida.engine.persistence.get_object_loader
          :summary:
   * - :py:obj:`interruptable_task <aiida.engine.utils.interruptable_task>`
     - .. autodoc2-docstring:: aiida.engine.utils.interruptable_task
          :summary:
   * - :py:obj:`is_process_function <aiida.engine.utils.is_process_function>`
     - .. autodoc2-docstring:: aiida.engine.utils.is_process_function
          :summary:
   * - :py:obj:`process_handler <aiida.engine.processes.workchains.utils.process_handler>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.process_handler
          :summary:
   * - :py:obj:`run <aiida.engine.launch.run>`
     - .. autodoc2-docstring:: aiida.engine.launch.run
          :summary:
   * - :py:obj:`run_get_node <aiida.engine.launch.run_get_node>`
     - .. autodoc2-docstring:: aiida.engine.launch.run_get_node
          :summary:
   * - :py:obj:`run_get_pk <aiida.engine.launch.run_get_pk>`
     - .. autodoc2-docstring:: aiida.engine.launch.run_get_pk
          :summary:
   * - :py:obj:`submit <aiida.engine.launch.submit>`
     - .. autodoc2-docstring:: aiida.engine.launch.submit
          :summary:
   * - :py:obj:`workfunction <aiida.engine.processes.functions.workfunction>`
     - .. autodoc2-docstring:: aiida.engine.processes.functions.workfunction
          :summary:

Data
~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`OutputPort <aiida.engine.processes.ports.OutputPort>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.OutputPort
          :summary:
   * - :py:obj:`PORT_NAMESPACE_SEPARATOR <aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR>`
     - .. autodoc2-docstring:: aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR
          :summary:
   * - :py:obj:`ToContext <aiida.engine.processes.workchains.context.ToContext>`
     - .. autodoc2-docstring:: aiida.engine.processes.workchains.context.ToContext
          :summary:

External
~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`ProcessState <plumpy.process_states.ProcessState>`
     - .. autodoc2-docstring:: plumpy.process_states.ProcessState
          :summary:
   * - :py:obj:`if_ <plumpy.workchains.if_>`
     - .. autodoc2-docstring:: plumpy.workchains.if_
          :summary:
   * - :py:obj:`return_ <plumpy.workchains.return_>`
     - .. autodoc2-docstring:: plumpy.workchains.return_
          :summary:
   * - :py:obj:`while_ <plumpy.workchains.while_>`
     - .. autodoc2-docstring:: plumpy.workchains.while_
          :summary:

API
~~~

.. py:class:: AiiDAPersister
   :canonical: aiida.engine.persistence.AiiDAPersister

   Bases: :py:obj:`plumpy.persistence.Persister`

   .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister

   .. py:method:: save_checkpoint(process: aiida.engine.processes.process.Process, tag: typing.Optional[str] = None)
      :canonical: aiida.engine.persistence.AiiDAPersister.save_checkpoint

      .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.save_checkpoint

   .. py:method:: load_checkpoint(pid: typing.Hashable, tag: typing.Optional[str] = None) -> plumpy.persistence.Bundle
      :canonical: aiida.engine.persistence.AiiDAPersister.load_checkpoint

      .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.load_checkpoint

   .. py:method:: get_checkpoints()
      :canonical: aiida.engine.persistence.AiiDAPersister.get_checkpoints

      .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.get_checkpoints

   .. py:method:: get_process_checkpoints(pid: typing.Hashable)
      :canonical: aiida.engine.persistence.AiiDAPersister.get_process_checkpoints

      .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.get_process_checkpoints

   .. py:method:: delete_checkpoint(pid: typing.Hashable, tag: typing.Optional[str] = None) -> None
      :canonical: aiida.engine.persistence.AiiDAPersister.delete_checkpoint

      .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.delete_checkpoint

   .. py:method:: delete_process_checkpoints(pid: typing.Hashable)
      :canonical: aiida.engine.persistence.AiiDAPersister.delete_process_checkpoints

      .. autodoc2-docstring:: aiida.engine.persistence.AiiDAPersister.delete_process_checkpoints

.. py:class:: Awaitable
   :canonical: aiida.engine.processes.workchains.awaitable.Awaitable

   Bases: :py:obj:`plumpy.utils.AttributesDict`

   .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.Awaitable

.. py:class:: AwaitableAction(*args, **kwds)
   :canonical: aiida.engine.processes.workchains.awaitable.AwaitableAction

   Bases: :py:obj:`enum.Enum`

   .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction.__init__

   .. py:attribute:: ASSIGN
      :canonical: aiida.engine.processes.workchains.awaitable.AwaitableAction.ASSIGN
      :value: 'assign'

      .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction.ASSIGN

   .. py:attribute:: APPEND
      :canonical: aiida.engine.processes.workchains.awaitable.AwaitableAction.APPEND
      :value: 'append'

      .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableAction.APPEND

.. py:class:: AwaitableTarget(*args, **kwds)
   :canonical: aiida.engine.processes.workchains.awaitable.AwaitableTarget

   Bases: :py:obj:`enum.Enum`

   .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget.__init__

   .. py:attribute:: PROCESS
      :canonical: aiida.engine.processes.workchains.awaitable.AwaitableTarget.PROCESS
      :value: 'process'

      .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.AwaitableTarget.PROCESS

.. py:class:: BaseRestartWorkChain(*args, **kwargs)
   :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain

   Bases: :py:obj:`aiida.engine.processes.workchains.workchain.WorkChain`

   .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.__init__

   .. py:attribute:: _process_class
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._process_class
      :type: typing.Optional[typing.Type[aiida.engine.processes.Process]]
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._process_class

   .. py:attribute:: _considered_handlers_extra
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._considered_handlers_extra
      :value: 'considered_handlers'

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._considered_handlers_extra

   .. py:property:: process_class
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.process_class
      :type: typing.Type[aiida.engine.processes.process.Process]

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.process_class

   .. py:method:: define(spec: aiida.engine.processes.ProcessSpec) -> None
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.define
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.define

   .. py:method:: setup() -> None
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.setup

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.setup

   .. py:method:: should_run_process() -> bool
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.should_run_process

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.should_run_process

   .. py:method:: run_process() -> aiida.engine.processes.workchains.context.ToContext
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.run_process

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.run_process

   .. py:method:: inspect_process() -> typing.Optional[aiida.engine.processes.ExitCode]
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.inspect_process

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.inspect_process

   .. py:method:: get_outputs(node) -> typing.Mapping[str, aiida.orm.Node]
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_outputs

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_outputs

   .. py:method:: results() -> typing.Optional[aiida.engine.processes.ExitCode]
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.results

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.results

   .. py:method:: is_process_handler(process_handler_name: typing.Union[str, types.FunctionType]) -> bool
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.is_process_handler
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.is_process_handler

   .. py:method:: get_process_handlers() -> typing.List[types.FunctionType]
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers

   .. py:method:: get_process_handlers_by_priority() -> typing.List[typing.Tuple[int, types.FunctionType]]
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers_by_priority

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.get_process_handlers_by_priority

   .. py:method:: on_terminated()
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.on_terminated

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain.on_terminated

   .. py:method:: _wrap_bare_dict_inputs(port_namespace: aiida.engine.processes.PortNamespace, inputs: typing.Dict[str, typing.Any]) -> aiida.common.AttributeDict
      :canonical: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._wrap_bare_dict_inputs

      .. autodoc2-docstring:: aiida.engine.processes.workchains.restart.BaseRestartWorkChain._wrap_bare_dict_inputs

.. py:class:: CalcJob(*args, **kwargs)
   :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob

   Bases: :py:obj:`aiida.engine.processes.process.Process`

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.__init__

   .. py:attribute:: _node_class
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._node_class
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._node_class

   .. py:attribute:: _spec_class
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._spec_class
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._spec_class

   .. py:attribute:: link_label_retrieved
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.link_label_retrieved
      :type: str
      :value: 'retrieved'

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.link_label_retrieved

   .. py:method:: define(spec: aiida.engine.processes.process_spec.CalcJobProcessSpec) -> None
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.define
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.define

   .. py:method:: spec_options()
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.spec_options

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.spec_options

   .. py:method:: get_importer(entry_point_name: str | None = None) -> aiida.engine.processes.calcjobs.importer.CalcJobImporter
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_importer
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_importer

   .. py:property:: options
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.options
      :type: aiida.common.AttributeDict

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.options

   .. py:method:: get_state_classes() -> typing.Dict[typing.Hashable, typing.Type[plumpy.process_states.State]]
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_state_classes
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.get_state_classes

   .. py:property:: node
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.node
      :type: aiida.orm.CalcJobNode

   .. py:method:: on_terminated() -> None
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.on_terminated

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.on_terminated

   .. py:method:: run() -> typing.Union[plumpy.process_states.Stop, int, plumpy.process_states.Wait]
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.run

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.run

   .. py:method:: prepare_for_submission(folder: aiida.common.folders.Folder) -> aiida.common.datastructures.CalcInfo
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.prepare_for_submission
      :abstractmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.prepare_for_submission

   .. py:method:: _setup_metadata(metadata: dict) -> None
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_metadata

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_metadata

   .. py:method:: _setup_inputs() -> None
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_inputs

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._setup_inputs

   .. py:method:: _perform_dry_run()
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_dry_run

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_dry_run

   .. py:method:: _perform_import()
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_import

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob._perform_import

   .. py:method:: parse(retrieved_temporary_folder: typing.Optional[str] = None, existing_exit_code: aiida.engine.processes.exit_code.ExitCode | None = None) -> aiida.engine.processes.exit_code.ExitCode
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse

   .. py:method:: terminate(exit_code: aiida.engine.processes.exit_code.ExitCode) -> aiida.engine.processes.exit_code.ExitCode
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.terminate
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.terminate

   .. py:method:: parse_scheduler_output(retrieved: aiida.orm.Node) -> typing.Optional[aiida.engine.processes.exit_code.ExitCode]
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_scheduler_output

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_scheduler_output

   .. py:method:: parse_retrieved_output(retrieved_temporary_folder: typing.Optional[str] = None) -> typing.Optional[aiida.engine.processes.exit_code.ExitCode]
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_retrieved_output

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.parse_retrieved_output

   .. py:method:: presubmit(folder: aiida.common.folders.Folder) -> aiida.common.datastructures.CalcInfo
      :canonical: aiida.engine.processes.calcjobs.calcjob.CalcJob.presubmit

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.calcjob.CalcJob.presubmit

.. py:class:: CalcJobImporter
   :canonical: aiida.engine.processes.calcjobs.importer.CalcJobImporter

   Bases: :py:obj:`abc.ABC`

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.importer.CalcJobImporter

   .. py:method:: parse_remote_data(remote_data: aiida.orm.RemoteData, **kwargs) -> typing.Dict[str, typing.Union[aiida.orm.Node, typing.Dict]]
      :canonical: aiida.engine.processes.calcjobs.importer.CalcJobImporter.parse_remote_data
      :abstractmethod:
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.importer.CalcJobImporter.parse_remote_data

.. py:class:: CalcJobOutputPort(*args, **kwargs)
   :canonical: aiida.engine.processes.ports.CalcJobOutputPort

   Bases: :py:obj:`plumpy.ports.OutputPort`

   .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort.__init__

   .. py:property:: pass_to_parser
      :canonical: aiida.engine.processes.ports.CalcJobOutputPort.pass_to_parser
      :type: bool

      .. autodoc2-docstring:: aiida.engine.processes.ports.CalcJobOutputPort.pass_to_parser

.. py:class:: CalcJobProcessSpec()
   :canonical: aiida.engine.processes.process_spec.CalcJobProcessSpec

   Bases: :py:obj:`aiida.engine.processes.process_spec.ProcessSpec`

   .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec.__init__

   .. py:attribute:: OUTPUT_PORT_TYPE
      :canonical: aiida.engine.processes.process_spec.CalcJobProcessSpec.OUTPUT_PORT_TYPE
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec.OUTPUT_PORT_TYPE

   .. py:property:: default_output_node
      :canonical: aiida.engine.processes.process_spec.CalcJobProcessSpec.default_output_node
      :type: typing.Optional[str]

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.CalcJobProcessSpec.default_output_node

.. py:class:: DaemonClient(profile: aiida.manage.configuration.profile.Profile)
   :canonical: aiida.engine.daemon.client.DaemonClient

   .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.__init__

   .. py:attribute:: DAEMON_ERROR_NOT_RUNNING
      :canonical: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_NOT_RUNNING
      :value: 'daemon-error-not-running'

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_NOT_RUNNING

   .. py:attribute:: DAEMON_ERROR_TIMEOUT
      :canonical: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_TIMEOUT
      :value: 'daemon-error-timeout'

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.DAEMON_ERROR_TIMEOUT

   .. py:attribute:: _DAEMON_NAME
      :canonical: aiida.engine.daemon.client.DaemonClient._DAEMON_NAME
      :value: 'aiida-{name}'

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._DAEMON_NAME

   .. py:attribute:: _ENDPOINT_PROTOCOL
      :canonical: aiida.engine.daemon.client.DaemonClient._ENDPOINT_PROTOCOL
      :value: None

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._ENDPOINT_PROTOCOL

   .. py:property:: profile
      :canonical: aiida.engine.daemon.client.DaemonClient.profile
      :type: aiida.manage.configuration.profile.Profile

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.profile

   .. py:property:: daemon_name
      :canonical: aiida.engine.daemon.client.DaemonClient.daemon_name
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.daemon_name

   .. py:property:: _verdi_bin
      :canonical: aiida.engine.daemon.client.DaemonClient._verdi_bin
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._verdi_bin

   .. py:method:: cmd_start_daemon(number_workers: int = 1, foreground: bool = False) -> list[str]
      :canonical: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon

   .. py:property:: cmd_start_daemon_worker
      :canonical: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon_worker
      :type: list[str]

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.cmd_start_daemon_worker

   .. py:property:: loglevel
      :canonical: aiida.engine.daemon.client.DaemonClient.loglevel
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.loglevel

   .. py:property:: virtualenv
      :canonical: aiida.engine.daemon.client.DaemonClient.virtualenv
      :type: str | None

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.virtualenv

   .. py:property:: circus_log_file
      :canonical: aiida.engine.daemon.client.DaemonClient.circus_log_file
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_log_file

   .. py:property:: circus_pid_file
      :canonical: aiida.engine.daemon.client.DaemonClient.circus_pid_file
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_pid_file

   .. py:property:: circus_port_file
      :canonical: aiida.engine.daemon.client.DaemonClient.circus_port_file
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_port_file

   .. py:property:: circus_socket_file
      :canonical: aiida.engine.daemon.client.DaemonClient.circus_socket_file
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_socket_file

   .. py:property:: circus_socket_endpoints
      :canonical: aiida.engine.daemon.client.DaemonClient.circus_socket_endpoints
      :type: dict[str, str]

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.circus_socket_endpoints

   .. py:property:: daemon_log_file
      :canonical: aiida.engine.daemon.client.DaemonClient.daemon_log_file
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.daemon_log_file

   .. py:property:: daemon_pid_file
      :canonical: aiida.engine.daemon.client.DaemonClient.daemon_pid_file
      :type: str

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.daemon_pid_file

   .. py:method:: get_circus_port() -> int
      :canonical: aiida.engine.daemon.client.DaemonClient.get_circus_port

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_circus_port

   .. py:method:: get_env() -> dict[str, str]
      :canonical: aiida.engine.daemon.client.DaemonClient.get_env
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_env

   .. py:method:: get_circus_socket_directory() -> str
      :canonical: aiida.engine.daemon.client.DaemonClient.get_circus_socket_directory

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_circus_socket_directory

   .. py:method:: get_daemon_pid() -> int | None
      :canonical: aiida.engine.daemon.client.DaemonClient.get_daemon_pid

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_daemon_pid

   .. py:property:: is_daemon_running
      :canonical: aiida.engine.daemon.client.DaemonClient.is_daemon_running
      :type: bool

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.is_daemon_running

   .. py:method:: delete_circus_socket_directory() -> None
      :canonical: aiida.engine.daemon.client.DaemonClient.delete_circus_socket_directory

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.delete_circus_socket_directory

   .. py:method:: get_available_port()
      :canonical: aiida.engine.daemon.client.DaemonClient.get_available_port
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_available_port

   .. py:method:: get_controller_endpoint()
      :canonical: aiida.engine.daemon.client.DaemonClient.get_controller_endpoint

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_controller_endpoint

   .. py:method:: get_pubsub_endpoint()
      :canonical: aiida.engine.daemon.client.DaemonClient.get_pubsub_endpoint

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_pubsub_endpoint

   .. py:method:: get_stats_endpoint()
      :canonical: aiida.engine.daemon.client.DaemonClient.get_stats_endpoint

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_stats_endpoint

   .. py:method:: get_ipc_endpoint(endpoint)
      :canonical: aiida.engine.daemon.client.DaemonClient.get_ipc_endpoint

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_ipc_endpoint

   .. py:method:: get_tcp_endpoint(port=None)
      :canonical: aiida.engine.daemon.client.DaemonClient.get_tcp_endpoint

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_tcp_endpoint

   .. py:method:: get_client() -> circus.client.CircusClient
      :canonical: aiida.engine.daemon.client.DaemonClient.get_client

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_client

   .. py:method:: call_client(command: aiida.engine.daemon.client.JsonDictType) -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.call_client

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.call_client

   .. py:method:: get_status() -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.get_status

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_status

   .. py:method:: get_numprocesses() -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.get_numprocesses

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_numprocesses

   .. py:method:: get_worker_info() -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.get_worker_info

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_worker_info

   .. py:method:: get_daemon_info() -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.get_daemon_info

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.get_daemon_info

   .. py:method:: increase_workers(number: int) -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.increase_workers

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.increase_workers

   .. py:method:: decrease_workers(number: int) -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.decrease_workers

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.decrease_workers

   .. py:method:: stop_daemon(wait: bool = True, timeout: int = 5) -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.stop_daemon

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.stop_daemon

   .. py:method:: restart_daemon(wait: bool) -> aiida.engine.daemon.client.JsonDictType
      :canonical: aiida.engine.daemon.client.DaemonClient.restart_daemon

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.restart_daemon

   .. py:method:: start_daemon(number_workers: int = 1, foreground: bool = False, timeout: int = 5) -> None
      :canonical: aiida.engine.daemon.client.DaemonClient.start_daemon

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient.start_daemon

   .. py:method:: _await_condition(condition: typing.Callable, exception: Exception, timeout: int = 5, interval: float = 0.1)
      :canonical: aiida.engine.daemon.client.DaemonClient._await_condition
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._await_condition

   .. py:method:: _start_daemon(number_workers: int = 1, foreground: bool = False) -> None
      :canonical: aiida.engine.daemon.client.DaemonClient._start_daemon

      .. autodoc2-docstring:: aiida.engine.daemon.client.DaemonClient._start_daemon

.. py:class:: ExitCode
   :canonical: aiida.engine.processes.exit_code.ExitCode

   Bases: :py:obj:`typing.NamedTuple`

   .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode

   .. py:attribute:: status
      :canonical: aiida.engine.processes.exit_code.ExitCode.status
      :type: int
      :value: 0

      .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.status

   .. py:attribute:: message
      :canonical: aiida.engine.processes.exit_code.ExitCode.message
      :type: typing.Optional[str]
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.message

   .. py:attribute:: invalidates_cache
      :canonical: aiida.engine.processes.exit_code.ExitCode.invalidates_cache
      :type: bool
      :value: False

      .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.invalidates_cache

   .. py:method:: format(**kwargs: str) -> aiida.engine.processes.exit_code.ExitCode
      :canonical: aiida.engine.processes.exit_code.ExitCode.format

      .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCode.format

.. py:class:: ExitCodesNamespace(dictionary=None)
   :canonical: aiida.engine.processes.exit_code.ExitCodesNamespace

   Bases: :py:obj:`aiida.common.extendeddicts.AttributeDict`

   .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace.__init__

   .. py:method:: __call__(identifier: typing.Union[int, str]) -> aiida.engine.processes.exit_code.ExitCode
      :canonical: aiida.engine.processes.exit_code.ExitCodesNamespace.__call__

      .. autodoc2-docstring:: aiida.engine.processes.exit_code.ExitCodesNamespace.__call__

.. py:class:: FunctionProcess(*args, **kwargs)
   :canonical: aiida.engine.processes.functions.FunctionProcess

   Bases: :py:obj:`aiida.engine.processes.process.Process`

   .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.__init__

   .. py:attribute:: _func_args
      :canonical: aiida.engine.processes.functions.FunctionProcess._func_args
      :type: typing.Sequence[str]
      :value: ()

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess._func_args

   .. py:method:: _func(*_args, **_kwargs) -> dict
      :canonical: aiida.engine.processes.functions.FunctionProcess._func
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess._func

   .. py:method:: build(func: typing.Callable[..., typing.Any], node_class: typing.Type[aiida.orm.ProcessNode]) -> typing.Type[aiida.engine.processes.functions.FunctionProcess]
      :canonical: aiida.engine.processes.functions.FunctionProcess.build
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.build

   .. py:method:: validate_inputs(*args: typing.Any, **kwargs: typing.Any) -> None
      :canonical: aiida.engine.processes.functions.FunctionProcess.validate_inputs
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.validate_inputs

   .. py:method:: create_inputs(*args: typing.Any, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]
      :canonical: aiida.engine.processes.functions.FunctionProcess.create_inputs
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.create_inputs

   .. py:method:: args_to_dict(*args: typing.Any) -> typing.Dict[str, typing.Any]
      :canonical: aiida.engine.processes.functions.FunctionProcess.args_to_dict
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.args_to_dict

   .. py:method:: get_or_create_db_record() -> aiida.orm.ProcessNode
      :canonical: aiida.engine.processes.functions.FunctionProcess.get_or_create_db_record
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.get_or_create_db_record

   .. py:property:: process_class
      :canonical: aiida.engine.processes.functions.FunctionProcess.process_class
      :type: typing.Callable[..., typing.Any]

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.process_class

   .. py:method:: execute() -> typing.Optional[typing.Dict[str, typing.Any]]
      :canonical: aiida.engine.processes.functions.FunctionProcess.execute

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.execute

   .. py:method:: _setup_db_record() -> None
      :canonical: aiida.engine.processes.functions.FunctionProcess._setup_db_record

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess._setup_db_record

   .. py:method:: run() -> typing.Optional[aiida.engine.processes.exit_code.ExitCode]
      :canonical: aiida.engine.processes.functions.FunctionProcess.run

      .. autodoc2-docstring:: aiida.engine.processes.functions.FunctionProcess.run

.. py:class:: InputPort(*args, **kwargs)
   :canonical: aiida.engine.processes.ports.InputPort

   Bases: :py:obj:`aiida.engine.processes.ports.WithSerialize`, :py:obj:`aiida.engine.processes.ports.WithNonDb`, :py:obj:`plumpy.ports.InputPort`

   .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort.__init__

   .. py:method:: get_description() -> typing.Dict[str, str]
      :canonical: aiida.engine.processes.ports.InputPort.get_description

      .. autodoc2-docstring:: aiida.engine.processes.ports.InputPort.get_description

.. py:class:: InterruptableFuture(*, loop=None)
   :canonical: aiida.engine.utils.InterruptableFuture

   Bases: :py:obj:`asyncio.Future`

   .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture.__init__

   .. py:method:: interrupt(reason: Exception) -> None
      :canonical: aiida.engine.utils.InterruptableFuture.interrupt

      .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture.interrupt

   .. py:method:: with_interrupt(coro: typing.Awaitable[typing.Any]) -> typing.Any
      :canonical: aiida.engine.utils.InterruptableFuture.with_interrupt
      :async:

      .. autodoc2-docstring:: aiida.engine.utils.InterruptableFuture.with_interrupt

.. py:class:: JobManager(transport_queue: aiida.engine.transports.TransportQueue)
   :canonical: aiida.engine.processes.calcjobs.manager.JobManager

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager.__init__

   .. py:method:: get_jobs_list(authinfo: aiida.orm.AuthInfo) -> aiida.engine.processes.calcjobs.manager.JobsList
      :canonical: aiida.engine.processes.calcjobs.manager.JobManager.get_jobs_list

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager.get_jobs_list

   .. py:method:: request_job_info_update(authinfo: aiida.orm.AuthInfo, job_id: typing.Hashable) -> typing.Iterator[asyncio.Future[JobInfo]]
      :canonical: aiida.engine.processes.calcjobs.manager.JobManager.request_job_info_update

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobManager.request_job_info_update

.. py:class:: JobsList(authinfo: aiida.orm.AuthInfo, transport_queue: aiida.engine.transports.TransportQueue, last_updated: typing.Optional[float] = None)
   :canonical: aiida.engine.processes.calcjobs.manager.JobsList

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.__init__

   .. py:property:: logger
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList.logger
      :type: logging.Logger

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.logger

   .. py:method:: get_minimum_update_interval() -> float
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList.get_minimum_update_interval

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.get_minimum_update_interval

   .. py:property:: last_updated
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList.last_updated
      :type: typing.Optional[float]

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.last_updated

   .. py:method:: _get_jobs_from_scheduler() -> typing.Dict[typing.Hashable, aiida.schedulers.datastructures.JobInfo]
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_from_scheduler
      :async:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_from_scheduler

   .. py:method:: _update_job_info() -> None
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._update_job_info
      :async:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._update_job_info

   .. py:method:: request_job_info_update(job_id: typing.Hashable) -> typing.Iterator[asyncio.Future[JobInfo]]
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList.request_job_info_update

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList.request_job_info_update

   .. py:method:: _ensure_updating() -> None
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._ensure_updating

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._ensure_updating

   .. py:method:: _has_job_state_changed(old: typing.Optional[aiida.schedulers.datastructures.JobInfo], new: typing.Optional[aiida.schedulers.datastructures.JobInfo]) -> bool
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._has_job_state_changed
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._has_job_state_changed

   .. py:method:: _get_next_update_delay() -> float
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._get_next_update_delay

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._get_next_update_delay

   .. py:method:: _update_requests_outstanding() -> bool
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._update_requests_outstanding

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._update_requests_outstanding

   .. py:method:: _get_jobs_with_scheduler() -> typing.List[str]
      :canonical: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_with_scheduler

      .. autodoc2-docstring:: aiida.engine.processes.calcjobs.manager.JobsList._get_jobs_with_scheduler

.. py:class:: ObjectLoader
   :canonical: aiida.engine.persistence.ObjectLoader

   Bases: :py:obj:`plumpy.loaders.DefaultObjectLoader`

   .. autodoc2-docstring:: aiida.engine.persistence.ObjectLoader

   .. py:method:: load_object(identifier: str) -> typing.Any
      :canonical: aiida.engine.persistence.ObjectLoader.load_object

      .. autodoc2-docstring:: aiida.engine.persistence.ObjectLoader.load_object

.. py:data:: OutputPort
   :canonical: aiida.engine.processes.ports.OutputPort
   :value: None

   .. autodoc2-docstring:: aiida.engine.processes.ports.OutputPort

.. py:data:: PORT_NAMESPACE_SEPARATOR
   :canonical: aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR
   :value: '__'

   .. autodoc2-docstring:: aiida.engine.processes.ports.PORT_NAMESPACE_SEPARATOR

.. py:exception:: PastException()
   :canonical: aiida.engine.exceptions.PastException

   Bases: :py:obj:`aiida.common.exceptions.AiidaException`

   .. autodoc2-docstring:: aiida.engine.exceptions.PastException

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.exceptions.PastException.__init__

.. py:class:: PortNamespace(*args, **kwargs)
   :canonical: aiida.engine.processes.ports.PortNamespace

   Bases: :py:obj:`aiida.engine.processes.ports.WithNonDb`, :py:obj:`plumpy.ports.PortNamespace`

   .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.__init__

   .. py:method:: __setitem__(key: str, port: plumpy.ports.Port) -> None
      :canonical: aiida.engine.processes.ports.PortNamespace.__setitem__

      .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.__setitem__

   .. py:method:: validate_port_name(port_name: str) -> None
      :canonical: aiida.engine.processes.ports.PortNamespace.validate_port_name
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.validate_port_name

   .. py:method:: serialize(mapping: typing.Optional[typing.Dict[str, typing.Any]], breadcrumbs: typing.Sequence[str] = ()) -> typing.Optional[typing.Dict[str, typing.Any]]
      :canonical: aiida.engine.processes.ports.PortNamespace.serialize

      .. autodoc2-docstring:: aiida.engine.processes.ports.PortNamespace.serialize

.. py:class:: Process(inputs: typing.Optional[typing.Dict[str, typing.Any]] = None, logger: typing.Optional[logging.Logger] = None, runner: typing.Optional[aiida.engine.runners.Runner] = None, parent_pid: typing.Optional[int] = None, enable_persistence: bool = True)
   :canonical: aiida.engine.processes.process.Process

   Bases: :py:obj:`plumpy.processes.Process`

   .. autodoc2-docstring:: aiida.engine.processes.process.Process

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.process.Process.__init__

   .. py:attribute:: _node_class
      :canonical: aiida.engine.processes.process.Process._node_class
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._node_class

   .. py:attribute:: _spec_class
      :canonical: aiida.engine.processes.process.Process._spec_class
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._spec_class

   .. py:attribute:: SINGLE_OUTPUT_LINKNAME
      :canonical: aiida.engine.processes.process.Process.SINGLE_OUTPUT_LINKNAME
      :type: str
      :value: 'result'

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.SINGLE_OUTPUT_LINKNAME

   .. py:class:: SaveKeys(*args, **kwds)
      :canonical: aiida.engine.processes.process.Process.SaveKeys

      Bases: :py:obj:`enum.Enum`

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.SaveKeys

      .. rubric:: Initialization

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.SaveKeys.__init__

      .. py:attribute:: CALC_ID
         :canonical: aiida.engine.processes.process.Process.SaveKeys.CALC_ID
         :type: str
         :value: 'calc_id'

         .. autodoc2-docstring:: aiida.engine.processes.process.Process.SaveKeys.CALC_ID

   .. py:method:: spec() -> aiida.engine.processes.process_spec.ProcessSpec
      :canonical: aiida.engine.processes.process.Process.spec
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.spec

   .. py:method:: define(spec: aiida.engine.processes.process_spec.ProcessSpec) -> None
      :canonical: aiida.engine.processes.process.Process.define
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.define

   .. py:method:: get_builder() -> aiida.engine.processes.builder.ProcessBuilder
      :canonical: aiida.engine.processes.process.Process.get_builder
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_builder

   .. py:method:: get_or_create_db_record() -> aiida.orm.ProcessNode
      :canonical: aiida.engine.processes.process.Process.get_or_create_db_record
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_or_create_db_record

   .. py:method:: init() -> None
      :canonical: aiida.engine.processes.process.Process.init

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.init

   .. py:method:: get_exit_statuses(exit_code_labels: typing.Iterable[str]) -> typing.List[int]
      :canonical: aiida.engine.processes.process.Process.get_exit_statuses
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_exit_statuses

   .. py:method:: exit_codes() -> aiida.engine.processes.exit_code.ExitCodesNamespace
      :canonical: aiida.engine.processes.process.Process.exit_codes

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.exit_codes

   .. py:method:: spec_metadata() -> aiida.engine.processes.ports.PortNamespace
      :canonical: aiida.engine.processes.process.Process.spec_metadata

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.spec_metadata

   .. py:property:: node
      :canonical: aiida.engine.processes.process.Process.node
      :type: aiida.orm.ProcessNode

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.node

   .. py:property:: uuid
      :canonical: aiida.engine.processes.process.Process.uuid
      :type: str

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.uuid

   .. py:property:: metadata
      :canonical: aiida.engine.processes.process.Process.metadata
      :type: aiida.common.extendeddicts.AttributeDict

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.metadata

   .. py:method:: _save_checkpoint() -> None
      :canonical: aiida.engine.processes.process.Process._save_checkpoint

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._save_checkpoint

   .. py:method:: save_instance_state(out_state: typing.MutableMapping[str, typing.Any], save_context: typing.Optional[plumpy.persistence.LoadSaveContext]) -> None
      :canonical: aiida.engine.processes.process.Process.save_instance_state

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.save_instance_state

   .. py:method:: get_provenance_inputs_iterator() -> typing.Iterator[typing.Tuple[str, typing.Union[aiida.engine.processes.ports.InputPort, aiida.engine.processes.ports.PortNamespace]]]
      :canonical: aiida.engine.processes.process.Process.get_provenance_inputs_iterator

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_provenance_inputs_iterator

   .. py:method:: load_instance_state(saved_state: typing.MutableMapping[str, typing.Any], load_context: plumpy.persistence.LoadSaveContext) -> None
      :canonical: aiida.engine.processes.process.Process.load_instance_state

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.load_instance_state

   .. py:method:: kill(msg: typing.Union[str, None] = None) -> typing.Union[bool, plumpy.futures.Future]
      :canonical: aiida.engine.processes.process.Process.kill

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.kill

   .. py:method:: out(output_port: str, value: typing.Any = None) -> None
      :canonical: aiida.engine.processes.process.Process.out

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.out

   .. py:method:: out_many(out_dict: typing.Dict[str, typing.Any]) -> None
      :canonical: aiida.engine.processes.process.Process.out_many

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.out_many

   .. py:method:: on_create() -> None
      :canonical: aiida.engine.processes.process.Process.on_create

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_create

   .. py:method:: on_entered(from_state: typing.Optional[plumpy.process_states.State]) -> None
      :canonical: aiida.engine.processes.process.Process.on_entered

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_entered

   .. py:method:: on_terminated() -> None
      :canonical: aiida.engine.processes.process.Process.on_terminated

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_terminated

   .. py:method:: on_except(exc_info: typing.Tuple[typing.Any, Exception, types.TracebackType]) -> None
      :canonical: aiida.engine.processes.process.Process.on_except

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_except

   .. py:method:: on_finish(result: typing.Union[int, aiida.engine.processes.exit_code.ExitCode], successful: bool) -> None
      :canonical: aiida.engine.processes.process.Process.on_finish

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_finish

   .. py:method:: on_paused(msg: typing.Optional[str] = None) -> None
      :canonical: aiida.engine.processes.process.Process.on_paused

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_paused

   .. py:method:: on_playing() -> None
      :canonical: aiida.engine.processes.process.Process.on_playing

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_playing

   .. py:method:: on_output_emitting(output_port: str, value: typing.Any) -> None
      :canonical: aiida.engine.processes.process.Process.on_output_emitting

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.on_output_emitting

   .. py:method:: set_status(status: typing.Optional[str]) -> None
      :canonical: aiida.engine.processes.process.Process.set_status

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.set_status

   .. py:method:: submit(process: typing.Type[aiida.engine.processes.process.Process], **kwargs) -> aiida.orm.ProcessNode
      :canonical: aiida.engine.processes.process.Process.submit

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.submit

   .. py:property:: runner
      :canonical: aiida.engine.processes.process.Process.runner
      :type: aiida.engine.runners.Runner

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.runner

   .. py:method:: get_parent_calc() -> typing.Optional[aiida.orm.ProcessNode]
      :canonical: aiida.engine.processes.process.Process.get_parent_calc

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.get_parent_calc

   .. py:method:: build_process_type() -> str
      :canonical: aiida.engine.processes.process.Process.build_process_type
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.build_process_type

   .. py:method:: report(msg: str, *args, **kwargs) -> None
      :canonical: aiida.engine.processes.process.Process.report

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.report

   .. py:method:: _create_and_setup_db_record() -> typing.Union[int, uuid.UUID]
      :canonical: aiida.engine.processes.process.Process._create_and_setup_db_record

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._create_and_setup_db_record

   .. py:method:: encode_input_args(inputs: typing.Dict[str, typing.Any]) -> str
      :canonical: aiida.engine.processes.process.Process.encode_input_args

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.encode_input_args

   .. py:method:: decode_input_args(encoded: str) -> typing.Dict[str, typing.Any]
      :canonical: aiida.engine.processes.process.Process.decode_input_args

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.decode_input_args

   .. py:method:: update_outputs() -> None
      :canonical: aiida.engine.processes.process.Process.update_outputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.update_outputs

   .. py:method:: _build_process_label() -> str
      :canonical: aiida.engine.processes.process.Process._build_process_label

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._build_process_label

   .. py:method:: _setup_db_record() -> None
      :canonical: aiida.engine.processes.process.Process._setup_db_record

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_db_record

   .. py:method:: _setup_version_info() -> None
      :canonical: aiida.engine.processes.process.Process._setup_version_info

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_version_info

   .. py:method:: _setup_metadata(metadata: dict) -> None
      :canonical: aiida.engine.processes.process.Process._setup_metadata

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_metadata

   .. py:method:: _setup_inputs() -> None
      :canonical: aiida.engine.processes.process.Process._setup_inputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._setup_inputs

   .. py:method:: _flat_inputs() -> typing.Dict[str, typing.Any]
      :canonical: aiida.engine.processes.process.Process._flat_inputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._flat_inputs

   .. py:method:: _flat_outputs() -> typing.Dict[str, typing.Any]
      :canonical: aiida.engine.processes.process.Process._flat_outputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._flat_outputs

   .. py:method:: _flatten_inputs(port: typing.Union[None, aiida.engine.processes.ports.InputPort, aiida.engine.processes.ports.PortNamespace], port_value: typing.Any, parent_name: str = '', separator: str = PORT_NAMESPACE_SEPARATOR) -> typing.List[typing.Tuple[str, typing.Any]]
      :canonical: aiida.engine.processes.process.Process._flatten_inputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._flatten_inputs

   .. py:method:: _flatten_outputs(port: typing.Union[None, aiida.engine.processes.ports.OutputPort, aiida.engine.processes.ports.PortNamespace], port_value: typing.Any, parent_name: str = '', separator: str = PORT_NAMESPACE_SEPARATOR) -> typing.List[typing.Tuple[str, typing.Any]]
      :canonical: aiida.engine.processes.process.Process._flatten_outputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._flatten_outputs

   .. py:method:: exposed_inputs(process_class: typing.Type[aiida.engine.processes.process.Process], namespace: typing.Optional[str] = None, agglomerate: bool = True) -> aiida.common.extendeddicts.AttributeDict
      :canonical: aiida.engine.processes.process.Process.exposed_inputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.exposed_inputs

   .. py:method:: exposed_outputs(node: aiida.orm.ProcessNode, process_class: typing.Type[aiida.engine.processes.process.Process], namespace: typing.Optional[str] = None, agglomerate: bool = True) -> aiida.common.extendeddicts.AttributeDict
      :canonical: aiida.engine.processes.process.Process.exposed_outputs

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.exposed_outputs

   .. py:method:: _get_namespace_list(namespace: typing.Optional[str] = None, agglomerate: bool = True) -> typing.List[typing.Optional[str]]
      :canonical: aiida.engine.processes.process.Process._get_namespace_list
      :staticmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process._get_namespace_list

   .. py:method:: is_valid_cache(node: aiida.orm.ProcessNode) -> bool
      :canonical: aiida.engine.processes.process.Process.is_valid_cache
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.process.Process.is_valid_cache

.. py:class:: ProcessBuilder(process_class: typing.Type[aiida.engine.processes.process.Process])
   :canonical: aiida.engine.processes.builder.ProcessBuilder

   Bases: :py:obj:`aiida.engine.processes.builder.ProcessBuilderNamespace`

   .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder.__init__

   .. py:property:: process_class
      :canonical: aiida.engine.processes.builder.ProcessBuilder.process_class
      :type: typing.Type[aiida.engine.processes.process.Process]

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder.process_class

   .. py:method:: _repr_pretty_(p, _) -> str
      :canonical: aiida.engine.processes.builder.ProcessBuilder._repr_pretty_

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilder._repr_pretty_

.. py:class:: ProcessBuilderNamespace(port_namespace: aiida.engine.processes.ports.PortNamespace)
   :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace

   Bases: :py:obj:`collections.abc.MutableMapping`

   .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__init__

   .. py:method:: __setattr__(attr: str, value: typing.Any) -> None
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__setattr__

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__setattr__

   .. py:method:: __repr__()
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__repr__

   .. py:method:: __dir__()
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__dir__

   .. py:method:: __iter__()
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__iter__

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__iter__

   .. py:method:: __len__()
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__len__

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__len__

   .. py:method:: __getitem__(item)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__getitem__

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__getitem__

   .. py:method:: __setitem__(item, value)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__setitem__

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__setitem__

   .. py:method:: __delitem__(item)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__delitem__

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace.__delitem__

   .. py:method:: __delattr__(item)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace.__delattr__

   .. py:method:: _recursive_merge(dictionary, key, value)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._recursive_merge

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._recursive_merge

   .. py:method:: _merge(*args, **kwds)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._merge

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._merge

   .. py:method:: _update(*args, **kwds)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._update

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._update

   .. py:method:: _inputs(prune: bool = False) -> dict
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._inputs

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._inputs

   .. py:method:: _prune(value)
      :canonical: aiida.engine.processes.builder.ProcessBuilderNamespace._prune

      .. autodoc2-docstring:: aiida.engine.processes.builder.ProcessBuilderNamespace._prune

.. py:class:: ProcessFuture(pk: int, loop: typing.Optional[asyncio.AbstractEventLoop] = None, poll_interval: typing.Union[None, int, float] = None, communicator: typing.Optional[kiwipy.Communicator] = None)
   :canonical: aiida.engine.processes.futures.ProcessFuture

   Bases: :py:obj:`asyncio.Future`

   .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture.__init__

   .. py:attribute:: _filtered
      :canonical: aiida.engine.processes.futures.ProcessFuture._filtered
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture._filtered

   .. py:method:: cleanup() -> None
      :canonical: aiida.engine.processes.futures.ProcessFuture.cleanup

      .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture.cleanup

   .. py:method:: _poll_process(node: aiida.orm.Node, poll_interval: typing.Union[int, float]) -> None
      :canonical: aiida.engine.processes.futures.ProcessFuture._poll_process
      :async:

      .. autodoc2-docstring:: aiida.engine.processes.futures.ProcessFuture._poll_process

.. py:class:: ProcessHandlerReport
   :canonical: aiida.engine.processes.workchains.utils.ProcessHandlerReport

   Bases: :py:obj:`typing.NamedTuple`

   .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport

   .. py:attribute:: do_break
      :canonical: aiida.engine.processes.workchains.utils.ProcessHandlerReport.do_break
      :type: bool
      :value: False

      .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport.do_break

   .. py:attribute:: exit_code
      :canonical: aiida.engine.processes.workchains.utils.ProcessHandlerReport.exit_code
      :type: aiida.engine.processes.exit_code.ExitCode
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.ProcessHandlerReport.exit_code

.. py:class:: ProcessSpec()
   :canonical: aiida.engine.processes.process_spec.ProcessSpec

   Bases: :py:obj:`plumpy.process_spec.ProcessSpec`

   .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.__init__

   .. py:attribute:: METADATA_KEY
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.METADATA_KEY
      :type: str
      :value: 'metadata'

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.METADATA_KEY

   .. py:attribute:: METADATA_OPTIONS_KEY
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.METADATA_OPTIONS_KEY
      :type: str
      :value: 'options'

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.METADATA_OPTIONS_KEY

   .. py:attribute:: INPUT_PORT_TYPE
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.INPUT_PORT_TYPE
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.INPUT_PORT_TYPE

   .. py:attribute:: PORT_NAMESPACE_TYPE
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.PORT_NAMESPACE_TYPE
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.PORT_NAMESPACE_TYPE

   .. py:property:: metadata_key
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.metadata_key
      :type: str

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.metadata_key

   .. py:property:: options_key
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.options_key
      :type: str

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.options_key

   .. py:property:: exit_codes
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.exit_codes
      :type: aiida.engine.processes.exit_code.ExitCodesNamespace

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.exit_codes

   .. py:method:: exit_code(status: int, label: str, message: str, invalidates_cache: bool = False) -> None
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.exit_code

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.exit_code

   .. py:property:: ports
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.ports
      :type: aiida.engine.processes.ports.PortNamespace

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.ports

   .. py:property:: inputs
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.inputs
      :type: aiida.engine.processes.ports.PortNamespace

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.inputs

   .. py:property:: outputs
      :canonical: aiida.engine.processes.process_spec.ProcessSpec.outputs
      :type: aiida.engine.processes.ports.PortNamespace

      .. autodoc2-docstring:: aiida.engine.processes.process_spec.ProcessSpec.outputs

.. py:class:: Runner(poll_interval: typing.Union[int, float] = 0, loop: typing.Optional[asyncio.AbstractEventLoop] = None, communicator: typing.Optional[kiwipy.Communicator] = None, rmq_submit: bool = False, persister: typing.Optional[plumpy.persistence.Persister] = None)
   :canonical: aiida.engine.runners.Runner

   .. autodoc2-docstring:: aiida.engine.runners.Runner

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.runners.Runner.__init__

   .. py:attribute:: _persister
      :canonical: aiida.engine.runners.Runner._persister
      :type: typing.Optional[plumpy.persistence.Persister]
      :value: None

      .. autodoc2-docstring:: aiida.engine.runners.Runner._persister

   .. py:attribute:: _communicator
      :canonical: aiida.engine.runners.Runner._communicator
      :type: typing.Optional[kiwipy.Communicator]
      :value: None

      .. autodoc2-docstring:: aiida.engine.runners.Runner._communicator

   .. py:attribute:: _controller
      :canonical: aiida.engine.runners.Runner._controller
      :type: typing.Optional[plumpy.process_comms.RemoteProcessThreadController]
      :value: None

      .. autodoc2-docstring:: aiida.engine.runners.Runner._controller

   .. py:attribute:: _closed
      :canonical: aiida.engine.runners.Runner._closed
      :type: bool
      :value: False

      .. autodoc2-docstring:: aiida.engine.runners.Runner._closed

   .. py:method:: __enter__() -> aiida.engine.runners.Runner
      :canonical: aiida.engine.runners.Runner.__enter__

      .. autodoc2-docstring:: aiida.engine.runners.Runner.__enter__

   .. py:method:: __exit__(exc_type, exc_val, exc_tb)
      :canonical: aiida.engine.runners.Runner.__exit__

      .. autodoc2-docstring:: aiida.engine.runners.Runner.__exit__

   .. py:property:: loop
      :canonical: aiida.engine.runners.Runner.loop
      :type: asyncio.AbstractEventLoop

      .. autodoc2-docstring:: aiida.engine.runners.Runner.loop

   .. py:property:: transport
      :canonical: aiida.engine.runners.Runner.transport
      :type: aiida.engine.transports.TransportQueue

      .. autodoc2-docstring:: aiida.engine.runners.Runner.transport

   .. py:property:: persister
      :canonical: aiida.engine.runners.Runner.persister
      :type: typing.Optional[plumpy.persistence.Persister]

      .. autodoc2-docstring:: aiida.engine.runners.Runner.persister

   .. py:property:: communicator
      :canonical: aiida.engine.runners.Runner.communicator
      :type: typing.Optional[kiwipy.Communicator]

      .. autodoc2-docstring:: aiida.engine.runners.Runner.communicator

   .. py:property:: plugin_version_provider
      :canonical: aiida.engine.runners.Runner.plugin_version_provider
      :type: aiida.plugins.utils.PluginVersionProvider

      .. autodoc2-docstring:: aiida.engine.runners.Runner.plugin_version_provider

   .. py:property:: job_manager
      :canonical: aiida.engine.runners.Runner.job_manager
      :type: aiida.engine.processes.calcjobs.manager.JobManager

      .. autodoc2-docstring:: aiida.engine.runners.Runner.job_manager

   .. py:property:: controller
      :canonical: aiida.engine.runners.Runner.controller
      :type: typing.Optional[plumpy.process_comms.RemoteProcessThreadController]

      .. autodoc2-docstring:: aiida.engine.runners.Runner.controller

   .. py:property:: is_daemon_runner
      :canonical: aiida.engine.runners.Runner.is_daemon_runner
      :type: bool

      .. autodoc2-docstring:: aiida.engine.runners.Runner.is_daemon_runner

   .. py:method:: is_closed() -> bool
      :canonical: aiida.engine.runners.Runner.is_closed

      .. autodoc2-docstring:: aiida.engine.runners.Runner.is_closed

   .. py:method:: start() -> None
      :canonical: aiida.engine.runners.Runner.start

      .. autodoc2-docstring:: aiida.engine.runners.Runner.start

   .. py:method:: stop() -> None
      :canonical: aiida.engine.runners.Runner.stop

      .. autodoc2-docstring:: aiida.engine.runners.Runner.stop

   .. py:method:: run_until_complete(future: asyncio.Future) -> typing.Any
      :canonical: aiida.engine.runners.Runner.run_until_complete

      .. autodoc2-docstring:: aiida.engine.runners.Runner.run_until_complete

   .. py:method:: close() -> None
      :canonical: aiida.engine.runners.Runner.close

      .. autodoc2-docstring:: aiida.engine.runners.Runner.close

   .. py:method:: instantiate_process(process: aiida.engine.runners.TYPE_RUN_PROCESS, **inputs)
      :canonical: aiida.engine.runners.Runner.instantiate_process

      .. autodoc2-docstring:: aiida.engine.runners.Runner.instantiate_process

   .. py:method:: submit(process: aiida.engine.runners.TYPE_SUBMIT_PROCESS, **inputs: typing.Any)
      :canonical: aiida.engine.runners.Runner.submit

      .. autodoc2-docstring:: aiida.engine.runners.Runner.submit

   .. py:method:: schedule(process: aiida.engine.runners.TYPE_SUBMIT_PROCESS, *args: typing.Any, **inputs: typing.Any) -> aiida.orm.ProcessNode
      :canonical: aiida.engine.runners.Runner.schedule

      .. autodoc2-docstring:: aiida.engine.runners.Runner.schedule

   .. py:method:: _run(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Tuple[typing.Dict[str, typing.Any], aiida.orm.ProcessNode]
      :canonical: aiida.engine.runners.Runner._run

      .. autodoc2-docstring:: aiida.engine.runners.Runner._run

   .. py:method:: run(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Dict[str, typing.Any]
      :canonical: aiida.engine.runners.Runner.run

      .. autodoc2-docstring:: aiida.engine.runners.Runner.run

   .. py:method:: run_get_node(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> aiida.engine.runners.ResultAndNode
      :canonical: aiida.engine.runners.Runner.run_get_node

      .. autodoc2-docstring:: aiida.engine.runners.Runner.run_get_node

   .. py:method:: run_get_pk(process: aiida.engine.runners.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> aiida.engine.runners.ResultAndPk
      :canonical: aiida.engine.runners.Runner.run_get_pk

      .. autodoc2-docstring:: aiida.engine.runners.Runner.run_get_pk

   .. py:method:: call_on_process_finish(pk: int, callback: typing.Callable[[], typing.Any]) -> None
      :canonical: aiida.engine.runners.Runner.call_on_process_finish

      .. autodoc2-docstring:: aiida.engine.runners.Runner.call_on_process_finish

   .. py:method:: get_process_future(pk: int) -> aiida.engine.processes.futures.ProcessFuture
      :canonical: aiida.engine.runners.Runner.get_process_future

      .. autodoc2-docstring:: aiida.engine.runners.Runner.get_process_future

   .. py:method:: _poll_process(node, callback)
      :canonical: aiida.engine.runners.Runner._poll_process

      .. autodoc2-docstring:: aiida.engine.runners.Runner._poll_process

.. py:data:: ToContext
   :canonical: aiida.engine.processes.workchains.context.ToContext
   :value: None

   .. autodoc2-docstring:: aiida.engine.processes.workchains.context.ToContext

.. py:class:: WithNonDb(*args, **kwargs)
   :canonical: aiida.engine.processes.ports.WithNonDb

   .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb.__init__

   .. py:property:: non_db_explicitly_set
      :canonical: aiida.engine.processes.ports.WithNonDb.non_db_explicitly_set
      :type: bool

      .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb.non_db_explicitly_set

   .. py:property:: non_db
      :canonical: aiida.engine.processes.ports.WithNonDb.non_db
      :type: bool

      .. autodoc2-docstring:: aiida.engine.processes.ports.WithNonDb.non_db

.. py:class:: WithSerialize(*args, **kwargs)
   :canonical: aiida.engine.processes.ports.WithSerialize

   .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize.__init__

   .. py:method:: serialize(value: typing.Any) -> aiida.orm.Data
      :canonical: aiida.engine.processes.ports.WithSerialize.serialize

      .. autodoc2-docstring:: aiida.engine.processes.ports.WithSerialize.serialize

.. py:class:: WorkChain(inputs: dict | None = None, logger: logging.Logger | None = None, runner: aiida.engine.runners.Runner | None = None, enable_persistence: bool = True)
   :canonical: aiida.engine.processes.workchains.workchain.WorkChain

   Bases: :py:obj:`aiida.engine.processes.process.Process`

   .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain

   .. rubric:: Initialization

   .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.__init__

   .. py:attribute:: _node_class
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._node_class
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._node_class

   .. py:attribute:: _spec_class
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._spec_class
      :value: None

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._spec_class

   .. py:attribute:: _STEPPER_STATE
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._STEPPER_STATE
      :value: 'stepper_state'

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._STEPPER_STATE

   .. py:attribute:: _CONTEXT
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._CONTEXT
      :value: 'CONTEXT'

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._CONTEXT

   .. py:method:: spec() -> aiida.engine.processes.workchains.workchain.WorkChainSpec
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.spec
      :classmethod:

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.spec

   .. py:property:: node
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.node
      :type: aiida.orm.WorkChainNode

   .. py:property:: ctx
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.ctx
      :type: aiida.common.extendeddicts.AttributeDict

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.ctx

   .. py:method:: save_instance_state(out_state, save_context)
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.save_instance_state

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.save_instance_state

   .. py:method:: load_instance_state(saved_state, load_context)
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.load_instance_state

   .. py:method:: on_run()
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.on_run

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.on_run

   .. py:method:: _resolve_nested_context(key: str) -> tuple[aiida.common.extendeddicts.AttributeDict, str]
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._resolve_nested_context

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._resolve_nested_context

   .. py:method:: _insert_awaitable(awaitable: aiida.engine.processes.workchains.awaitable.Awaitable) -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._insert_awaitable

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._insert_awaitable

   .. py:method:: _resolve_awaitable(awaitable: aiida.engine.processes.workchains.awaitable.Awaitable, value: typing.Any) -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._resolve_awaitable

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._resolve_awaitable

   .. py:method:: to_context(**kwargs: aiida.engine.processes.workchains.awaitable.Awaitable | aiida.orm.ProcessNode) -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.to_context

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.to_context

   .. py:method:: _update_process_status() -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._update_process_status

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._update_process_status

   .. py:method:: run() -> typing.Any
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.run

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.run

   .. py:method:: _do_step() -> typing.Any
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._do_step

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._do_step

   .. py:method:: _store_nodes(data: typing.Any) -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._store_nodes

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._store_nodes

   .. py:method:: on_exiting() -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.on_exiting

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.on_exiting

   .. py:method:: on_wait(awaitables: typing.Sequence[aiida.engine.processes.workchains.awaitable.Awaitable])
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain.on_wait

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain.on_wait

   .. py:method:: _action_awaitables() -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._action_awaitables

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._action_awaitables

   .. py:method:: _on_awaitable_finished(awaitable: aiida.engine.processes.workchains.awaitable.Awaitable) -> None
      :canonical: aiida.engine.processes.workchains.workchain.WorkChain._on_awaitable_finished

      .. autodoc2-docstring:: aiida.engine.processes.workchains.workchain.WorkChain._on_awaitable_finished

.. py:function:: append_(target: typing.Union[aiida.engine.processes.workchains.awaitable.Awaitable, aiida.orm.ProcessNode]) -> aiida.engine.processes.workchains.awaitable.Awaitable
   :canonical: aiida.engine.processes.workchains.context.append_

   .. autodoc2-docstring:: aiida.engine.processes.workchains.context.append_

.. py:function:: assign_(target: typing.Union[aiida.engine.processes.workchains.awaitable.Awaitable, aiida.orm.ProcessNode]) -> aiida.engine.processes.workchains.awaitable.Awaitable
   :canonical: aiida.engine.processes.workchains.context.assign_

   .. autodoc2-docstring:: aiida.engine.processes.workchains.context.assign_

.. py:function:: calcfunction(function: aiida.engine.processes.functions.FunctionType) -> aiida.engine.processes.functions.FunctionType
   :canonical: aiida.engine.processes.functions.calcfunction

   .. autodoc2-docstring:: aiida.engine.processes.functions.calcfunction

.. py:function:: construct_awaitable(target: typing.Union[aiida.engine.processes.workchains.awaitable.Awaitable, aiida.orm.ProcessNode]) -> aiida.engine.processes.workchains.awaitable.Awaitable
   :canonical: aiida.engine.processes.workchains.awaitable.construct_awaitable

   .. autodoc2-docstring:: aiida.engine.processes.workchains.awaitable.construct_awaitable

.. py:function:: get_object_loader() -> aiida.engine.persistence.ObjectLoader
   :canonical: aiida.engine.persistence.get_object_loader

   .. autodoc2-docstring:: aiida.engine.persistence.get_object_loader

.. py:function:: interruptable_task(coro: typing.Callable[[aiida.engine.utils.InterruptableFuture], typing.Awaitable[typing.Any]], loop: typing.Optional[asyncio.AbstractEventLoop] = None) -> aiida.engine.utils.InterruptableFuture
   :canonical: aiida.engine.utils.interruptable_task

   .. autodoc2-docstring:: aiida.engine.utils.interruptable_task

.. py:function:: is_process_function(function: typing.Any) -> bool
   :canonical: aiida.engine.utils.is_process_function

   .. autodoc2-docstring:: aiida.engine.utils.is_process_function

.. py:function:: process_handler(wrapped: typing.Optional[types.FunctionType] = None, *, priority: int = 0, exit_codes: typing.Union[None, aiida.engine.processes.exit_code.ExitCode, typing.List[aiida.engine.processes.exit_code.ExitCode]] = None, enabled: bool = True) -> types.FunctionType
   :canonical: aiida.engine.processes.workchains.utils.process_handler

   .. autodoc2-docstring:: aiida.engine.processes.workchains.utils.process_handler

.. py:function:: run(process: aiida.engine.launch.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Dict[str, typing.Any]
   :canonical: aiida.engine.launch.run

   .. autodoc2-docstring:: aiida.engine.launch.run

.. py:function:: run_get_node(process: aiida.engine.launch.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Tuple[typing.Dict[str, typing.Any], aiida.orm.ProcessNode]
   :canonical: aiida.engine.launch.run_get_node

   .. autodoc2-docstring:: aiida.engine.launch.run_get_node

.. py:function:: run_get_pk(process: aiida.engine.launch.TYPE_RUN_PROCESS, *args: typing.Any, **inputs: typing.Any) -> typing.Tuple[typing.Dict[str, typing.Any], int]
   :canonical: aiida.engine.launch.run_get_pk

   .. autodoc2-docstring:: aiida.engine.launch.run_get_pk

.. py:function:: submit(process: aiida.engine.launch.TYPE_SUBMIT_PROCESS, **inputs: typing.Any) -> aiida.orm.ProcessNode
   :canonical: aiida.engine.launch.submit

   .. autodoc2-docstring:: aiida.engine.launch.submit

.. py:function:: workfunction(function: aiida.engine.processes.functions.FunctionType) -> aiida.engine.processes.functions.FunctionType
   :canonical: aiida.engine.processes.functions.workfunction

   .. autodoc2-docstring:: aiida.engine.processes.functions.workfunction