gov-uk-dashboards 19.1.0__tar.gz → 20.0.0__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 (119) hide show
  1. {gov_uk_dashboards-19.1.0/gov_uk_dashboards.egg-info → gov_uk_dashboards-20.0.0}/PKG-INFO +1 -1
  2. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/plotly/time_series_chart.py +49 -7
  3. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0/gov_uk_dashboards.egg-info}/PKG-INFO +1 -1
  4. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/setup.py +1 -1
  5. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/LICENSE +0 -0
  6. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/MANIFEST.in +0 -0
  7. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/README.md +0 -0
  8. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/__init__.py +0 -0
  9. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/__init__.py +0 -0
  10. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/attach-event-to-dash.js +0 -0
  11. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/custom_map_style_functions.js +0 -0
  12. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/dashboard.css +0 -0
  13. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/fonts/bold-affa96571d-v2.woff +0 -0
  14. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  15. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  16. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  17. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/get_assets_folder.py +0 -0
  18. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/govuk-frontend-3.14.0.min.js +0 -0
  19. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/DLUHC_WHITE_Master_AW_sm.png +0 -0
  20. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/MHCLG-favicon.png +0 -0
  21. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/MHCLG_favicon.png +0 -0
  22. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/dcms_coatofarms.png +0 -0
  23. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/dluhc_favicon.ico +0 -0
  24. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/gov_favicon.ico +0 -0
  25. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/govuk-crest.svg +0 -0
  26. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/hm-government-logo.png +0 -0
  27. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/mhclg_coat_of_arms.png +0 -0
  28. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/mhclg_white_no_background.png +0 -0
  29. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/oflog/MedianAbsolute.png +0 -0
  30. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/oflog/how_to_1_selecting_data.png +0 -0
  31. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/oflog/how_to_2_viewing_tabs.png +0 -0
  32. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/oflog/how_to_3_viewing_charts.png +0 -0
  33. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/oflog/how_to_4_viewing_trends.png +0 -0
  34. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/images/oflog/how_to_5_viewing_tables.png +0 -0
  35. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/mobile-nav.js +0 -0
  36. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/topojson/usa_110m.json +0 -0
  37. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/assets/topojson/world_110m.json +0 -0
  38. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/axes.py +0 -0
  39. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/colours.py +0 -0
  40. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/__init__.py +0 -0
  41. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/__init__.py +0 -0
  42. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/apply_and_reset_filters_buttons.py +0 -0
  43. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/banners.py +0 -0
  44. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/card.py +0 -0
  45. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/card_full_width.py +0 -0
  46. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/collapsible_panel.py +0 -0
  47. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/comparison_la_filter_button.py +0 -0
  48. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/context_banner.py +0 -0
  49. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/dashboard_container.py +0 -0
  50. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/details.py +0 -0
  51. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/download_button.py +0 -0
  52. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/filter_panel.py +0 -0
  53. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/footer.py +0 -0
  54. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/graph.py +0 -0
  55. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/header.py +0 -0
  56. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/heading.py +0 -0
  57. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/home_page_link_button.py +0 -0
  58. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/html_list.py +0 -0
  59. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/key_value_pair.py +0 -0
  60. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/main_content.py +0 -0
  61. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/navbar.py +0 -0
  62. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/no_data_message.py +0 -0
  63. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/notification_banner.py +0 -0
  64. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/paragraph.py +0 -0
  65. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/phase_banner.py +0 -0
  66. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/row_component.py +0 -0
  67. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/side_navbar.py +0 -0
  68. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/table.py +0 -0
  69. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/tooltip.py +0 -0
  70. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/tooltip_title.py +0 -0
  71. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/visualisation_commentary.py +0 -0
  72. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/visualisation_title.py +0 -0
  73. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/dash/warning_text.py +0 -0
  74. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/helpers/__init__.py +0 -0
  75. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/helpers/display_chart_or_table_with_header.py +0 -0
  76. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/helpers/generate_dash_graph_from_figure.py +0 -0
  77. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/helpers/get_chart_for_download.py +0 -0
  78. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/helpers/plotting_helper_functions.py +0 -0
  79. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/helpers/update_layout_bgcolor_margin.py +0 -0
  80. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/leaflet/__init__.py +0 -0
  81. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/leaflet/leaflet_choropleth_map.py +0 -0
  82. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/plotly/__init__.py +0 -0
  83. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/plotly/captioned_figure.py +0 -0
  84. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/plotly/choropleth_map.py +0 -0
  85. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/plotly/enums.py +0 -0
  86. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/components/plotly/stacked_barchart.py +0 -0
  87. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/constants.py +0 -0
  88. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/__init__.py +0 -0
  89. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/chart_data.py +0 -0
  90. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/enums/__init__.py +0 -0
  91. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/enums/dash_patterns.py +0 -0
  92. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/line_chart.py +0 -0
  93. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/styles/__init__.py +0 -0
  94. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/figures/styles/line_style.py +0 -0
  95. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/formatting/__init__.py +0 -0
  96. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/formatting/human_readable.py +0 -0
  97. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/formatting/number_formatting.py +0 -0
  98. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/formatting/round_and_add_prefix_and_suffix.py +0 -0
  99. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/formatting/rounding.py +0 -0
  100. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/__init__.py +0 -0
  101. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/dap/__init__.py +0 -0
  102. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/dap/dap_deployment.py +0 -0
  103. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/dap/get_dataframe_from_cds.py +0 -0
  104. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/datetime_functions/__init__.py +0 -0
  105. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/datetime_functions/datetime_functions.py +0 -0
  106. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/download_functions/__init__.py +0 -0
  107. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/download_functions/convert_fig_to_image_and_download.py +0 -0
  108. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/download_functions/download_csv_with_headers.py +0 -0
  109. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/enable_basic_auth.py +0 -0
  110. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/http_headers.py +0 -0
  111. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/lib/logging.py +0 -0
  112. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/symbols.py +0 -0
  113. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/template.html +0 -0
  114. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards/template.py +0 -0
  115. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards.egg-info/SOURCES.txt +0 -0
  116. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards.egg-info/dependency_links.txt +0 -0
  117. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards.egg-info/requires.txt +0 -0
  118. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/gov_uk_dashboards.egg-info/top_level.txt +0 -0
  119. {gov_uk_dashboards-19.1.0 → gov_uk_dashboards-20.0.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gov_uk_dashboards
3
- Version: 19.1.0
3
+ Version: 20.0.0
4
4
  Summary: Provides access to functionality common to creating a data dashboard.
5
5
  Author: Department for Levelling Up, Housing and Communities
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,7 @@
1
1
  """get_time_series_chart function"""
2
2
 
3
3
  from datetime import datetime, date
4
+ import json
4
5
  from typing import Optional
5
6
  from dateutil.relativedelta import relativedelta
6
7
  from dash import html
@@ -58,7 +59,7 @@ class TimeSeriesChart:
58
59
  def __init__(
59
60
  self,
60
61
  title_data: TitleDataStructure,
61
- y_column: str,
62
+ y_axis_column: str,
62
63
  hover_data: HoverDataByTrace,
63
64
  filtered_df: pl.DataFrame,
64
65
  trace_name_list: list[str],
@@ -83,7 +84,7 @@ class TimeSeriesChart:
83
84
  hover_distance: Optional[int] = 1,
84
85
  ):
85
86
  self.title_data = title_data
86
- self.y_axis_column = y_column
87
+ self.y_axis_column = y_axis_column
87
88
  self.hover_data = hover_data
88
89
  self.hover_data_for_traces_with_different_hover_for_last_point = (
89
90
  hover_data_for_traces_with_different_hover_for_last_point
@@ -95,7 +96,7 @@ class TimeSeriesChart:
95
96
  self.xaxis_tick_text_format = xaxis_tick_text_format
96
97
  self.verticle_line_x_value_and_name = verticle_line_x_value_and_name
97
98
  self.filled_traces_dict = filled_traces_dict
98
- self.trace_names_to_prevent_hover_of_first_point = (
99
+ self.trace_names_to_prevent_hover_of_first_point_list = (
99
100
  trace_names_to_prevent_hover_of_first_point_list
100
101
  )
101
102
  self.x_axis_column = x_axis_column
@@ -114,7 +115,6 @@ class TimeSeriesChart:
114
115
 
115
116
  def get_time_series_chart(self) -> html.Div:
116
117
  """Creates and returns time series chart for display on application.
117
-
118
118
  Returns:
119
119
  html.Div: Styled div containing title, subtile and chart.
120
120
  """
@@ -132,6 +132,49 @@ class TimeSeriesChart:
132
132
  self.download_data_button_id,
133
133
  )
134
134
 
135
+ def is_json_serializable(self, value):
136
+ "Determines whether value can be converted to json format."
137
+ # pylint: disable=duplicate-code
138
+ try:
139
+ json.dumps(value)
140
+ return True
141
+ except (TypeError, OverflowError):
142
+ return False
143
+
144
+ def to_dict(self):
145
+ "Converts class attributes to json format."
146
+ # pylint: disable=duplicate-code
147
+ result = {}
148
+ for k, v in self.__dict__.items():
149
+ if self.is_json_serializable(v):
150
+ result[k] = v
151
+ elif isinstance(v, pl.DataFrame):
152
+ result[k] = {"_type": "polars_df", "data": v.to_dicts()}
153
+ elif isinstance(v, pl.Series):
154
+ result[k] = {"_type": "series", "data": v.to_list()}
155
+ else:
156
+ result[k] = f"<<non-serializable: {type(v).__name__}>>"
157
+ return result
158
+
159
+ @classmethod
160
+ def from_dict(cls, data):
161
+ "Creates a class instance from dict of attributes."
162
+ restored = {}
163
+ for k, v in data.items():
164
+ if k in ["markers", "colour_list", "fig"]:
165
+ continue
166
+ if isinstance(v, dict) and "_type" in v:
167
+ if v["_type"] == "polars_df":
168
+ restored[k] = pl.DataFrame(v["data"])
169
+ elif v["_type"] == "polars_series":
170
+ restored[k] = pl.Series(v["data"])
171
+ else:
172
+ # Fallback for unknown _type
173
+ restored[k] = v.get("data", None)
174
+ else:
175
+ restored[k] = v
176
+ return cls(**restored)
177
+
135
178
  def get_time_series_chart_for_download(self):
136
179
  """Return fig with title and subtitle for download as png"""
137
180
  return get_chart_for_download(self, self.create_time_series_chart())
@@ -340,7 +383,6 @@ class TimeSeriesChart:
340
383
  legendgroup: str,
341
384
  ):
342
385
  """Creates a trace for the plot.
343
-
344
386
  Args:
345
387
  df (pl.DataFrame): Dataframe to use to create trace. Must contain "Date valid" column,
346
388
  y_value column and columns defined in self.hover_data[CUSTOM_DATA].
@@ -369,8 +411,8 @@ class TimeSeriesChart:
369
411
  (
370
412
  ""
371
413
  if i == 0
372
- and self.trace_names_to_prevent_hover_of_first_point is not None
373
- and trace_name in self.trace_names_to_prevent_hover_of_first_point
414
+ and self.trace_names_to_prevent_hover_of_first_point_list is not None
415
+ and trace_name in self.trace_names_to_prevent_hover_of_first_point_list
374
416
  else self._get_custom_hover_template(i, df, trace_name)
375
417
  )
376
418
  for i in range(df.shape[0]) # the number of rows in df
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gov_uk_dashboards
3
- Version: 19.1.0
3
+ Version: 20.0.0
4
4
  Summary: Provides access to functionality common to creating a data dashboard.
5
5
  Author: Department for Levelling Up, Housing and Communities
6
6
  Description-Content-Type: text/markdown
@@ -10,7 +10,7 @@ setup(
10
10
  author="Department for Levelling Up, Housing and Communities",
11
11
  description="Provides access to functionality common to creating a data dashboard.",
12
12
  name="gov_uk_dashboards",
13
- version="19.1.0",
13
+ version="20.0.0",
14
14
  long_description=long_description,
15
15
  long_description_content_type="text/markdown",
16
16
  packages=find_packages(),