dash 2.18.0__tar.gz → 2.18.2__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 (318) hide show
  1. {dash-2.18.0 → dash-2.18.2}/LICENSE +2 -2
  2. {dash-2.18.0/dash.egg-info → dash-2.18.2}/PKG-INFO +1 -1
  3. {dash-2.18.0 → dash-2.18.2}/dash/_callback.py +17 -23
  4. {dash-2.18.0 → dash-2.18.2}/dash/_callback_context.py +46 -0
  5. {dash-2.18.0 → dash-2.18.2}/dash/_dash_renderer.py +4 -4
  6. {dash-2.18.0 → dash-2.18.2}/dash/_jupyter.py +3 -2
  7. {dash-2.18.0 → dash-2.18.2}/dash/_pages.py +2 -1
  8. {dash-2.18.0 → dash-2.18.2}/dash/dash-renderer/build/dash_renderer.dev.js +572 -41
  9. dash-2.18.2/dash/dash-renderer/build/dash_renderer.min.js +2 -0
  10. {dash-2.18.0 → dash-2.18.2}/dash/dash.py +68 -40
  11. dash-2.18.2/dash/dash_table/async-highlight.js +2 -0
  12. dash-2.18.2/dash/dash_table/async-highlight.js.map +1 -0
  13. dash-2.18.2/dash/dash_table/async-table.js +3 -0
  14. dash-2.18.2/dash/dash_table/async-table.js.map +1 -0
  15. dash-2.18.2/dash/dash_table/bundle.js +2 -0
  16. dash-2.18.2/dash/dash_table/bundle.js.map +1 -0
  17. dash-2.18.2/dash/dash_table/demo.js +2 -0
  18. dash-2.18.2/dash/dash_table/demo.js.map +1 -0
  19. dash-2.18.2/dash/dash_table/metadata.json +1 -0
  20. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/package-info.json +10 -10
  21. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Link.py +4 -4
  22. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Loading.py +4 -4
  23. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Tab.py +4 -4
  24. dash-2.18.2/dash/dcc/async-highlight.js +2 -0
  25. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-highlight.js.map +1 -1
  26. dash-2.18.2/dash/dcc/dash_core_components.js +3 -0
  27. dash-2.18.2/dash/dcc/dash_core_components.js.map +1 -0
  28. dash-2.18.2/dash/dcc/metadata.json +1 -0
  29. {dash-2.18.0 → dash-2.18.2}/dash/dcc/package-info.json +8 -7
  30. dash-2.18.2/dash/deps/react-dom@18.3.1.js +29924 -0
  31. dash-2.18.2/dash/deps/react-dom@18.3.1.min.js +267 -0
  32. dash-2.18.2/dash/deps/react@18.3.1.js +3343 -0
  33. dash-2.18.2/dash/deps/react@18.3.1.min.js +31 -0
  34. {dash-2.18.0 → dash-2.18.2}/dash/development/_py_components_generation.py +1 -1
  35. {dash-2.18.0 → dash-2.18.2}/dash/development/base_component.py +21 -0
  36. {dash-2.18.0 → dash-2.18.2}/dash/development/build_process.py +4 -1
  37. {dash-2.18.0 → dash-2.18.2}/dash/development/component_generator.py +1 -1
  38. {dash-2.18.0 → dash-2.18.2}/dash/development/component_loader.py +9 -1
  39. {dash-2.18.0 → dash-2.18.2}/dash/extract-meta.js +8 -0
  40. dash-2.18.2/dash/html/dash_html_components.min.js +2 -0
  41. dash-2.18.2/dash/html/dash_html_components.min.js.map +1 -0
  42. dash-2.18.2/dash/html/metadata.json +1 -0
  43. {dash-2.18.0 → dash-2.18.2}/dash/html/package-info.json +8 -7
  44. dash-2.18.2/dash/labextension/dist/dash-jupyterlab.tgz +0 -0
  45. {dash-2.18.0 → dash-2.18.2}/dash/testing/application_runners.py +4 -2
  46. dash-2.18.2/dash/version.py +1 -0
  47. {dash-2.18.0 → dash-2.18.2/dash.egg-info}/PKG-INFO +1 -1
  48. {dash-2.18.0 → dash-2.18.2}/dash.egg-info/SOURCES.txt +4 -0
  49. dash-2.18.0/dash/dash-renderer/build/dash_renderer.min.js +0 -2
  50. dash-2.18.0/dash/dash_table/async-highlight.js +0 -2
  51. dash-2.18.0/dash/dash_table/async-highlight.js.map +0 -1
  52. dash-2.18.0/dash/dash_table/async-table.js +0 -3
  53. dash-2.18.0/dash/dash_table/async-table.js.map +0 -1
  54. dash-2.18.0/dash/dash_table/bundle.js +0 -2
  55. dash-2.18.0/dash/dash_table/bundle.js.map +0 -1
  56. dash-2.18.0/dash/dash_table/demo.js +0 -2
  57. dash-2.18.0/dash/dash_table/demo.js.map +0 -1
  58. dash-2.18.0/dash/dash_table/metadata.json +0 -2561
  59. dash-2.18.0/dash/dcc/async-highlight.js +0 -2
  60. dash-2.18.0/dash/dcc/dash_core_components.js +0 -3
  61. dash-2.18.0/dash/dcc/dash_core_components.js.map +0 -1
  62. dash-2.18.0/dash/dcc/metadata.json +0 -6283
  63. dash-2.18.0/dash/html/dash_html_components.min.js +0 -2
  64. dash-2.18.0/dash/html/dash_html_components.min.js.map +0 -1
  65. dash-2.18.0/dash/html/metadata.json +0 -28585
  66. dash-2.18.0/dash/labextension/dist/dash-jupyterlab.tgz +0 -0
  67. dash-2.18.0/dash/version.py +0 -1
  68. {dash-2.18.0 → dash-2.18.2}/MANIFEST.in +0 -0
  69. {dash-2.18.0 → dash-2.18.2}/README.md +0 -0
  70. {dash-2.18.0 → dash-2.18.2}/dash/__init__.py +0 -0
  71. {dash-2.18.0 → dash-2.18.2}/dash/_configs.py +0 -0
  72. {dash-2.18.0 → dash-2.18.2}/dash/_get_app.py +0 -0
  73. {dash-2.18.0 → dash-2.18.2}/dash/_get_paths.py +0 -0
  74. {dash-2.18.0 → dash-2.18.2}/dash/_grouping.py +0 -0
  75. {dash-2.18.0 → dash-2.18.2}/dash/_patch.py +0 -0
  76. {dash-2.18.0 → dash-2.18.2}/dash/_utils.py +0 -0
  77. {dash-2.18.0 → dash-2.18.2}/dash/_validate.py +0 -0
  78. {dash-2.18.0 → dash-2.18.2}/dash/_watch.py +0 -0
  79. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/.gitkeep +0 -0
  80. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/DataTable.py +139 -139
  81. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/Format.py +0 -0
  82. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/FormatTemplate.py +0 -0
  83. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/__init__.py +0 -0
  84. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/_imports_.py +0 -0
  85. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/async-export.js +0 -0
  86. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/async-export.js.LICENSE.txt +0 -0
  87. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/async-export.js.map +0 -0
  88. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/async-table.js.LICENSE.txt +0 -0
  89. {dash-2.18.0 → dash-2.18.2}/dash/dash_table/index.html +0 -0
  90. {dash-2.18.0 → dash-2.18.2}/dash/dcc/.gitkeep +0 -0
  91. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Checklist.py +10 -10
  92. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Clipboard.py +3 -3
  93. {dash-2.18.0 → dash-2.18.2}/dash/dcc/ConfirmDialog.py +0 -0
  94. {dash-2.18.0 → dash-2.18.2}/dash/dcc/ConfirmDialogProvider.py +3 -3
  95. {dash-2.18.0 → dash-2.18.2}/dash/dcc/DatePickerRange.py +3 -3
  96. {dash-2.18.0 → dash-2.18.2}/dash/dcc/DatePickerSingle.py +3 -3
  97. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Download.py +4 -4
  98. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Dropdown.py +14 -14
  99. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Geolocation.py +4 -4
  100. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Graph.py +94 -94
  101. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Input.py +3 -3
  102. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Interval.py +0 -0
  103. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Location.py +0 -0
  104. {dash-2.18.0 → dash-2.18.2}/dash/dcc/LogoutButton.py +3 -3
  105. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Markdown.py +3 -3
  106. {dash-2.18.0 → dash-2.18.2}/dash/dcc/RadioItems.py +10 -10
  107. {dash-2.18.0 → dash-2.18.2}/dash/dcc/RangeSlider.py +6 -6
  108. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Slider.py +6 -6
  109. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Store.py +0 -0
  110. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Tabs.py +5 -5
  111. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Textarea.py +3 -3
  112. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Tooltip.py +5 -5
  113. {dash-2.18.0 → dash-2.18.2}/dash/dcc/Upload.py +3 -3
  114. {dash-2.18.0 → dash-2.18.2}/dash/dcc/__init__.py +0 -0
  115. {dash-2.18.0 → dash-2.18.2}/dash/dcc/_imports_.py +0 -0
  116. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-datepicker.js +0 -0
  117. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-datepicker.js.map +0 -0
  118. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-dropdown.js +0 -0
  119. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-dropdown.js.LICENSE.txt +0 -0
  120. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-dropdown.js.map +0 -0
  121. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-graph.js +0 -0
  122. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-graph.js.map +0 -0
  123. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-markdown.js +0 -0
  124. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-markdown.js.LICENSE.txt +0 -0
  125. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-markdown.js.map +0 -0
  126. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-mathjax.js +0 -0
  127. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-slider.js +0 -0
  128. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-slider.js.LICENSE.txt +0 -0
  129. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-slider.js.map +0 -0
  130. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-upload.js +0 -0
  131. {dash-2.18.0 → dash-2.18.2}/dash/dcc/async-upload.js.map +0 -0
  132. {dash-2.18.0 → dash-2.18.2}/dash/dcc/dash_core_components-shared.js +0 -0
  133. {dash-2.18.0 → dash-2.18.2}/dash/dcc/dash_core_components-shared.js.LICENSE.txt +0 -0
  134. {dash-2.18.0 → dash-2.18.2}/dash/dcc/dash_core_components-shared.js.map +0 -0
  135. {dash-2.18.0 → dash-2.18.2}/dash/dcc/dash_core_components.js.LICENSE.txt +0 -0
  136. {dash-2.18.0 → dash-2.18.2}/dash/dcc/express.py +0 -0
  137. {dash-2.18.0 → dash-2.18.2}/dash/dependencies.py +0 -0
  138. {dash-2.18.0 → dash-2.18.2}/dash/deps/polyfill@7.12.1.min.js +0 -0
  139. {dash-2.18.0 → dash-2.18.2}/dash/deps/prop-types@15.8.1.js +0 -0
  140. {dash-2.18.0 → dash-2.18.2}/dash/deps/prop-types@15.8.1.min.js +0 -0
  141. {dash-2.18.0 → dash-2.18.2}/dash/deps/react-dom@16.14.0.js +0 -0
  142. {dash-2.18.0 → dash-2.18.2}/dash/deps/react-dom@16.14.0.min.js +0 -0
  143. {dash-2.18.0 → dash-2.18.2}/dash/deps/react-dom@18.2.0.js +0 -0
  144. {dash-2.18.0 → dash-2.18.2}/dash/deps/react-dom@18.2.0.min.js +0 -0
  145. {dash-2.18.0 → dash-2.18.2}/dash/deps/react@16.14.0.js +0 -0
  146. {dash-2.18.0 → dash-2.18.2}/dash/deps/react@16.14.0.min.js +0 -0
  147. {dash-2.18.0 → dash-2.18.2}/dash/deps/react@18.2.0.js +0 -0
  148. {dash-2.18.0 → dash-2.18.2}/dash/deps/react@18.2.0.min.js +0 -0
  149. {dash-2.18.0 → dash-2.18.2}/dash/development/__init__.py +0 -0
  150. {dash-2.18.0 → dash-2.18.2}/dash/development/_all_keywords.py +0 -0
  151. {dash-2.18.0 → dash-2.18.2}/dash/development/_collect_nodes.py +0 -0
  152. {dash-2.18.0 → dash-2.18.2}/dash/development/_jl_components_generation.py +0 -0
  153. {dash-2.18.0 → dash-2.18.2}/dash/development/_r_components_generation.py +0 -0
  154. {dash-2.18.0 → dash-2.18.2}/dash/development/update_components.py +0 -0
  155. {dash-2.18.0 → dash-2.18.2}/dash/exceptions.py +0 -0
  156. {dash-2.18.0 → dash-2.18.2}/dash/favicon.ico +0 -0
  157. {dash-2.18.0 → dash-2.18.2}/dash/fingerprint.py +0 -0
  158. {dash-2.18.0 → dash-2.18.2}/dash/html/.gitkeep +0 -0
  159. {dash-2.18.0 → dash-2.18.2}/dash/html/A.py +3 -3
  160. {dash-2.18.0 → dash-2.18.2}/dash/html/Abbr.py +3 -3
  161. {dash-2.18.0 → dash-2.18.2}/dash/html/Acronym.py +3 -3
  162. {dash-2.18.0 → dash-2.18.2}/dash/html/Address.py +3 -3
  163. {dash-2.18.0 → dash-2.18.2}/dash/html/Area.py +3 -3
  164. {dash-2.18.0 → dash-2.18.2}/dash/html/Article.py +3 -3
  165. {dash-2.18.0 → dash-2.18.2}/dash/html/Aside.py +3 -3
  166. {dash-2.18.0 → dash-2.18.2}/dash/html/Audio.py +3 -3
  167. {dash-2.18.0 → dash-2.18.2}/dash/html/B.py +3 -3
  168. {dash-2.18.0 → dash-2.18.2}/dash/html/Base.py +3 -3
  169. {dash-2.18.0 → dash-2.18.2}/dash/html/Basefont.py +3 -3
  170. {dash-2.18.0 → dash-2.18.2}/dash/html/Bdi.py +3 -3
  171. {dash-2.18.0 → dash-2.18.2}/dash/html/Bdo.py +3 -3
  172. {dash-2.18.0 → dash-2.18.2}/dash/html/Big.py +3 -3
  173. {dash-2.18.0 → dash-2.18.2}/dash/html/Blink.py +3 -3
  174. {dash-2.18.0 → dash-2.18.2}/dash/html/Blockquote.py +3 -3
  175. {dash-2.18.0 → dash-2.18.2}/dash/html/Br.py +3 -3
  176. {dash-2.18.0 → dash-2.18.2}/dash/html/Button.py +3 -3
  177. {dash-2.18.0 → dash-2.18.2}/dash/html/Canvas.py +3 -3
  178. {dash-2.18.0 → dash-2.18.2}/dash/html/Caption.py +3 -3
  179. {dash-2.18.0 → dash-2.18.2}/dash/html/Center.py +3 -3
  180. {dash-2.18.0 → dash-2.18.2}/dash/html/Cite.py +3 -3
  181. {dash-2.18.0 → dash-2.18.2}/dash/html/Code.py +3 -3
  182. {dash-2.18.0 → dash-2.18.2}/dash/html/Col.py +3 -3
  183. {dash-2.18.0 → dash-2.18.2}/dash/html/Colgroup.py +3 -3
  184. {dash-2.18.0 → dash-2.18.2}/dash/html/Content.py +3 -3
  185. {dash-2.18.0 → dash-2.18.2}/dash/html/Data.py +3 -3
  186. {dash-2.18.0 → dash-2.18.2}/dash/html/Datalist.py +3 -3
  187. {dash-2.18.0 → dash-2.18.2}/dash/html/Dd.py +3 -3
  188. {dash-2.18.0 → dash-2.18.2}/dash/html/Del.py +3 -3
  189. {dash-2.18.0 → dash-2.18.2}/dash/html/Details.py +3 -3
  190. {dash-2.18.0 → dash-2.18.2}/dash/html/Dfn.py +3 -3
  191. {dash-2.18.0 → dash-2.18.2}/dash/html/Dialog.py +3 -3
  192. {dash-2.18.0 → dash-2.18.2}/dash/html/Div.py +3 -3
  193. {dash-2.18.0 → dash-2.18.2}/dash/html/Dl.py +3 -3
  194. {dash-2.18.0 → dash-2.18.2}/dash/html/Dt.py +3 -3
  195. {dash-2.18.0 → dash-2.18.2}/dash/html/Em.py +3 -3
  196. {dash-2.18.0 → dash-2.18.2}/dash/html/Embed.py +3 -3
  197. {dash-2.18.0 → dash-2.18.2}/dash/html/Fieldset.py +3 -3
  198. {dash-2.18.0 → dash-2.18.2}/dash/html/Figcaption.py +3 -3
  199. {dash-2.18.0 → dash-2.18.2}/dash/html/Figure.py +3 -3
  200. {dash-2.18.0 → dash-2.18.2}/dash/html/Font.py +3 -3
  201. {dash-2.18.0 → dash-2.18.2}/dash/html/Footer.py +3 -3
  202. {dash-2.18.0 → dash-2.18.2}/dash/html/Form.py +3 -3
  203. {dash-2.18.0 → dash-2.18.2}/dash/html/Frame.py +3 -3
  204. {dash-2.18.0 → dash-2.18.2}/dash/html/Frameset.py +3 -3
  205. {dash-2.18.0 → dash-2.18.2}/dash/html/H1.py +3 -3
  206. {dash-2.18.0 → dash-2.18.2}/dash/html/H2.py +3 -3
  207. {dash-2.18.0 → dash-2.18.2}/dash/html/H3.py +3 -3
  208. {dash-2.18.0 → dash-2.18.2}/dash/html/H4.py +3 -3
  209. {dash-2.18.0 → dash-2.18.2}/dash/html/H5.py +3 -3
  210. {dash-2.18.0 → dash-2.18.2}/dash/html/H6.py +3 -3
  211. {dash-2.18.0 → dash-2.18.2}/dash/html/Header.py +3 -3
  212. {dash-2.18.0 → dash-2.18.2}/dash/html/Hgroup.py +3 -3
  213. {dash-2.18.0 → dash-2.18.2}/dash/html/Hr.py +3 -3
  214. {dash-2.18.0 → dash-2.18.2}/dash/html/I.py +3 -3
  215. {dash-2.18.0 → dash-2.18.2}/dash/html/Iframe.py +3 -3
  216. {dash-2.18.0 → dash-2.18.2}/dash/html/Img.py +3 -3
  217. {dash-2.18.0 → dash-2.18.2}/dash/html/Ins.py +3 -3
  218. {dash-2.18.0 → dash-2.18.2}/dash/html/Kbd.py +3 -3
  219. {dash-2.18.0 → dash-2.18.2}/dash/html/Keygen.py +3 -3
  220. {dash-2.18.0 → dash-2.18.2}/dash/html/Label.py +3 -3
  221. {dash-2.18.0 → dash-2.18.2}/dash/html/Legend.py +3 -3
  222. {dash-2.18.0 → dash-2.18.2}/dash/html/Li.py +3 -3
  223. {dash-2.18.0 → dash-2.18.2}/dash/html/Link.py +3 -3
  224. {dash-2.18.0 → dash-2.18.2}/dash/html/Main.py +3 -3
  225. {dash-2.18.0 → dash-2.18.2}/dash/html/MapEl.py +3 -3
  226. {dash-2.18.0 → dash-2.18.2}/dash/html/Mark.py +3 -3
  227. {dash-2.18.0 → dash-2.18.2}/dash/html/Marquee.py +3 -3
  228. {dash-2.18.0 → dash-2.18.2}/dash/html/Meta.py +3 -3
  229. {dash-2.18.0 → dash-2.18.2}/dash/html/Meter.py +3 -3
  230. {dash-2.18.0 → dash-2.18.2}/dash/html/Nav.py +3 -3
  231. {dash-2.18.0 → dash-2.18.2}/dash/html/Nobr.py +3 -3
  232. {dash-2.18.0 → dash-2.18.2}/dash/html/Noscript.py +3 -3
  233. {dash-2.18.0 → dash-2.18.2}/dash/html/ObjectEl.py +3 -3
  234. {dash-2.18.0 → dash-2.18.2}/dash/html/Ol.py +3 -3
  235. {dash-2.18.0 → dash-2.18.2}/dash/html/Optgroup.py +3 -3
  236. {dash-2.18.0 → dash-2.18.2}/dash/html/Option.py +3 -3
  237. {dash-2.18.0 → dash-2.18.2}/dash/html/Output.py +3 -3
  238. {dash-2.18.0 → dash-2.18.2}/dash/html/P.py +3 -3
  239. {dash-2.18.0 → dash-2.18.2}/dash/html/Param.py +3 -3
  240. {dash-2.18.0 → dash-2.18.2}/dash/html/Picture.py +3 -3
  241. {dash-2.18.0 → dash-2.18.2}/dash/html/Plaintext.py +3 -3
  242. {dash-2.18.0 → dash-2.18.2}/dash/html/Pre.py +3 -3
  243. {dash-2.18.0 → dash-2.18.2}/dash/html/Progress.py +3 -3
  244. {dash-2.18.0 → dash-2.18.2}/dash/html/Q.py +3 -3
  245. {dash-2.18.0 → dash-2.18.2}/dash/html/Rb.py +3 -3
  246. {dash-2.18.0 → dash-2.18.2}/dash/html/Rp.py +3 -3
  247. {dash-2.18.0 → dash-2.18.2}/dash/html/Rt.py +3 -3
  248. {dash-2.18.0 → dash-2.18.2}/dash/html/Rtc.py +3 -3
  249. {dash-2.18.0 → dash-2.18.2}/dash/html/Ruby.py +3 -3
  250. {dash-2.18.0 → dash-2.18.2}/dash/html/S.py +3 -3
  251. {dash-2.18.0 → dash-2.18.2}/dash/html/Samp.py +3 -3
  252. {dash-2.18.0 → dash-2.18.2}/dash/html/Script.py +3 -3
  253. {dash-2.18.0 → dash-2.18.2}/dash/html/Section.py +3 -3
  254. {dash-2.18.0 → dash-2.18.2}/dash/html/Select.py +3 -3
  255. {dash-2.18.0 → dash-2.18.2}/dash/html/Shadow.py +3 -3
  256. {dash-2.18.0 → dash-2.18.2}/dash/html/Slot.py +3 -3
  257. {dash-2.18.0 → dash-2.18.2}/dash/html/Small.py +3 -3
  258. {dash-2.18.0 → dash-2.18.2}/dash/html/Source.py +3 -3
  259. {dash-2.18.0 → dash-2.18.2}/dash/html/Spacer.py +3 -3
  260. {dash-2.18.0 → dash-2.18.2}/dash/html/Span.py +3 -3
  261. {dash-2.18.0 → dash-2.18.2}/dash/html/Strike.py +3 -3
  262. {dash-2.18.0 → dash-2.18.2}/dash/html/Strong.py +3 -3
  263. {dash-2.18.0 → dash-2.18.2}/dash/html/Sub.py +3 -3
  264. {dash-2.18.0 → dash-2.18.2}/dash/html/Summary.py +3 -3
  265. {dash-2.18.0 → dash-2.18.2}/dash/html/Sup.py +3 -3
  266. {dash-2.18.0 → dash-2.18.2}/dash/html/Table.py +3 -3
  267. {dash-2.18.0 → dash-2.18.2}/dash/html/Tbody.py +3 -3
  268. {dash-2.18.0 → dash-2.18.2}/dash/html/Td.py +3 -3
  269. {dash-2.18.0 → dash-2.18.2}/dash/html/Template.py +3 -3
  270. {dash-2.18.0 → dash-2.18.2}/dash/html/Textarea.py +3 -3
  271. {dash-2.18.0 → dash-2.18.2}/dash/html/Tfoot.py +3 -3
  272. {dash-2.18.0 → dash-2.18.2}/dash/html/Th.py +3 -3
  273. {dash-2.18.0 → dash-2.18.2}/dash/html/Thead.py +3 -3
  274. {dash-2.18.0 → dash-2.18.2}/dash/html/Time.py +3 -3
  275. {dash-2.18.0 → dash-2.18.2}/dash/html/Title.py +3 -3
  276. {dash-2.18.0 → dash-2.18.2}/dash/html/Tr.py +3 -3
  277. {dash-2.18.0 → dash-2.18.2}/dash/html/Track.py +3 -3
  278. {dash-2.18.0 → dash-2.18.2}/dash/html/U.py +3 -3
  279. {dash-2.18.0 → dash-2.18.2}/dash/html/Ul.py +3 -3
  280. {dash-2.18.0 → dash-2.18.2}/dash/html/Var.py +3 -3
  281. {dash-2.18.0 → dash-2.18.2}/dash/html/Video.py +3 -3
  282. {dash-2.18.0 → dash-2.18.2}/dash/html/Wbr.py +3 -3
  283. {dash-2.18.0 → dash-2.18.2}/dash/html/Xmp.py +3 -3
  284. {dash-2.18.0 → dash-2.18.2}/dash/html/__init__.py +0 -0
  285. {dash-2.18.0 → dash-2.18.2}/dash/html/_imports_.py +0 -0
  286. {dash-2.18.0 → dash-2.18.2}/dash/labextension/package.json +0 -0
  287. {dash-2.18.0 → dash-2.18.2}/dash/long_callback/__init__.py +0 -0
  288. {dash-2.18.0 → dash-2.18.2}/dash/long_callback/_proxy_set_props.py +0 -0
  289. {dash-2.18.0 → dash-2.18.2}/dash/long_callback/managers/__init__.py +0 -0
  290. {dash-2.18.0 → dash-2.18.2}/dash/long_callback/managers/celery_manager.py +0 -0
  291. {dash-2.18.0 → dash-2.18.2}/dash/long_callback/managers/diskcache_manager.py +0 -0
  292. {dash-2.18.0 → dash-2.18.2}/dash/nbextension/__init__.py +0 -0
  293. {dash-2.18.0 → dash-2.18.2}/dash/nbextension/dash.json +0 -0
  294. {dash-2.18.0 → dash-2.18.2}/dash/nbextension/main.js +0 -0
  295. {dash-2.18.0 → dash-2.18.2}/dash/resources.py +0 -0
  296. {dash-2.18.0 → dash-2.18.2}/dash/testing/__init__.py +0 -0
  297. {dash-2.18.0 → dash-2.18.2}/dash/testing/browser.py +0 -0
  298. {dash-2.18.0 → dash-2.18.2}/dash/testing/composite.py +0 -0
  299. {dash-2.18.0 → dash-2.18.2}/dash/testing/consts.py +0 -0
  300. {dash-2.18.0 → dash-2.18.2}/dash/testing/dash_page.py +0 -0
  301. {dash-2.18.0 → dash-2.18.2}/dash/testing/errors.py +0 -0
  302. {dash-2.18.0 → dash-2.18.2}/dash/testing/newhooks.py +0 -0
  303. {dash-2.18.0 → dash-2.18.2}/dash/testing/plugin.py +0 -0
  304. {dash-2.18.0 → dash-2.18.2}/dash/testing/wait.py +0 -0
  305. {dash-2.18.0 → dash-2.18.2}/dash/types.py +0 -0
  306. {dash-2.18.0 → dash-2.18.2}/dash.egg-info/dependency_links.txt +0 -0
  307. {dash-2.18.0 → dash-2.18.2}/dash.egg-info/entry_points.txt +0 -0
  308. {dash-2.18.0 → dash-2.18.2}/dash.egg-info/requires.txt +0 -0
  309. {dash-2.18.0 → dash-2.18.2}/dash.egg-info/top_level.txt +0 -0
  310. {dash-2.18.0 → dash-2.18.2}/requirements/celery.txt +0 -0
  311. {dash-2.18.0 → dash-2.18.2}/requirements/ci.txt +0 -0
  312. {dash-2.18.0 → dash-2.18.2}/requirements/compress.txt +0 -0
  313. {dash-2.18.0 → dash-2.18.2}/requirements/dev.txt +0 -0
  314. {dash-2.18.0 → dash-2.18.2}/requirements/diskcache.txt +0 -0
  315. {dash-2.18.0 → dash-2.18.2}/requirements/install.txt +0 -0
  316. {dash-2.18.0 → dash-2.18.2}/requirements/testing.txt +0 -0
  317. {dash-2.18.0 → dash-2.18.2}/setup.cfg +0 -0
  318. {dash-2.18.0 → dash-2.18.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- The MIT License (MIT)
1
+ MIT License
2
2
 
3
- Copyright (c) 2023 Plotly, Inc
3
+ Copyright (c) 2015-2024 Plotly Technologies Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dash
3
- Version: 2.18.0
3
+ Version: 2.18.2
4
4
  Summary: A Python framework for building reactive web-apps. Developed by Plotly.
5
5
  Home-page: https://plotly.com/dash
6
6
  Author: Chris Parmer
@@ -409,23 +409,16 @@ def register_callback(
409
409
 
410
410
  job_fn = callback_manager.func_registry.get(long_key)
411
411
 
412
+ ctx_value = AttributeDict(**context_value.get())
413
+ ctx_value.ignore_register_page = True
414
+ ctx_value.pop("background_callback_manager")
415
+ ctx_value.pop("dash_response")
416
+
412
417
  job = callback_manager.call_job_fn(
413
418
  cache_key,
414
419
  job_fn,
415
420
  func_args if func_args else func_kwargs,
416
- AttributeDict(
417
- args_grouping=callback_ctx.args_grouping,
418
- using_args_grouping=callback_ctx.using_args_grouping,
419
- outputs_grouping=callback_ctx.outputs_grouping,
420
- using_outputs_grouping=callback_ctx.using_outputs_grouping,
421
- inputs_list=callback_ctx.inputs_list,
422
- states_list=callback_ctx.states_list,
423
- outputs_list=callback_ctx.outputs_list,
424
- input_values=callback_ctx.input_values,
425
- state_values=callback_ctx.state_values,
426
- triggered_inputs=callback_ctx.triggered_inputs,
427
- ignore_register_page=True,
428
- ),
421
+ ctx_value,
429
422
  )
430
423
 
431
424
  data = {
@@ -508,11 +501,8 @@ def register_callback(
508
501
  output_value = error_handler(err)
509
502
 
510
503
  # If the error returns nothing, automatically puts NoUpdate for response.
511
- if output_value is None:
512
- if not multi:
513
- output_value = NoUpdate()
514
- else:
515
- output_value = [NoUpdate() for _ in output_spec]
504
+ if output_value is None and has_output:
505
+ output_value = NoUpdate()
516
506
  else:
517
507
  raise err
518
508
 
@@ -528,12 +518,16 @@ def register_callback(
528
518
  # list or tuple
529
519
  output_value = list(output_value)
530
520
 
531
- # Flatten grouping and validate grouping structure
532
- flat_output_values = flatten_grouping(output_value, output)
521
+ if NoUpdate.is_no_update(output_value):
522
+ flat_output_values = [output_value]
523
+ else:
524
+ # Flatten grouping and validate grouping structure
525
+ flat_output_values = flatten_grouping(output_value, output)
533
526
 
534
- _validate.validate_multi_return(
535
- output_spec, flat_output_values, callback_id
536
- )
527
+ if not NoUpdate.is_no_update(output_value):
528
+ _validate.validate_multi_return(
529
+ output_spec, flat_output_values, callback_id
530
+ )
537
531
 
538
532
  for val, spec in zip(flat_output_values, output_spec):
539
533
  if NoUpdate.is_no_update(val):
@@ -30,6 +30,10 @@ def _get_context_value():
30
30
  return context_value.get()
31
31
 
32
32
 
33
+ def _get_from_context(key, default):
34
+ return getattr(_get_context_value(), key, default)
35
+
36
+
33
37
  class FalsyList(list):
34
38
  def __bool__(self):
35
39
  # for Python 3
@@ -258,6 +262,48 @@ class CallbackContext:
258
262
  else:
259
263
  ctx_value.updated_props[_id] = props
260
264
 
265
+ @property
266
+ @has_context
267
+ def cookies(self):
268
+ """
269
+ Get the cookies for the current callback.
270
+ Works with background callbacks.
271
+ """
272
+ return _get_from_context("cookies", {})
273
+
274
+ @property
275
+ @has_context
276
+ def headers(self):
277
+ """
278
+ Get the original headers for the current callback.
279
+ Works with background callbacks.
280
+ """
281
+ return _get_from_context("headers", {})
282
+
283
+ @property
284
+ @has_context
285
+ def path(self):
286
+ """
287
+ Path of the callback request with the query parameters.
288
+ """
289
+ return _get_from_context("path", "")
290
+
291
+ @property
292
+ @has_context
293
+ def remote(self):
294
+ """
295
+ Remote addr of the callback request.
296
+ """
297
+ return _get_from_context("remote", "")
298
+
299
+ @property
300
+ @has_context
301
+ def origin(self):
302
+ """
303
+ Origin of the callback request.
304
+ """
305
+ return _get_from_context("origin", "")
306
+
261
307
 
262
308
  callback_context = CallbackContext()
263
309
 
@@ -1,9 +1,9 @@
1
1
  import os
2
2
 
3
- __version__ = "1.21.0"
3
+ __version__ = "1.21.1"
4
4
 
5
- _available_react_versions = {"16.14.0", "18.2.0"}
6
- _available_reactdom_versions = {"16.14.0", "18.2.0"}
5
+ _available_react_versions = {"16.14.0", "18.2.0", "18.3.1"}
6
+ _available_reactdom_versions = {"16.14.0", "18.2.0", "18.3.1"}
7
7
  _js_dist_dependencies = [] # to be set by _set_react_version
8
8
 
9
9
 
@@ -64,7 +64,7 @@ _js_dist = [
64
64
  {
65
65
  "relative_package_path": "dash-renderer/build/dash_renderer.min.js",
66
66
  "dev_package_path": "dash-renderer/build/dash_renderer.dev.js",
67
- "external_url": "https://unpkg.com/dash-renderer@1.21.0"
67
+ "external_url": "https://unpkg.com/dash-renderer@1.21.1"
68
68
  "/build/dash_renderer.min.js",
69
69
  "namespace": "dash",
70
70
  },
@@ -9,6 +9,7 @@ import sys
9
9
  import threading
10
10
  import time
11
11
 
12
+ from typing import Optional
12
13
  from typing_extensions import Literal
13
14
 
14
15
  from werkzeug.serving import make_server
@@ -228,7 +229,7 @@ class JupyterDash:
228
229
  def run_app(
229
230
  self,
230
231
  app,
231
- mode: JupyterDisplayMode = None,
232
+ mode: Optional[JupyterDisplayMode] = None,
232
233
  width="100%",
233
234
  height=650,
234
235
  host="127.0.0.1",
@@ -266,7 +267,7 @@ class JupyterDash:
266
267
  f" Received value of type {type(mode)}: {repr(mode)}"
267
268
  )
268
269
  else:
269
- mode = mode.lower()
270
+ mode = mode.lower() # type: ignore
270
271
  if mode not in valid_display_values:
271
272
  raise ValueError(
272
273
  f"Invalid display argument {mode}\n"
@@ -6,7 +6,7 @@ import sys
6
6
  from fnmatch import fnmatch
7
7
  from pathlib import Path
8
8
  from os.path import isfile, join
9
- from urllib.parse import parse_qs
9
+ from urllib.parse import parse_qs, unquote
10
10
 
11
11
  import flask
12
12
 
@@ -113,6 +113,7 @@ def _infer_module_name(page_path):
113
113
 
114
114
 
115
115
  def _parse_query_string(search):
116
+ search = unquote(search)
116
117
  if search and len(search) > 0 and search[0] == "?":
117
118
  search = search[1:]
118
119
  else: