mmisp-lib 0.1.5__tar.gz → 0.1.7__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 (172) hide show
  1. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/PKG-INFO +1 -1
  2. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/pyproject.toml +1 -1
  3. mmisp_lib-0.1.7/src/mmisp/db/all_models.py +15 -0
  4. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/config.py +2 -1
  5. mmisp_lib-0.1.7/src/mmisp/db/database.py +89 -0
  6. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/object.py +3 -2
  7. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp_lib.egg-info/PKG-INFO +1 -1
  8. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp_lib.egg-info/SOURCES.txt +1 -0
  9. mmisp_lib-0.1.5/src/mmisp/db/database.py +0 -42
  10. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/LICENSE +0 -0
  11. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/README.md +0 -0
  12. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/setup.cfg +0 -0
  13. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/__init__.py +0 -0
  14. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/__init__.py +0 -0
  15. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/add_attribute_body.py +0 -0
  16. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/add_attribute_response.py +0 -0
  17. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/add_remove_tag_attribute_response.py +0 -0
  18. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/delete_attribute_response.py +0 -0
  19. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/delete_selected_attribute_body.py +0 -0
  20. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/delete_selected_attribute_response.py +0 -0
  21. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/edit_attribute_body.py +0 -0
  22. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/edit_attributes_response.py +0 -0
  23. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/get_all_attributes_response.py +0 -0
  24. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/get_attribute_response.py +0 -0
  25. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/get_attribute_statistics_response.py +0 -0
  26. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/get_describe_types_response.py +0 -0
  27. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/restore_attribute_reponse.py +0 -0
  28. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/search_attributes_body.py +0 -0
  29. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/attributes/search_attributes_response.py +0 -0
  30. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/__init__.py +0 -0
  31. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/add_auth_key_body.py +0 -0
  32. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/add_auth_key_response.py +0 -0
  33. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/edit_auth_key_body.py +0 -0
  34. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/edit_auth_key_response.py +0 -0
  35. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/search_auth_keys_body.py +0 -0
  36. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/search_get_all_auth_keys_users_response.py +0 -0
  37. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/auth_keys/view_auth_key_response.py +0 -0
  38. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/authentication/__init__.py +0 -0
  39. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/authentication/exchange_token_login_body.py +0 -0
  40. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/authentication/password_login_body.py +0 -0
  41. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/authentication/start_login_body.py +0 -0
  42. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/authentication/start_login_response.py +0 -0
  43. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/authentication/token_response.py +0 -0
  44. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/FreeTextImportWorkerBody.py +0 -0
  45. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/__init__.py +0 -0
  46. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/add_attribute_via_free_text_import_event_body.py +0 -0
  47. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/add_attribute_via_free_text_import_event_response.py +0 -0
  48. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/add_edit_get_event_response.py +0 -0
  49. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/add_event_body.py +0 -0
  50. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/add_remove_tag_events_response.py +0 -0
  51. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/delete_event_response.py +0 -0
  52. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/edit_event_body.py +0 -0
  53. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/get_all_events_response.py +0 -0
  54. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/get_event_response.py +0 -0
  55. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/index_events_body.py +0 -0
  56. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/index_events_response.py +0 -0
  57. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/publish_event_response.py +0 -0
  58. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/search_events_body.py +0 -0
  59. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/search_events_response.py +0 -0
  60. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/events/unpublish_event_response.py +0 -0
  61. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/__init__.py +0 -0
  62. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/cache_feed_response.py +0 -0
  63. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/create_feed_body.py +0 -0
  64. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/enable_disable_feed_response.py +0 -0
  65. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/fetch_feeds_response.py +0 -0
  66. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/get_feed_response.py +0 -0
  67. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/toggle_feed_body.py +0 -0
  68. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/feeds/update_feed_body.py +0 -0
  69. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/__init__.py +0 -0
  70. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/attach_galaxy_cluster_body.py +0 -0
  71. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/attach_galaxy_cluster_response.py +0 -0
  72. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/delete_force_update_import_galaxy_response.py +0 -0
  73. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/export_galaxies_body.py +0 -0
  74. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/export_galaxies_response.py +0 -0
  75. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/galaxy_schema.py +0 -0
  76. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/get_all_search_galaxies_response.py +0 -0
  77. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/get_galaxy_response.py +0 -0
  78. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/import_galaxies_body.py +0 -0
  79. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/galaxies/search_galaxies_body.py +0 -0
  80. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/noticelists/__init__.py +0 -0
  81. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/noticelists/get_all_noticelist_response.py +0 -0
  82. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/noticelists/get_noticelist_response.py +0 -0
  83. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/objects/__init__.py +0 -0
  84. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/objects/create_object_body.py +0 -0
  85. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/objects/get_object_response.py +0 -0
  86. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/objects/search_objects_body.py +0 -0
  87. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/organisations/__init__.py +0 -0
  88. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/organisations/organisation.py +0 -0
  89. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/roles/__init__.py +0 -0
  90. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/roles/role.py +0 -0
  91. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/__init__.py +0 -0
  92. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/add_org_to_sharing_group_body.py +0 -0
  93. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/add_org_to_sharing_group_legacy_body.py +0 -0
  94. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/add_server_to_sharing_group_body.py +0 -0
  95. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/add_server_to_sharing_group_legacy_body.py +0 -0
  96. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/create_sharing_group_body.py +0 -0
  97. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/create_sharing_group_legacy_body.py +0 -0
  98. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/create_sharing_group_legacy_response.py +0 -0
  99. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/delete_sharing_group_legacy_response.py +0 -0
  100. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/get_all_sharing_groups_response.py +0 -0
  101. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/get_sharing_group_info_response.py +0 -0
  102. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/sharing_group.py +0 -0
  103. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/sharing_group_org.py +0 -0
  104. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/sharing_group_server.py +0 -0
  105. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/update_sharing_group_body.py +0 -0
  106. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/update_sharing_group_legacy_body.py +0 -0
  107. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sharing_groups/view_update_sharing_group_legacy_response.py +0 -0
  108. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sightings/__init__.py +0 -0
  109. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sightings/create_sighting_body.py +0 -0
  110. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/sightings/get_sighting_response.py +0 -0
  111. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/standard_status_response.py +0 -0
  112. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/tags/__init__.py +0 -0
  113. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/tags/create_tag_body.py +0 -0
  114. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/tags/delete_tag_response.py +0 -0
  115. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/tags/get_tag_response.py +0 -0
  116. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/tags/search_tags_response.py +0 -0
  117. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/tags/update_tag_body.py +0 -0
  118. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/taxonomies/__init__.py +0 -0
  119. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/taxonomies/export_taxonomies_response.py +0 -0
  120. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/taxonomies/get_taxonomy_by_id_response.py +0 -0
  121. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/taxonomies/get_taxonomy_response.py +0 -0
  122. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/taxonomies/get_taxonomy_tags_response.py +0 -0
  123. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/__init__.py +0 -0
  124. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/get_uid_user_setting_response.py +0 -0
  125. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/get_user_settings_response.py +0 -0
  126. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/search_user_setting_body.py +0 -0
  127. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/search_user_setting_response.py +0 -0
  128. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/set_user_setting_body.py +0 -0
  129. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/set_user_setting_response.py +0 -0
  130. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/user_settings/view_user_setting_response.py +0 -0
  131. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/users/__init__.py +0 -0
  132. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/users/user.py +0 -0
  133. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/users/users_view_me_response.py +0 -0
  134. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/__init__.py +0 -0
  135. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/check_value_warninglists_body.py +0 -0
  136. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/check_value_warninglists_response.py +0 -0
  137. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/create_warninglist_body.py +0 -0
  138. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/delete_warninglist_response.py +0 -0
  139. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/get_selected_all_warninglists_response.py +0 -0
  140. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/get_selected_warninglists_body.py +0 -0
  141. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_body.py +0 -0
  142. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_response.py +0 -0
  143. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/api_schemas/warninglists/warninglist_response.py +0 -0
  144. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/__init__.py +0 -0
  145. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/mixins.py +0 -0
  146. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/__init__.py +0 -0
  147. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/attribute.py +0 -0
  148. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/auth_key.py +0 -0
  149. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/event.py +0 -0
  150. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/feed.py +0 -0
  151. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/galaxy.py +0 -0
  152. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/galaxy_cluster.py +0 -0
  153. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/identity_provider.py +0 -0
  154. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/noticelist.py +0 -0
  155. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/organisation.py +0 -0
  156. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/role.py +0 -0
  157. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/server.py +0 -0
  158. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/sharing_group.py +0 -0
  159. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/sighting.py +0 -0
  160. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/tag.py +0 -0
  161. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/taxonomy.py +0 -0
  162. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/user.py +0 -0
  163. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/user_setting.py +0 -0
  164. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/models/warninglist.py +0 -0
  165. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/db/print_changes.py +0 -0
  166. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/lib/__init__.py +0 -0
  167. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/lib/attributes.py +0 -0
  168. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp/lib/permissions.py +0 -0
  169. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp_lib.egg-info/dependency_links.txt +0 -0
  170. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp_lib.egg-info/requires.txt +0 -0
  171. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/src/mmisp_lib.egg-info/top_level.txt +0 -0
  172. {mmisp_lib-0.1.5 → mmisp_lib-0.1.7}/tests/test_dummy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mmisp-lib
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Requires-Python: >=3.11.0
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mmisp-lib"
3
- version = "0.1.5"
3
+ version = "0.1.7"
4
4
  description = ""
