daknode 0.3.9__tar.gz → 0.3.10__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 (248) hide show
  1. daknode-0.3.10/PKG-INFO +125 -0
  2. daknode-0.3.10/README.md +102 -0
  3. {daknode-0.3.9 → daknode-0.3.10}/pyproject.toml +8 -2
  4. daknode-0.3.9/PKG-INFO +0 -143
  5. daknode-0.3.9/README.md +0 -124
  6. {daknode-0.3.9 → daknode-0.3.10}/daknode/__init__.py +0 -0
  7. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/__init__.py +0 -0
  8. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/block_rules/__init__.py +0 -0
  9. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/block_rules/create_block_rule.py +0 -0
  10. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/block_rules/create_inbox_block_rule.py +0 -0
  11. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/block_rules/delete_block_rule.py +0 -0
  12. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/block_rules/list_block_rules.py +0 -0
  13. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/block_rules/list_inbox_block_rules.py +0 -0
  14. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/__init__.py +0 -0
  15. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/book_calendar_event.py +0 -0
  16. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/cancel_calendar_event.py +0 -0
  17. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/create_calendar_event.py +0 -0
  18. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/delete_calendar_event.py +0 -0
  19. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/delete_calendar_exception.py +0 -0
  20. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/edit_calendar_series.py +0 -0
  21. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/get_calendar_agenda.py +0 -0
  22. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/get_calendar_availability.py +0 -0
  23. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/get_calendar_event.py +0 -0
  24. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/get_calendar_free_busy.py +0 -0
  25. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/get_calendar_reminders.py +0 -0
  26. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/list_calendar_events.py +0 -0
  27. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/list_calendar_instances.py +0 -0
  28. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/list_calendar_invitations.py +0 -0
  29. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/poll_calendar_changes.py +0 -0
  30. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/put_calendar_exception.py +0 -0
  31. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/respond_calendar_event.py +0 -0
  32. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/send_calendar_invitations.py +0 -0
  33. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/set_calendar_reminders.py +0 -0
  34. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/calendar/update_calendar_event.py +0 -0
  35. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/consent/__init__.py +0 -0
  36. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/consent/create_consent.py +0 -0
  37. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/consent/revoke.py +0 -0
  38. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/control_plane/__init__.py +0 -0
  39. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/control_plane/close_workspace.py +0 -0
  40. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/control_plane/create_workspace.py +0 -0
  41. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/control_plane/list_workspaces.py +0 -0
  42. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/control_plane/read_workspace.py +0 -0
  43. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/control_plane/update_workspace.py +0 -0
  44. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/dead_letters/__init__.py +0 -0
  45. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/dead_letters/list_dead_letters.py +0 -0
  46. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/dead_letters/replay_dead_letter.py +0 -0
  47. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/domains/__init__.py +0 -0
  48. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/domains/disable_domain.py +0 -0
  49. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/domains/get_domain.py +0 -0
  50. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/domains/list_domains.py +0 -0
  51. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/domains/register_domain.py +0 -0
  52. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/domains/verify_domain.py +0 -0
  53. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/__init__.py +0 -0
  54. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/cancel_draft.py +0 -0
  55. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/create_draft.py +0 -0
  56. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/delete_draft.py +0 -0
  57. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/get_draft.py +0 -0
  58. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/list_drafts.py +0 -0
  59. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/schedule_draft.py +0 -0
  60. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/send_draft.py +0 -0
  61. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/drafts/update_draft.py +0 -0
  62. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/events/__init__.py +0 -0
  63. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/events/poll_inbox_events.py +0 -0
  64. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/__init__.py +0 -0
  65. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/create_inbox.py +0 -0
  66. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/delete_inbox.py +0 -0
  67. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/get_inbox.py +0 -0
  68. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/list_inboxes.py +0 -0
  69. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/register_webhook.py +0 -0
  70. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/rotate_webhook_secret.py +0 -0
  71. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/inboxes/update_inbox.py +0 -0
  72. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/__init__.py +0 -0
  73. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/create_inbox_mail_policy_rule.py +0 -0
  74. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/create_mail_policy_rule.py +0 -0
  75. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/delete_mail_policy_rule.py +0 -0
  76. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/get_inbox_mail_policy.py +0 -0
  77. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/get_mail_policy.py +0 -0
  78. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/list_inbox_mail_policy_rules.py +0 -0
  79. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/list_mail_policy_rules.py +0 -0
  80. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/update_inbox_mail_policy.py +0 -0
  81. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/mail_policy/update_mail_policy.py +0 -0
  82. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/__init__.py +0 -0
  83. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/download_raw_message.py +0 -0
  84. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/download_received_attachment.py +0 -0
  85. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/get_message.py +0 -0
  86. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/get_thread.py +0 -0
  87. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/list_messages.py +0 -0
  88. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/list_received_attachments.py +0 -0
  89. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/list_threads.py +0 -0
  90. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/messages/update_message_state.py +0 -0
  91. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/metrics/__init__.py +0 -0
  92. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/metrics/inbox_metrics.py +0 -0
  93. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/metrics/workspace_metrics.py +0 -0
  94. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/privacy/__init__.py +0 -0
  95. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/privacy/create_erasure_request.py +0 -0
  96. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/privacy/read_erasure_request.py +0 -0
  97. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/public/__init__.py +0 -0
  98. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/public/agent_signup.py +0 -0
  99. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/public/agent_verify.py +0 -0
  100. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/search/__init__.py +0 -0
  101. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/search/search.py +0 -0
  102. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/security/__init__.py +0 -0
  103. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/security/get_risk_feedback.py +0 -0
  104. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/security/list_audit_events.py +0 -0
  105. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/security/record_risk_feedback.py +0 -0
  106. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/send/__init__.py +0 -0
  107. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/send/forward_message.py +0 -0
  108. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/send/send.py +0 -0
  109. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/__init__.py +0 -0
  110. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/create_webhook_subscription.py +0 -0
  111. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/delete_webhook_subscription.py +0 -0
  112. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/get_webhook_subscription.py +0 -0
  113. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/list_webhook_subscriptions.py +0 -0
  114. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/rotate_webhook_subscription.py +0 -0
  115. {daknode-0.3.9 → daknode-0.3.10}/daknode/api/webhook_subscriptions/update_webhook_subscription.py +0 -0
  116. {daknode-0.3.9 → daknode-0.3.10}/daknode/client.py +0 -0
  117. {daknode-0.3.9 → daknode-0.3.10}/daknode/errors.py +0 -0
  118. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/__init__.py +0 -0
  119. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/attachment_out.py +0 -0
  120. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/attendee_input.py +0 -0
  121. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/attendee_out.py +0 -0
  122. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/attendee_out_response.py +0 -0
  123. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/audit_out.py +0 -0
  124. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/audit_page.py +0 -0
  125. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/availability_input.py +0 -0
  126. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/availability_out.py +0 -0
  127. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/block_rule_create.py +0 -0
  128. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/block_rule_out.py +0 -0
  129. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/block_rule_page.py +0 -0
  130. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/booking_input.py +0 -0
  131. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/calendar_fact.py +0 -0
  132. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/calendar_fact_page.py +0 -0
  133. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/check_domain_request.py +0 -0
  134. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/consent_request.py +0 -0
  135. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/consent_response.py +0 -0
  136. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/create_erasure_request_response_create_erasure_request.py +0 -0
  137. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/create_in.py +0 -0
  138. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/daily_usage.py +0 -0
  139. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/dead_letter_response.py +0 -0
  140. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/delivery_cohort.py +0 -0
  141. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/delivery_cohort_current_status.py +0 -0
  142. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/delivery_cohort_provider_outcomes.py +0 -0
  143. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/delivery_out.py +0 -0
  144. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/dns_record.py +0 -0
  145. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/domain_out.py +0 -0
  146. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/domain_page.py +0 -0
  147. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_create.py +0 -0
  148. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_edit.py +0 -0
  149. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_file_out.py +0 -0
  150. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_message_out.py +0 -0
  151. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_out.py +0 -0
  152. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_out_state.py +0 -0
  153. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_page.py +0 -0
  154. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/draft_schedule.py +0 -0
  155. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/erasure_request_body.py +0 -0
  156. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/event_create.py +0 -0
  157. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/event_out.py +0 -0
  158. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/event_out_source.py +0 -0
  159. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/event_out_status.py +0 -0
  160. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/event_page.py +0 -0
  161. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/event_patch.py +0 -0
  162. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/exception_put.py +0 -0
  163. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/feedback_change.py +0 -0
  164. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/feedback_change_assessment.py +0 -0
  165. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/feedback_out.py +0 -0
  166. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/feedback_out_assessment.py +0 -0
  167. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/forward_message_response_forward_message.py +0 -0
  168. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/forward_request.py +0 -0
  169. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/free_busy_out.py +0 -0
  170. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/http_validation_error.py +0 -0
  171. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_create_request.py +0 -0
  172. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_deleted.py +0 -0
  173. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_event.py +0 -0
  174. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_event_page.py +0 -0
  175. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_out.py +0 -0
  176. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_page.py +0 -0
  177. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_response.py +0 -0
  178. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/inbox_update_request.py +0 -0
  179. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/instance_out.py +0 -0
  180. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/instance_page.py +0 -0
  181. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/interval_out.py +0 -0
  182. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/invitation_input.py +0 -0
  183. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/invitation_input_method.py +0 -0
  184. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/list_drafts_state_type_0.py +0 -0
  185. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/message_out.py +0 -0
  186. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/message_out_spam_verdict_type_0.py +0 -0
  187. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/message_out_virus_verdict_type_0.py +0 -0
  188. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/message_page.py +0 -0
  189. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/message_state.py +0 -0
  190. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/metrics_out.py +0 -0
  191. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/metrics_window.py +0 -0
  192. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/outgoing_attachment.py +0 -0
  193. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/policy_change.py +0 -0
  194. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/policy_out.py +0 -0
  195. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/poll_inbox_events_start.py +0 -0
  196. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/read_erasure_request_response_read_erasure_request.py +0 -0
  197. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/register_domain_request.py +0 -0
  198. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/reminder_input.py +0 -0
  199. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/reminder_out.py +0 -0
  200. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/replay_response.py +0 -0
  201. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/respond_input.py +0 -0
  202. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/respond_input_response.py +0 -0
  203. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/revision.py +0 -0
  204. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/revoke_request.py +0 -0
  205. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/revoke_response_revoke.py +0 -0
  206. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_create.py +0 -0
  207. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_create_direction.py +0 -0
  208. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_create_effect.py +0 -0
  209. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_out.py +0 -0
  210. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_out_direction.py +0 -0
  211. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_out_effect.py +0 -0
  212. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/rule_out_kind.py +0 -0
  213. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/search_match.py +0 -0
  214. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/search_request.py +0 -0
  215. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/search_response.py +0 -0
  216. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/send_draft_response_send_draft.py +0 -0
  217. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/send_request.py +0 -0
  218. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/send_response_send.py +0 -0
  219. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/series_edit_input.py +0 -0
  220. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/series_edit_input_scope.py +0 -0
  221. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/signup_in.py +0 -0
  222. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/signup_out.py +0 -0
  223. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/state_change.py +0 -0
  224. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_change.py +0 -0
  225. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_change_event_types_type_0_item.py +0 -0
  226. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_change_headers_type_0.py +0 -0
  227. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_create.py +0 -0
  228. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_create_event_types_item.py +0 -0
  229. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_create_headers.py +0 -0
  230. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_out.py +0 -0
  231. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/subscription_out_event_types_item.py +0 -0
  232. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/thread_detail_out.py +0 -0
  233. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/thread_out.py +0 -0
  234. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/thread_page.py +0 -0
  235. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/timeline_item_out.py +0 -0
  236. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/update_in.py +0 -0
  237. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/usage_counts.py +0 -0
  238. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/validation_error.py +0 -0
  239. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/validation_error_context.py +0 -0
  240. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/verify_in.py +0 -0
  241. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/verify_out.py +0 -0
  242. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/webhook_register_request.py +0 -0
  243. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/window_input.py +0 -0
  244. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/working_hours.py +0 -0
  245. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/workspace_list_out.py +0 -0
  246. {daknode-0.3.9 → daknode-0.3.10}/daknode/models/workspace_out.py +0 -0
  247. {daknode-0.3.9 → daknode-0.3.10}/daknode/py.typed +0 -0
  248. {daknode-0.3.9 → daknode-0.3.10}/daknode/types.py +0 -0
