Skip to content

Conversation

@aorumbayev
Copy link
Contributor

Proposed Changes

  • Jinja api client generator under api folder under separate dependency group
  • Poe tasks for invoking generator
  • Indexer Kmd and Algod clients generated under src folder
  • Integration tests for algod

Out of PR Scope

  • algokit-oas-specs integration to auto fetch the specs - can be handled along with polytest integration once latest polytest version and configs are ready for consumption

@github-actions
Copy link

github-actions bot commented Nov 3, 2025

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/algokit_algod_client
   client.py79762122%32, 44–64, 74–104, 115–147, 157–177, 191–219, 228–246, 255–273, 283–303, 312–330, 339–357, 369–389, 401–423, 438–467, 478–502, 515–540, 552–576, 585–603, 614–636, 648–670, 680–700, 710–730, 768, 778–798, 808–828, 837–855, 865–885, 894–912, 922–946, 956–980, 990–1010, 1021–1045, 1057–1083, 1092–1110, 1120–1140, 1149–1167, 1176–1194, 1203–1221, 1231–1257, 1271–1302, 1311–1329, 1338–1356, 1365–1383, 1417, 1457, 1469–1499, 1510–1530, 1540–1560, 1609, 1618–1636, 1648–1680, 1690–1720, 1731–1762, 1789, 1798–1816, 1826–1846, 1859, 1864, 1866, 1871, 1875, 1880, 1937, 1945, 1948–1952, 1966–1969
   exceptions.py7357%13–15
src/algokit_algod_client/models
   _serde_helpers.py743454%17, 21, 28, 38–45, 49–58, 64–75, 80, 93
   block.py1081982%38–40, 49–56, 60–67
src/algokit_common
   address.py19479%7, 10, 15, 21
src/algokit_common/serde
   _core.py2573188%122, 128, 196, 209, 219, 221, 234, 238, 241–242, 250, 286–287, 301, 305–308, 315–316, 326–327, 362, 390–391, 412, 418, 427, 433, 442, 448
   _primitives.py732467%5–7, 11–13, 17, 23, 35–37, 41–43, 47–49, 55, 60–61, 122, 126, 128, 130
src/algokit_indexer_client
   client.py56345619%33, 44–62, 79–110, 125–156, 170–198, 213–244, 259–290, 316–380, 391–413, 425–447, 464–501, 517–551, 563–585, 613–683, 695–717, 770–820, 833–858, 880, 883, 886, 889, 905, 922–960, 980–1024, 1059, 1062, 1065, 1068, 1071, 1074, 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1132, 1141–1157, 1160–1167, 1223, 1226–1227, 1231, 1234–1238, 1241–1248, 1251–1256
src/algokit_indexer_client/models
   _serde_helpers.py745230%16–23, 28, 38–45, 49–58, 64–75, 79–86, 92–95, 99–102
src/algokit_kmd_client
   client.py39526433%32, 75, 85–116, 126–157, 167–198, 208–239, 249–280, 321, 332–363, 373–404, 414–445, 455–486, 527, 568, 578–609, 637, 651, 692, 702–733, 743–774, 784–815, 825–856, 866–897, 907–938, 947–965, 977–983, 986–990, 994, 997–1000, 1056, 1059–1060, 1064, 1067–1071, 1074–1081, 1084–1089
   exceptions.py7357%13–15
src/algokit_kmd_client/models
   _serde_helpers.py745230%16–23, 28, 38–45, 49–58, 64–75, 79–86, 92–95, 99–102
src/algokit_transact/codec
   signed.py35586%18, 20, 23, 39, 43
   transaction.py41295%16, 65
src/algokit_transact/models
   app_call.py32220337%67–81, 85–88, 96, 98, 101, 114, 119, 125, 132–144, 148–251, 295–298, 306, 312–314, 326, 330–332, 341, 354–355, 361–362, 366, 369–375, 378–389, 392–396, 399–402, 405–413, 416–426, 429–436
   state_proof.py73593%96, 108, 119–127
src/algokit_transact/ops
   fees.py20195%28
   group.py21290%15, 22
   validate.py209399%60, 74, 76
src/algokit_transact/signing
   multisig.py541965%17, 19, 21, 32–45, 60, 66, 68, 73
   types.py28968%10, 14, 18–24
src/algokit_utils
   _debugging.py1391788%40–42, 45, 54, 62, 81, 87, 96, 110–114, 133, 141–143
   account.py330%1–12
   algorand.py1051487%66–67, 81–82, 112–113, 140–141, 176–177, 321, 344, 360, 379
   application_client.py330%1–11
   application_specification.py770%1–39
   asset.py330%1–32
   config.py782963%23, 30–34, 73–74, 90, 95, 100, 111–116, 140–156
   deploy.py330%1–10
   dispenser_api.py330%1–10
   logic_error.py330%1–10
   network_clients.py330%1–9
