yaci-client 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. yaci_client-1.0.1/LICENSE +21 -0
  2. yaci_client-1.0.1/PKG-INFO +202 -0
  3. yaci_client-1.0.1/README.md +172 -0
  4. yaci_client-1.0.1/pyproject.toml +135 -0
  5. yaci_client-1.0.1/pyproject.toml.orig +113 -0
  6. yaci_client-1.0.1/yaci_client/__init__.py +10 -0
  7. yaci_client-1.0.1/yaci_client/api/__init__.py +1 -0
  8. yaci_client-1.0.1/yaci_client/api/account_api/__init__.py +0 -0
  9. yaci_client-1.0.1/yaci_client/api/account_api/get_address_amounts.py +160 -0
  10. yaci_client-1.0.1/yaci_client/api/account_api/get_address_balance.py +147 -0
  11. yaci_client-1.0.1/yaci_client/api/account_api/get_address_balance_at_time.py +173 -0
  12. yaci_client-1.0.1/yaci_client/api/account_api/get_stake_account_details.py +159 -0
  13. yaci_client-1.0.1/yaci_client/api/account_api/get_stake_address_balance.py +147 -0
  14. yaci_client-1.0.1/yaci_client/api/account_api/get_stake_address_balance_at_time.py +160 -0
  15. yaci_client-1.0.1/yaci_client/api/account_service/__init__.py +0 -0
  16. yaci_client-1.0.1/yaci_client/api/account_service/get_stake_de_registrations.py +179 -0
  17. yaci_client-1.0.1/yaci_client/api/account_service/get_stake_delegations.py +175 -0
  18. yaci_client-1.0.1/yaci_client/api/account_service/get_stake_registrations.py +179 -0
  19. yaci_client-1.0.1/yaci_client/api/account_service/get_withdrawals_by_account.py +196 -0
  20. yaci_client-1.0.1/yaci_client/api/address_service/__init__.py +0 -0
  21. yaci_client-1.0.1/yaci_client/api/address_service/get_utxos_1.py +212 -0
  22. yaci_client-1.0.1/yaci_client/api/address_service/get_utxos_for_asset.py +229 -0
  23. yaci_client-1.0.1/yaci_client/api/asset_api/__init__.py +0 -0
  24. yaci_client-1.0.1/yaci_client/api/asset_api/get_addresses_by_asset.py +207 -0
  25. yaci_client-1.0.1/yaci_client/api/asset_service/__init__.py +0 -0
  26. yaci_client-1.0.1/yaci_client/api/asset_service/get_asset_txs_by_fingerprint.py +196 -0
  27. yaci_client-1.0.1/yaci_client/api/asset_service/get_asset_txs_by_policy_id.py +196 -0
  28. yaci_client-1.0.1/yaci_client/api/asset_service/get_asset_txs_by_tx.py +160 -0
  29. yaci_client-1.0.1/yaci_client/api/asset_service/get_asset_txs_by_unit.py +196 -0
  30. yaci_client-1.0.1/yaci_client/api/asset_service/get_asset_utxos.py +216 -0
  31. yaci_client-1.0.1/yaci_client/api/asset_service/get_supply_by_fingerprint.py +155 -0
  32. yaci_client-1.0.1/yaci_client/api/asset_service/get_supply_by_policy.py +155 -0
  33. yaci_client-1.0.1/yaci_client/api/asset_service/get_supply_by_unit.py +155 -0
  34. yaci_client-1.0.1/yaci_client/api/block_service/__init__.py +0 -0
  35. yaci_client-1.0.1/yaci_client/api/block_service/get_block_by_number.py +155 -0
  36. yaci_client-1.0.1/yaci_client/api/block_service/get_blocks.py +178 -0
  37. yaci_client-1.0.1/yaci_client/api/block_service/get_blocks_by_slot_leader_epoch.py +181 -0
  38. yaci_client-1.0.1/yaci_client/api/block_service/get_latest_block.py +131 -0
  39. yaci_client-1.0.1/yaci_client/api/block_service/get_transactions_1.py +164 -0
  40. yaci_client-1.0.1/yaci_client/api/committee_service/__init__.py +0 -0
  41. yaci_client-1.0.1/yaci_client/api/committee_service/get_committee_de_registrations.py +205 -0
  42. yaci_client-1.0.1/yaci_client/api/committee_service/get_committee_registrations.py +203 -0
  43. yaci_client-1.0.1/yaci_client/api/d_rep_service/__init__.py +0 -0
  44. yaci_client-1.0.1/yaci_client/api/d_rep_service/get_d_rep_de_registrations.py +203 -0
  45. yaci_client-1.0.1/yaci_client/api/d_rep_service/get_d_rep_registrations.py +199 -0
  46. yaci_client-1.0.1/yaci_client/api/d_rep_service/get_d_rep_updates.py +199 -0
  47. yaci_client-1.0.1/yaci_client/api/delegation_vote_service/__init__.py +0 -0
  48. yaci_client-1.0.1/yaci_client/api/delegation_vote_service/get_delegations.py +197 -0
  49. yaci_client-1.0.1/yaci_client/api/delegation_vote_service/get_delegations_by_address.py +214 -0
  50. yaci_client-1.0.1/yaci_client/api/delegation_vote_service/get_delegations_of_d_rep.py +210 -0
  51. yaci_client-1.0.1/yaci_client/api/epoch_service/__init__.py +0 -0
  52. yaci_client-1.0.1/yaci_client/api/epoch_service/get_epoch_by_number.py +155 -0
  53. yaci_client-1.0.1/yaci_client/api/epoch_service/get_epochs.py +178 -0
  54. yaci_client-1.0.1/yaci_client/api/epoch_service/get_latest_epoch_1.py +131 -0
  55. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/__init__.py +0 -0
  56. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_gov_action_proposal_by_gov_action_type.py +221 -0
  57. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_gov_action_proposal_by_return_address.py +218 -0
  58. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_gov_action_proposal_by_tx.py +156 -0
  59. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_gov_action_proposal_list.py +203 -0
  60. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_most_recent_gov_action_proposal_by_gov_action_type.py +150 -0
  61. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_voting_procedures_by_gov_action_proposal_tx.py +218 -0
  62. yaci_client-1.0.1/yaci_client/api/gov_action_proposal_service/get_voting_procedures_for_gov_action_proposal.py +231 -0
  63. yaci_client-1.0.1/yaci_client/api/local_epoch_service/__init__.py +0 -0
  64. yaci_client-1.0.1/yaci_client/api/local_epoch_service/get_latest_epoch.py +123 -0
  65. yaci_client-1.0.1/yaci_client/api/local_epoch_service/get_latest_protocol_params.py +135 -0
  66. yaci_client-1.0.1/yaci_client/api/local_epoch_service/get_protocol_params.py +155 -0
  67. yaci_client-1.0.1/yaci_client/api/local_epoch_service/get_protocol_params_1.py +135 -0
  68. yaci_client-1.0.1/yaci_client/api/mir_service/__init__.py +0 -0
  69. yaci_client-1.0.1/yaci_client/api/mir_service/get_mir_by_tx_hash.py +164 -0
  70. yaci_client-1.0.1/yaci_client/api/mir_service/get_mir_summaries.py +187 -0
  71. yaci_client-1.0.1/yaci_client/api/network_service/__init__.py +0 -0
  72. yaci_client-1.0.1/yaci_client/api/network_service/get_protocol_param_proposals.py +187 -0
  73. yaci_client-1.0.1/yaci_client/api/pool_service/__init__.py +0 -0
  74. yaci_client-1.0.1/yaci_client/api/pool_service/get_pool_registrations.py +179 -0
  75. yaci_client-1.0.1/yaci_client/api/pool_service/get_retirements.py +177 -0
  76. yaci_client-1.0.1/yaci_client/api/script_service/__init__.py +0 -0
  77. yaci_client-1.0.1/yaci_client/api/script_service/get_datum_cbor_by_hash.py +143 -0
  78. yaci_client-1.0.1/yaci_client/api/script_service/get_datum_json_by_hash.py +143 -0
  79. yaci_client-1.0.1/yaci_client/api/script_service/get_script_by_hash.py +143 -0
  80. yaci_client-1.0.1/yaci_client/api/script_service/get_script_cbor_by_hash.py +143 -0
  81. yaci_client-1.0.1/yaci_client/api/script_service/get_script_details_by_hash.py +143 -0
  82. yaci_client-1.0.1/yaci_client/api/script_service/get_script_json_by_hash.py +143 -0
  83. yaci_client-1.0.1/yaci_client/api/transaction_service/__init__.py +0 -0
  84. yaci_client-1.0.1/yaci_client/api/transaction_service/get_metadata_by_label.py +200 -0
  85. yaci_client-1.0.1/yaci_client/api/transaction_service/get_metadata_by_tx_hash.py +164 -0
  86. yaci_client-1.0.1/yaci_client/api/transaction_service/get_metadata_cbor_by_tx_hash.py +164 -0
  87. yaci_client-1.0.1/yaci_client/api/transaction_service/get_transaction.py +155 -0
  88. yaci_client-1.0.1/yaci_client/api/transaction_service/get_transaction_inputs_outputs.py +155 -0
  89. yaci_client-1.0.1/yaci_client/api/transaction_service/get_transaction_witnesses.py +160 -0
  90. yaci_client-1.0.1/yaci_client/api/transaction_service/get_transactions.py +178 -0
  91. yaci_client-1.0.1/yaci_client/api/transaction_service/get_tx_contract_details.py +152 -0
  92. yaci_client-1.0.1/yaci_client/api/transaction_service/get_tx_redeemers.py +150 -0
  93. yaci_client-1.0.1/yaci_client/api/transaction_service/get_utxo.py +156 -0
  94. yaci_client-1.0.1/yaci_client/api/transaction_service/get_utxos.py +160 -0
  95. yaci_client-1.0.1/yaci_client/api/transaction_service/get_withdrawals.py +183 -0
  96. yaci_client-1.0.1/yaci_client/api/transaction_service/get_withdrawals_by_transaction.py +160 -0
  97. yaci_client-1.0.1/yaci_client/api/tx_submission_service/__init__.py +0 -0
  98. yaci_client-1.0.1/yaci_client/api/tx_submission_service/submit_tx_1.py +160 -0
  99. yaci_client-1.0.1/yaci_client/api/utilities/__init__.py +0 -0
  100. yaci_client-1.0.1/yaci_client/api/utilities/evaluate_tx.py +149 -0
  101. yaci_client-1.0.1/yaci_client/api/voting_procedure_service/__init__.py +0 -0
  102. yaci_client-1.0.1/yaci_client/api/voting_procedure_service/get_voting_procedure_by_id.py +147 -0
  103. yaci_client-1.0.1/yaci_client/api/voting_procedure_service/get_voting_procedure_by_tx.py +156 -0
  104. yaci_client-1.0.1/yaci_client/api/voting_procedure_service/get_voting_procedure_list.py +203 -0
  105. yaci_client-1.0.1/yaci_client/client.py +268 -0
  106. yaci_client-1.0.1/yaci_client/errors.py +16 -0
  107. yaci_client-1.0.1/yaci_client/models/__init__.py +227 -0
  108. yaci_client-1.0.1/yaci_client/models/address_asset_balance_dto.py +70 -0
  109. yaci_client-1.0.1/yaci_client/models/address_balance_dto.py +124 -0
  110. yaci_client-1.0.1/yaci_client/models/address_utxo.py +232 -0
  111. yaci_client-1.0.1/yaci_client/models/amount.py +70 -0
  112. yaci_client-1.0.1/yaci_client/models/amt.py +88 -0
  113. yaci_client-1.0.1/yaci_client/models/block_dto.py +307 -0
  114. yaci_client-1.0.1/yaci_client/models/block_summary.py +151 -0
  115. yaci_client-1.0.1/yaci_client/models/blocks_page.py +97 -0
  116. yaci_client-1.0.1/yaci_client/models/committee_de_registration.py +150 -0
  117. yaci_client-1.0.1/yaci_client/models/committee_de_registration_cred_type.py +9 -0
  118. yaci_client-1.0.1/yaci_client/models/committee_registration.py +141 -0
  119. yaci_client-1.0.1/yaci_client/models/committee_registration_cred_type.py +9 -0
  120. yaci_client-1.0.1/yaci_client/models/d_rep_registration.py +186 -0
  121. yaci_client-1.0.1/yaci_client/models/d_rep_registration_cred_type.py +9 -0
  122. yaci_client-1.0.1/yaci_client/models/d_rep_registration_type.py +26 -0
  123. yaci_client-1.0.1/yaci_client/models/delegation.py +142 -0
  124. yaci_client-1.0.1/yaci_client/models/delegation_vote.py +176 -0
  125. yaci_client-1.0.1/yaci_client/models/delegation_vote_cred_type.py +9 -0
  126. yaci_client-1.0.1/yaci_client/models/delegation_vote_drep_type.py +11 -0
  127. yaci_client-1.0.1/yaci_client/models/drep_vote_thresholds.py +142 -0
  128. yaci_client-1.0.1/yaci_client/models/epoch.py +124 -0
  129. yaci_client-1.0.1/yaci_client/models/epoch_content.py +115 -0
  130. yaci_client-1.0.1/yaci_client/models/epoch_no.py +61 -0
  131. yaci_client-1.0.1/yaci_client/models/epochs_page.py +97 -0
  132. yaci_client-1.0.1/yaci_client/models/ex_units.py +70 -0
  133. yaci_client-1.0.1/yaci_client/models/fingerprint_supply.py +70 -0
  134. yaci_client-1.0.1/yaci_client/models/get_asset_utxos_order.py +9 -0
  135. yaci_client-1.0.1/yaci_client/models/get_committee_de_registrations_order.py +9 -0
  136. yaci_client-1.0.1/yaci_client/models/get_committee_registrations_order.py +9 -0
  137. yaci_client-1.0.1/yaci_client/models/get_d_rep_de_registrations_order.py +9 -0
  138. yaci_client-1.0.1/yaci_client/models/get_d_rep_registrations_order.py +9 -0
  139. yaci_client-1.0.1/yaci_client/models/get_d_rep_updates_order.py +9 -0
  140. yaci_client-1.0.1/yaci_client/models/get_delegations_by_address_order.py +9 -0
  141. yaci_client-1.0.1/yaci_client/models/get_delegations_of_d_rep_order.py +9 -0
  142. yaci_client-1.0.1/yaci_client/models/get_delegations_order.py +9 -0
  143. yaci_client-1.0.1/yaci_client/models/get_gov_action_proposal_by_gov_action_type_gov_action_type.py +14 -0
  144. yaci_client-1.0.1/yaci_client/models/get_gov_action_proposal_by_gov_action_type_order.py +9 -0
  145. yaci_client-1.0.1/yaci_client/models/get_gov_action_proposal_by_return_address_order.py +9 -0
  146. yaci_client-1.0.1/yaci_client/models/get_gov_action_proposal_list_order.py +9 -0
  147. yaci_client-1.0.1/yaci_client/models/get_most_recent_gov_action_proposal_by_gov_action_type_gov_action_type.py +14 -0
  148. yaci_client-1.0.1/yaci_client/models/get_utxos_1_order.py +9 -0
  149. yaci_client-1.0.1/yaci_client/models/get_utxos_for_asset_order.py +9 -0
  150. yaci_client-1.0.1/yaci_client/models/get_voting_procedure_list_order.py +9 -0
  151. yaci_client-1.0.1/yaci_client/models/get_voting_procedures_by_gov_action_proposal_tx_order.py +9 -0
  152. yaci_client-1.0.1/yaci_client/models/get_voting_procedures_for_gov_action_proposal_order.py +9 -0
  153. yaci_client-1.0.1/yaci_client/models/gov_action_proposal.py +185 -0
  154. yaci_client-1.0.1/yaci_client/models/gov_action_proposal_type.py +14 -0
  155. yaci_client-1.0.1/yaci_client/models/json_node.py +47 -0
  156. yaci_client-1.0.1/yaci_client/models/metadata_label_dto.py +122 -0
  157. yaci_client-1.0.1/yaci_client/models/move_instataneous_reward.py +159 -0
  158. yaci_client-1.0.1/yaci_client/models/move_instataneous_reward_pot.py +9 -0
  159. yaci_client-1.0.1/yaci_client/models/move_instataneous_reward_summary.py +134 -0
  160. yaci_client-1.0.1/yaci_client/models/move_instataneous_reward_summary_pot.py +9 -0
  161. yaci_client-1.0.1/yaci_client/models/policy_supply.py +70 -0
  162. yaci_client-1.0.1/yaci_client/models/pool_block.py +88 -0
  163. yaci_client-1.0.1/yaci_client/models/pool_registration.py +244 -0
  164. yaci_client-1.0.1/yaci_client/models/pool_retirement.py +142 -0
  165. yaci_client-1.0.1/yaci_client/models/pool_voting_thresholds.py +97 -0
  166. yaci_client-1.0.1/yaci_client/models/protocol_params.py +437 -0
  167. yaci_client-1.0.1/yaci_client/models/protocol_params_cost_models.py +55 -0
  168. yaci_client-1.0.1/yaci_client/models/protocol_params_dto.py +536 -0
  169. yaci_client-1.0.1/yaci_client/models/protocol_params_dto_cost_models.py +67 -0
  170. yaci_client-1.0.1/yaci_client/models/protocol_params_dto_cost_models_additional_property.py +47 -0
  171. yaci_client-1.0.1/yaci_client/models/protocol_params_proposal.py +157 -0
  172. yaci_client-1.0.1/yaci_client/models/protocol_params_proposal_era.py +14 -0
  173. yaci_client-1.0.1/yaci_client/models/redeemer.py +112 -0
  174. yaci_client-1.0.1/yaci_client/models/redeemer_tag.py +13 -0
  175. yaci_client-1.0.1/yaci_client/models/relay.py +88 -0
  176. yaci_client-1.0.1/yaci_client/models/script_cbor_dto.py +61 -0
  177. yaci_client-1.0.1/yaci_client/models/script_detail_dto.py +103 -0
  178. yaci_client-1.0.1/yaci_client/models/script_detail_dto_script_type.py +11 -0
  179. yaci_client-1.0.1/yaci_client/models/script_dto.py +88 -0
  180. yaci_client-1.0.1/yaci_client/models/script_dto_type.py +11 -0
  181. yaci_client-1.0.1/yaci_client/models/script_json_dto.py +77 -0
  182. yaci_client-1.0.1/yaci_client/models/stake_account_info.py +88 -0
  183. yaci_client-1.0.1/yaci_client/models/stake_address_balance.py +106 -0
  184. yaci_client-1.0.1/yaci_client/models/stake_registration_detail.py +151 -0
  185. yaci_client-1.0.1/yaci_client/models/stake_registration_detail_type.py +26 -0
  186. yaci_client-1.0.1/yaci_client/models/transaction_details.py +284 -0
  187. yaci_client-1.0.1/yaci_client/models/transaction_page.py +97 -0
  188. yaci_client-1.0.1/yaci_client/models/transaction_summary.py +109 -0
  189. yaci_client-1.0.1/yaci_client/models/tx_asset.py +150 -0
  190. yaci_client-1.0.1/yaci_client/models/tx_asset_mint_type.py +9 -0
  191. yaci_client-1.0.1/yaci_client/models/tx_contract_details.py +140 -0
  192. yaci_client-1.0.1/yaci_client/models/tx_contract_details_type.py +11 -0
  193. yaci_client-1.0.1/yaci_client/models/tx_inputs_outputs.py +107 -0
  194. yaci_client-1.0.1/yaci_client/models/tx_metadata_label_cbor_dto.py +97 -0
  195. yaci_client-1.0.1/yaci_client/models/tx_metadata_label_dto.py +129 -0
  196. yaci_client-1.0.1/yaci_client/models/tx_ouput.py +115 -0
  197. yaci_client-1.0.1/yaci_client/models/tx_redeemer_dto.py +115 -0
  198. yaci_client-1.0.1/yaci_client/models/tx_utxo.py +170 -0
  199. yaci_client-1.0.1/yaci_client/models/txn_witness.py +140 -0
  200. yaci_client-1.0.1/yaci_client/models/txn_witness_type.py +13 -0
  201. yaci_client-1.0.1/yaci_client/models/unit_supply.py +70 -0
  202. yaci_client-1.0.1/yaci_client/models/utxo.py +160 -0
  203. yaci_client-1.0.1/yaci_client/models/utxo_key.py +70 -0
  204. yaci_client-1.0.1/yaci_client/models/voting_procedure.py +194 -0
  205. yaci_client-1.0.1/yaci_client/models/voting_procedure_dto.py +203 -0
  206. yaci_client-1.0.1/yaci_client/models/voting_procedure_dto_vote.py +10 -0
  207. yaci_client-1.0.1/yaci_client/models/voting_procedure_dto_voter_type.py +12 -0
  208. yaci_client-1.0.1/yaci_client/models/voting_procedure_vote.py +10 -0
  209. yaci_client-1.0.1/yaci_client/models/voting_procedure_voter_type.py +12 -0
  210. yaci_client-1.0.1/yaci_client/models/vrf.py +70 -0
  211. yaci_client-1.0.1/yaci_client/models/withdrawal.py +115 -0
  212. yaci_client-1.0.1/yaci_client/py.typed +1 -0
  213. yaci_client-1.0.1/yaci_client/types.py +51 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Hareem Adderley
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.4
2
+ Name: yaci-client
3
+ Version: 1.0.1
4
+ Summary: A client library for accessing the Yaci Store API
5
+ Keywords: cardano,yaci,yaci-store,yaci-devkit,openapi
6
+ Author: Hareem Adderley
7
+ Author-email: Hareem Adderley <hadderley@kingpinapps.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Programming Language :: Python :: 3.15
20
+ Classifier: Typing :: Typed
21
+ Requires-Dist: attrs>=22.2.0
22
+ Requires-Dist: httpx>=0.25.1,<0.29.0
23
+ Requires-Dist: python-dateutil>=2.8.0
24
+ Requires-Python: >=3.11
25
+ Project-URL: Homepage, https://github.com/Kingpin-Apps/Yaci-client
26
+ Project-URL: Source, https://github.com/Kingpin-Apps/Yaci-client
27
+ Project-URL: Issues, https://github.com/Kingpin-Apps/Yaci-client/issues
28
+ Project-URL: Changelog, https://github.com/Kingpin-Apps/Yaci-client/blob/main/CHANGELOG.md
29
+ Description-Content-Type: text/markdown
30
+
31
+ # yaci-store-api-client
32
+ A client library for accessing [Yaci](https://devkit.yaci.xyz) Store API.
33
+
34
+ This library is mostly generated using [OpenAPI Generator](https://github.com/openapi-generators/openapi-python-client/).
35
+
36
+ ## Usage
37
+ First, create a client:
38
+
39
+ ```python
40
+ from yaci_client import Client
41
+
42
+ client = Client(base_url="http://localhost:8080", raise_on_unexpected_status=True)
43
+ ```
44
+
45
+ If the endpoints you're going to hit require authentication, use `AuthenticatedClient` instead:
46
+
47
+ ```python
48
+ from yaci_client import AuthenticatedClient
49
+
50
+ client = AuthenticatedClient(base_url="https://localhost:8080", token="SuperSecretToken")
51
+ ```
52
+
53
+ Now call your endpoint and use your models:
54
+
55
+ ```python
56
+ import json
57
+ from yaci_client.api.local_epoch_service import (
58
+ get_latest_protocol_params,
59
+ )
60
+ from yaci_client import Client
61
+ from yaci_client.models import (
62
+ ProtocolParamsDto,
63
+ )
64
+ from yaci_client.types import Response
65
+
66
+ client = Client(base_url="http://localhost:8080", raise_on_unexpected_status=True)
67
+
68
+ with client as client:
69
+ params: ProtocolParamsDto = get_latest_protocol_params.sync(client=client)
70
+ print(params)
71
+
72
+ response: Response[ProtocolParamsDto] = get_latest_protocol_params.sync_detailed(client=client)
73
+ protocol_params_json = json.loads(response.content)
74
+ print(protocol_params_json)
75
+ ```
76
+
77
+ Or do the same thing with an async version:
78
+
79
+ ```python
80
+ import json
81
+ from yaci_client.api.local_epoch_service import (
82
+ get_latest_protocol_params,
83
+ )
84
+ from yaci_client import Client
85
+ from yaci_client.models import (
86
+ ProtocolParamsDto,
87
+ )
88
+ from yaci_client.types import Response
89
+
90
+ client = Client(base_url="http://localhost:8080", raise_on_unexpected_status=True)
91
+
92
+ async with client as client:
93
+ params: ProtocolParamsDto = await get_latest_protocol_params.asyncio(client=client)
94
+ response: Response[ProtocolParamsDto] = await get_latest_protocol_params.asyncio_detailed(client=client)
95
+ ```
96
+
97
+ By default, when you're calling an HTTPS API it will attempt to verify that SSL is working correctly. Using certificate verification is highly recommended most of the time, but sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle.
98
+
99
+ ```python
100
+ import ssl
101
+
102
+ from yaci_client import AuthenticatedClient
103
+
104
+ client = AuthenticatedClient(
105
+ base_url="https://localhost:8080",
106
+ token="SuperSecretToken",
107
+ verify_ssl=ssl.create_default_context(cafile="/path/to/certificate_bundle.pem"),
108
+ )
109
+ ```
110
+
111
+ You can also disable certificate validation altogether, but beware that **this is a security risk**.
112
+
113
+ ```python
114
+ from yaci_client import AuthenticatedClient
115
+
116
+ client = AuthenticatedClient(base_url="https://localhost:8080", token="SuperSecretToken", verify_ssl=False)
117
+ ```
118
+
119
+ Things to know:
120
+ 1. Every path/method combo becomes a Python module with four functions:
121
+ 1. `sync`: Blocking request that returns parsed data (if successful) or `None`
122
+ 1. `sync_detailed`: Blocking request that always returns a `Request`, optionally with `parsed` set if the request was successful.
123
+ 1. `asyncio`: Like `sync` but async instead of blocking
124
+ 1. `asyncio_detailed`: Like `sync_detailed` but async instead of blocking
125
+
126
+ 1. All path/query params, and bodies become method arguments.
127
+ 1. If your endpoint had any tags on it, the first tag will be used as a module name for the function (my_tag above)
128
+ 1. Any endpoint which did not have a tag will be in `yaci_client.api.default`
129
+
130
+ ## Advanced customizations
131
+
132
+ There are more settings on the generated `Client` class which let you control more runtime behavior, check out the docstring on that class for more info. You can also customize the underlying `httpx.Client` or `httpx.AsyncClient` (depending on your use-case):
133
+
134
+ ```python
135
+ from yaci_client import Client
136
+
137
+
138
+ def log_request(request):
139
+ print(f"Request event hook: {request.method} {request.url} - Waiting for response")
140
+
141
+
142
+ def log_response(response):
143
+ request = response.request
144
+ print(f"Response event hook: {request.method} {request.url} - Status {response.status_code}")
145
+
146
+
147
+ client = Client(
148
+ base_url="https://api.example.com",
149
+ httpx_args={"event_hooks": {"request": [log_request], "response": [log_response]}},
150
+ )
151
+
152
+ # Or get the underlying httpx client to modify directly with client.get_httpx_client() or client.get_async_httpx_client()
153
+ ```
154
+
155
+ You can even set the httpx client directly, but beware that this will override any existing settings (e.g., base_url):
156
+
157
+ ```python
158
+ import httpx
159
+ from yaci_client import Client
160
+
161
+ client = Client(
162
+ base_url="https://localhost:8080",
163
+ )
164
+ # Note that base_url needs to be re-set, as would any shared cookies, headers, etc.
165
+ client.set_httpx_client(httpx.Client(base_url="https://localhost:8080", proxy="http://localhost:8030"))
166
+ ```
167
+
168
+ ## Installation
169
+
170
+ ```bash
171
+ pip install yaci-client
172
+ ```
173
+
174
+ It needs Python 3.11 or newer and works with httpx 0.25.1 up to 0.28.
175
+
176
+ ## Development
177
+
178
+ The project uses [uv](https://docs.astral.sh/uv/), [ruff](https://docs.astral.sh/ruff/),
179
+ [ty](https://docs.astral.sh/ty/) and [just](https://just.systems/). Run `just` to list every task.
180
+
181
+ ```bash
182
+ just sync # install the project and its development tools
183
+ just check # lint, type-check and test
184
+ just test-all # the tests on every supported Python
185
+ ```
186
+
187
+ `yaci_client` is generated from the Yaci Store OpenAPI spec in `yaci_api.json` by
188
+ [openapi-python-client](https://github.com/openapi-generators/openapi-python-client). After
189
+ updating the spec, run `just regenerate`; ruff then formats the result, so it passes `just lint`.
190
+ Review the diff before committing: newer generators rename fields (for example `type` to `type_`), which
191
+ breaks callers, so a rename belongs in a major release.
192
+
193
+ Commits follow [Conventional Commits](https://www.conventionalcommits.org/). Run
194
+ `uv run pre-commit install` once to check messages and formatting on each commit.
195
+
196
+ ## Releasing
197
+
198
+ 1. `just bump` sets the version and the changelog from the commits since the last release, and tags it `vX.Y.Z`.
199
+ 1. Push the commit and the tag: `git push --follow-tags`.
200
+ 1. The tag starts the [Release workflow](.github/workflows/release.yml), which builds the package, publishes it
201
+ to [PyPI](https://pypi.org/project/yaci-client/) with Trusted Publishing (no token in the repository) and
202
+ creates the GitHub release.
@@ -0,0 +1,172 @@
1
+ # yaci-store-api-client
2
+ A client library for accessing [Yaci](https://devkit.yaci.xyz) Store API.
3
+
4
+ This library is mostly generated using [OpenAPI Generator](https://github.com/openapi-generators/openapi-python-client/).
5
+
6
+ ## Usage
7
+ First, create a client:
8
+
9
+ ```python
10
+ from yaci_client import Client
11
+
12
+ client = Client(base_url="http://localhost:8080", raise_on_unexpected_status=True)
13
+ ```
14
+
15
+ If the endpoints you're going to hit require authentication, use `AuthenticatedClient` instead:
16
+
17
+ ```python
18
+ from yaci_client import AuthenticatedClient
19
+
20
+ client = AuthenticatedClient(base_url="https://localhost:8080", token="SuperSecretToken")
21
+ ```
22
+
23
+ Now call your endpoint and use your models:
24
+
25
+ ```python
26
+ import json
27
+ from yaci_client.api.local_epoch_service import (
28
+ get_latest_protocol_params,
29
+ )
30
+ from yaci_client import Client
31
+ from yaci_client.models import (
32
+ ProtocolParamsDto,
33
+ )
34
+ from yaci_client.types import Response
35
+
36
+ client = Client(base_url="http://localhost:8080", raise_on_unexpected_status=True)
37
+
38
+ with client as client:
39
+ params: ProtocolParamsDto = get_latest_protocol_params.sync(client=client)
40
+ print(params)
41
+
42
+ response: Response[ProtocolParamsDto] = get_latest_protocol_params.sync_detailed(client=client)
43
+ protocol_params_json = json.loads(response.content)
44
+ print(protocol_params_json)
45
+ ```
46
+
47
+ Or do the same thing with an async version:
48
+
49
+ ```python
50
+ import json
51
+ from yaci_client.api.local_epoch_service import (
52
+ get_latest_protocol_params,
53
+ )
54
+ from yaci_client import Client
55
+ from yaci_client.models import (
56
+ ProtocolParamsDto,
57
+ )
58
+ from yaci_client.types import Response
59
+
60
+ client = Client(base_url="http://localhost:8080", raise_on_unexpected_status=True)
61
+
62
+ async with client as client:
63
+ params: ProtocolParamsDto = await get_latest_protocol_params.asyncio(client=client)
64
+ response: Response[ProtocolParamsDto] = await get_latest_protocol_params.asyncio_detailed(client=client)
65
+ ```
66
+
67
+ By default, when you're calling an HTTPS API it will attempt to verify that SSL is working correctly. Using certificate verification is highly recommended most of the time, but sometimes you may need to authenticate to a server (especially an internal server) using a custom certificate bundle.
68
+
69
+ ```python
70
+ import ssl
71
+
72
+ from yaci_client import AuthenticatedClient
73
+
74
+ client = AuthenticatedClient(
75
+ base_url="https://localhost:8080",
76
+ token="SuperSecretToken",
77
+ verify_ssl=ssl.create_default_context(cafile="/path/to/certificate_bundle.pem"),
78
+ )
79
+ ```
80
+
81
+ You can also disable certificate validation altogether, but beware that **this is a security risk**.
82
+
83
+ ```python
84
+ from yaci_client import AuthenticatedClient
85
+
86
+ client = AuthenticatedClient(base_url="https://localhost:8080", token="SuperSecretToken", verify_ssl=False)
87
+ ```
88
+
89
+ Things to know:
90
+ 1. Every path/method combo becomes a Python module with four functions:
91
+ 1. `sync`: Blocking request that returns parsed data (if successful) or `None`
92
+ 1. `sync_detailed`: Blocking request that always returns a `Request`, optionally with `parsed` set if the request was successful.
93
+ 1. `asyncio`: Like `sync` but async instead of blocking
94
+ 1. `asyncio_detailed`: Like `sync_detailed` but async instead of blocking
95
+
96
+ 1. All path/query params, and bodies become method arguments.
97
+ 1. If your endpoint had any tags on it, the first tag will be used as a module name for the function (my_tag above)
98
+ 1. Any endpoint which did not have a tag will be in `yaci_client.api.default`
99
+
100
+ ## Advanced customizations
101
+
102
+ There are more settings on the generated `Client` class which let you control more runtime behavior, check out the docstring on that class for more info. You can also customize the underlying `httpx.Client` or `httpx.AsyncClient` (depending on your use-case):
103
+
104
+ ```python
105
+ from yaci_client import Client
106
+
107
+
108
+ def log_request(request):
109
+ print(f"Request event hook: {request.method} {request.url} - Waiting for response")
110
+
111
+
112
+ def log_response(response):
113
+ request = response.request
114
+ print(f"Response event hook: {request.method} {request.url} - Status {response.status_code}")
115
+
116
+
117
+ client = Client(
118
+ base_url="https://api.example.com",
119
+ httpx_args={"event_hooks": {"request": [log_request], "response": [log_response]}},
120
+ )
121
+
122
+ # Or get the underlying httpx client to modify directly with client.get_httpx_client() or client.get_async_httpx_client()
123
+ ```
124
+
125
+ You can even set the httpx client directly, but beware that this will override any existing settings (e.g., base_url):
126
+
127
+ ```python
128
+ import httpx
129
+ from yaci_client import Client
130
+
131
+ client = Client(
132
+ base_url="https://localhost:8080",
133
+ )
134
+ # Note that base_url needs to be re-set, as would any shared cookies, headers, etc.
135
+ client.set_httpx_client(httpx.Client(base_url="https://localhost:8080", proxy="http://localhost:8030"))
136
+ ```
137
+
138
+ ## Installation
139
+
140
+ ```bash
141
+ pip install yaci-client
142
+ ```
143
+
144
+ It needs Python 3.11 or newer and works with httpx 0.25.1 up to 0.28.
145
+
146
+ ## Development
147
+
148
+ The project uses [uv](https://docs.astral.sh/uv/), [ruff](https://docs.astral.sh/ruff/),
149
+ [ty](https://docs.astral.sh/ty/) and [just](https://just.systems/). Run `just` to list every task.
150
+
151
+ ```bash
152
+ just sync # install the project and its development tools
153
+ just check # lint, type-check and test
154
+ just test-all # the tests on every supported Python
155
+ ```
156
+
157
+ `yaci_client` is generated from the Yaci Store OpenAPI spec in `yaci_api.json` by
158
+ [openapi-python-client](https://github.com/openapi-generators/openapi-python-client). After
159
+ updating the spec, run `just regenerate`; ruff then formats the result, so it passes `just lint`.
160
+ Review the diff before committing: newer generators rename fields (for example `type` to `type_`), which
161
+ breaks callers, so a rename belongs in a major release.
162
+
163
+ Commits follow [Conventional Commits](https://www.conventionalcommits.org/). Run
164
+ `uv run pre-commit install` once to check messages and formatting on each commit.
165
+
166
+ ## Releasing
167
+
168
+ 1. `just bump` sets the version and the changelog from the commits since the last release, and tags it `vX.Y.Z`.
169
+ 1. Push the commit and the tag: `git push --follow-tags`.
170
+ 1. The tag starts the [Release workflow](.github/workflows/release.yml), which builds the package, publishes it
171
+ to [PyPI](https://pypi.org/project/yaci-client/) with Trusted Publishing (no token in the repository) and
172
+ creates the GitHub release.
@@ -0,0 +1,135 @@
1
+ [project]
2
+ name = "yaci-client"
3
+ version = "1.0.1"
4
+ description = "A client library for accessing the Yaci Store API"
5
+ readme = "README.md"
6
+ license = "MIT"
7
+ license-files = ["LICENSE"]
8
+ requires-python = ">=3.11"
9
+ keywords = [
10
+ "cardano",
11
+ "yaci",
12
+ "yaci-store",
13
+ "yaci-devkit",
14
+ "openapi",
15
+ ]
16
+ classifiers = [
17
+ "Development Status :: 5 - Production/Stable",
18
+ "Intended Audience :: Developers",
19
+ "Operating System :: OS Independent",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3 :: Only",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Programming Language :: Python :: 3.14",
26
+ "Programming Language :: Python :: 3.15",
27
+ "Typing :: Typed",
28
+ ]
29
+ dependencies = [
30
+ "attrs>=22.2.0",
31
+ "httpx>=0.25.1,<0.29.0",
32
+ "python-dateutil>=2.8.0",
33
+ ]
34
+
35
+ [[project.authors]]
36
+ name = "Hareem Adderley"
37
+ email = "hadderley@kingpinapps.com"
38
+
39
+ [project.urls]
40
+ Homepage = "https://github.com/Kingpin-Apps/Yaci-client"
41
+ Source = "https://github.com/Kingpin-Apps/Yaci-client"
42
+ Issues = "https://github.com/Kingpin-Apps/Yaci-client/issues"
43
+ Changelog = "https://github.com/Kingpin-Apps/Yaci-client/blob/main/CHANGELOG.md"
44
+
45
+ [dependency-groups]
46
+ dev = [
47
+ { include-group = "lint" },
48
+ { include-group = "test" },
49
+ "commitizen>=4.8",
50
+ "pre-commit>=4.3",
51
+ ]
52
+ lint = [
53
+ "ruff>=0.17",
54
+ "ty>=0.0.90",
55
+ ]
56
+ test = [
57
+ "pytest>=8.4",
58
+ "pytest-asyncio>=1.2",
59
+ "pytest-cov>=7",
60
+ ]
61
+ generate = ["openapi-python-client>=0.27.1,<0.28"]
62
+
63
+ [build-system]
64
+ requires = ["uv_build>=0.13.4,<0.14"]
65
+ build-backend = "uv_build"
66
+
67
+ [tool.uv]
68
+ default-groups = ["dev"]
69
+
70
+ [tool.uv.build-backend]
71
+ module-root = ""
72
+
73
+ [tool.pytest.ini_options]
74
+ minversion = "8.0"
75
+ testpaths = ["tests"]
76
+ asyncio_mode = "auto"
77
+ asyncio_default_fixture_loop_scope = "function"
78
+ addopts = [
79
+ "-ra",
80
+ "--strict-markers",
81
+ ]
82
+ filterwarnings = ["error"]
83
+
84
+ [tool.coverage.run]
85
+ source = ["yaci_client"]
86
+ branch = true
87
+
88
+ [tool.coverage.report]
89
+ show_missing = true
90
+ skip_covered = true
91
+
92
+ [tool.ruff]
93
+ target-version = "py311"
94
+ line-length = 120
95
+ extend-exclude = ["dist"]
96
+
97
+ [tool.ruff.lint]
98
+ select = [
99
+ "E",
100
+ "W",
101
+ "F",
102
+ "I",
103
+ "B",
104
+ "UP",
105
+ "SIM",
106
+ "RUF",
107
+ "ASYNC",
108
+ "PT",
109
+ ]
110
+ ignore = [
111
+ "E501",
112
+ "UP042",
113
+ "SIM108",
114
+ ]
115
+
116
+ [tool.ty.environment]
117
+ python-version = "3.11"
118
+
119
+ [tool.ty.src]
120
+ include = [
121
+ "yaci_client",
122
+ "tests",
123
+ "example.py",
124
+ ]
125
+
126
+ [tool.ty.terminal]
127
+ error-on-warning = true
128
+
129
+ [tool.commitizen]
130
+ name = "cz_conventional_commits"
131
+ version_provider = "uv"
132
+ tag_format = "v$version"
133
+ update_changelog_on_bump = true
134
+ major_version_zero = false
135
+ version_files = ["yaci_client/__init__.py:__version__"]
@@ -0,0 +1,113 @@
1
+ [project]
2
+ name = "yaci-client"
3
+ version = "1.0.1"
4
+ description = "A client library for accessing the Yaci Store API"
5
+ readme = "README.md"
6
+ license = "MIT"
7
+ license-files = ["LICENSE"]
8
+ authors = [{ name = "Hareem Adderley", email = "hadderley@kingpinapps.com" }]
9
+ requires-python = ">=3.11"
10
+ keywords = ["cardano", "yaci", "yaci-store", "yaci-devkit", "openapi"]
11
+ classifiers = [
12
+ "Development Status :: 5 - Production/Stable",
13
+ "Intended Audience :: Developers",
14
+ "Operating System :: OS Independent",
15
+ "Programming Language :: Python :: 3",
16
+ "Programming Language :: Python :: 3 :: Only",
17
+ "Programming Language :: Python :: 3.11",
18
+ "Programming Language :: Python :: 3.12",
19
+ "Programming Language :: Python :: 3.13",
20
+ "Programming Language :: Python :: 3.14",
21
+ "Programming Language :: Python :: 3.15",
22
+ "Typing :: Typed",
23
+ ]
24
+ dependencies = [
25
+ # 22.2 adds the `alias` argument the generated client passes to attrs.field().
26
+ "attrs>=22.2.0",
27
+ # 0.25.1 is the first release on httpcore 1.x without `import cgi`: older ones fail on Python 3.13+.
28
+ "httpx>=0.25.1,<0.29.0",
29
+ "python-dateutil>=2.8.0",
30
+ ]
31
+
32
+ [project.urls]
33
+ Homepage = "https://github.com/Kingpin-Apps/Yaci-client"
34
+ Source = "https://github.com/Kingpin-Apps/Yaci-client"
35
+ Issues = "https://github.com/Kingpin-Apps/Yaci-client/issues"
36
+ Changelog = "https://github.com/Kingpin-Apps/Yaci-client/blob/main/CHANGELOG.md"
37
+
38
+ [dependency-groups]
39
+ dev = [
40
+ { include-group = "lint" },
41
+ { include-group = "test" },
42
+ "commitizen>=4.8",
43
+ "pre-commit>=4.3",
44
+ ]
45
+ lint = [
46
+ "ruff>=0.17",
47
+ "ty>=0.0.90",
48
+ ]
49
+ test = [
50
+ "pytest>=8.4",
51
+ "pytest-asyncio>=1.2",
52
+ "pytest-cov>=7",
53
+ ]
54
+ generate = [
55
+ # 0.28 drops the `Unset` import from submit_tx_1, so stay on 0.27 until that is fixed upstream.
56
+ "openapi-python-client>=0.27.1,<0.28",
57
+ ]
58
+
59
+ [build-system]
60
+ requires = ["uv_build>=0.13.4,<0.14"]
61
+ build-backend = "uv_build"
62
+
63
+ [tool.uv]
64
+ default-groups = ["dev"]
65
+
66
+ [tool.uv.build-backend]
67
+ # The package sits at the repository root rather than under src/.
68
+ module-root = ""
69
+
70
+ [tool.pytest.ini_options]
71
+ minversion = "8.0"
72
+ testpaths = ["tests"]
73
+ asyncio_mode = "auto"
74
+ asyncio_default_fixture_loop_scope = "function"
75
+ addopts = ["-ra", "--strict-markers"]
76
+ # Every warning fails the test that raised it: deprecations are caught early.
77
+ filterwarnings = ["error"]
78
+
79
+ [tool.coverage.run]
80
+ source = ["yaci_client"]
81
+ branch = true
82
+
83
+ [tool.coverage.report]
84
+ show_missing = true
85
+ skip_covered = true
86
+
87
+ [tool.ruff]
88
+ target-version = "py311"
89
+ line-length = 120
90
+ extend-exclude = ["dist"]
91
+
92
+ [tool.ruff.lint]
93
+ select = ["E", "W", "F", "I", "B", "UP", "SIM", "RUF", "ASYNC", "PT"]
94
+ # E501: generated docstrings carry long descriptions from the OpenAPI spec.
95
+ # UP042, SIM108: the generator's own style for enums and response parsing.
96
+ ignore = ["E501", "UP042", "SIM108"]
97
+
98
+ [tool.ty.environment]
99
+ python-version = "3.11"
100
+
101
+ [tool.ty.src]
102
+ include = ["yaci_client", "tests", "example.py"]
103
+
104
+ [tool.ty.terminal]
105
+ error-on-warning = true
106
+
107
+ [tool.commitizen]
108
+ name = "cz_conventional_commits"
109
+ version_provider = "uv"
110
+ tag_format = "v$version"
111
+ update_changelog_on_bump = true
112
+ major_version_zero = false
113
+ version_files = ["yaci_client/__init__.py:__version__"]
@@ -0,0 +1,10 @@
1
+ """A client library for accessing Yaci Store API"""
2
+
3
+ from .client import AuthenticatedClient, Client
4
+
5
+ __version__ = "1.0.1"
6
+ __app_name__ = "yaci_client"
7
+ __all__ = (
8
+ "AuthenticatedClient",
9
+ "Client",
10
+ )
@@ -0,0 +1 @@
1
+ """Contains methods for accessing the API"""