@@ -0,0 +1,125 @@
1
+ Metadata-Version: 2.4
2
+ Name: daknode
3
+ Version: 0.3.10
4
+ Summary: Typed sync and async client for DakNode's email and inbox-calendar API
5
+ Keywords: daknode,email,calendar,sdk
6
+ Requires-Python: >=3.9,<4.0
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.9
9
+ Classifier: Programming Language :: Python :: 3.10
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Programming Language :: Python :: 3.14
14
+ Classifier: Programming Language :: Python :: 3.15
15
+ Requires-Dist: attrs (>=22.2.0)
16
+ Requires-Dist: httpx (>=0.23.0,<0.29.0)
17
+ Requires-Dist: python-dateutil (>=2.8.0,<3.0.0)
18
+ Project-URL: Documentation, https://daknode.com/integrations/python/
19
+ Project-URL: Homepage, https://daknode.com
20
+ Project-URL: Security, https://daknode.com/security/reporting/
21
+ Description-Content-Type: text/markdown
22
+
23
+ # DakNode Python SDK
24
+
25
+ Typed synchronous and asynchronous client for DakNode's public email and
26
+ inbox-calendar API. Keep credentials on your server, never in browser code.
27
+
28
+ ## Install and configure
29
+
30
+ Use Python 3.10+ for this starter, in an isolated virtual environment.
31
+
32
+ ```sh
33
+ python -m pip install 'daknode>=0.3.9,<0.4'
34
+ ```
35
+
36
+ Configure DAKNODE_API_KEY through your server's private secret settings and
37
+ DAKNODE_INBOX_ID with an inbox UUID you are authorized to read. Obtain both from
38
+ the console. Do not put keys in command arguments, chat, source control or logs.
39
+ The operation needs messages.read. Workspace boundaries apply; inbox-scoped
40
+ keys require an eligible plan. Do not add send permissions for this example.
41
+
42
+ ## First operation: count one page
43
+
44
+ Save this tested starter as daknode_tools.py, then run
45
+ `python daknode_tools.py` in the configured environment. It makes one bounded
46
+ read and prints only a count. Importing the module performs no request.
47
+
48
+ ```python
49
+ """Customer-side tools: one bounded SDK read, no mail contents or agent loop."""
50
+ import os
51
+ from uuid import UUID
52
+
53
+ from daknode import AuthenticatedClient
54
+ from daknode.api.messages import list_messages
55
+
56
+
57
+ def count_recent_mail() -> int:
58
+ """Count up to ten retained messages in the privately configured inbox."""
59
+ key = os.environ.get("DAKNODE_API_KEY", "").strip()
60
+ identifier = os.environ.get("DAKNODE_INBOX_ID", "")
61
+ if not key or not identifier:
62
+ raise RuntimeError("Configure DAKNODE_API_KEY and DAKNODE_INBOX_ID privately")
63
+ try:
64
+ inbox_id = UUID(identifier)
65
+ except ValueError:
66
+ raise RuntimeError("DAKNODE_INBOX_ID must be a valid inbox UUID") from None
67
+ try:
68
+ with AuthenticatedClient(base_url="https://api.daknode.com", token=key, timeout=10) as client:
69
+ response = list_messages.sync_detailed(inbox_id, client=client, limit=10)
70
+ except Exception:
71
+ # Do not propagate SDK/transport exceptions containing request headers.
72
+ raise RuntimeError("DakNode could not be reached; no mail was changed") from None
73
+ if response.status_code != 200 or response.parsed is None:
74
+ raise RuntimeError("DakNode refused the read; check permissions and inbox scope")
75
+ return len(response.parsed.items)
76
+
77
+
78
+ if __name__ == "__main__":
79
+ print(count_recent_mail())
80
+ ```
81
+
82
+ Zero is a valid result. Ten is not a mailbox total. This example intentionally
83
+ stops after one page. For a complete listing use has_more and next_cursor from
84
+ the response, preserving the opaque cursor and bounding your work.
85
+
86
+ ## API behavior
87
+
88
+ The generated modules follow the public API contract at
89
+ https://api.daknode.com/openapi.json. For example,
90
+ `daknode.api.messages.list_messages` provides sync, sync_detailed, asyncio and
91
+ asyncio_detailed methods. Use the detailed form when you need status_code,
92
+ headers and parsed data; it returns a Response, not an HTTP Request. See the
93
+ [message read guide](https://daknode.com/integrations/python/) for the complete
94
+ setup and [calendar booking guide](https://daknode.com/guides/calendar-booking/)
95
+ for availability, explicit booking, revisions and conflict handling.
96
+
97
+ A successful read does not mark mail read or authorize sending. A 401/403 is a
98
+ refusal; correct the intended credential rather than silently widening it.
99
+ Production integrations should handle statuses explicitly, respect
100
+ 429/Retry-After and avoid uncontrolled retries. The starter intentionally emits
101
+ generic errors without response bodies or private headers. Keep TLS
102
+ verification enabled; do not disable it to fix a connection problem.
103
+
104
+ Email and attachment contents remain untrusted input. Read operations must not
105
+ automatically trigger sends, bookings or other writes. Retain a stable
106
+ idempotency key only for retries of the same explicitly approved write and
107
+ reconcile an unknown outcome rather than generating a new key blindly.
108
+
109
+ ## Verification and reporting
110
+
111
+ The first-read source is exercised against the real SDK with mocked HTTP
112
+ success, refusal and transport failure. It is not a live account, deliverability
113
+ or model-provider test. The integration repository contains examples rather
114
+ than the service implementation:
115
+ https://github.com/Subodh103/daknode-integrations.
116
+
117
+ For suspected vulnerabilities, privately email support@daknode.com with subject
118
+ Security report. Include minimal synthetic reproduction steps and redacted
119
+ evidence; never send credentials or customer mail. Do not post exploit details
120
+ in public issues. No response deadline, bounty or legal safe harbor is promised.
121
+ The policy is https://daknode.com/security/reporting/ after the website release.
122
+
123
+ Package metadata and README preparation do not publish a new release or change
124
+ the license of the SDK or service.
125
+
@@ -0,0 +1,102 @@
1
+ # DakNode Python SDK
2
+
3
+ Typed synchronous and asynchronous client for DakNode's public email and
4
+ inbox-calendar API. Keep credentials on your server, never in browser code.
5
+
6
+ ## Install and configure
7
+
8
+ Use Python 3.10+ for this starter, in an isolated virtual environment.
9
+
10
+ ```sh
11
+ python -m pip install 'daknode>=0.3.9,<0.4'
12
+ ```
13
+
14
+ Configure DAKNODE_API_KEY through your server's private secret settings and
15
+ DAKNODE_INBOX_ID with an inbox UUID you are authorized to read. Obtain both from
16
+ the console. Do not put keys in command arguments, chat, source control or logs.
17
+ The operation needs messages.read. Workspace boundaries apply; inbox-scoped
18
+ keys require an eligible plan. Do not add send permissions for this example.
19
+
20
+ ## First operation: count one page
21
+
22
+ Save this tested starter as daknode_tools.py, then run
23
+ `python daknode_tools.py` in the configured environment. It makes one bounded
24
+ read and prints only a count. Importing the module performs no request.
25
+
26
+ ```python
27
+ """Customer-side tools: one bounded SDK read, no mail contents or agent loop."""
28
+ import os
29
+ from uuid import UUID
30
+
31
+ from daknode import AuthenticatedClient
32
+ from daknode.api.messages import list_messages
33
+
34
+
35
+ def count_recent_mail() -> int:
36
+ """Count up to ten retained messages in the privately configured inbox."""
37
+ key = os.environ.get("DAKNODE_API_KEY", "").strip()
38
+ identifier = os.environ.get("DAKNODE_INBOX_ID", "")
39
+ if not key or not identifier:
40
+ raise RuntimeError("Configure DAKNODE_API_KEY and DAKNODE_INBOX_ID privately")
41
+ try:
42
+ inbox_id = UUID(identifier)
43
+ except ValueError:
44
+ raise RuntimeError("DAKNODE_INBOX_ID must be a valid inbox UUID") from None
45
+ try:
46
+ with AuthenticatedClient(base_url="https://api.daknode.com", token=key, timeout=10) as client:
47
+ response = list_messages.sync_detailed(inbox_id, client=client, limit=10)
48
+ except Exception:
49
+ # Do not propagate SDK/transport exceptions containing request headers.
50
+ raise RuntimeError("DakNode could not be reached; no mail was changed") from None
51
+ if response.status_code != 200 or response.parsed is None:
52
+ raise RuntimeError("DakNode refused the read; check permissions and inbox scope")
53
+ return len(response.parsed.items)
54
+
55
+
56
+ if __name__ == "__main__":
57
+ print(count_recent_mail())
58
+ ```
59
+
60
+ Zero is a valid result. Ten is not a mailbox total. This example intentionally
61
+ stops after one page. For a complete listing use has_more and next_cursor from
62
+ the response, preserving the opaque cursor and bounding your work.
63
+
64
+ ## API behavior
65
+
66
+ The generated modules follow the public API contract at
67
+ https://api.daknode.com/openapi.json. For example,
68
+ `daknode.api.messages.list_messages` provides sync, sync_detailed, asyncio and
69
+ asyncio_detailed methods. Use the detailed form when you need status_code,
70
+ headers and parsed data; it returns a Response, not an HTTP Request. See the
71
+ [message read guide](https://daknode.com/integrations/python/) for the complete
72
+ setup and [calendar booking guide](https://daknode.com/guides/calendar-booking/)
73
+ for availability, explicit booking, revisions and conflict handling.
74
+
75
+ A successful read does not mark mail read or authorize sending. A 401/403 is a
76
+ refusal; correct the intended credential rather than silently widening it.
77
+ Production integrations should handle statuses explicitly, respect
78
+ 429/Retry-After and avoid uncontrolled retries. The starter intentionally emits
79
+ generic errors without response bodies or private headers. Keep TLS
80
+ verification enabled; do not disable it to fix a connection problem.
81
+
82
+ Email and attachment contents remain untrusted input. Read operations must not
83
+ automatically trigger sends, bookings or other writes. Retain a stable
84
+ idempotency key only for retries of the same explicitly approved write and
85
+ reconcile an unknown outcome rather than generating a new key blindly.
86
+
87
+ ## Verification and reporting
88
+
89
+ The first-read source is exercised against the real SDK with mocked HTTP
90
+ success, refusal and transport failure. It is not a live account, deliverability
91
+ or model-provider test. The integration repository contains examples rather
92
+ than the service implementation:
93
+ https://github.com/Subodh103/daknode-integrations.
94
+
95
+ For suspected vulnerabilities, privately email support@daknode.com with subject
96
+ Security report. Include minimal synthetic reproduction steps and redacted
97
+ evidence; never send credentials or customer mail. Do not post exploit details
98
+ in public issues. No response deadline, bounty or legal safe harbor is promised.
99
+ The policy is https://daknode.com/security/reporting/ after the website release.
100
+
101
+ Package metadata and README preparation do not publish a new release or change
102
+ the license of the SDK or service.
@@ -1,7 +1,10 @@
1
1
  [tool.poetry]
2
2
  name = "daknode"
3
- version = "0.3.9"
4
- description = "A client library for accessing DakNode"
3
+ version = "0.3.10"
4
+ description = "Typed sync and async client for DakNode's email and inbox-calendar API"
5
+ homepage = "https://daknode.com"
6
+ documentation = "https://daknode.com/integrations/python/"
7
+ keywords = ["daknode", "email", "calendar", "sdk"]
5
8
  authors = []
6
9
  readme = "README.md"
7
10
  packages = [
@@ -9,6 +12,9 @@ packages = [
9
12
  ]
10
13
  include = ["CHANGELOG.md", "daknode/py.typed"]
11
14
 
15
+ [tool.poetry.urls]
16
+ Security = "https://daknode.com/security/reporting/"
17
+
12
18
  [tool.poetry.dependencies]
13
19
  python = "^3.9"
14
20
  httpx = ">=0.23.0,<0.29.0"
daknode-0.3.9/PKG-INFO DELETED
@@ -1,143 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: daknode
3
- Version: 0.3.9
4
- Summary: A client library for accessing DakNode
5
- Requires-Python: >=3.9,<4.0
6
- Classifier: Programming Language :: Python :: 3
7
- Classifier: Programming Language :: Python :: 3.9
8
- Classifier: Programming Language :: Python :: 3.10
9
- Classifier: Programming Language :: Python :: 3.11
10
- Classifier: Programming Language :: Python :: 3.12
11
- Classifier: Programming Language :: Python :: 3.13
12
- Classifier: Programming Language :: Python :: 3.14
13
- Classifier: Programming Language :: Python :: 3.15
14
- Requires-Dist: attrs (>=22.2.0)
15
- Requires-Dist: httpx (>=0.23.0,<0.29.0)
16
- Requires-Dist: python-dateutil (>=2.8.0,<3.0.0)
17
- Description-Content-Type: text/markdown
18
-
19
- # daknode
20
- A client library for accessing DakNode
21
-
22
- ## Usage
23
- First, create a client:
24
-
25
- ```python
26
- from daknode import Client
27
-
28
- client = Client(base_url="https://api.example.com")
29
- ```
30
-
31
- If the endpoints you're going to hit require authentication, use `AuthenticatedClient` instead:
32
-
33
- ```python
34
- from daknode import AuthenticatedClient
35
-
36
- client = AuthenticatedClient(base_url="https://api.example.com", token="SuperSecretToken")
37
- ```
38
-
39
- Now call your endpoint and use your models:
40
-
41
- ```python
42
- from daknode.models import MyDataModel
43
- from daknode.api.my_tag import get_my_data_model
44
- from daknode.types import Response
45
-
46
- with client as client:
47
- my_data: MyDataModel = get_my_data_model.sync(client=client)
48
- # or if you need more info (e.g. status_code)
49
- response: Response[MyDataModel] = get_my_data_model.sync_detailed(client=client)
50
- ```
51
-
52
- Or do the same thing with an async version:
53
-
54
- ```python
55
- from daknode.models import MyDataModel
56
- from daknode.api.my_tag import get_my_data_model
57
- from daknode.types import Response
58
-
59
- async with client as client:
60
- my_data: MyDataModel = await get_my_data_model.asyncio(client=client)
61
- response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client)
62
- ```
63
-
64
- 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.
65
-
66
- ```python
67
- client = AuthenticatedClient(
68
- base_url="https://internal_api.example.com",
69
- token="SuperSecretToken",
70
- verify_ssl="/path/to/certificate_bundle.pem",
71
- )
72
- ```
73
-
74
- You can also disable certificate validation altogether, but beware that **this is a security risk**.
75
-
76
- ```python
77
- client = AuthenticatedClient(
78
- base_url="https://internal_api.example.com",
79
- token="SuperSecretToken",
80
- verify_ssl=False
81
- )
82
- ```
83
-
84
- Things to know:
85
- 1. Every path/method combo becomes a Python module with four functions:
86
- 1. `sync`: Blocking request that returns parsed data (if successful) or `None`
87
- 1. `sync_detailed`: Blocking request that always returns a `Request`, optionally with `parsed` set if the request was successful.
88
- 1. `asyncio`: Like `sync` but async instead of blocking
89
- 1. `asyncio_detailed`: Like `sync_detailed` but async instead of blocking
90
-
91
- 1. All path/query params, and bodies become method arguments.
92
- 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)
93
- 1. Any endpoint which did not have a tag will be in `daknode.api.default`
94
-
95
- ## Advanced customizations
96
-
97
- 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):
98
-
99
- ```python
100
- from daknode import Client
101
-
102
- def log_request(request):
103
- print(f"Request event hook: {request.method} {request.url} - Waiting for response")
104
-
105
- def log_response(response):
106
- request = response.request
107
- print(f"Response event hook: {request.method} {request.url} - Status {response.status_code}")
108
-
109
- client = Client(
110
- base_url="https://api.example.com",
111
- httpx_args={"event_hooks": {"request": [log_request], "response": [log_response]}},
112
- )
113
-
114
- # Or get the underlying httpx client to modify directly with client.get_httpx_client() or client.get_async_httpx_client()
115
- ```
116
-
117
- You can even set the httpx client directly, but beware that this will override any existing settings (e.g., base_url):
118
-
119
- ```python
120
- import httpx
121
- from daknode import Client
122
-
123
- client = Client(
124
- base_url="https://api.example.com",
125
- )
126
- # Note that base_url needs to be re-set, as would any shared cookies, headers, etc.
127
- client.set_httpx_client(httpx.Client(base_url="https://api.example.com", proxies="http://localhost:8030"))
128
- ```
129
-
130
- ## Building / publishing this package
131
- This project uses [Poetry](https://python-poetry.org/) to manage dependencies and packaging. Here are the basics:
132
- 1. Update the metadata in pyproject.toml (e.g. authors, version)
133
- 1. If you're using a private repository, configure it with Poetry
134
- 1. `poetry config repositories.<your-repository-name> <url-to-your-repository>`
135
- 1. `poetry config http-basic.<your-repository-name> <username> <password>`
136
- 1. Publish the client with `poetry publish --build -r <your-repository-name>` or, if for public PyPI, just `poetry publish --build`
137
-
138
- If you want to install this client into another project without publishing it (e.g. for development) then:
139
- 1. If that project **is using Poetry**, you can simply do `poetry add <path-to-this-client>` from that project
140
- 1. If that project is not using Poetry:
141
- 1. Build a wheel with `poetry build -f wheel`
142
- 1. Install that wheel from the other project `pip install <path-to-wheel>`
143
-
daknode-0.3.9/README.md DELETED
@@ -1,124 +0,0 @@
1
- # daknode
2
- A client library for accessing DakNode
3
-
4
- ## Usage
5
- First, create a client:
6
-
7
- ```python
8
- from daknode import Client
9
-
10
- client = Client(base_url="https://api.example.com")
11
- ```
12
-
13
- If the endpoints you're going to hit require authentication, use `AuthenticatedClient` instead:
14
-
15
- ```python
16
- from daknode import AuthenticatedClient
17
-
18
- client = AuthenticatedClient(base_url="https://api.example.com", token="SuperSecretToken")
19
- ```
20
-
21
- Now call your endpoint and use your models:
22
-
23
- ```python
24
- from daknode.models import MyDataModel
25
- from daknode.api.my_tag import get_my_data_model
26
- from daknode.types import Response
27
-
28
- with client as client:
29
- my_data: MyDataModel = get_my_data_model.sync(client=client)
30
- # or if you need more info (e.g. status_code)
31
- response: Response[MyDataModel] = get_my_data_model.sync_detailed(client=client)
32
- ```
33
-
34
- Or do the same thing with an async version:
35
-
36
- ```python
37
- from daknode.models import MyDataModel
38
- from daknode.api.my_tag import get_my_data_model
39
- from daknode.types import Response
40
-
41
- async with client as client:
42
- my_data: MyDataModel = await get_my_data_model.asyncio(client=client)
43
- response: Response[MyDataModel] = await get_my_data_model.asyncio_detailed(client=client)
44
- ```
45
-
46
- 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.
47
-
48
- ```python
49
- client = AuthenticatedClient(
50
- base_url="https://internal_api.example.com",
51
- token="SuperSecretToken",
52
- verify_ssl="/path/to/certificate_bundle.pem",
53
- )
54
- ```
55
-
56
- You can also disable certificate validation altogether, but beware that **this is a security risk**.
57
-
58
- ```python
59
- client = AuthenticatedClient(
60
- base_url="https://internal_api.example.com",
61
- token="SuperSecretToken",
62
- verify_ssl=False
63
- )
64
- ```
65
-
66
- Things to know:
67
- 1. Every path/method combo becomes a Python module with four functions:
68
- 1. `sync`: Blocking request that returns parsed data (if successful) or `None`
69
- 1. `sync_detailed`: Blocking request that always returns a `Request`, optionally with `parsed` set if the request was successful.
70
- 1. `asyncio`: Like `sync` but async instead of blocking
71
- 1. `asyncio_detailed`: Like `sync_detailed` but async instead of blocking
72
-
73
- 1. All path/query params, and bodies become method arguments.
74
- 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)
75
- 1. Any endpoint which did not have a tag will be in `daknode.api.default`
76
-
77
- ## Advanced customizations
78
-
79
- 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):
80
-
81
- ```python
82
- from daknode import Client
83
-
84
- def log_request(request):
85
- print(f"Request event hook: {request.method} {request.url} - Waiting for response")
86
-
87
- def log_response(response):
88
- request = response.request
89
- print(f"Response event hook: {request.method} {request.url} - Status {response.status_code}")
90
-
91
- client = Client(
92
- base_url="https://api.example.com",
93
- httpx_args={"event_hooks": {"request": [log_request], "response": [log_response]}},
94
- )
95
-
96
- # Or get the underlying httpx client to modify directly with client.get_httpx_client() or client.get_async_httpx_client()
97
- ```
98
-
99
- You can even set the httpx client directly, but beware that this will override any existing settings (e.g., base_url):
100
-
101
- ```python
102
- import httpx
103
- from daknode import Client
104
-
105
- client = Client(
106
- base_url="https://api.example.com",
107
- )
108
- # Note that base_url needs to be re-set, as would any shared cookies, headers, etc.
109
- client.set_httpx_client(httpx.Client(base_url="https://api.example.com", proxies="http://localhost:8030"))
110
- ```
111
-
112
- ## Building / publishing this package
113
- This project uses [Poetry](https://python-poetry.org/) to manage dependencies and packaging. Here are the basics:
114
- 1. Update the metadata in pyproject.toml (e.g. authors, version)
115
- 1. If you're using a private repository, configure it with Poetry
116
- 1. `poetry config repositories.<your-repository-name> <url-to-your-repository>`
117
- 1. `poetry config http-basic.<your-repository-name> <username> <password>`
118
- 1. Publish the client with `poetry publish --build -r <your-repository-name>` or, if for public PyPI, just `poetry publish --build`
119
-
120
- If you want to install this client into another project without publishing it (e.g. for development) then:
121
- 1. If that project **is using Poetry**, you can simply do `poetry add <path-to-this-client>` from that project
122
- 1. If that project is not using Poetry:
123
- 1. Build a wheel with `poetry build -f wheel`
124
- 1. Install that wheel from the other project `pip install <path-to-wheel>`
File without changes