5
5
  authors = []
6
6
  readme = "README.md"
@@ -0,0 +1,15 @@
1
+ import importlib
2
+ import importlib.resources
3
+ import itertools
4
+
5
+ model_pkg = "mmisp.db.models"
6
+ all_models = (
7
+ resource.name[:-3]
8
+ for resource in importlib.resources.files(model_pkg).iterdir()
9
+ if resource.is_file() and resource.name != "__init__.py"
10
+ )
11
+
12
+ model_module_names = map(".".join, zip(itertools.repeat(model_pkg), all_models))
13
+
14
+ for m in model_module_names:
15
+ importlib.import_module(m)
@@ -7,9 +7,10 @@ from dotenv import load_dotenv
7
7
  @dataclass
8
8
  class DatabaseConfig:
9
9
  DATABASE_URL: str
10
+ DEBUG: bool
10
11
 
11
12
 
12
13
  load_dotenv(getenv("ENV_FILE", ".env"))
13
14
 
14
15
 
15
- config: DatabaseConfig = DatabaseConfig(DATABASE_URL=getenv("DATABASE_URL", ""))
16
+ config: DatabaseConfig = DatabaseConfig(DATABASE_URL=getenv("DATABASE_URL", ""), DEBUG=bool(getenv("DEBUG", False)))
@@ -0,0 +1,89 @@
1
+ import contextlib
2
+ from typing import AsyncIterator, Self, TypeAlias
3
+
4
+ from sqlalchemy.engine.url import make_url
5
+ from sqlalchemy.ext.asyncio import AsyncConnection, AsyncEngine, AsyncSession, create_async_engine
6
+ from sqlalchemy.orm import declarative_base, sessionmaker
7
+
8
+ from mmisp.db.config import config
9
+
10
+ Session: TypeAlias = AsyncSession
11
+
12
+ # , poolclass=NullPool)
13
+ # async_session = sessionmaker(autoflush=False, expire_on_commit=False, class_=AsyncSession, bind=engine)
14
+
15
+ Base = declarative_base()
16
+
17
+
18
+ class DatabaseSessionManager:
19
+ def __init__(self: Self) -> None:
20
+ self._engine: AsyncEngine | None = None
21
+ self._sessionmaker: sessionmaker | None = None
22
+
23
+ self._url = make_url(config.DATABASE_URL)
24
+
25
+ def init(self: Self) -> None:
26
+ if config.DEBUG:
27
+ self._engine = create_async_engine(self._url, echo=True)
28
+ else:
29
+ self._engine = create_async_engine(self._url)
30
+ self._sessionmaker = sessionmaker(
31
+ autocommit=False, expire_on_commit=False, bind=self._engine, class_=AsyncSession
32
+ )
33
+
34
+ async def close(self: Self) -> None:
35
+ if self._engine is None:
36
+ raise Exception("DatabaseSessionManager is not initialized")
37
+ await self._engine.dispose()
38
+ self._engine = None
39
+ self._sessionmaker = None
40
+
41
+ @contextlib.asynccontextmanager
42
+ async def connect(self: Self) -> AsyncIterator[AsyncConnection]:
43
+ if self._engine is None:
44
+ raise Exception("DatabaseSessionManager is not initialized")
45
+
46
+ async with self._engine.begin() as connection:
47
+ try:
48
+ yield connection
49
+ except Exception:
50
+ await connection.rollback()
51
+ raise
52
+
53
+ @contextlib.asynccontextmanager
54
+ async def session(self: Self) -> AsyncIterator[AsyncSession]:
55
+ if self._sessionmaker is None:
56
+ raise Exception("DatabaseSessionManager is not initialized")
57
+
58
+ session = self._sessionmaker()
59
+ try:
60
+ yield session
61
+ except Exception:
62
+ await session.rollback()
63
+ raise
64
+ finally:
65
+ await session.close()
66
+
67
+ # Used for testing
68
+ async def create_all(self: Self, engine: AsyncEngine | None = None) -> None:
69
+ if engine is None:
70
+ engine = self._engine
71
+ async with engine.begin() as conn:
72
+ await conn.run_sync(Base.metadata.create_all)
73
+
74
+ async def drop_all(self: Self, engine: AsyncEngine | None = None) -> None:
75
+ if engine is None:
76
+ engine = self._engine
77
+ await engine.run_sync(Base.metadata.drop_all)
78
+
79
+
80
+ async def get_db() -> Session:
81
+ async with sessionmanager.session() as session:
82
+ yield session
83
+
84
+
85
+ async def create_all_models() -> None:
86
+ await sessionmanager.create_all()
87
+
88
+
89
+ sessionmanager = DatabaseSessionManager()
@@ -1,10 +1,11 @@
1
1
  from sqlalchemy import Boolean, Column, ForeignKey, Integer, String
2
2
 
3
3
  from mmisp.db.database import Base
4
+ from mmisp.db.mixins import DictMixin
4
5
  from mmisp.util.uuid import uuid
5
6
 
6
7
 
7
- class Object(Base):
8
+ class Object(Base, DictMixin):
8
9
  __tablename__ = "objects"
9
10
 
10
11
  id = Column(Integer, primary_key=True, nullable=False)
@@ -24,7 +25,7 @@ class Object(Base):
24
25
  last_seen = Column(Integer, index=True, default=None)
25
26
 
26
27
 
27
- class ObjectTemplate(Base):
28
+ class ObjectTemplate(Base, DictMixin):
28
29
  __tablename__ = "object_templates"
29
30
 
30
31
  id = Column(Integer, primary_key=True, nullable=False)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mmisp-lib
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Requires-Python: >=3.11.0
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -133,6 +133,7 @@ src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_body.py
133
133
  src/mmisp/api_schemas/warninglists/toggle_enable_warninglists_response.py
134
134
  src/mmisp/api_schemas/warninglists/warninglist_response.py
135
135
  src/mmisp/db/__init__.py
136
+ src/mmisp/db/all_models.py
136
137
  src/mmisp/db/config.py
137
138
  src/mmisp/db/database.py
138
139
  src/mmisp/db/mixins.py
@@ -1,42 +0,0 @@
1
- from functools import wraps
2
- from typing import Any, Callable, TypeAlias
3
-
4
- from sqlalchemy.engine.url import make_url
5
- from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
6
- from sqlalchemy.orm import declarative_base, sessionmaker
7
- from sqlalchemy.pool import NullPool
8
-
9
- from mmisp.db.config import config
10
-
11
- Session: TypeAlias = AsyncSession
12
-
13
- url = make_url(config.DATABASE_URL)
14
- engine = create_async_engine(url, poolclass=NullPool)
15
- async_session = sessionmaker(autoflush=False, expire_on_commit=False, class_=AsyncSession, bind=engine)
16
-
17
- Base = declarative_base()
18
-
19
-
20
- def get_db() -> Session:
21
- return async_session()
22
-
23
-
24
- def with_session_management(fn: Callable) -> Callable:
25
- @wraps(fn)
26
- async def wrapper(*args, **kwargs) -> Any:
27
- db: Session = kwargs.pop("db")
28
- output: Any = None
29
-
30
- try:
31
- output = await fn(*args, **kwargs, db=db)
32
- finally:
33
- await db.close()
34
-
35
- return output
36
-
37
- return wrapper
38
-
39
-
40
- async def create_all_models() -> None:
41
- async with engine.begin() as db:
42
- await db.run_sync(Base.metadata.create_all)
File without changes
File without changes
File without changes
File without changes