src/algokit_utils/_legacy_v2
   _ensure_funded.py722960%62–65, 69–71, 77–81, 87–89, 95–112, 135–148
   _transfer.py701579%71–78, 109–127, 136, 154–155
   account.py891188%71–75, 109, 126, 156, 159, 196, 203
   application_client.py49439320%81, 162–202, 206, 210, 214, 218, 222–226, 230, 234, 245–247, 258–262, 319–376, 387–394, 440–450, 461–463, 504–511, 523, 562–569, 580–581, 619–643, 654, 692–699, 710, 748–755, 765, 778–784, 788–790, 798–803, 811–835, 840–863, 866–888, 893–907, 910–911, 914–925, 928–929, 943–969, 974–981, 985–994, 998–999, 1019–1064, 1087–1114, 1123–1130, 1135, 1142–1151, 1154–1157, 1160–1161, 1164, 1178–1180, 1192–1197, 1209–1217, 1236–1246, 1257–1269, 1291–1319, 1323–1339, 1345–1346, 1352–1362, 1371–1428, 1432–1434, 1439–1444, 1448–1470
   asset.py806124%22–27, 33–65, 84–115, 136–168
   deploy.py40322444%120–123, 127, 131–133, 136–137, 163–165, 169–175, 183–238, 242, 246–249, 269–284, 292, 298–301, 317, 320, 324, 327, 331, 339–340, 348–362, 369, 377–381, 385, 389–414, 425, 429, 435–437, 443–458, 562–594, 597–621, 624–662, 665–682, 685–733, 741–764, 774, 794–812, 817–821
   models.py106694%62–76
   network_clients.py732467%47–48, 55–56, 69–71, 79–80, 90–92, 105–106, 112–113, 137–144
src/algokit_utils/accounts
   account_manager.py2553985%167, 183–184, 211–216, 295–305, 339–344, 391–393, 422, 461, 481–485, 498, 557, 578, 735, 841, 920, 925, 940–941, 964
   kmd_account_manager.py731086%47–53, 94, 150, 157
src/algokit_utils/applications
   abi.py1376850%75, 111, 117, 119, 121, 141–160, 176, 179–185, 201–214, 227–239, 254–265
   app_client.py76522571%136, 144, 331–334, 337, 340, 343, 346, 358–361, 364, 367, 370, 373, 385, 394, 403, 406–468, 481–539, 563–565, 582–585, 593–596, 604–607, 615–618, 626–629, 640–643, 656, 752–755, 789, 801, 813, 825, 837, 852, 867, 877, 887, 897, 907, 917, 954–967, 983, 1000, 1017, 1034, 1055, 1076, 1166, 1222, 1363, 1427–1428, 1477, 1479, 1485, 1538–1546, 1579–1582, 1585–1588, 1609, 1657, 1686, 1720–1722, 1735–1746, 1791, 1808, 1810, 1813, 1817, 1964–1983, 2013, 2026–2028, 2032, 2043–2044, 2072, 2082–2084, 2087–2109, 2119, 2128–2143, 2148–2153
   app_deployer.py2373784%96, 270, 277, 287–292, 295–299, 375–376, 591, 603–617, 629, 634–637, 646, 660, 667, 674, 703, 714–755
   app_factory.py2712790%430, 451, 460, 652, 662, 712, 944, 958–963, 974–975, 1008, 1046, 1064–1065, 1108, 1116–1129
   app_manager.py2231892%258, 279–280, 350–351, 396–401, 433, 457–458, 488, 516–519, 551, 560
src/algokit_utils/applications/app_spec
   arc32.py95892%198–207
   arc56.py5741997%171, 292, 308–309, 379, 399–401, 453, 462, 464, 736, 750, 909, 911, 968, 970–971, 987
src/algokit_utils/assets
   asset_manager.py1281291%282–283, 292, 298–322, 332
src/algokit_utils/clients
   client_manager.py1745171%79–86, 111, 143–145, 205, 216–219, 244, 283, 318–323, 358–360, 393, 410, 432, 477–480, 520–523, 564–567, 604–607, 629–654, 692, 705, 717
   dispenser_api_client.py912078%89, 93, 134–135, 139–142, 190–200, 210–221
src/algokit_utils/errors
   logic_error.py541180%90, 105–121
src/algokit_utils/models
   account.py921584%32, 34, 80–81, 128, 136, 144, 168–175, 188, 196, 209, 217
   amount.py1021783%35, 42, 88, 98, 104, 112, 117–119, 126, 131–133, 140, 147, 160, 166
   state.py41588%61, 65–68
   transaction.py51394%66, 86, 91
src/algokit_utils/transactions
   transaction_composer.py112610691%91, 101–105, 599, 644, 647, 652, 656–667, 699, 736, 816, 823, 845, 884, 981–1010, 1039, 1067–1082, 1087, 1095, 1097, 1099, 1115, 1121, 1159, 1167, 1276, 1326, 1410, 1412–1413, 1806–1807, 1846–1847, 1888, 2101, 2104, 2123, 2128, 2156–2158, 2199–2235, 2242–2249, 2391, 2395, 2528, 2530–2531, 2581–2582
   transaction_creator.py75791%394, 427, 482, 520, 557, 590, 688
   transaction_sender.py1611094%101, 270, 313–314, 712–717, 722–723, 888
TOTAL12317337173% 

Tests Skipped Failures Errors Time
478 0 💤 0 ❌ 0 🔥 1m 44s ⏱️

@aorumbayev aorumbayev marked this pull request as ready for review November 4, 2025 15:20
@aorumbayev aorumbayev merged commit 958758b into decoupling Nov 4, 2025
5 checks passed
@aorumbayev aorumbayev deleted the decoupling-api-generator branch November 4, 2025 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants