appdaemon 4.5.6__tar.gz → 4.5.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 (354) hide show
  1. {appdaemon-4.5.6/appdaemon.egg-info → appdaemon-4.5.7}/PKG-INFO +1 -1
  2. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/adapi.py +40 -5
  3. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/adbase.py +22 -8
  4. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/version.py +1 -1
  5. {appdaemon-4.5.6 → appdaemon-4.5.7/appdaemon.egg-info}/PKG-INFO +1 -1
  6. {appdaemon-4.5.6 → appdaemon-4.5.7}/LICENSE.md +0 -0
  7. {appdaemon-4.5.6 → appdaemon-4.5.7}/MANIFEST.in +0 -0
  8. {appdaemon-4.5.6 → appdaemon-4.5.7}/README.md +0 -0
  9. {appdaemon-4.5.6 → appdaemon-4.5.7}/README.rst +0 -0
  10. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/__init__.py +0 -0
  11. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/__main__.py +0 -0
  12. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/admin.py +0 -0
  13. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/admin_loop.py +0 -0
  14. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/app_management.py +0 -0
  15. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/appdaemon.py +0 -0
  16. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/appdaemon.png +0 -0
  17. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/css/app.css +0 -0
  18. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/css/chunk-vendors.css +0 -0
  19. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/favicon.ico +0 -0
  20. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/index.html +0 -0
  21. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/js/app.js +0 -0
  22. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/js/app.js.map +0 -0
  23. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/js/chunk-vendors.js +0 -0
  24. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/aui/js/chunk-vendors.js.map +0 -0
  25. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/all.css +0 -0
  26. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/climacons-font.css +0 -0
  27. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/default/dashboard.css +0 -0
  28. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/default/variables.yaml +0 -0
  29. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/fontawesome.min.css +0 -0
  30. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/fonts.css +0 -0
  31. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/dashboard.css +0 -0
  32. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/img/carbon1.jpg +0 -0
  33. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/img/carbon2.jpg +0 -0
  34. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/img/carbon3.jpg +0 -0
  35. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/img/carbon4.jpg +0 -0
  36. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/img/glassic_bg.jpg +0 -0
  37. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/glassic/variables.yaml +0 -0
  38. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/images/ui-icons_444444_256x240.png +0 -0
  39. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/images/ui-icons_555555_256x240.png +0 -0
  40. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/images/ui-icons_777620_256x240.png +0 -0
  41. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/images/ui-icons_777777_256x240.png +0 -0
  42. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/images/ui-icons_cc0000_256x240.png +0 -0
  43. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/images/ui-icons_ffffff_256x240.png +0 -0
  44. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/jquery-ui.css +0 -0
  45. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/jquery.gridster.css +0 -0
  46. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/main.css +0 -0
  47. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/materialdesignicons.min.css +0 -0
  48. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/non_dashboard.css +0 -0
  49. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/obsidian/dashboard.css +0 -0
  50. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/obsidian/img/obsidian_bg.jpg +0 -0
  51. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/obsidian/img/obsidian_w_bg.jpg +0 -0
  52. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/obsidian/img/obsidianbg.jpg +0 -0
  53. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/obsidian/img/widgetbg.jpg +0 -0
  54. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/obsidian/variables.yaml +0 -0
  55. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/rickshaw.min.css +0 -0
  56. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/simplyred/dashboard.css +0 -0
  57. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/simplyred/img/goldgradient.png +0 -0
  58. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/simplyred/img/goldtexture.jpg +0 -0
  59. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/simplyred/js/timer.js +0 -0
  60. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/simplyred/variables.yaml +0 -0
  61. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/v4-shims.min.css +0 -0
  62. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/zen/dashboard.css +0 -0
  63. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/zen/img/zen_bg.jpg +0 -0
  64. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/zen/img/zen_bg2.jpg +0 -0
  65. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/zen/img/zen_weatherbg.jpg +0 -0
  66. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/css/zen/variables.yaml +0 -0
  67. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/TickingTimebombBB.ttf +0 -0
  68. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/climacons-webfont.eot +0 -0
  69. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/climacons-webfont.svg +0 -0
  70. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/climacons-webfont.ttf +0 -0
  71. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/climacons-webfont.woff +0 -0
  72. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/digital-7-mono.eot +0 -0
  73. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/digital-7-mono.ttf +0 -0
  74. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/materialdesignicons-webfont.eot +0 -0
  75. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/materialdesignicons-webfont.ttf +0 -0
  76. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/materialdesignicons-webfont.woff +0 -0
  77. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/materialdesignicons-webfont.woff2 +0 -0
  78. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/fonts/repetition.ttf +0 -0
  79. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/Blank.gif +0 -0
  80. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/android-chrome-192x192.png +0 -0
  81. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/android-chrome-512x512.png +0 -0
  82. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/apple-touch-icon.png +0 -0
  83. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/browserconfig.xml +0 -0
  84. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/favicon-16x16.png +0 -0
  85. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/favicon-32x32.png +0 -0
  86. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/favicon.ico +0 -0
  87. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/manifest.json +0 -0
  88. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/mstile-144x144.png +0 -0
  89. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/mstile-150x150.png +0 -0
  90. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/mstile-310x150.png +0 -0
  91. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/mstile-310x310.png +0 -0
  92. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/images/mstile-70x70.png +0 -0
  93. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/admin.js +0 -0
  94. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/d3.layout.min.js +0 -0
  95. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/d3.min.js +0 -0
  96. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/dashboard.js +0 -0
  97. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/gauge.min.js +0 -0
  98. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/jquery-3.1.1.min.js +0 -0
  99. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/jquery-ui.js +0 -0
  100. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/jquery.gridster.js +0 -0
  101. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/justgage.js +0 -0
  102. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/knockout-3.4.1.js +0 -0
  103. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/list.min.js +0 -0
  104. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/plotly.min.js +0 -0
  105. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/raphael-2.1.4.min.js +0 -0
  106. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/reconnecting-websocket.min.js +0 -0
  107. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/rickshaw.min.js +0 -0
  108. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/socket.io.js +0 -0
  109. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/sockjs.min.js +0 -0
  110. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/javascript/stream.js +0 -0
  111. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/admin.jinja2 +0 -0
  112. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/body_include.jinja2 +0 -0
  113. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/dashboard.jinja2 +0 -0
  114. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/dashinit.jinja2 +0 -0
  115. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/error.jinja2 +0 -0
  116. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/head_include.jinja2 +0 -0
  117. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/list.jinja2 +0 -0
  118. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/templates/logon.jinja2 +0 -0
  119. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-brands-400.eot +0 -0
  120. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-brands-400.svg +0 -0
  121. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-brands-400.ttf +0 -0
  122. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-brands-400.woff +0 -0
  123. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-brands-400.woff2 +0 -0
  124. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-regular-400.eot +0 -0
  125. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-regular-400.svg +0 -0
  126. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-regular-400.ttf +0 -0
  127. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-regular-400.woff +0 -0
  128. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-regular-400.woff2 +0 -0
  129. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-solid-900.eot +0 -0
  130. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-solid-900.svg +0 -0
  131. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-solid-900.ttf +0 -0
  132. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-solid-900.woff +0 -0
  133. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/assets/webfonts/fa-solid-900.woff2 +0 -0
  134. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/callbacks.py +0 -0
  135. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/dashboard.py +0 -0
  136. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/dependency.py +0 -0
  137. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/dependency_manager.py +0 -0
  138. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/entity.py +0 -0
  139. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/events.py +0 -0
  140. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/exceptions.py +0 -0
  141. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/futures.py +0 -0
  142. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/http.py +0 -0
  143. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/logging.py +0 -0
  144. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/__init__.py +0 -0
  145. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/__init__.py +0 -0
  146. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/api.py +0 -0
  147. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/app.py +0 -0
  148. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/appdaemon.py +0 -0
  149. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/common.py +0 -0
  150. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/dashboard.py +0 -0
  151. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/http.py +0 -0
  152. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/log.py +0 -0
  153. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/misc.py +0 -0
  154. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/plugin.py +0 -0
  155. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/sequence.py +0 -0
  156. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/config/yaml.py +0 -0
  157. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/internal/__init__.py +0 -0
  158. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/internal/app_management.py +0 -0
  159. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/internal/file_check.py +0 -0
  160. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/internal/plugin.py +0 -0
  161. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/internal/state.py +0 -0
  162. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/internal/threading.py +0 -0
  163. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/notification/__init__.py +0 -0
  164. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/notification/android.py +0 -0
  165. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/notification/base.py +0 -0
  166. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/models/notification/iOS.py +0 -0
  167. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugin_management.py +0 -0
  168. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/__init__.py +0 -0
  169. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/dummy/dummyapi.py +0 -0
  170. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/dummy/dummyplugin.py +0 -0
  171. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/__init__.py +0 -0
  172. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/exceptions.py +0 -0
  173. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/hassapi.py +0 -0
  174. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/hassplugin.py +0 -0
  175. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/models.py +0 -0
  176. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/notifications.py +0 -0
  177. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/hass/utils.py +0 -0
  178. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/mqtt/__init__.py +0 -0
  179. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/mqtt/mqttapi.py +0 -0
  180. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/plugins/mqtt/mqttplugin.py +0 -0
  181. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/pyversions.py +0 -0
  182. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/scheduler.py +0 -0
  183. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/sequences.py +0 -0
  184. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/services.py +0 -0
  185. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/state.py +0 -0
  186. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/stream/__init__.py +0 -0
  187. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/stream/adstream.py +0 -0
  188. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/stream/socketio_handler.py +0 -0
  189. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/stream/sockjs_handler.py +0 -0
  190. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/stream/ws_handler.py +0 -0
  191. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/thread_async.py +0 -0
  192. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/threads.py +0 -0
  193. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/utility_loop.py +0 -0
  194. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/utils.py +0 -0
  195. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/AdminLog.yaml +0 -0
  196. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/AdminSummary.yaml +0 -0
  197. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/AdminTable.yaml +0 -0
  198. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/alarm.yaml +0 -0
  199. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basealarm/basealarm.css +0 -0
  200. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basealarm/basealarm.html +0 -0
  201. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basealarm/basealarm.js +0 -0
  202. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basecamera/basecamera.css +0 -0
  203. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basecamera/basecamera.html +0 -0
  204. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basecamera/basecamera.js +0 -0
  205. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseclimate/baseclimate.css +0 -0
  206. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseclimate/baseclimate.html +0 -0
  207. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseclimate/baseclimate.js +0 -0
  208. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseclock/baseclock.css +0 -0
  209. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseclock/baseclock.html +0 -0
  210. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseclock/baseclock.js +0 -0
  211. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basedatetime/basedatetime.css +0 -0
  212. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basedatetime/basedatetime.html +0 -0
  213. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basedatetime/basedatetime.js +0 -0
  214. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basedisplay/basedisplay.css +0 -0
  215. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basedisplay/basedisplay.html +0 -0
  216. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basedisplay/basedisplay.js +0 -0
  217. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseentitypicture/baseentitypicture.css +0 -0
  218. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseentitypicture/baseentitypicture.html +0 -0
  219. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseentitypicture/baseentitypicture.js +0 -0
  220. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseerror/baseerror.css +0 -0
  221. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseerror/baseerror.html +0 -0
  222. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseerror/baseerror.js +0 -0
  223. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basefan/basefan.css +0 -0
  224. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basefan/basefan.html +0 -0
  225. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basefan/basefan.js +0 -0
  226. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basegauge/basegauge.css +0 -0
  227. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basegauge/basegauge.html +0 -0
  228. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basegauge/basegauge.js +0 -0
  229. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseheater/baseheater.css +0 -0
  230. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseheater/baseheater.html +0 -0
  231. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseheater/baseheater.js +0 -0
  232. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseicon/baseicon.css +0 -0
  233. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseicon/baseicon.html +0 -0
  234. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseicon/baseicon.js +0 -0
  235. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseiframe/baseiframe.css +0 -0
  236. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseiframe/baseiframe.html +0 -0
  237. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseiframe/baseiframe.js +0 -0
  238. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseinputnumber/baseinputnumber.css +0 -0
  239. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseinputnumber/baseinputnumber.html +0 -0
  240. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseinputnumber/baseinputnumber.js +0 -0
  241. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basejavascript/basejavascript.css +0 -0
  242. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basejavascript/basejavascript.html +0 -0
  243. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basejavascript/basejavascript.js +0 -0
  244. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baselight/baselight.css +0 -0
  245. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baselight/baselight.html +0 -0
  246. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baselight/baselight.js +0 -0
  247. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basemedia/basemedia.css +0 -0
  248. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basemedia/basemedia.html +0 -0
  249. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basemedia/basemedia.js +0 -0
  250. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseradial/baseradial.css +0 -0
  251. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseradial/baseradial.html +0 -0
  252. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseradial/baseradial.js +0 -0
  253. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baserss/baserss.css +0 -0
  254. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baserss/baserss.html +0 -0
  255. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baserss/baserss.js +0 -0
  256. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseselect/baseselect.css +0 -0
  257. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseselect/baseselect.html +0 -0
  258. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseselect/baseselect.js +0 -0
  259. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseslider/baseslider.css +0 -0
  260. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseslider/baseslider.html +0 -0
  261. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseslider/baseslider.js +0 -0
  262. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseswitch/baseswitch.css +0 -0
  263. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseswitch/baseswitch.html +0 -0
  264. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseswitch/baseswitch.js +0 -0
  265. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basetemperature/basetemperature.css +0 -0
  266. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basetemperature/basetemperature.html +0 -0
  267. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basetemperature/basetemperature.js +0 -0
  268. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basetext/basetext.css +0 -0
  269. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basetext/basetext.html +0 -0
  270. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/basetext/basetext.js +0 -0
  271. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseweather/baseweather.css +0 -0
  272. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseweather/baseweather.html +0 -0
  273. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/baseweather/baseweather.js +0 -0
  274. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/binary_sensor.yaml +0 -0
  275. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/camera.yaml +0 -0
  276. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/climate.yaml +0 -0
  277. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/clock.yaml +0 -0
  278. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/cover.yaml +0 -0
  279. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/device_tracker.yaml +0 -0
  280. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/entitypicture.yaml +0 -0
  281. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/fan.yaml +0 -0
  282. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/gauge.yaml +0 -0
  283. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/group.yaml +0 -0
  284. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/heater.yaml +0 -0
  285. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/icon.yaml +0 -0
  286. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/iframe.yaml +0 -0
  287. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/input_boolean.yaml +0 -0
  288. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/input_datetime.yaml +0 -0
  289. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/input_number.yaml +0 -0
  290. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/input_select.yaml +0 -0
  291. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/input_slider.yaml +0 -0
  292. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/input_text.yaml +0 -0
  293. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/javascript.yaml +0 -0
  294. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/label.yaml +0 -0
  295. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/light.yaml +0 -0
  296. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/lock.yaml +0 -0
  297. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/london_underground.yaml +0 -0
  298. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/media_player.yaml +0 -0
  299. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/mode.yaml +0 -0
  300. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/navigate.yaml +0 -0
  301. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/person.yaml +0 -0
  302. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/pirateweather.yaml +0 -0
  303. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/radial.yaml +0 -0
  304. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/reload.yaml +0 -0
  305. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/rss.yaml +0 -0
  306. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/scene.yaml +0 -0
  307. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/script.yaml +0 -0
  308. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/sensor.yaml +0 -0
  309. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/sequence.yaml +0 -0
  310. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/switch.yaml +0 -0
  311. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/temperature.yaml +0 -0
  312. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/text_sensor.yaml +0 -0
  313. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/weather.yaml +0 -0
  314. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon/widgets/weather_summary.yaml +0 -0
  315. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon.egg-info/SOURCES.txt +0 -0
  316. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon.egg-info/dependency_links.txt +0 -0
  317. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon.egg-info/entry_points.txt +0 -0
  318. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon.egg-info/requires.txt +0 -0
  319. {appdaemon-4.5.6 → appdaemon-4.5.7}/appdaemon.egg-info/top_level.txt +0 -0
  320. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/apps/hello.py +0 -0
  321. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/ObjectTracker/general_app_functions.py +0 -0
  322. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/ObjectTracker/objectcontrole.py +0 -0
  323. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/alexa.py +0 -0
  324. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/battery.py +0 -0
  325. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/bysykkel.py +0 -0
  326. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/commute.py +0 -0
  327. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/dark_day.py +0 -0
  328. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/door_notification.py +0 -0
  329. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/eventCache.py +0 -0
  330. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/eventMonitor.py +0 -0
  331. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/globals.py +0 -0
  332. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/grandfather.py +0 -0
  333. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/hwcheck.py +0 -0
  334. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/ical.py +0 -0
  335. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/minimote.py +0 -0
  336. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/modes.py +0 -0
  337. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/momentary_switch.py +0 -0
  338. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/motion_lights.py +0 -0
  339. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/motion_notification.py +0 -0
  340. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/occusim.py +0 -0
  341. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/outside_lights.py +0 -0
  342. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/presence.py +0 -0
  343. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/ruter.py +0 -0
  344. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/secure.py +0 -0
  345. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/sensor_notification.py +0 -0
  346. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/sensor_notify.py +0 -0
  347. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/sequence.py +0 -0
  348. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/smart_heat.py +0 -0
  349. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/sound.py +0 -0
  350. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/switch_reset.py +0 -0
  351. {appdaemon-4.5.6 → appdaemon-4.5.7}/conf/example_apps/yr.py +0 -0
  352. {appdaemon-4.5.6 → appdaemon-4.5.7}/pyproject.toml +0 -0
  353. {appdaemon-4.5.6 → appdaemon-4.5.7}/setup.cfg +0 -0
  354. {appdaemon-4.5.6 → appdaemon-4.5.7}/tests/test_main.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: appdaemon
3
- Version: 4.5.6
3
+ Version: 4.5.7
4
4
  Summary: Apps for the Home Assistant home automation package.
5
5
  Author-email: Andrew I Cockburn <appdaemon@acockburn.com>
6
6
  Project-URL: documentation, https://appdaemon.readthedocs.io
@@ -17,6 +17,7 @@ from typing import TYPE_CHECKING, Any, Literal, TypeVar, overload
17
17
  from appdaemon import dependency, utils
18
18
  from appdaemon import exceptions as ade
19
19
  from appdaemon.appdaemon import AppDaemon
20
+ from appdaemon.models.config.app import AppConfig
20
21
  from appdaemon.entity import Entity
21
22
  from appdaemon.events import EventCallback
22
23
  from appdaemon.logging import Logging
@@ -76,11 +77,6 @@ class ADAPI:
76
77
  def __init__(self, ad: AppDaemon, config_model: "AppConfig"):
77
78
  self.AD = ad
78
79
  self.config_model = config_model
79
-
80
- self.config = self.AD.config.model_dump(by_alias=True, exclude_unset=True)
81
- self.app_config = self.AD.app_management.app_config.model_dump(by_alias=True, exclude_unset=True)
82
- self.args = config_model.model_dump(by_alias=True, exclude_unset=True)
83
-
84
80
  self.dashboard_dir = None
85
81
 
86
82
  if self.AD.http is not None:
@@ -134,17 +130,44 @@ class ADAPI:
134
130
  directory, but can be overridden in ``appdaemon.app_dir`` in the ``appdaemon.yaml`` file."""
135
131
  return self.AD.app_dir
136
132
 
133
+ @app_dir.setter
134
+ def app_dir(self, value: Path) -> None:
135
+ self.logger.warning('app_dir is read-only and needs to be set before AppDaemon starts')
136
+
137
137
  @property
138
138
  def callback_counter(self) -> int:
139
139
  return self.AD.app_management.objects[self.name].callback_counter
140
140
 
141
+ @callback_counter.setter
142
+ def callback_counter(self, value: Path) -> None:
143
+ self.logger.warning('callback_counter is read-only and is set internally by AppDaemon')
144
+
141
145
  @property
142
146
  def config_dir(self) -> Path:
143
147
  """Directory that contains the ``appdaemon.yaml`` file."""
144
148
  return self.AD.config_dir
145
149
 
150
+ @config_dir.setter
151
+ def config_dir(self, value: Path) -> None:
152
+ self.logger.warning('config_dir is read-only and needs to be set before AppDaemon starts')
153
+
154
+ @property
155
+ def config_model(self) -> AppConfig:
156
+ """The AppConfig model only for this app."""
157
+ return self._config_model
158
+
159
+ @config_model.setter
160
+ def config_model(self, new_config: Any) -> None:
161
+ match new_config:
162
+ case AppConfig():
163
+ self._config_model = new_config
164
+ case _:
165
+ self._config_model = AppConfig.model_validate(new_config)
166
+ self.args = self._config_model.model_dump(by_alias=True, exclude_unset=True)
167
+
146
168
  @property
147
169
  def global_vars(self) -> Any:
170
+ """Globally locked attribute that can be used to share data between apps."""
148
171
  with self.AD.global_lock:
149
172
  return self.AD.global_vars
150
173
 
@@ -158,16 +181,28 @@ class ADAPI:
158
181
  """Reference to the AppDaemon Logging subsystem object."""
159
182
  return self.AD.logging
160
183
 
184
+ @_logging.setter
185
+ def _logging(self, value: Logging) -> None:
186
+ self.logger.warning('The _logging property is read-only')
187
+
161
188
  @property
162
189
  def name(self) -> str:
163
190
  """The name for the app, as defined by it's key in the corresponding YAML file."""
164
191
  return self.config_model.name
165
192
 
193
+ @name.setter
194
+ def name(self, value: str) -> None:
195
+ self.logger.warning("The name property is read-only and is defined by the app's key in the YAML file")
196
+
166
197
  @property
167
198
  def plugin_config(self) -> dict:
168
199
  self.get_plugin_config()
169
200
  return self.AD.plugins.config
170
201
 
202
+ @plugin_config.setter
203
+ def plugin_config(self, value: dict) -> None:
204
+ self.logger.warning("The plugin_config property is read-only and is set by the plugin itself")
205
+
171
206
  #
172
207
  # Logging
173
208
  #
@@ -2,11 +2,11 @@ import threading
2
2
  from functools import wraps
3
3
  from logging import Logger
4
4
  from pathlib import Path
5
- from typing import TYPE_CHECKING
5
+ from typing import TYPE_CHECKING, Any
6
6
 
7
7
  from appdaemon import adapi
8
8
  from appdaemon import utils
9
- from appdaemon.models.config.app import AppConfig
9
+ from appdaemon.models.config.app import AppConfig, AllAppConfig
10
10
 
11
11
 
12
12
  # Check if the module is being imported using the legacy method
@@ -73,8 +73,6 @@ def global_lock(f):
73
73
 
74
74
  class ADBase:
75
75
  AD: "AppDaemon"
76
- config_model: "AppConfig"
77
-
78
76
  config: dict
79
77
  """Dictionary of the AppDaemon configuration
80
78
  """
@@ -96,10 +94,7 @@ class ADBase:
96
94
  def __init__(self, ad: "AppDaemon", config_model: "AppConfig"):
97
95
  self.AD = ad
98
96
  self.config_model = config_model
99
-
100
97
  self.config = self.AD.config.model_dump(by_alias=True, exclude_unset=True)
101
- self.args = self.config_model.model_dump(by_alias=True, exclude_unset=True)
102
-
103
98
  self.namespace = "default"
104
99
  self.dashboard_dir = None
105
100
 
@@ -136,9 +131,28 @@ class ADBase:
136
131
  # Sometimes this will be None. Namespaces are not guaranteed to be associated with a plugin
137
132
 
138
133
  @property
139
- def app_config(self):
134
+ def app_config(self) -> AllAppConfig:
135
+ """The full app configuration model for all the apps."""
140
136
  return self.AD.app_management.app_config
141
137
 
138
+ @app_config.setter
139
+ def app_config(self, new_config: AppConfig) -> None:
140
+ self.logger.warning("The full app configuration model is read-only")
141
+
142
+ @property
143
+ def config_model(self) -> AppConfig:
144
+ """The AppConfig model only for this app."""
145
+ return self._config_model
146
+
147
+ @config_model.setter
148
+ def config_model(self, new_config: Any) -> None:
149
+ match new_config:
150
+ case AppConfig():
151
+ self._config_model = new_config
152
+ case _:
153
+ self._config_model = AppConfig.model_validate(new_config)
154
+ self.args = self._config_model.model_dump(by_alias=True, exclude_unset=True)
155
+
142
156
  @property
143
157
  def app_dir(self) -> Path:
144
158
  return self.AD.app_dir
@@ -1,2 +1,2 @@
1
- __version__ = "4.5.6"
1
+ __version__ = "4.5.7"
2
2
  __version_comments__ = ""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: appdaemon
3
- Version: 4.5.6
3
+ Version: 4.5.7
4
4
  Summary: Apps for the Home Assistant home automation package.
5
5
  Author-email: Andrew I Cockburn <appdaemon@acockburn.com>
6
6
  Project-URL: documentation, https://appdaemon.readthedocs.io
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes