From 9fa8326d7725e1835249ed6fec9c441ae9c66083 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:21:19 -0400 Subject: [PATCH 01/29] add swarm plot to the scatter documentation This is inspired by #5087 --- doc/python/line-and-scatter.md | 89 ++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index 9ddaad8aac7..ea3ca6ac4a1 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -284,6 +284,95 @@ fig.update_traces(textposition="bottom right") fig.show() ``` +### Swarm (or Beeswarm) Plots + +Swarm plots show the distribution of values in a column by giving each entry one dot and adjusting the y-value so that dots do not overlap and appear symmetrically around the y=0 line. They complement histograms, box plots, and violin plots. This example could be generalized to implement a swarm plot for multiple categories by adjusting the y-coordinate for each category. + +```python +import pandas as pd +import plotly.express as px +import collections + + +def swarm( + X_series, + point_size=16, + fig_width = 800, + gap_multiplier=1.2, +): + #sorting will align columns in attractive arcs rather than having columns the vary unpredicatbly in the x-dimension + X_series=X_series.copy().sort_values() + + + # we need to reason in terms of the marker size that is measured in px + # so we need to think about each x-coordinate as being a fraction of the way from the + # minimum X value to the maximum X value + min_x = min(X_series) + max_x = max(X_series) + + list_of_rows = [] + # we will count the number of points in each "bin" / vertical strip of the graph + # to be able to assign a y-coordinate that avoids overlapping + bin_counter = collections.Counter() + + for x_val in X_series: + # assign this x_value to bin number + # each bin is a vertical strip wide enough for one marker + bin=(((fig_width*(x_val-min_x))/(max_x-min_x)) // point_size) + + #update the count of dots in that strip + bin_counter.update([bin]) + + # if this is an odd numbered entry in its bin, make its y coordinate negative + # the y coordinate of the first entry is 0, so entries 3, 5, and 7 get negative y coordinates + if bin_counter[bin]%2 == 1: + negative_1_if_count_is_odd = -1 + else: + negative_1_if_count_is_odd = 1 + + # the collision free y coordinate gives the items in a vertical bin + # coordinates: 0, 1, -1, 2, -2, 3, -3 ... and so on to evenly spread + # their locations above and below the y-axis (we'll make a correction below to deal with even numbers of entries) + # we then scale this by the point_size*gap_multiplier to get a y coordinate in px + + collision_free_y_coordinate=(bin_counter[bin]//2)*negative_1_if_count_is_odd*point_size*gap_multiplier + list_of_rows.append({"x":x_val,"y":collision_free_y_coordinate,"bin":bin}) + + # if the number of points is even, + # move y-coordinates down to put an equal number of entries above and below the axis + for row in list_of_rows: + if bin_counter[row["bin"]]%2==0: + row["y"]-=point_size*gap_multiplier/2 + + df = pd.DataFrame(list_of_rows) + + fig = px.scatter( + df, + x="x", + y="y", + hover_data="x", + ) + #we want to suppress the y coordinate in the hover value because the y-coordinate is irrelevant/misleading + fig.update_traces( + marker_size=point_size, + hovertemplate="value: %{x}", + ) + # we have to set the width and height because we aim to avoid icon collisions and we specify the icon size + # in the same units as the width and height + fig.update_layout(width=fig_width, height=(point_size*max(bin_counter.values())+200)) + fig.update_yaxes( + showticklabels=False, # Turn off y-axis labels + ticks='', # Remove the ticks + title="" + ) + fig.show() + + + +df_iris = px.data.iris() # iris is a pandas DataFrame +swarm(df_iris["sepal_length"]) +``` + ## Scatter and line plots with go.Scatter If Plotly Express does not provide a good starting point, it is possible to use [the more generic `go.Scatter` class from `plotly.graph_objects`](/python/graph-objects/). Whereas `plotly.express` has two functions `scatter` and `line`, `go.Scatter` can be used both for plotting points (makers) or lines, depending on the value of `mode`. The different options of `go.Scatter` are documented in its [reference page](https://plotly.com/python/reference/scatter/). From e563804f06e89aa9a62ecf615e68313ce62954c0 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Sat, 19 Apr 2025 23:26:05 -0400 Subject: [PATCH 02/29] ending with fig.show() --- doc/python/line-and-scatter.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index ea3ca6ac4a1..6a741934aa1 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -365,12 +365,14 @@ def swarm( ticks='', # Remove the ticks title="" ) - fig.show() + return fig df_iris = px.data.iris() # iris is a pandas DataFrame -swarm(df_iris["sepal_length"]) +fig = swarm(df_iris["sepal_length"]) +fig.show() + ``` ## Scatter and line plots with go.Scatter From 15b758055fbce230628e74120a0847cccc4f26d1 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Mon, 21 Apr 2025 00:25:55 -0400 Subject: [PATCH 03/29] collision avoidance --- doc/python/line-and-scatter.md | 56 ++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index 6a741934aa1..de160d77452 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -293,12 +293,23 @@ import pandas as pd import plotly.express as px import collections +def negative_1_if_count_is_odd(count): + # if this is an odd numbered entry in its bin, make its y coordinate negative + # the y coordinate of the first entry is 0, so entries 3, 5, and 7 get negative y coordinates + if count%2 == 1: + return -1 + else: + return 1 + + + def swarm( X_series, point_size=16, fig_width = 800, gap_multiplier=1.2, + center_even_groups = False ): #sorting will align columns in attractive arcs rather than having columns the vary unpredicatbly in the x-dimension X_series=X_series.copy().sort_values() @@ -309,7 +320,7 @@ def swarm( # minimum X value to the maximum X value min_x = min(X_series) max_x = max(X_series) - + list_of_rows = [] # we will count the number of points in each "bin" / vertical strip of the graph # to be able to assign a y-coordinate that avoids overlapping @@ -319,33 +330,43 @@ def swarm( # assign this x_value to bin number # each bin is a vertical strip wide enough for one marker bin=(((fig_width*(x_val-min_x))/(max_x-min_x)) // point_size) - + #update the count of dots in that strip bin_counter.update([bin]) - - # if this is an odd numbered entry in its bin, make its y coordinate negative - # the y coordinate of the first entry is 0, so entries 3, 5, and 7 get negative y coordinates - if bin_counter[bin]%2 == 1: - negative_1_if_count_is_odd = -1 - else: - negative_1_if_count_is_odd = 1 + # the collision free y coordinate gives the items in a vertical bin # coordinates: 0, 1, -1, 2, -2, 3, -3 ... and so on to evenly spread # their locations above and below the y-axis (we'll make a correction below to deal with even numbers of entries) # we then scale this by the point_size*gap_multiplier to get a y coordinate in px - collision_free_y_coordinate=(bin_counter[bin]//2)*negative_1_if_count_is_odd*point_size*gap_multiplier - list_of_rows.append({"x":x_val,"y":collision_free_y_coordinate,"bin":bin}) + collision_free_y_coordinate=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier + list_of_rows.append({"x":x_val,"y":collision_free_y_coordinate,"bin":bin, "adj":0}) # if the number of points is even, # move y-coordinates down to put an equal number of entries above and below the axis + #this can sometimes break the collision avoidance routine, but makes small N outputs look better otherwise + if center_even_groups: + for row in list_of_rows: + if bin_counter[row["bin"]]%2==0: + row["y"]-=point_size*gap_multiplier/2 + row["adj"]=-point_size*gap_multiplier/2 + + for row in list_of_rows: - if bin_counter[row["bin"]]%2==0: - row["y"]-=point_size*gap_multiplier/2 + bin = row["bin"] + #see if we need to "look left" to avoid a possible collision + for other_row in list_of_rows: + if (other_row["bin"]==bin-1 ): + if (((other_row["y"]==row["y"]) or (other_row["y"]==row["y"]+row["adj"])) + and (((fig_width*(row["x"]-other_row["x"]))/(max_x-min_x) // point_size) < 1)): + bin_counter.update([bin]) + row["y"]=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier+row["adj"] + + df = pd.DataFrame(list_of_rows) - + fig = px.scatter( df, x="x", @@ -370,9 +391,12 @@ def swarm( df_iris = px.data.iris() # iris is a pandas DataFrame -fig = swarm(df_iris["sepal_length"]) +x = df_iris["sepal_length"] +x2 = pd.Series([5.05]) +x = pd.concat([x,x2], ignore_index=True) +fig = swarm(x) +#fig = swarm(pd.Series([1,1.5, 1.78, 1.79,2,2,12])) fig.show() - ``` ## Scatter and line plots with go.Scatter From 1e4d6b947d5787e7f514573f2d6b3018fdef2b28 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Fri, 2 May 2025 20:06:12 -0400 Subject: [PATCH 04/29] replaced a work around with a bug fix. --- doc/python/line-and-scatter.md | 43 +++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index de160d77452..d14d79df954 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -309,8 +309,8 @@ def swarm( point_size=16, fig_width = 800, gap_multiplier=1.2, - center_even_groups = False -): + bin_fraction=0.95, #bin fraction slightly undersizes the bins to avoid collisions + ): #sorting will align columns in attractive arcs rather than having columns the vary unpredicatbly in the x-dimension X_series=X_series.copy().sort_values() @@ -328,8 +328,9 @@ def swarm( for x_val in X_series: # assign this x_value to bin number - # each bin is a vertical strip wide enough for one marker - bin=(((fig_width*(x_val-min_x))/(max_x-min_x)) // point_size) + # each bin is a vertical strip slightly narrower than one marker + + bin=(((fig_width*bin_fraction*(x_val-min_x))/(max_x-min_x)) // point_size) #update the count of dots in that strip bin_counter.update([bin]) @@ -341,16 +342,8 @@ def swarm( # we then scale this by the point_size*gap_multiplier to get a y coordinate in px collision_free_y_coordinate=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier - list_of_rows.append({"x":x_val,"y":collision_free_y_coordinate,"bin":bin, "adj":0}) + list_of_rows.append({"x":x_val,"y":collision_free_y_coordinate,"bin":bin}) - # if the number of points is even, - # move y-coordinates down to put an equal number of entries above and below the axis - #this can sometimes break the collision avoidance routine, but makes small N outputs look better otherwise - if center_even_groups: - for row in list_of_rows: - if bin_counter[row["bin"]]%2==0: - row["y"]-=point_size*gap_multiplier/2 - row["adj"]=-point_size*gap_multiplier/2 for row in list_of_rows: @@ -358,24 +351,39 @@ def swarm( #see if we need to "look left" to avoid a possible collision for other_row in list_of_rows: if (other_row["bin"]==bin-1 ): - if (((other_row["y"]==row["y"]) or (other_row["y"]==row["y"]+row["adj"])) + #"bubble" the entry up until we find a slot that avoids a collision + while ((other_row["y"]==row["y"]) and (((fig_width*(row["x"]-other_row["x"]))/(max_x-min_x) // point_size) < 1)): + print(row) + print(other_row) + print(((fig_width*(row["x"]-other_row["x"] ))/(max_x-min_x) // point_size)) + + print("updating to fix collision") bin_counter.update([bin]) - row["y"]=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier+row["adj"] + print(bin_counter[bin]) + row["y"]=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier + print(row["y"]) + # if the number of points is even, + # move y-coordinates down to put an equal number of entries above and below the axis + for row in list_of_rows: + if bin_counter[row["bin"]]%2==0: + row["y"]-=point_size*gap_multiplier/2 df = pd.DataFrame(list_of_rows) + # one way to make this code more flexible to e.g. handle multiple categories would be to return a list of "swarmified" y coordinates here + # you could then generate "swarmified" y coordinates for each category and add category specific offsets before scatterplotting them fig = px.scatter( df, x="x", y="y", - hover_data="x", ) #we want to suppress the y coordinate in the hover value because the y-coordinate is irrelevant/misleading fig.update_traces( marker_size=point_size, + #suppress the y coordinate because the y-coordinate is irrelevant hovertemplate="value: %{x}", ) # we have to set the width and height because we aim to avoid icon collisions and we specify the icon size @@ -392,10 +400,7 @@ def swarm( df_iris = px.data.iris() # iris is a pandas DataFrame x = df_iris["sepal_length"] -x2 = pd.Series([5.05]) -x = pd.concat([x,x2], ignore_index=True) fig = swarm(x) -#fig = swarm(pd.Series([1,1.5, 1.78, 1.79,2,2,12])) fig.show() ``` From 5469864eafbaa73eff467ba732e3a949ae589807 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Sat, 3 May 2025 23:25:20 -0400 Subject: [PATCH 05/29] maintain collision avoidance while arranging points in c-curves --- doc/python/line-and-scatter.md | 140 ++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 62 deletions(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index d14d79df954..e262cf60762 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -293,30 +293,32 @@ import pandas as pd import plotly.express as px import collections -def negative_1_if_count_is_odd(count): - # if this is an odd numbered entry in its bin, make its y coordinate negative - # the y coordinate of the first entry is 0, so entries 3, 5, and 7 get negative y coordinates - if count%2 == 1: - return -1 - else: - return 1 - +def negative_1_if_count_is_odd(count): + # if this is an odd numbered entry in its bin, make its y coordinate negative + # the y coordinate of the first entry is 0, so entries 3, 5, and 7 get + # negative y coordinates + if count % 2 == 1: + return -1 + else: + return 1 def swarm( X_series, point_size=16, - fig_width = 800, + fig_width=800, gap_multiplier=1.2, - bin_fraction=0.95, #bin fraction slightly undersizes the bins to avoid collisions - ): - #sorting will align columns in attractive arcs rather than having columns the vary unpredicatbly in the x-dimension - X_series=X_series.copy().sort_values() - + bin_fraction=0.95, # slightly undersizes the bins to avoid collisions +): + # sorting will align columns in attractive c-shaped arcs rather than having + # columns that vary unpredictably in the x-dimension. + # We also exploit the fact that sorting means we see bins sequentially when + # we add collision prevention offsets. + X_series = X_series.copy().sort_values() # we need to reason in terms of the marker size that is measured in px - # so we need to think about each x-coordinate as being a fraction of the way from the + # so we need to think about each x-coordinate as being a fraction of the way from the # minimum X value to the maximum X value min_x = min(X_series) max_x = max(X_series) @@ -329,79 +331,93 @@ def swarm( for x_val in X_series: # assign this x_value to bin number # each bin is a vertical strip slightly narrower than one marker - - bin=(((fig_width*bin_fraction*(x_val-min_x))/(max_x-min_x)) // point_size) + bin = (((fig_width*bin_fraction*(x_val-min_x))/(max_x-min_x)) // point_size) - #update the count of dots in that strip + # update the count of dots in that strip bin_counter.update([bin]) + # remember the "y-slot" which tells us the number of points in this bin and is sufficient to compute the y coordinate unless there's a collision with the point to its left + list_of_rows.append( + {"x": x_val, "y_slot": bin_counter[bin], "bin": bin}) - # the collision free y coordinate gives the items in a vertical bin - # coordinates: 0, 1, -1, 2, -2, 3, -3 ... and so on to evenly spread - # their locations above and below the y-axis (we'll make a correction below to deal with even numbers of entries) - # we then scale this by the point_size*gap_multiplier to get a y coordinate in px - - collision_free_y_coordinate=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier - list_of_rows.append({"x":x_val,"y":collision_free_y_coordinate,"bin":bin}) - - - + # iterate through the points and "offset" any that are colliding with a + # point to their left apply the offsets to all subsequent points in the same bin. + # this arranges points in an attractive swarm c-curve where the points + # toward the edges are (weakly) further right. + bin = 0 + offset = 0 for row in list_of_rows: - bin = row["bin"] - #see if we need to "look left" to avoid a possible collision + if bin != row["bin"]: + # we have moved to a new bin, so we need to reset the offset + bin = row["bin"] + offset = 0 + # see if we need to "look left" to avoid a possible collision for other_row in list_of_rows: - if (other_row["bin"]==bin-1 ): - #"bubble" the entry up until we find a slot that avoids a collision - while ((other_row["y"]==row["y"]) - and (((fig_width*(row["x"]-other_row["x"]))/(max_x-min_x) // point_size) < 1)): - print(row) - print(other_row) - print(((fig_width*(row["x"]-other_row["x"] ))/(max_x-min_x) // point_size)) - - print("updating to fix collision") + if (other_row["bin"] == bin-1): + # "bubble" the entry up until we find a slot that avoids a collision + while ((other_row["y_slot"] == row["y_slot"]+offset) + and (((fig_width*(row["x"]-other_row["x"]))/(max_x-min_x) + // point_size) < 1)): + offset += 1 + # update the bin count so we know whether the number of + # *used* slots is even or odd bin_counter.update([bin]) - print(bin_counter[bin]) - row["y"]=(bin_counter[bin]//2)*negative_1_if_count_is_odd(bin_counter[bin])*point_size*gap_multiplier - print(row["y"]) - # if the number of points is even, - # move y-coordinates down to put an equal number of entries above and below the axis + row["y_slot"] += offset + # The collision free y coordinate gives the items in a vertical bin + # y-coordinates to evenly spread their locations above and below the + # y-axis (we'll make a correction below to deal with even numbers of + # entries). For now, we'll assign 0, 1, -1, 2, -2, 3, -3 ... and so on. + # We scale this by the point_size*gap_multiplier to get a y coordinate + # in px. + row["y"] = (row["y_slot"]//2) * \ + negative_1_if_count_is_odd(row["y_slot"])*point_size*gap_multiplier + print(row["y"]) + + # if the number of points is even, move y-coordinates down to put an equal + # number of entries above and below the axis for row in list_of_rows: - if bin_counter[row["bin"]]%2==0: - row["y"]-=point_size*gap_multiplier/2 - + if bin_counter[row["bin"]] % 2 == 0: + row["y"] -= point_size*gap_multiplier/2 df = pd.DataFrame(list_of_rows) - # one way to make this code more flexible to e.g. handle multiple categories would be to return a list of "swarmified" y coordinates here - # you could then generate "swarmified" y coordinates for each category and add category specific offsets before scatterplotting them + # One way to make this code more flexible to e.g. handle multiple categories + # would be to return a list of "swarmified" y coordinates here and then plot + # outside the function. + # That generalization would let you "swarmify" y coordinates for each + # category and add category specific offsets to put the each category in its + # own row fig = px.scatter( df, x="x", y="y", ) - #we want to suppress the y coordinate in the hover value because the y-coordinate is irrelevant/misleading + # we want to suppress the y coordinate in the hover value because the + # y-coordinate is irrelevant/misleading fig.update_traces( marker_size=point_size, - #suppress the y coordinate because the y-coordinate is irrelevant + # suppress the y coordinate because the y-coordinate is irrelevant hovertemplate="value: %{x}", ) - # we have to set the width and height because we aim to avoid icon collisions and we specify the icon size - # in the same units as the width and height - fig.update_layout(width=fig_width, height=(point_size*max(bin_counter.values())+200)) + # we have to set the width and height because we aim to avoid icon collisions + # and we specify the icon size in the same units as the width and height + fig.update_layout(width=fig_width, height=( + point_size*max(bin_counter.values())+200)) fig.update_yaxes( - showticklabels=False, # Turn off y-axis labels - ticks='', # Remove the ticks - title="" + showticklabels=False, # Turn off y-axis labels + ticks='', # Remove the ticks + title="" ) return fig - -df_iris = px.data.iris() # iris is a pandas DataFrame -x = df_iris["sepal_length"] -fig = swarm(x) -fig.show() +df = px.data.iris() # iris is a pandas DataFrame +fig = swarm(df["sepal_length"]) +# here's a more interesting test case for collision avoidance: +#fig = swarm(pd.Series([1, 1.5, 1.78, 1.79, 1.85, 2, +# 2, 2, 2, 3, 3, 2.05, 2.1, 2.2, 2.5, 12])) +fig.show() ``` ## Scatter and line plots with go.Scatter From 6d27e9f18b765c10e9b5f1a468c3fec90dc89611 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Tue, 3 Jun 2025 22:47:44 -0400 Subject: [PATCH 06/29] Update line-and-scatter.md --- doc/python/line-and-scatter.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index e262cf60762..d10a0f865e2 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -306,6 +306,7 @@ def negative_1_if_count_is_odd(count): def swarm( X_series, + fig_title, point_size=16, fig_width=800, gap_multiplier=1.2, @@ -372,7 +373,6 @@ def swarm( # in px. row["y"] = (row["y_slot"]//2) * \ negative_1_if_count_is_odd(row["y_slot"])*point_size*gap_multiplier - print(row["y"]) # if the number of points is even, move y-coordinates down to put an equal # number of entries above and below the axis @@ -392,6 +392,7 @@ def swarm( df, x="x", y="y", + title=fig_title, ) # we want to suppress the y coordinate in the hover value because the # y-coordinate is irrelevant/misleading @@ -413,9 +414,10 @@ def swarm( df = px.data.iris() # iris is a pandas DataFrame -fig = swarm(df["sepal_length"]) -# here's a more interesting test case for collision avoidance: -#fig = swarm(pd.Series([1, 1.5, 1.78, 1.79, 1.85, 2, +fig = swarm(df["sepal_length"], "Sepal length distribution from 150 iris samples") +# The iris data set entries are rounded so there are no collisions. +# a more interesting test case for collision avoidance is: +# fig = swarm(pd.Series([1, 1.5, 1.78, 1.79, 1.85, 2, # 2, 2, 2, 3, 3, 2.05, 2.1, 2.2, 2.5, 12])) fig.show() ``` From 83d158a475b7859f5d345875a1a6190a1eebcbd5 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Tue, 3 Jun 2025 22:48:01 -0400 Subject: [PATCH 07/29] update header Co-authored-by: Liam Connors --- doc/python/line-and-scatter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index d10a0f865e2..5e4ca154dfe 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -286,7 +286,7 @@ fig.show() ### Swarm (or Beeswarm) Plots -Swarm plots show the distribution of values in a column by giving each entry one dot and adjusting the y-value so that dots do not overlap and appear symmetrically around the y=0 line. They complement histograms, box plots, and violin plots. This example could be generalized to implement a swarm plot for multiple categories by adjusting the y-coordinate for each category. +Swarm plots show the distribution of values in a column by giving each entry one dot and adjusting the y-value so that dots do not overlap and appear symmetrically around the y=0 line. They complement histograms, box plots, and violin plots. This example could be generalized to implement a swarm plot for multiple categories by adjusting the y-coordinate for each category. ```python import pandas as pd From 7fa86a6f16113341e44f90d84e5d5eb68b599d21 Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Tue, 3 Jun 2025 22:55:34 -0400 Subject: [PATCH 08/29] Update line-and-scatter.md --- doc/python/line-and-scatter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index 5e4ca154dfe..51291cfaa5b 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -286,7 +286,7 @@ fig.show() ### Swarm (or Beeswarm) Plots -Swarm plots show the distribution of values in a column by giving each entry one dot and adjusting the y-value so that dots do not overlap and appear symmetrically around the y=0 line. They complement histograms, box plots, and violin plots. This example could be generalized to implement a swarm plot for multiple categories by adjusting the y-coordinate for each category. +Swarm plots show the distribution of values in a column by giving each entry one dot and adjusting the y-value so that dots do not overlap and appear symmetrically around the y=0 line. They complement [histograms](https://plotly.com/python/histograms/), [box plots](https://plotly.com/python/box-plots/), and [violin plots](https://plotly.com/python/violin/). This example could be generalized to implement a swarm plot for multiple categories by adjusting the y-coordinate for each category. ```python import pandas as pd From aff4e976b6721eeb3c123a62676d993bfd0fef7a Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Fri, 27 Jun 2025 09:35:42 -0400 Subject: [PATCH 09/29] restoring an accidently deleted figure creation line --- doc/python/text-and-annotations.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/python/text-and-annotations.md b/doc/python/text-and-annotations.md index 84521f34cd7..56f341e8728 100644 --- a/doc/python/text-and-annotations.md +++ b/doc/python/text-and-annotations.md @@ -789,6 +789,11 @@ This example shows how to add a note about the data source or interpretation at ```python import plotly.express as px df = px.data.iris() + +fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", + size='petal_length', hover_data=['petal_width']) + + fig.update_layout( title=dict(text="Note: this is the Plotly title element.", # keeping this title string short avoids getting the text cut off in small windows From c6cb0f592282e1ce257cc12d734015ac8a03755f Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Mon, 7 Jul 2025 14:10:02 -0400 Subject: [PATCH 10/29] Update static-image-export.md --- doc/python/static-image-export.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/python/static-image-export.md b/doc/python/static-image-export.md index 6ccd1af2c03..528924eb2a4 100644 --- a/doc/python/static-image-export.md +++ b/doc/python/static-image-export.md @@ -273,6 +273,8 @@ The following settings are available. `mathjax`: Location of the MathJax bundle needed to render LaTeX characters. Defaults to a CDN location. If fully offline export is required, set this to a local MathJax bundle. +`plotlyjs`: Location of the Plotly.js bundle to use. Can be a local file path or URL. By default, Kaleido uses the Plotly.js bundle included with Plotly.py. + `topojson`: Location of the topojson files needed to render choropleth traces. Defaults to a CDN location. If fully offline export is required, set this to a local directory containing the Plotly.js topojson files. `mapbox_access_token`: The default Mapbox access token (Kaleido v0 only). Mapbox traces are deprecated. See the [MapLibre Migration](https://plotly.com/python/mapbox-to-maplibre/) page for more details. From 857440198a431097952e767ce05ceaf667b6e80c Mon Sep 17 00:00:00 2001 From: Rob Letzler <22990670+rl-utility-man@users.noreply.github.com> Date: Mon, 7 Jul 2025 23:22:23 -0400 Subject: [PATCH 11/29] corrected an incorrect description entry --- doc/python/tile-county-choropleth.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/python/tile-county-choropleth.md b/doc/python/tile-county-choropleth.md index 75b89acb302..06f6bd7b2da 100644 --- a/doc/python/tile-county-choropleth.md +++ b/doc/python/tile-county-choropleth.md @@ -22,7 +22,7 @@ jupyter: pygments_lexer: ipython3 version: 3.10.0 plotly: - description: How to make a choropleth map of US counties in Python with Plotly. + description: How to make tile choropleth maps in Python with Plotly. display_as: maps language: python layout: base @@ -254,4 +254,4 @@ fig.show() See [function reference for `px.choropleth_map`](https://plotly.com/python-api-reference/generated/plotly.express.choropleth_map) or https://plotly.com/python/reference/choroplethmap/ for more information about the attributes available. -For Mapbox-based tile maps, see [function reference for `px.choropleth_mapbox`](https://plotly.com/python-api-reference/generated/plotly.express.choropleth_mapbox) or https://plotly.com/python/reference/choroplethmapbox/. +For (deprecated) Mapbox-based tile maps, see [function reference for `px.choropleth_mapbox`](https://plotly.com/python-api-reference/generated/plotly.express.choropleth_mapbox) or https://plotly.com/python/reference/choroplethmapbox/. From dc31ccd05b95ea37040ce371a5938c403c8c6f0a Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 8 Jul 2025 15:40:01 -0400 Subject: [PATCH 12/29] Update static-image-export.md --- doc/python/static-image-export.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/python/static-image-export.md b/doc/python/static-image-export.md index 6ccd1af2c03..fdac5486f8a 100644 --- a/doc/python/static-image-export.md +++ b/doc/python/static-image-export.md @@ -64,12 +64,12 @@ Plotly also provides a CLI for installing Chrome from the command line. Run `plotly_get_chrome` to install Chrome. -You can also install Chrome from within Python using `plotly.io.install_chrome()` +You can also install Chrome from within Python using `kaleido.get_chrome_sync()` ```python -import plotly.io as pio +import kaleido -pio.install_chrome() +kaleido.get_chrome_sync() ``` See the **Additional Information on Browsers with Kaleido** section below for more details on browser compatibility for Kaleido. From faa1ee3f72e3e932b8d1e59cf3b828d342f71c20 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 8 Jul 2025 16:08:13 -0400 Subject: [PATCH 13/29] Update static-image-export.md --- doc/python/static-image-export.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/doc/python/static-image-export.md b/doc/python/static-image-export.md index fdac5486f8a..668c68da400 100644 --- a/doc/python/static-image-export.md +++ b/doc/python/static-image-export.md @@ -64,13 +64,6 @@ Plotly also provides a CLI for installing Chrome from the command line. Run `plotly_get_chrome` to install Chrome. -You can also install Chrome from within Python using `kaleido.get_chrome_sync()` - -```python -import kaleido - -kaleido.get_chrome_sync() -``` See the **Additional Information on Browsers with Kaleido** section below for more details on browser compatibility for Kaleido. From a2787a0770fda8841ea91a584b244af6d53762f0 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Thu, 10 Jul 2025 09:56:41 -0400 Subject: [PATCH 14/29] - Move contents of `commands.py` to scripts in new `bin` directory and break into individual scripts. - Tidy up imports etc. while doing so. - Move code generation from `./codegen` to `./bin/codegen`. - Move `plot-schema.json` to `./resources` rather than burying it under the `codegen` folder. - Add `Makefile` to run commands instead of putting everything in `commands.py`. - Run `ruff` directly for checking and formatting rather than launching a subprocess from Python as `commands.py` did. - Modify `.gitignore to ignore `docs` and `docs_tmp`. (Will eventually want to include `docs` or overwrite `doc`.) - Minor reformatting of `README.md`. - Update `CONTRIBUTING.md` to describe relocation of commands and code generation to `bin`. - `CONTRIBUTING.md` documents `--local`, `--devrepo` and `--devbranch` options for updating JavaScript bundle that `commands.py` didn't seem to provide. - Add `mkdocs.yml` configuration file for `mkdocs`. - Most of this file was vibe coded using Claude. - `mkdocs` does not support reading configuration from `pyproject.toml`, so we need the extra config file. - Use `material` theme. - Read hand-written Markdown from `pages` and write output to `docs`. - Generate module index pages on the fly using `mkdocs-gen-files` plugin. (See discussion of `bin/generate_reference_pages.py` below.) - Set docstring style to `google` (even though much of our documentation isn't formatted that way). - Add placeholder Markdown files in `pages` that include files from the root directory (README, code of conduct, contributors' guide, license). - Remove relative links between these pages because they don't work when the content is transcluded one directory lower. - Modify docstring in `plotly/_subplots.py` to escape closing `]` with backslash to avoid confusing `mkdocs` Markdown. - Here and elsewhere the escape is written `\\]` because we need `\]` in the actual string. We could convert the docstrings to literal strings prefixed with `r` to avoid the double backslash. - Have also escaped some `[` as `\\[` for the same reason. - Similar change to `plotly/basedatatypes.py`. - Reformat line breaks in docstrings in `plotly/express/_core.py`. - Modify `pyproject.toml` to install `mkdocs` and related packages for dev. - Modify `pyproject.toml` to install `pydoclint` for checking documentation. - Currently reporting a *lot* of errors. - Update `uv.lock` to match. --- .gitignore | 3 + CONTRIBUTING.md | 23 +- Makefile | 58 ++ README.md | 19 +- {codegen => bin/codegen}/__init__.py | 67 +- {codegen => bin/codegen}/compatibility.py | 17 +- {codegen => bin/codegen}/datatypes.py | 16 +- {codegen => bin/codegen}/figure.py | 9 +- {codegen => bin/codegen}/utils.py | 16 +- {codegen => bin/codegen}/validators.py | 9 +- bin/generate_code.py | 27 + bin/generate_reference_pages.py | 58 ++ bin/updatejs.py | 32 + commands.py => bin/utils.py | 94 +-- mkdocs.yml | 40 + pages/conduct.md | 1 + pages/contributing.md | 1 + pages/index.md | 1 + pages/license.md | 1 + plotly/_subplots.py | 26 +- plotly/basedatatypes.py | 4 +- plotly/express/_core.py | 8 +- plotly/figure_factory/_violin.py | 4 +- plotly/subplots.py | 22 +- plotly/tools.py | 24 +- pyproject.toml | 9 +- .../resources => resources}/plot-schema.json | 159 +++- uv.lock | 708 +++++++++++++++++- 28 files changed, 1216 insertions(+), 240 deletions(-) create mode 100644 Makefile rename {codegen => bin/codegen}/__init__.py (85%) rename {codegen => bin/codegen}/compatibility.py (93%) rename {codegen => bin/codegen}/datatypes.py (98%) rename {codegen => bin/codegen}/figure.py (99%) rename {codegen => bin/codegen}/utils.py (99%) rename {codegen => bin/codegen}/validators.py (94%) create mode 100644 bin/generate_code.py create mode 100644 bin/generate_reference_pages.py create mode 100644 bin/updatejs.py rename commands.py => bin/utils.py (79%) create mode 100644 mkdocs.yml create mode 100644 pages/conduct.md create mode 100644 pages/contributing.md create mode 100644 pages/index.md create mode 100644 pages/license.md rename {codegen/resources => resources}/plot-schema.json (99%) diff --git a/.gitignore b/.gitignore index 5bb4e110325..063be791b13 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ tests/test_orca/images/linux/failed/ doc/python/raw.githubusercontent.com/ +docs/ +docs_tmp/ + # Don't ignore dataset files !*.csv.gz !*.geojson.gz diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ad666ea805c..f4cfaf94447 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ then explains the technical aspects of preparing your contribution. ## Code of Conduct -Please note that all contributos are required to abide by our [Code of Conduct](CODE_OF_CONDUCT.md). +Please note that all contributos are required to abide by our Code of Conduct. ## Different Ways to Contribute @@ -19,7 +19,7 @@ it is important to understand the structure of the code and the repository. - The [`plotly.graph_objects`](https://plotly.com/python/graph-objects/) module (usually imported as `go`) is [generated from the plotly.js schema](https://plotly.com/python/figure-structure/), so changes to be made in this package need to be contributed to [plotly.js](https://github.com/plotly/plotly.js) - or to the code generation system in `./codegen/`. + or to the code generation system in `./bin/codegen/`. Code generation creates traces and layout classes that have a direct correspondence to their JavaScript counterparts, while higher-level methods that work on figures regardless of the current schema (e.g., `BaseFigure.for_each_trace`) are defined in `plotly/basedatatypes.py`. @@ -38,16 +38,17 @@ it is important to understand the structure of the code and the repository. These are organized in subdirectories according to what they test: see the "Setup" section below for more details. -- Documentation is found in `doc/`, and its structure is described in [its README file](doc/README.md). +- Documentation is found in `doc/`, and its structure is described in its README file. The documentation is a great place to start contributing, since you can add or modify examples without setting up a full environment. -Code and documentation are not the only way to contribute: -you can also help by: +Code and documentation are not the only way to contribute. +You can also help by: - Reporting bugs at . Please take a moment to see if your problem has already been reported, and if so, add a comment to the existing issue; - we will try to prioritize those that affect the most people. + we will try to prioritize those that affect the most people + and that are accompanied by small, runnable examples. - Submitting feature requests (also at ). Again, please add a comment to an existing issue if the feature you want has already been requested. @@ -219,11 +220,11 @@ Once you have done that, run the `updateplotlyjs` command: ```bash -python commands.py updateplotlyjs +python bin/updatejs.py ``` This downloads new versions of `plot-schema.json` and `plotly.min.js` from the `plotly/plotly.js` GitHub repository -and places them in `plotly/package_data`. +and places them in `resources` and `plotly/package_data` respectively. It then regenerates all of the `graph_objs` classes based on the new schema. ### Using a Development Branch of Plotly.js @@ -232,7 +233,8 @@ If your development branch is in [the plotly.js repository](https://github.com/p you can update to development versions of `plotly.js` with this command: ```bash -python commands.py updateplotlyjsdev --devrepo reponame --devbranch branchname +# FIXME commands.py didn't provide --devrepo or --devbranch +python bin/updatejs.py --dev --devrepo reponame --devbranch branchname ``` This fetches the `plotly.js` in the CircleCI artifact of the branch `branchname` of the repo `reponame`. @@ -255,5 +257,6 @@ You can then run the following command *in your local plotly.py repository*: ```bash -python commands.py updateplotlyjsdev --local /path/to/your/plotly.js/ +# FIXME: commands.py didn't provide --local +python bin/updatejs.py --dev --local /path/to/your/plotly.js/ ``` diff --git a/Makefile b/Makefile new file mode 100644 index 00000000000..63d26ae08ba --- /dev/null +++ b/Makefile @@ -0,0 +1,58 @@ +# Manage plotly.py project. + +RUN = uv run +PACKAGE_DIRS = _plotly_utils plotly +CODE_DIRS = ${PACKAGE_DIRS} scripts + +## commands: show available commands +commands: + @grep -h -E '^##' ${MAKEFILE_LIST} | sed -e 's/## //g' | column -t -s ':' + +## docs: rebuild documentation +.PHONY: docs +docs: + ${RUN} mkdocs build + +## docs-lint: check documentation +docs-lint: + ${RUN} pydoclint ${PACKAGE_DIRS} + +## docs-tmp: rebuild documentation saving Markdown in ./tmp +docs-tmp: + MKDOCS_TEMP_DIR=./docs_tmp ${RUN} mkdocs build + +## format: reformat code +format: + ${RUN} ruff format ${CODE_DIRS} + +## generate: generate code +generate: + ${RUN} bin/generate_code.py --codedir plotly + ${RUN} ruff format plotly + +## lint: check the code +lint: + ${RUN} ruff check ${CODE_DIRS} + +## test: run tests +test: + ${RUN} pytest tests + +## updatejs: update JavaScript bundle +updatejs: + ${RUN} bin/updatejs.py --codedir plotly + +## --: -- + +## clean: clean up repository +clean: + @find . -name '*~' -delete + @find . -name '.DS_Store' -delete + @rm -rf .coverage + @rm -rf .pytest_cache + @rm -rf .ruff_cache + @rm -rf dist + +## sync: update Python packages +sync: + uv sync --extra dev diff --git a/README.md b/README.md index 11f117aca59..8e6ef158f46 100644 --- a/README.md +++ b/README.md @@ -76,13 +76,13 @@ Built on top of [plotly.js](https://github.com/plotly/plotly.js), `plotly.py` is ## Installation -plotly.py may be installed using pip +plotly.py may be installed using pip: ``` pip install plotly ``` -or conda. +or conda: ``` conda install -c conda-forge plotly @@ -90,8 +90,7 @@ conda install -c conda-forge plotly ### Jupyter Widget Support -For use as a Jupyter widget, install `jupyter` and `anywidget` -packages using `pip`: +For use as a Jupyter widget, install the `jupyter` and `anywidget` packages using `pip`: ``` pip install jupyter anywidget @@ -112,14 +111,14 @@ command line utility (legacy as of `plotly` version 4.9). #### Kaleido -The [`kaleido`](https://github.com/plotly/Kaleido) package has no dependencies and can be installed -using pip +The [`kaleido`](https://github.com/plotly/Kaleido) package has no dependencies +and can be installed using pip: ``` pip install -U kaleido ``` -or conda +or conda: ``` conda install -c conda-forge python-kaleido @@ -129,13 +128,13 @@ conda install -c conda-forge python-kaleido Some plotly.py features rely on fairly large geographic shape files. The county choropleth figure factory is one such example. These shape files are distributed as a -separate `plotly-geo` package. This package can be installed using pip... +separate `plotly-geo` package. This package can be installed using pip: ``` pip install plotly-geo==1.0.0 ``` -or conda +or conda: ``` conda install -c plotly plotly-geo=1.0.0 @@ -145,7 +144,7 @@ conda install -c plotly plotly-geo=1.0.0 ## Copyright and Licenses -Code and documentation copyright 2019 Plotly, Inc. +Code and documentation copyright Plotly, Inc. Code released under the [MIT license](https://github.com/plotly/plotly.py/blob/main/LICENSE.txt). diff --git a/codegen/__init__.py b/bin/codegen/__init__.py similarity index 85% rename from codegen/__init__.py rename to bin/codegen/__init__.py index b299fa36045..294566f7f06 100644 --- a/codegen/__init__.py +++ b/bin/codegen/__init__.py @@ -1,8 +1,6 @@ import json import os -import os.path as opath import shutil -import subprocess import sys from codegen.datatypes import build_datatype_py, write_datatype_py # noqa: F401 @@ -87,45 +85,30 @@ def preprocess_schema(plotly_schema): items["colorscale"] = items.pop("concentrationscales") -def make_paths(outdir): - """Make various paths needed for formatting and linting.""" +def make_paths(codedir): + """Make various paths needed for code generation.""" - validators_dir = opath.join(outdir, "validators") - graph_objs_dir = opath.join(outdir, "graph_objs") - graph_objects_path = opath.join(outdir, "graph_objects", "__init__.py") + validators_dir = codedir / "validators" + graph_objs_dir = codedir / "graph_objs" + graph_objects_path = codedir / "graph_objects" / "__init__.py" return validators_dir, graph_objs_dir, graph_objects_path -def lint_code(outdir): - """Check Python code using settings in pyproject.toml.""" - - subprocess.call(["ruff", "check", *make_paths(outdir)]) - - -def reformat_code(outdir): - """Reformat Python code using settings in pyproject.toml.""" - - subprocess.call(["ruff", "format", *make_paths(outdir)]) - - -def perform_codegen(outdir, noformat=False): - """Generate code (and possibly reformat).""" +def perform_codegen(codedir, noformat=False): + """Generate code.""" # Get paths - validators_dir, graph_objs_dir, graph_objects_path = make_paths(outdir) + validators_dir, graph_objs_dir, graph_objects_path = make_paths(codedir) # Delete prior codegen output - if opath.exists(validators_dir): + if validators_dir.exists(): shutil.rmtree(validators_dir) - if opath.exists(graph_objs_dir): + if graph_objs_dir.exists(): shutil.rmtree(graph_objs_dir) # Load plotly schema - project_root = opath.dirname(outdir) - plot_schema_path = opath.join( - project_root, "codegen", "resources", "plot-schema.json" - ) - + project_root = codedir.parent + plot_schema_path = project_root / "resources" / "plot-schema.json" with open(plot_schema_path, "r") as f: plotly_schema = json.load(f) @@ -193,18 +176,18 @@ def perform_codegen(outdir, noformat=False): # Write out the JSON data for the validators os.makedirs(validators_dir, exist_ok=True) - write_validator_json(outdir, validator_params) + write_validator_json(codedir, validator_params) # Alls alls = {} # Write out datatypes for node in all_compound_nodes: - write_datatype_py(outdir, node) + write_datatype_py(codedir, node) # Deprecated # These are deprecated legacy datatypes like graph_objs.Marker - write_deprecated_datatypes(outdir) + write_deprecated_datatypes(codedir) # Write figure class to graph_objs data_validator = get_data_validator_instance(base_traces_node) @@ -212,7 +195,7 @@ def perform_codegen(outdir, noformat=False): frame_validator = frame_node.get_validator_instance() write_figure_classes( - outdir, + codedir, base_traces_node, data_validator, layout_validator, @@ -242,7 +225,7 @@ def perform_codegen(outdir, noformat=False): # Write plotly/graph_objs/graph_objs.py # This is for backward compatibility. It just imports everything from # graph_objs/__init__.py - write_graph_objs_graph_objs(outdir) + write_graph_objs_graph_objs(codedir) # Add Figure and FigureWidget root_datatype_imports = datatype_rel_class_imports[()] @@ -287,12 +270,13 @@ def __getattr__(import_name): # __all__ for path_parts, class_names in alls.items(): if path_parts and class_names: - filepath = opath.join(outdir, "graph_objs", *path_parts, "__init__.py") + filepath = codedir / "graph_objs" + filepath = filepath.joinpath(*path_parts) / "__init__.py" with open(filepath, "at") as f: f.write(f"\n__all__ = {class_names}") # Output datatype __init__.py files - graph_objs_pkg = opath.join(outdir, "graph_objs") + graph_objs_pkg = codedir / "graph_objs" for path_parts in datatype_rel_class_imports: rel_classes = sorted(datatype_rel_class_imports[path_parts]) rel_modules = sorted(datatype_rel_module_imports.get(path_parts, [])) @@ -317,18 +301,13 @@ def __getattr__(import_name): graph_objects_rel_classes, init_extra=optional_figure_widget_import, ) - graph_objects_path = opath.join(outdir, "graph_objects", "__init__.py") - os.makedirs(opath.join(outdir, "graph_objects"), exist_ok=True) + graph_objects_path = codedir / "graph_objects" + graph_objects_path.mkdir(parents=True, exist_ok=True) + graph_objects_path /= "__init__.py" with open(graph_objects_path, "wt") as f: f.write("# ruff: noqa: F401\n") f.write(graph_objects_init_source) - # Run code formatter on output directories - if noformat: - print("skipping reformatting") - else: - reformat_code(outdir) - if __name__ == "__main__": if len(sys.argv) != 2: diff --git a/codegen/compatibility.py b/bin/codegen/compatibility.py similarity index 93% rename from codegen/compatibility.py rename to bin/codegen/compatibility.py index 2b57685ff2e..fdb4fe4b576 100644 --- a/codegen/compatibility.py +++ b/bin/codegen/compatibility.py @@ -1,5 +1,4 @@ from io import StringIO -from os import path as opath from codegen.utils import write_source_py @@ -150,15 +149,15 @@ def build_deprecation_message(class_name, base_type, new): """ -def write_deprecated_datatypes(outdir): +def write_deprecated_datatypes(codedir): """ Build source code for deprecated datatype class definitions and write them to a file Parameters ---------- - outdir : - Root outdir in which the graph_objs package should reside + codedir : + Root directory in which the graph_objs package should reside Returns ------- @@ -166,13 +165,13 @@ def write_deprecated_datatypes(outdir): """ # Generate source code datatype_source = build_deprecated_datatypes_py() - filepath = opath.join(outdir, "graph_objs", "_deprecations.py") + filepath = codedir / "graph_objs" / "_deprecations.py" # Write file write_source_py(datatype_source, filepath) -def write_graph_objs_graph_objs(outdir): +def write_graph_objs_graph_objs(codedir): """ Write the plotly/graph_objs/graph_objs.py file @@ -183,14 +182,14 @@ def write_graph_objs_graph_objs(outdir): Parameters ---------- - outdir : str - Root outdir in which the graph_objs package should reside + codedir : str + Root directory in which the graph_objs package should reside Returns ------- None """ - filepath = opath.join(outdir, "graph_objs", "graph_objs.py") + filepath = codedir / "graph_objs" / "graph_objs.py" with open(filepath, "wt") as f: f.write( """\ diff --git a/codegen/datatypes.py b/bin/codegen/datatypes.py similarity index 98% rename from codegen/datatypes.py rename to bin/codegen/datatypes.py index 28b11d1fc59..d29e4f715a3 100644 --- a/codegen/datatypes.py +++ b/bin/codegen/datatypes.py @@ -1,6 +1,5 @@ -import os.path as opath -import textwrap from io import StringIO +import textwrap from codegen.utils import CAVEAT, write_source_py @@ -219,6 +218,9 @@ def _subplot_re_match(self, prop): else: property_docstring = property_description + # Fix `][`. + property_docstring = property_docstring.replace("][", "]\\[") + # Write get property buffer.write( f'''\ @@ -595,14 +597,6 @@ def write_datatype_py(outdir, node): None """ - # Build file path - # filepath = opath.join(outdir, "graph_objs", *node.parent_path_parts, "__init__.py") - filepath = opath.join( - outdir, "graph_objs", *node.parent_path_parts, "_" + node.name_undercase + ".py" - ) - - # Generate source code + filepath = (outdir / "graph_objs").joinpath(*node.parent_path_parts) / f"_{node.name_undercase}.py" datatype_source = build_datatype_py(node) - - # Write file write_source_py(datatype_source, filepath, leading_newlines=2) diff --git a/codegen/figure.py b/bin/codegen/figure.py similarity index 99% rename from codegen/figure.py rename to bin/codegen/figure.py index a15d806937c..b0ed1026793 100644 --- a/codegen/figure.py +++ b/bin/codegen/figure.py @@ -1,5 +1,4 @@ from io import StringIO -from os import path as opath from codegen.datatypes import ( reindent_validator_description, @@ -705,7 +704,7 @@ def add_{method_prefix}{singular_name}(self""" def write_figure_classes( - outdir, + codedir, trace_node, data_validator, layout_validator, @@ -720,8 +719,8 @@ def write_figure_classes( Parameters ---------- - outdir : str - Root outdir in which the graph_objs package should reside + codedir : str + Root directory in which the graph_objs package should reside trace_node : PlotlyNode Root trace node (the node that is the parent of all of the individual trace nodes like bar, scatter, etc.) @@ -768,5 +767,5 @@ def write_figure_classes( ) # Format and write to file - filepath = opath.join(outdir, "graph_objs", f"_{fig_classname.lower()}.py") + filepath = codedir / "graph_objs" / f"_{fig_classname.lower()}.py" write_source_py(figure_source, filepath) diff --git a/codegen/utils.py b/bin/codegen/utils.py similarity index 99% rename from codegen/utils.py rename to bin/codegen/utils.py index 3d660328e51..2cc4e018811 100644 --- a/codegen/utils.py +++ b/bin/codegen/utils.py @@ -1,11 +1,9 @@ -import os -import os.path as opath -import textwrap from collections import ChainMap from importlib import import_module from io import StringIO -from typing import List import re +import textwrap +from typing import List CAVEAT = """ @@ -35,10 +33,7 @@ def write_source_py(py_source, filepath, leading_newlines=0): """ if py_source: # Make dir if needed - filedir = opath.dirname(filepath) - # The exist_ok kwarg is only supported with Python 3, but that's ok since - # codegen is only supported with Python 3 anyway - os.makedirs(filedir, exist_ok=True) + filepath.parent.mkdir(exist_ok=True) # Write file py_source = "\n" * leading_newlines + py_source @@ -121,7 +116,7 @@ def write_init_py(pkg_root, path_parts, rel_modules=(), rel_classes=(), init_ext init_source = build_from_imports_py(rel_modules, rel_classes, init_extra) # Write file - filepath = opath.join(pkg_root, *path_parts, "__init__.py") + filepath = pkg_root.joinpath(*path_parts) / "__init__.py" write_source_py(init_source, filepath) @@ -168,6 +163,9 @@ def format_description(desc): # replace {2D arrays} with 2D lists desc = desc.replace("{2D arrays}", "2D lists") + # replace '][' with ']\[' to avoid confusion with Markdown reference links + desc = desc.replace("][", r"]\\[") + return desc diff --git a/codegen/validators.py b/bin/codegen/validators.py similarity index 94% rename from codegen/validators.py rename to bin/codegen/validators.py index 4cef19fa29b..04ea65d2f8a 100644 --- a/codegen/validators.py +++ b/bin/codegen/validators.py @@ -1,4 +1,3 @@ -import os.path as opath import json import _plotly_utils.basevalidators @@ -54,7 +53,7 @@ def get_data_validator_params(base_trace_node: TraceNode, store: dict): } -def write_validator_json(outdir, params: dict): +def write_validator_json(codedir, params: dict): """ Write out a JSON serialization of the validator arguments for all validators (keyed by f"{parent_name}.{plotly_name}) @@ -64,8 +63,8 @@ def write_validator_json(outdir, params: dict): Parameters ---------- - outdir : str - Root outdir in which the validators package should reside + codedir : str + Root directory in which the validators package should reside params : dict Dictionary to store the JSON data for the validator Returns @@ -78,7 +77,7 @@ def write_validator_json(outdir, params: dict): raise ValueError("Expected params to be a dictionary") # Write file - filepath = opath.join(outdir, "validators", "_validators.json") + filepath = codedir / "validators" / "_validators.json" with open(filepath, "w") as f: f.write(json.dumps(params, indent=4)) diff --git a/bin/generate_code.py b/bin/generate_code.py new file mode 100644 index 00000000000..94fef3991cf --- /dev/null +++ b/bin/generate_code.py @@ -0,0 +1,27 @@ +"""Generate code.""" + +import argparse +from pathlib import Path + +import utils + + +def main(): + """Main driver.""" + + args = parse_args() + codedir = utils.select_code_directory(args) + utils.perform_codegen(codedir, noformat=args.noformat) + + +def parse_args(): + """Parse command-line arguments.""" + + parser = argparse.ArgumentParser() + parser.add_argument("--noformat", action="store_true", help="prevent reformatting") + parser.add_argument("--codedir", type=Path, help="code directory") + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/bin/generate_reference_pages.py b/bin/generate_reference_pages.py new file mode 100644 index 00000000000..cba3d633276 --- /dev/null +++ b/bin/generate_reference_pages.py @@ -0,0 +1,58 @@ +"""Generate the code reference pages and navigation.""" + +import os +from pathlib import Path + +import mkdocs_gen_files + + +# Saving Markdown files? +temp_dir = os.getenv("MKDOCS_TEMP_DIR", None) +if temp_dir is not None: + temp_dir = Path(temp_dir) + +# Set up the generation engine. +nav = mkdocs_gen_files.Nav() + +# Match each Python file. +for path in sorted(Path("plotly").rglob("*.py")): + # Documentation path. + module_path = path.relative_to(".").with_suffix("") + doc_path = path.relative_to(".").with_suffix(".md") + full_doc_path = Path("reference", doc_path) + + # Handle dunder special cases. + parts = tuple(module_path.parts) + if parts[-1] == "__init__": + parts = parts[:-1] + doc_path = doc_path.with_name("index.md") + full_doc_path = full_doc_path.with_name("index.md") + elif parts[-1] == "__main__": + continue + + # Save constructed data. + nav[parts] = doc_path.as_posix() + mkdocs_gen_files.set_edit_path(full_doc_path, path) + + # Save in-memory file. + with mkdocs_gen_files.open(full_doc_path, "w") as writer: + ident = ".".join(parts) + writer.write(f"# {ident}\n\n") + writer.write(f"::: {ident}") + + # Save to disk if requested. + if temp_dir is not None: + temp_path = temp_dir / doc_path + temp_path.parent.mkdir(exist_ok=True, parents=True) + with open(temp_path, "w") as writer: + ident = ".".join(parts) + writer.write(f"# {ident}\n\n") + writer.write(f"::: {ident}") + +# Generate navigation summary. +with mkdocs_gen_files.open("reference/SUMMARY.md", "w") as writer: + writer.writelines(nav.build_literate_nav()) +if temp_dir is not None: + temp_path = temp_dir / "SUMMARY.md" + with open(temp_path, "w") as writer: + writer.writelines(nav.build_literate_nav()) diff --git a/bin/updatejs.py b/bin/updatejs.py new file mode 100644 index 00000000000..0604bd2c421 --- /dev/null +++ b/bin/updatejs.py @@ -0,0 +1,32 @@ +"""Check code.""" + +import argparse +from pathlib import Path + +import utils + + +def main(): + """Main driver.""" + + args = parse_args() + codedir = utils.select_code_directory(args) + if args.dev: + utils.update_plotlyjs_dev(codedir) + else: + version = utils.plotly_js_version() + print(version) + utils.update_plotlyjs(version, codedir) + + +def parse_args(): + """Parse command-line arguments.""" + + parser = argparse.ArgumentParser() + parser.add_argument("--dev", action="store_true", help="development version") + parser.add_argument("--codedir", type=Path, help="code directory") + return parser.parse_args() + + +if __name__ == "__main__": + main() diff --git a/commands.py b/bin/utils.py similarity index 79% rename from commands.py rename to bin/utils.py index 01f158380ce..0dd39a4ddf2 100644 --- a/commands.py +++ b/bin/utils.py @@ -1,9 +1,9 @@ """Utility command runner.""" -import argparse import logging import json import os +from pathlib import Path import platform import requests import shutil @@ -11,25 +11,29 @@ import sys import time -from codegen import perform_codegen, lint_code, reformat_code +from codegen import perform_codegen LOGGER = logging.getLogger(__name__) -PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) -NODE_ROOT = os.path.join(PROJECT_ROOT, "js") -NODE_MODULES = os.path.join(NODE_ROOT, "node_modules") -WIDGET_TARGETS = [ - os.path.join(PROJECT_ROOT, "plotly", "package_data", "widgetbundle.js"), -] - +PROJECT_ROOT = Path(__file__).parent.parent +NODE_ROOT = PROJECT_ROOT / "js" +NODE_MODULES = NODE_ROOT / "node_modules" +PLOT_SCHEMA = PROJECT_ROOT / "resources" / "plot-schema.json" +WIDGET_TARGETS = [PROJECT_ROOT / "plotly" / "package_data" / "widgetbundle.js"] NPM_PATH = os.pathsep.join( [ - os.path.join(NODE_ROOT, "node_modules", ".bin"), + str(NODE_ROOT / "node_modules" / ".bin"), os.environ.get("PATH", os.defpath), ] ) +def select_code_directory(args): + """Select root directory for plotly package.""" + + return args.codedir if args.codedir else PROJECT_ROOT / "plotly" + + def plotly_js_version(): """Load plotly.js version from js/package.json.""" @@ -101,8 +105,7 @@ def install_js_deps(local): def overwrite_schema_local(uri): """Replace plot-schema.json with local copy.""" - path = os.path.join(PROJECT_ROOT, "codegen", "resources", "plot-schema.json") - shutil.copyfile(uri, path) + shutil.copyfile(uri, PLOT_SCHEMA) def overwrite_schema(url): @@ -110,8 +113,7 @@ def overwrite_schema(url): req = requests.get(url) assert req.status_code == 200 - path = os.path.join(PROJECT_ROOT, "codegen", "resources", "plot-schema.json") - with open(path, "wb") as f: + with open(PLOT_SCHEMA, "wb") as f: f.write(req.content) @@ -235,12 +237,12 @@ def update_bundle(plotly_js_version): overwrite_plotlyjs_version_file(plotlyjs_version) -def update_plotlyjs(plotly_js_version, outdir): +def update_plotlyjs(plotly_js_version, codedir): """Update project to a new version of plotly.js.""" update_bundle(plotly_js_version) update_schema(plotly_js_version) - perform_codegen(outdir) + perform_codegen(codedir) # FIXME: switch to argparse @@ -306,64 +308,8 @@ def update_schema_bundle_from_master(): install_js_deps(local) -def update_plotlyjs_dev(outdir): +def update_plotlyjs_dev(codedir): """Update project to a new development version of plotly.js.""" update_schema_bundle_from_master() - perform_codegen(outdir) - - -def parse_args(): - """Parse command-line arguments.""" - - parser = argparse.ArgumentParser() - subparsers = parser.add_subparsers(dest="cmd", help="Available subcommands") - - p_codegen = subparsers.add_parser("codegen", help="generate code") - p_codegen.add_argument( - "--noformat", action="store_true", help="prevent reformatting" - ) - - subparsers.add_parser("lint", help="lint code") - - subparsers.add_parser("format", help="reformat code") - - subparsers.add_parser("updateplotlyjsdev", help="update plotly.js for development") - - subparsers.add_parser("updateplotlyjs", help="update plotly.js") - - return parser.parse_args() - - -def main(): - """Main driver.""" - - project_root = os.path.dirname(os.path.realpath(__file__)) - outdir = os.path.join(project_root, "plotly") - - args = parse_args() - - if args.cmd == "codegen": - perform_codegen(outdir, noformat=args.noformat) - - elif args.cmd == "format": - reformat_code(outdir) - - elif args.cmd == "lint": - lint_code(outdir) - - elif args.cmd == "updateplotlyjsdev": - update_plotlyjs_dev(outdir) - - elif args.cmd == "updateplotlyjs": - version = plotly_js_version() - print(version) - update_plotlyjs(version, outdir) - - else: - print(f"unknown command {args.cmd}", file=sys.stderr) - sys.exit(1) - - -if __name__ == "__main__": - main() + perform_codegen(codedir) diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000000..c92823309e2 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,40 @@ +site_name: "Plotly.py Docs" +docs_dir: pages +site_dir: docs + +plugins: + - search + - gen-files: + scripts: + - bin/generate_reference_pages.py + - literate-nav: + nav_file: SUMMARY.md + - mkdocstrings: + handlers: + python: + options: + docstring_style: google + show_source: false + show_root_heading: true + show_root_toc_entry: true + merge_init_into_class: true + +nav: +- Home: index.md +- API Reference: reference/ +- Project: + - license.md + - conduct.md + - contributing.md + +theme: + name: "material" + +markdown_extensions: +- def_list +- markdown_include.include: + base_path: docs +- footnotes + +exclude_docs: > + *~ diff --git a/pages/conduct.md b/pages/conduct.md new file mode 100644 index 00000000000..14a6a4a839a --- /dev/null +++ b/pages/conduct.md @@ -0,0 +1 @@ +{!../CODE_OF_CONDUCT.md!} diff --git a/pages/contributing.md b/pages/contributing.md new file mode 100644 index 00000000000..568877b4a4f --- /dev/null +++ b/pages/contributing.md @@ -0,0 +1 @@ +{!../CONTRIBUTING.md!} diff --git a/pages/index.md b/pages/index.md new file mode 100644 index 00000000000..7d211af2649 --- /dev/null +++ b/pages/index.md @@ -0,0 +1 @@ +{!../README.md!} diff --git a/pages/license.md b/pages/license.md new file mode 100644 index 00000000000..9f03cbeae23 --- /dev/null +++ b/pages/license.md @@ -0,0 +1 @@ +{!../LICENSE.txt!} diff --git a/plotly/_subplots.py b/plotly/_subplots.py index 8930fd9e41c..65091aa460d 100644 --- a/plotly/_subplots.py +++ b/plotly/_subplots.py @@ -122,9 +122,9 @@ def make_subplots( Per subplot specifications of subplot type, row/column spanning, and spacing. - ex1: specs=[[{}, {}], [{'colspan': 2}, None]] + ex1: `specs=[[{}, {}], [{'colspan': 2}, None]\\] - ex2: specs=[[{'rowspan': 2}, {}], [None, {}]] + ex2: `specs=[[{'rowspan': 2}, {}], [None, {}]\\] - Indices of the outer list correspond to subplot grid rows starting from the top, if start_cell='top-left', @@ -141,7 +141,7 @@ def make_subplots( - Use None for a blank a subplot cell (or to move past a col/row span). - - Note that specs[0][0] has the specs of the 'start_cell' subplot. + - Note that `specs[0][0\\] has the specs of the 'start_cell' subplot. - Each item in 'specs' is a dictionary. The available keys are: @@ -246,8 +246,8 @@ def make_subplots( >>> fig = make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -262,8 +262,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, shared_xaxes=True) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -278,8 +278,8 @@ def make_subplots( ... [{'colspan': 2}, None]]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 ] - [ (2,1) xaxis3,yaxis3 - ] + \\[ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 \\] + \\[ (2,1) xaxis3,yaxis3 - \\] >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -294,10 +294,10 @@ def make_subplots( >>> fig = make_subplots(insets=[{'cell': (1,1), 'l': 0.7, 'b': 0.3}]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] + \\[ (1,1) xaxis1,yaxis1 \\] With insets: - [ xaxis2,yaxis2 ] over [ (1,1) xaxis1,yaxis1 ] + \\[ xaxis2,yaxis2 ] over [ (1,1) xaxis1,yaxis1 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,1]) # doctest: +ELLIPSIS Figure(...) @@ -310,8 +310,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, subplot_titles=('Plot 1','Plot 2')) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,2], row=1, col=1) # doctest: +ELLIPSIS Figure(...) diff --git a/plotly/basedatatypes.py b/plotly/basedatatypes.py index 1384e08d543..1e7b0fdd7d2 100644 --- a/plotly/basedatatypes.py +++ b/plotly/basedatatypes.py @@ -2320,8 +2320,8 @@ def append_trace(self, trace, row, col): >>> fig = tools.make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] >>> fig.append_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=1, col=1) >>> fig.append_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=2, col=1) diff --git a/plotly/express/_core.py b/plotly/express/_core.py index d2dbc84c0e7..53eda20a5a7 100644 --- a/plotly/express/_core.py +++ b/plotly/express/_core.py @@ -101,9 +101,9 @@ def reset(self): def set_mapbox_access_token(token): """ Arguments: - token: A Mapbox token to be used in `plotly.express.scatter_mapbox` and \ - `plotly.express.line_mapbox` figures. See \ - https://docs.mapbox.com/help/how-mapbox-works/access-tokens/ for more details + token (Mapbox token): A Mapbox token to be used in `plotly.express.scatter_mapbox` \ + and `plotly.express.line_mapbox` figures. See \ + https://docs.mapbox.com/help/how-mapbox-works/access-tokens/ for more details. """ global MAPBOX_TOKEN MAPBOX_TOKEN = token @@ -115,7 +115,7 @@ def get_trendline_results(fig): the `trendline` argument set to `"ols"`). Arguments: - fig: the output of a `plotly.express` charting call + fig (figure): the output of a `plotly.express` charting call Returns: A `pandas.DataFrame` with a column "px_fit_results" containing the `statsmodels` results objects, along with columns identifying the subset of the data the diff --git a/plotly/figure_factory/_violin.py b/plotly/figure_factory/_violin.py index 55924e69238..0574406dfe6 100644 --- a/plotly/figure_factory/_violin.py +++ b/plotly/figure_factory/_violin.py @@ -513,7 +513,7 @@ def create_violin( >>> norm_params=[(0, 1.2), (0.7, 1), (-0.5, 1.4), (0.3, 1), (0.8, 0.9)] >>> for i, letter in enumerate("ABCDE"): - ... y[gr == letter] *=norm_params[i][1]+ norm_params[i][0] + ... y[gr == letter] *= norm_params[i]\\[1]+ norm_params[i]\\[0] >>> df = pd.DataFrame(dict(Score=y, Group=gr)) >>> # create violin fig @@ -540,7 +540,7 @@ def create_violin( >>> norm_params=[(0, 1.2), (0.7, 1), (-0.5, 1.4), (0.3, 1), (0.8, 0.9)] >>> for i, letter in enumerate("ABCDE"): - ... y[gr == letter] *=norm_params[i][1]+ norm_params[i][0] + ... y[gr == letter] *= norm_params[i]\\[1]+ norm_params[i]\\[0] >>> df = pd.DataFrame(dict(Score=y, Group=gr)) >>> # define header params diff --git a/plotly/subplots.py b/plotly/subplots.py index e41839039e8..76c8baba41b 100644 --- a/plotly/subplots.py +++ b/plotly/subplots.py @@ -105,7 +105,7 @@ def make_subplots( - Use None for a blank a subplot cell (or to move past a col/row span). - - Note that specs[0][0] has the specs of the 'start_cell' subplot. + - Note that `specs[0][0\\] has the specs of the 'start_cell' subplot. - Each item in 'specs' is a dictionary. The available keys are: @@ -210,8 +210,8 @@ def make_subplots( >>> fig = make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -226,8 +226,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, shared_xaxes=True) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] - [ (2,1) xaxis2,yaxis2 ] + \\[ (1,1) xaxis1,yaxis1 \\] + \\[ (2,1) xaxis2,yaxis2 \\] >>> fig.add_scatter(y=[2, 1, 3], row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -242,8 +242,8 @@ def make_subplots( ... [{'colspan': 2}, None]]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 ] - [ (2,1) xaxis3,yaxis3 - ] + \\[ (1,1) xaxis1,yaxis1 ] [ (1,2) xaxis2,yaxis2 \\] + \\[ (2,1) xaxis3,yaxis3 - \\] >>> fig.add_trace(go.Scatter(x=[1,2,3], y=[2,1,2]), row=1, col=1) # doctest: +ELLIPSIS Figure(...) @@ -258,10 +258,10 @@ def make_subplots( >>> fig = make_subplots(insets=[{'cell': (1,1), 'l': 0.7, 'b': 0.3}]) This is the format of your plot grid: - [ (1,1) xaxis1,yaxis1 ] + \\[ (1,1) xaxis1,yaxis1 \\] With insets: - [ xaxis2,yaxis2 ] over [ (1,1) xaxis1,yaxis1 ] + \\[ xaxis2,yaxis2 \\] over \\[ (1,1) xaxis1,yaxis1 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,1]) # doctest: +ELLIPSIS Figure(...) @@ -274,8 +274,8 @@ def make_subplots( >>> fig = make_subplots(rows=2, subplot_titles=('Plot 1','Plot 2')) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] >>> fig.add_scatter(x=[1,2,3], y=[2,1,2], row=1, col=1) # doctest: +ELLIPSIS Figure(...) diff --git a/plotly/tools.py b/plotly/tools.py index 67f828204d7..a425eec3913 100644 --- a/plotly/tools.py +++ b/plotly/tools.py @@ -244,8 +244,8 @@ def make_subplots( fig = tools.make_subplots(rows=2) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -257,8 +257,8 @@ def make_subplots( fig = tools.make_subplots(rows=2, shared_xaxes=True) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x1,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x1,y2 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] @@ -271,8 +271,8 @@ def make_subplots( [{'colspan': 2}, None]]) This is the format of your plot grid! - [ (1,1) x1,y1 ] [ (1,2) x2,y2 ] - [ (2,1) x3,y3 - ] + \\[ (1,1) x1,y1 ] [ (1,2) x2,y2 \\] + \\[ (2,1) x3,y3 - \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -283,10 +283,10 @@ def make_subplots( fig = tools.make_subplots(insets=[{'cell': (1,1), 'l': 0.7, 'b': 0.3}]) This is the format of your plot grid! - [ (1,1) x1,y1 ] + \\[ (1,1) x1,y1 \\] With insets: - [ x2,y2 ] over [ (1,1) x1,y1 ] + \\[ x2,y2 \\] over \\[ (1,1) x1,y1 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -296,8 +296,8 @@ def make_subplots( fig = tools.make_subplots(rows=2, subplot_titles=('Plot 1','Plot 2')) This is the format of your plot grid: - [ (1,1) x1,y1 ] - [ (2,1) x2,y2 ] + \\[ (1,1) x1,y1 \\] + \\[ (2,1) x2,y2 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] @@ -308,10 +308,10 @@ def make_subplots( subplot_titles=('','Inset')) This is the format of your plot grid! - [ (1,1) x1,y1 ] + \\[ (1,1) x1,y1 \\] With insets: - [ x2,y2 ] over [ (1,1) x1,y1 ] + \\[ x2,y2 \\] over \\[ (1,1) x1,y1 \\] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2])] fig['data'] += [Scatter(x=[1,2,3], y=[2,1,2], xaxis='x2', yaxis='y2')] diff --git a/pyproject.toml b/pyproject.toml index 49a821cfb2d..a209ae83089 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,7 +50,13 @@ dev_core = [ dev_build = [ "plotly[dev_core]", "build", - "jupyter" + "jupyter", + "markdown-include", + "mkdocs", + "mkdocs-material", + "mkdocstrings[python]", + "mkdocs-gen-files", + "mkdocs-literate-nav" ] dev_optional = [ "plotly[dev_build]", @@ -69,6 +75,7 @@ dev_optional = [ "plotly-geo", "polars[timezone]", "pyarrow", + "pydoclint", "pyshp", "pytz", "scikit-image", diff --git a/codegen/resources/plot-schema.json b/resources/plot-schema.json similarity index 99% rename from codegen/resources/plot-schema.json rename to resources/plot-schema.json index fe1eb67d81a..5648e294fe0 100644 --- a/codegen/resources/plot-schema.json +++ b/resources/plot-schema.json @@ -1012,7 +1012,7 @@ "valType": "string" }, "text": { - "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
), bold (), italics (), hyperlinks (). Tags , , , , are also supported.", + "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (`
`), bold (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, and `` are also supported.", "editType": "calc+arraydraw", "valType": "string" }, @@ -3442,6 +3442,12 @@ "min": 30, "valType": "number" }, + "maxheight": { + "description": "Sets the max height (in px) of the legend, or max height ratio (reference height * ratio) if less than one. Default value is: 0.5 for horizontal legends; 1 for vertical legends. The minimum allowed height is 30px. For a ratio of 0.5, the legend will take up to 50% of the reference height before displaying a scrollbar. The reference height is the full layout height except for vertically oriented legends with a `yref` of `\"paper\"`, where the reference height is the plot height.", + "editType": "legend", + "min": 0, + "valType": "number" + }, "orientation": { "description": "Sets the orientation of the legend.", "dflt": "v", @@ -3896,7 +3902,7 @@ "symbol": { "editType": "plot", "icon": { - "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.map.com/maki-icons/", + "description": "Sets the symbol icon image (map.layer.layout.icon-image). Full list: https://www.mapbox.com/maki-icons/", "dflt": "marker", "editType": "plot", "valType": "string" @@ -5919,7 +5925,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. If *normal*, the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes).", + "description": "If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. If *normal*, the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes).", "dflt": "tozero", "editType": "calc", "valType": "enumerated", @@ -6745,7 +6751,7 @@ "valType": "string" }, "text": { - "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
), bold (), italics (), hyperlinks (). Tags , , , , are also supported.", + "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (`
`), bold (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, and `` are also supported.", "editType": "calc", "valType": "string" }, @@ -7325,7 +7331,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -8064,7 +8070,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -8803,7 +8809,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -14032,7 +14038,7 @@ "role": "object" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -14705,7 +14711,7 @@ ] }, "ticklabelposition": { - "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", + "description": "Determines where tick labels are drawn with respect to the axis. Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Similarly, left or right has no effect on y axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Has no effect on *multicategory* axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", "dflt": "outside", "editType": "calc", "valType": "enumerated", @@ -14959,6 +14965,16 @@ "editType": "ticks", "valType": "color" }, + "zerolinelayer": { + "description": "Sets the layer on which this zeroline is displayed. If *above traces*, this zeroline is displayed above all the subplot's traces If *below traces*, this zeroline is displayed below all the subplot's traces, but above the grid lines. Limitation: *zerolinelayer* currently has no effect if the *zorder* property is set on any trace.", + "dflt": "below traces", + "editType": "plot", + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ] + }, "zerolinewidth": { "description": "Sets the width (in px) of the zero line.", "dflt": 1, @@ -15583,7 +15599,7 @@ "role": "object" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes.", "dflt": "normal", "editType": "plot", "valType": "enumerated", @@ -15939,7 +15955,7 @@ ] }, "ticklabelposition": { - "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", + "description": "Determines where tick labels are drawn with respect to the axis. Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Similarly, left or right has no effect on y axes or when `ticklabelmode` is set to *period* or when `tickson` is set to *boundaries*. Has no effect on *multicategory* axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match.", "dflt": "outside", "editType": "calc", "valType": "enumerated", @@ -16193,6 +16209,16 @@ "editType": "ticks", "valType": "color" }, + "zerolinelayer": { + "description": "Sets the layer on which this zeroline is displayed. If *above traces*, this zeroline is displayed above all the subplot's traces If *below traces*, this zeroline is displayed below all the subplot's traces, but above the grid lines. Limitation: *zerolinelayer* currently has no effect if the *zorder* property is set on any trace.", + "dflt": "below traces", + "editType": "plot", + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ] + }, "zerolinewidth": { "description": "Sets the width (in px) of the zero line.", "dflt": 1, @@ -17808,6 +17834,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -19835,6 +19872,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -22654,7 +22702,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", "dflt": "normal", "editType": "calc", "valType": "enumerated", @@ -23325,7 +23373,7 @@ "valType": "info_array" }, "rangemode": { - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data.", "dflt": "normal", "editType": "calc", "valType": "enumerated", @@ -30170,7 +30218,7 @@ ] }, "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) *value* is expected to be a number. When `operation` is set to one of the interval values (`[],(),[),(],][,)(,](,)[`) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", "dflt": 0, "editType": "calc", "valType": "any" @@ -31981,7 +32029,7 @@ ] }, "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) *value* is expected to be a number. When `operation` is set to one of the interval values (`[],(),[),(],][,)(,](,)[`) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", "dflt": 0, "editType": "calc", "valType": "any" @@ -37562,6 +37610,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -41225,6 +41284,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -44199,7 +44269,7 @@ ] }, "value": { - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) *value* is expected to be a number. When `operation` is set to one of the interval values (`[],(),[),(],][,)(,](,)[`) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound.", "dflt": 0, "editType": "calc", "valType": "any" @@ -46456,6 +46526,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -56226,6 +56307,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -58612,6 +58704,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -72077,7 +72180,7 @@ }, "symbol": { "arrayOk": true, - "description": "Sets the marker symbol. Full list: https://www.map.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", + "description": "Sets the marker symbol. Full list: https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", "dflt": "circle", "editType": "calc", "valType": "string" @@ -87705,6 +87808,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, @@ -92346,6 +92460,17 @@ "overlay" ] }, + "path": { + "arrayOk": true, + "description": "Sets a custom path for pattern fill. Use with no `shape` or `solidity`, provide an SVG path string for the regions of the square from (0,0) to (`size`,`size`) to color.", + "editType": "style", + "valType": "string" + }, + "pathsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `path`.", + "editType": "none", + "valType": "string" + }, "role": "object", "shape": { "arrayOk": true, diff --git a/uv.lock b/uv.lock index e882459b0f6..987dadda1bf 100644 --- a/uv.lock +++ b/uv.lock @@ -246,6 +246,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918, upload-time = "2024-11-30T04:30:10.946Z" }, ] +[[package]] +name = "astunparse" +version = "1.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six", marker = "python_full_version < '3.9'" }, + { name = "wheel", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/af/4182184d3c338792894f34a62672919db7ca008c89abee9b564dd34d8029/astunparse-1.6.3.tar.gz", hash = "sha256:5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872", size = 18290, upload-time = "2019-12-22T18:12:13.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl", hash = "sha256:c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8", size = 12732, upload-time = "2019-12-22T18:12:11.297Z" }, +] + [[package]] name = "async-lru" version = "2.0.4" @@ -325,6 +338,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/cc/e27fd6493bbce8dbea7e6c1bc861fe3d3bc22c4f7c81f4c3befb8ff5bfaf/backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6", size = 38967, upload-time = "2020-06-23T13:51:13.735Z" }, ] +[[package]] +name = "backrefs" +version = "5.7.post1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/df/30/903f35159c87ff1d92aa3fcf8cb52de97632a21e0ae43ed940f5d033e01a/backrefs-5.7.post1.tar.gz", hash = "sha256:8b0f83b770332ee2f1c8244f4e03c77d127a0fa529328e6a0e77fa25bee99678", size = 6582270, upload-time = "2024-06-16T18:38:20.166Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/bb/47fc255d1060dcfd55b460236380edd8ebfc5b2a42a0799ca90c9fc983e3/backrefs-5.7.post1-py310-none-any.whl", hash = "sha256:c5e3fd8fd185607a7cb1fefe878cfb09c34c0be3c18328f12c574245f1c0287e", size = 380429, upload-time = "2024-06-16T18:38:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/89/72/39ef491caef3abae945f5a5fd72830d3b596bfac0630508629283585e213/backrefs-5.7.post1-py311-none-any.whl", hash = "sha256:712ea7e494c5bf3291156e28954dd96d04dc44681d0e5c030adf2623d5606d51", size = 392234, upload-time = "2024-06-16T18:38:12.283Z" }, + { url = "https://files.pythonhosted.org/packages/6a/00/33403f581b732ca70fdebab558e8bbb426a29c34e0c3ed674a479b74beea/backrefs-5.7.post1-py312-none-any.whl", hash = "sha256:a6142201c8293e75bce7577ac29e1a9438c12e730d73a59efdd1b75528d1a6c5", size = 398110, upload-time = "2024-06-16T18:38:14.257Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ea/df0ac74a26838f6588aa012d5d801831448b87d0a7d0aefbbfabbe894870/backrefs-5.7.post1-py38-none-any.whl", hash = "sha256:ec61b1ee0a4bfa24267f6b67d0f8c5ffdc8e0d7dc2f18a2685fd1d8d9187054a", size = 369477, upload-time = "2024-06-16T18:38:16.196Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e8/e43f535c0a17a695e5768670fc855a0e5d52dc0d4135b3915bfa355f65ac/backrefs-5.7.post1-py39-none-any.whl", hash = "sha256:05c04af2bf752bb9a6c9dcebb2aff2fab372d3d9d311f2a138540e307756bd3a", size = 380429, upload-time = "2024-06-16T18:38:18.079Z" }, +] + +[[package]] +name = "backrefs" +version = "5.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/a7/312f673df6a79003279e1f55619abbe7daebbb87c17c976ddc0345c04c7b/backrefs-5.9.tar.gz", hash = "sha256:808548cb708d66b82ee231f962cb36faaf4f2baab032f2fbb783e9c2fdddaa59", size = 5765857, upload-time = "2025-06-22T19:34:13.97Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/4d/798dc1f30468134906575156c089c492cf79b5a5fd373f07fe26c4d046bf/backrefs-5.9-py310-none-any.whl", hash = "sha256:db8e8ba0e9de81fcd635f440deab5ae5f2591b54ac1ebe0550a2ca063488cd9f", size = 380267, upload-time = "2025-06-22T19:34:05.252Z" }, + { url = "https://files.pythonhosted.org/packages/55/07/f0b3375bf0d06014e9787797e6b7cc02b38ac9ff9726ccfe834d94e9991e/backrefs-5.9-py311-none-any.whl", hash = "sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf", size = 392072, upload-time = "2025-06-22T19:34:06.743Z" }, + { url = "https://files.pythonhosted.org/packages/9d/12/4f345407259dd60a0997107758ba3f221cf89a9b5a0f8ed5b961aef97253/backrefs-5.9-py312-none-any.whl", hash = "sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa", size = 397947, upload-time = "2025-06-22T19:34:08.172Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/fa31834dc27a7f05e5290eae47c82690edc3a7b37d58f7fb35a1bdbf355b/backrefs-5.9-py313-none-any.whl", hash = "sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b", size = 399843, upload-time = "2025-06-22T19:34:09.68Z" }, + { url = "https://files.pythonhosted.org/packages/fc/24/b29af34b2c9c41645a9f4ff117bae860291780d73880f449e0b5d948c070/backrefs-5.9-py314-none-any.whl", hash = "sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9", size = 411762, upload-time = "2025-06-22T19:34:11.037Z" }, + { url = "https://files.pythonhosted.org/packages/41/ff/392bff89415399a979be4a65357a41d92729ae8580a66073d8ec8d810f98/backrefs-5.9-py39-none-any.whl", hash = "sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60", size = 380265, upload-time = "2025-06-22T19:34:12.405Z" }, +] + [[package]] name = "beautifulsoup4" version = "4.13.4" @@ -743,7 +795,7 @@ name = "click" version = "8.1.8" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } wheels = [ @@ -1066,6 +1118,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, ] +[[package]] +name = "docstring-parser-fork" +version = "0.0.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/72/61f7243ad62e14d527f93304cd4f333e681295aa3ef9bcc4afc36c07001a/docstring_parser_fork-0.0.12.tar.gz", hash = "sha256:b44c5e0be64ae80f395385f01497d381bd094a57221fd9ff020987d06857b2a0", size = 31608, upload-time = "2025-01-13T07:57:43.351Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/0d/eed05d4b1065f11f8bef2f57440759d4dacc73c22780764948bfa4aaa304/docstring_parser_fork-0.0.12-py3-none-any.whl", hash = "sha256:55d7cbbc8b367655efd64372b9a0b33a49bae930a8ddd5cdc4c6112312e28a87", size = 42185, upload-time = "2025-01-13T07:57:39.993Z" }, +] + [[package]] name = "exceptiongroup" version = "1.3.0" @@ -1437,6 +1498,55 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/82/79e02a0e5dd4aca81894842b9d6522624a40048a913c6384efb2987a4144/geopandas-1.1.0-py3-none-any.whl", hash = "sha256:b19b18bdc736ee05b237f5e9184211c452768a4c883f7d7f8421b0cbe1da5875", size = 338014, upload-time = "2025-06-01T16:54:29.239Z" }, ] +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "griffe" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "astunparse", marker = "python_full_version < '3.9'" }, + { name = "colorama", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/e9/b2c86ad9d69053e497a24ceb25d661094fb321ab4ed39a8b71793dcbae82/griffe-1.4.0.tar.gz", hash = "sha256:8fccc585896d13f1221035d32c50dec65830c87d23f9adb9b1e6f3d63574f7f5", size = 381028, upload-time = "2024-10-11T12:53:54.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/7c/e9e66869c2e4c9b378474e49c993128ec0131ef4721038b6d06e50538caf/griffe-1.4.0-py3-none-any.whl", hash = "sha256:e589de8b8c137e99a46ec45f9598fc0ac5b6868ce824b24db09c02d117b89bc5", size = 127015, upload-time = "2024-10-11T12:53:52.383Z" }, +] + +[[package]] +name = "griffe" +version = "1.7.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/3e/5aa9a61f7c3c47b0b52a1d930302992229d191bf4bc76447b324b731510a/griffe-1.7.3.tar.gz", hash = "sha256:52ee893c6a3a968b639ace8015bec9d36594961e156e23315c8e8e51401fa50b", size = 395137, upload-time = "2025-04-23T11:29:09.147Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/c6/5c20af38c2a57c15d87f7f38bee77d63c1d2a3689f74fefaf35915dd12b2/griffe-1.7.3-py3-none-any.whl", hash = "sha256:c6b3ee30c2f0f17f30bcdef5068d6ab7a2a4f1b8bf1a3e74b56fffd21e1c5f75", size = 129303, upload-time = "2025-04-23T11:29:07.145Z" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -2787,6 +2897,55 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bc/df/e51691ab004d74fa25b751527d041ad1b4d84ee86cbcb8630ab0d7d5188e/logistro-1.1.0-py3-none-any.whl", hash = "sha256:4f88541fe7f3c545561b754d86121abd9c6d4d8b312381046a78dcd794fddc7c", size = 7894, upload-time = "2025-04-26T20:14:09.363Z" }, ] +[[package]] +name = "markdown" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086, upload-time = "2024-08-16T15:55:17.812Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349, upload-time = "2024-08-16T15:55:16.176Z" }, +] + +[[package]] +name = "markdown" +version = "3.8.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d7/c2/4ab49206c17f75cb08d6311171f2d65798988db4360c4d1485bd0eedd67c/markdown-3.8.2.tar.gz", hash = "sha256:247b9a70dd12e27f67431ce62523e675b866d254f900c4fe75ce3dda62237c45", size = 362071, upload-time = "2025-06-19T17:12:44.483Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/2b/34cc11786bc00d0f04d0f5fdc3a2b1ae0b6239eef72d3d345805f9ad92a1/markdown-3.8.2-py3-none-any.whl", hash = "sha256:5c83764dbd4e00bdd94d85a19b8d55ccca20fe35b2e678a1422b380324dd5f24", size = 106827, upload-time = "2025-06-19T17:12:42.994Z" }, +] + +[[package]] +name = "markdown-include" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/d8/66bf162fe6c1adb619f94a6da599323eecacf15b6d57469d0fd0421c10df/markdown-include-0.8.1.tar.gz", hash = "sha256:1d0623e0fc2757c38d35df53752768356162284259d259c486b4ab6285cdbbe3", size = 21873, upload-time = "2023-02-07T09:47:26.608Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/e2/c4d20b21a05fe0fee571649cebc05f7f72e80b1a743f932e7326125e6c9e/markdown_include-0.8.1-py3-none-any.whl", hash = "sha256:32f0635b9cfef46997b307e2430022852529f7a5b87c0075c504283e7cc7db53", size = 18837, upload-time = "2023-02-07T09:47:25.03Z" }, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -3093,6 +3252,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + [[package]] name = "mistune" version = "3.1.3" @@ -3106,6 +3274,277 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/01/4d/23c4e4f09da849e127e9f123241946c23c1e30f45a88366879e064211815/mistune-3.1.3-py3-none-any.whl", hash = "sha256:1a32314113cff28aa6432e99e522677c8587fd83e3d51c29b82a52409c842bd9", size = 53410, upload-time = "2025-03-19T14:27:23.451Z" }, ] +[[package]] +name = "mkdocs" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "jinja2" }, + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mergedeep" }, + { name = "mkdocs-get-deps" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag", version = "0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyyaml-env-tag", version = "1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "watchdog", version = "4.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "watchdog", version = "6.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451, upload-time = "2024-08-30T12:24:05.054Z" }, +] + +[[package]] +name = "mkdocs-autorefs" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/ae/0f1154c614d6a8b8a36fff084e5b82af3a15f7d2060cf0dcdb1c53297a71/mkdocs_autorefs-1.2.0.tar.gz", hash = "sha256:a86b93abff653521bda71cf3fc5596342b7a23982093915cb74273f67522190f", size = 40262, upload-time = "2024-09-01T18:29:18.514Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/26/4d39d52ea2219604053a4d05b98e90d6a335511cc01806436ec4886b1028/mkdocs_autorefs-1.2.0-py3-none-any.whl", hash = "sha256:d588754ae89bd0ced0c70c06f58566a4ee43471eeeee5202427da7de9ef85a2f", size = 16522, upload-time = "2024-09-01T18:29:16.605Z" }, +] + +[[package]] +name = "mkdocs-autorefs" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/0c/c9826f35b99c67fa3a7cddfa094c1a6c43fafde558c309c6e4403e5b37dc/mkdocs_autorefs-1.4.2.tar.gz", hash = "sha256:e2ebe1abd2b67d597ed19378c0fff84d73d1dbce411fce7a7cc6f161888b6749", size = 54961, upload-time = "2025-05-20T13:09:09.886Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/dc/fc063b78f4b769d1956319351704e23ebeba1e9e1d6a41b4b602325fd7e4/mkdocs_autorefs-1.4.2-py3-none-any.whl", hash = "sha256:83d6d777b66ec3c372a1aad4ae0cf77c243ba5bcda5bf0c6b8a2c5e7a3d89f13", size = 24969, upload-time = "2025-05-20T13:09:08.237Z" }, +] + +[[package]] +name = "mkdocs-gen-files" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/85/2d634462fd59136197d3126ca431ffb666f412e3db38fd5ce3a60566303e/mkdocs_gen_files-0.5.0.tar.gz", hash = "sha256:4c7cf256b5d67062a788f6b1d035e157fc1a9498c2399be9af5257d4ff4d19bc", size = 7539, upload-time = "2023-04-27T19:48:04.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/0f/1e55b3fd490ad2cecb6e7b31892d27cb9fc4218ec1dab780440ba8579e74/mkdocs_gen_files-0.5.0-py3-none-any.whl", hash = "sha256:7ac060096f3f40bd19039e7277dd3050be9a453c8ac578645844d4d91d7978ea", size = 8380, upload-time = "2023-04-27T19:48:07.059Z" }, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "mergedeep" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "platformdirs", version = "4.3.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, +] + +[[package]] +name = "mkdocs-literate-nav" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "mkdocs", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/f9/c48a04f3cf484f8016a343c1d7d99c3a1ef01dbb33ceabb1d02e0ecabda7/mkdocs_literate_nav-0.6.1.tar.gz", hash = "sha256:78a7ab6d878371728acb0cdc6235c9b0ffc6e83c997b037f4a5c6ff7cef7d759", size = 16437, upload-time = "2023-09-10T22:17:16.815Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/3b/e00d839d3242844c77e248f9572dd34644a04300839a60fe7d6bf652ab19/mkdocs_literate_nav-0.6.1-py3-none-any.whl", hash = "sha256:e70bdc4a07050d32da79c0b697bd88e9a104cf3294282e9cb20eec94c6b0f401", size = 13182, upload-time = "2023-09-10T22:17:18.751Z" }, +] + +[[package]] +name = "mkdocs-literate-nav" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "mkdocs", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/5f/99aa379b305cd1c2084d42db3d26f6de0ea9bf2cc1d10ed17f61aff35b9a/mkdocs_literate_nav-0.6.2.tar.gz", hash = "sha256:760e1708aa4be86af81a2b56e82c739d5a8388a0eab1517ecfd8e5aa40810a75", size = 17419, upload-time = "2025-03-18T21:53:09.711Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/84/b5b14d2745e4dd1a90115186284e9ee1b4d0863104011ab46abb7355a1c3/mkdocs_literate_nav-0.6.2-py3-none-any.whl", hash = "sha256:0a6489a26ec7598477b56fa112056a5e3a6c15729f0214bea8a4dbc55bd5f630", size = 13261, upload-time = "2025-03-18T21:53:08.1Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.6.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "backrefs", version = "5.7.post1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "backrefs", version = "5.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions", version = "10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pymdown-extensions", version = "10.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/c1/f804ba2db2ddc2183e900befe7dad64339a34fa935034e1ab405289d0a97/mkdocs_material-9.6.15.tar.gz", hash = "sha256:64adf8fa8dba1a17905b6aee1894a5aafd966d4aeb44a11088519b0f5ca4f1b5", size = 3951836, upload-time = "2025-07-01T10:14:15.671Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/30/dda19f0495a9096b64b6b3c07c4bfcff1c76ee0fc521086d53593f18b4c0/mkdocs_material-9.6.15-py3-none-any.whl", hash = "sha256:ac969c94d4fe5eb7c924b6d2f43d7db41159ea91553d18a9afc4780c34f2717a", size = 8716840, upload-time = "2025-07-01T10:14:13.18Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "mkdocstrings" +version = "0.26.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "click", marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "jinja2", marker = "python_full_version < '3.9'" }, + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs", marker = "python_full_version < '3.9'" }, + { name = "mkdocs-autorefs", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pymdown-extensions", version = "10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/bf/170ff04de72227f715d67da32950c7b8434449f3805b2ec3dd1085db4d7c/mkdocstrings-0.26.1.tar.gz", hash = "sha256:bb8b8854d6713d5348ad05b069a09f3b79edbc6a0f33a34c6821141adb03fe33", size = 92677, upload-time = "2024-09-06T10:26:06.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/cc/8ba127aaee5d1e9046b0d33fa5b3d17da95a9d705d44902792e0569257fd/mkdocstrings-0.26.1-py3-none-any.whl", hash = "sha256:29738bfb72b4608e8e55cc50fb8a54f325dc7ebd2014e4e3881a49892d5983cf", size = 29643, upload-time = "2024-09-06T10:26:04.498Z" }, +] + +[package.optional-dependencies] +python = [ + { name = "mkdocstrings-python", version = "1.11.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] + +[[package]] +name = "mkdocstrings" +version = "0.29.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "jinja2", marker = "python_full_version >= '3.9'" }, + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs", marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-autorefs", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pymdown-extensions", version = "10.16", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/e8/d22922664a627a0d3d7ff4a6ca95800f5dde54f411982591b4621a76225d/mkdocstrings-0.29.1.tar.gz", hash = "sha256:8722f8f8c5cd75da56671e0a0c1bbed1df9946c0cef74794d6141b34011abd42", size = 1212686, upload-time = "2025-03-31T08:33:11.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/14/22533a578bf8b187e05d67e2c1721ce10e3f526610eebaf7a149d557ea7a/mkdocstrings-0.29.1-py3-none-any.whl", hash = "sha256:37a9736134934eea89cbd055a513d40a020d87dfcae9e3052c2a6b8cd4af09b6", size = 1631075, upload-time = "2025-03-31T08:33:09.661Z" }, +] + +[package.optional-dependencies] +python = [ + { name = "mkdocstrings-python", version = "1.16.12", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] + +[[package]] +name = "mkdocstrings-python" +version = "1.11.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "griffe", version = "1.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-autorefs", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/ba/534c934cd0a809f51c91332d6ed278782ee4126b8ba8db02c2003f162b47/mkdocstrings_python-1.11.1.tar.gz", hash = "sha256:8824b115c5359304ab0b5378a91f6202324a849e1da907a3485b59208b797322", size = 166890, upload-time = "2024-09-03T17:20:54.904Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/f2/2a2c48fda645ac6bbe73bcc974587a579092b6868e6ff8bc6d177f4db38a/mkdocstrings_python-1.11.1-py3-none-any.whl", hash = "sha256:a21a1c05acef129a618517bb5aae3e33114f569b11588b1e7af3e9d4061a71af", size = 109297, upload-time = "2024-09-03T17:20:52.621Z" }, +] + +[[package]] +name = "mkdocstrings-python" +version = "1.16.12" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "griffe", version = "1.7.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-autorefs", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/ed/b886f8c714fd7cccc39b79646b627dbea84cd95c46be43459ef46852caf0/mkdocstrings_python-1.16.12.tar.gz", hash = "sha256:9b9eaa066e0024342d433e332a41095c4e429937024945fea511afe58f63175d", size = 206065, upload-time = "2025-06-03T12:52:49.276Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/dd/a24ee3de56954bfafb6ede7cd63c2413bb842cc48eb45e41c43a05a33074/mkdocstrings_python-1.16.12-py3-none-any.whl", hash = "sha256:22ded3a63b3d823d57457a70ff9860d5a4de9e8b1e482876fc9baabaf6f5f374", size = 124287, upload-time = "2025-06-03T12:52:47.819Z" }, +] + [[package]] name = "more-itertools" version = "10.5.0" @@ -3843,6 +4282,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] +[[package]] +name = "paginate" +version = "0.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, +] + [[package]] name = "pandas" version = "2.0.3" @@ -4003,6 +4451,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/e7/40fb618334dcdf7c5a316c0e7343c5cd82d3d866edc100d98e29bc945ecd/partd-1.4.2-py3-none-any.whl", hash = "sha256:978e4ac767ec4ba5b86c6eaa52e5a2a3bc748a2ca839e8cc798f1cc6ce6efb0f", size = 18905, upload-time = "2024-05-06T19:51:39.271Z" }, ] +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, +] + [[package]] name = "patsy" version = "1.0.1" @@ -4296,6 +4753,14 @@ dev = [ { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, { name = "kaleido" }, + { name = "markdown-include" }, + { name = "mkdocs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-literate-nav", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, @@ -4312,6 +4777,8 @@ dev = [ { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pydoclint", version = "0.6.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pyshp" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, @@ -4336,6 +4803,14 @@ dev = [ dev-build = [ { name = "build" }, { name = "jupyter" }, + { name = "markdown-include" }, + { name = "mkdocs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-literate-nav", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "requests" }, @@ -4359,6 +4834,14 @@ dev-optional = [ { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, { name = "kaleido" }, + { name = "markdown-include" }, + { name = "mkdocs" }, + { name = "mkdocs-gen-files" }, + { name = "mkdocs-literate-nav", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "mkdocs-literate-nav", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, + { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, @@ -4375,6 +4858,8 @@ dev-optional = [ { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pydoclint", version = "0.6.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pyshp" }, { name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pytest", version = "8.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, @@ -4416,6 +4901,12 @@ requires-dist = [ { name = "inflect", marker = "extra == 'dev-optional'" }, { name = "jupyter", marker = "extra == 'dev-build'" }, { name = "kaleido", marker = "extra == 'kaleido'", specifier = ">=1.0.0" }, + { name = "markdown-include", marker = "extra == 'dev-build'" }, + { name = "mkdocs", marker = "extra == 'dev-build'" }, + { name = "mkdocs-gen-files", marker = "extra == 'dev-build'" }, + { name = "mkdocs-literate-nav", marker = "extra == 'dev-build'" }, + { name = "mkdocs-material", marker = "extra == 'dev-build'" }, + { name = "mkdocstrings", extras = ["python"], marker = "extra == 'dev-build'" }, { name = "narwhals", specifier = ">=1.15.1" }, { name = "numpy", marker = "extra == 'dev-optional'" }, { name = "numpy", marker = "extra == 'express'" }, @@ -4431,6 +4922,7 @@ requires-dist = [ { name = "plotly-geo", marker = "extra == 'dev-optional'" }, { name = "polars", extras = ["timezone"], marker = "extra == 'dev-optional'" }, { name = "pyarrow", marker = "extra == 'dev-optional'" }, + { name = "pydoclint", marker = "extra == 'dev-optional'" }, { name = "pyshp", marker = "extra == 'dev-optional'" }, { name = "pytest", marker = "extra == 'dev-core'" }, { name = "pytz", marker = "extra == 'dev-optional'" }, @@ -5113,6 +5605,46 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d4/29/3cade8a924a61f60ccfa10842f75eb12787e1440e2b8660ceffeb26685e7/pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27", size = 2066661, upload-time = "2025-04-23T18:33:49.995Z" }, ] +[[package]] +name = "pydoclint" +version = "0.5.11" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "click", marker = "python_full_version < '3.9'" }, + { name = "docstring-parser-fork", marker = "python_full_version < '3.9'" }, + { name = "tomli", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/cf/f832704703879915ca1701da7e2addec3f1ebcce7456391e734f346ae118/pydoclint-0.5.11.tar.gz", hash = "sha256:abd3e428b1b8a318cafabcbe6355d4ccf27733267b9f2645e0fb967503f5ba8b", size = 48939, upload-time = "2024-12-14T21:18:59.494Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/e8/94e9e035693f211beadfe8e7f6150414d669ecae2d1b3701d450be7a386d/pydoclint-0.5.11-py2.py3-none-any.whl", hash = "sha256:7ea595c80a3f959defeed08752877b7b85bb4a8197df71dd79863258214b48b4", size = 46358, upload-time = "2024-12-14T21:18:58.107Z" }, +] + +[[package]] +name = "pydoclint" +version = "0.6.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "click", marker = "python_full_version >= '3.9'" }, + { name = "docstring-parser-fork", marker = "python_full_version >= '3.9'" }, + { name = "tomli", marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/b8/9ab3bb3642e1a87ad5b51276cc6465542935d44c427d75937216b22eadc0/pydoclint-0.6.6.tar.gz", hash = "sha256:22862a8494d05cdf22574d6533f4c47933c0ae1674b0f8b961d6ef42536eaa69", size = 54488, upload-time = "2025-04-16T07:42:23.518Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/05/c714e4dfea5e48140288ee05275e9675fbe1ab1010852ed8c77a388c7ace/pydoclint-0.6.6-py2.py3-none-any.whl", hash = "sha256:7ce8ed36f60f9201bf1c1edacb32c55eb051af80fdd7304480c6419ee0ced43c", size = 48713, upload-time = "2025-04-16T07:42:22.023Z" }, +] + [[package]] name = "pyerfa" version = "2.0.0.3" @@ -5195,6 +5727,44 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293, upload-time = "2025-01-06T17:26:25.553Z" }, ] +[[package]] +name = "pymdown-extensions" +version = "10.15" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markdown", version = "3.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyyaml", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/92/a7296491dbf5585b3a987f3f3fc87af0e632121ff3e490c14b5f2d2b4eb5/pymdown_extensions-10.15.tar.gz", hash = "sha256:0e5994e32155f4b03504f939e501b981d306daf7ec2aa1cd2eb6bd300784f8f7", size = 852320, upload-time = "2025-04-27T23:48:29.183Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/d1/c54e608505776ce4e7966d03358ae635cfd51dff1da6ee421c090dbc797b/pymdown_extensions-10.15-py3-none-any.whl", hash = "sha256:46e99bb272612b0de3b7e7caf6da8dd5f4ca5212c0b273feb9304e236c484e5f", size = 265845, upload-time = "2025-04-27T23:48:27.359Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.16" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "markdown", version = "3.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pyyaml", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/0a/c06b542ac108bfc73200677309cd9188a3a01b127a63f20cadc18d873d88/pymdown_extensions-10.16.tar.gz", hash = "sha256:71dac4fca63fabeffd3eb9038b756161a33ec6e8d230853d3cecf562155ab3de", size = 853197, upload-time = "2025-06-21T17:56:36.974Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/d4/10bb14004d3c792811e05e21b5e5dcae805aacb739bd12a0540967b99592/pymdown_extensions-10.16-py3-none-any.whl", hash = "sha256:f5dd064a4db588cb2d95229fc4ee63a1b16cc8b4d0e6145c0899ed8723da1df2", size = 266143, upload-time = "2025-06-21T17:56:35.356Z" }, +] + [[package]] name = "pyogrio" version = "0.11.0" @@ -5749,6 +6319,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/19/87/5124b1c1f2412bb95c59ec481eaf936cd32f0fe2a7b16b97b81c4c017a6a/PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", size = 162312, upload-time = "2024-08-06T20:33:49.073Z" }, ] +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "pyyaml", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/8e/da1c6c58f751b70f8ceb1eb25bc25d524e8f14fe16edcce3f4e3ba08629c/pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb", size = 5631, upload-time = "2020-11-12T02:38:26.239Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911, upload-time = "2020-11-12T02:38:24.638Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "pyyaml", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, +] + [[package]] name = "pyzmq" version = "26.4.0" @@ -7572,6 +8178,97 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8c/e9/e96b5527a85c7deda12d438a33f2ec2cf6ce0aa397906b3469133c1184a6/vaex_viz-0.5.4-py3-none-any.whl", hash = "sha256:7e8d0cc06ac47e8d00cdb2ac2ea679218afe72200234675f3c9645bbbcf53f40", size = 19619, upload-time = "2022-09-23T18:11:17.116Z" }, ] +[[package]] +name = "watchdog" +version = "4.0.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/38/764baaa25eb5e35c9a043d4c4588f9836edfe52a708950f4b6d5f714fd42/watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270", size = 126587, upload-time = "2024-08-11T07:38:01.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/b0/219893d41c16d74d0793363bf86df07d50357b81f64bba4cb94fe76e7af4/watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22", size = 100257, upload-time = "2024-08-11T07:37:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/6d/c6/8e90c65693e87d98310b2e1e5fd7e313266990853b489e85ce8396cc26e3/watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1", size = 92249, upload-time = "2024-08-11T07:37:06.364Z" }, + { url = "https://files.pythonhosted.org/packages/6f/cd/2e306756364a934532ff8388d90eb2dc8bb21fe575cd2b33d791ce05a02f/watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503", size = 92888, upload-time = "2024-08-11T07:37:08.275Z" }, + { url = "https://files.pythonhosted.org/packages/de/78/027ad372d62f97642349a16015394a7680530460b1c70c368c506cb60c09/watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930", size = 100256, upload-time = "2024-08-11T07:37:11.017Z" }, + { url = "https://files.pythonhosted.org/packages/59/a9/412b808568c1814d693b4ff1cec0055dc791780b9dc947807978fab86bc1/watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b", size = 92252, upload-time = "2024-08-11T07:37:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/04/57/179d76076cff264982bc335dd4c7da6d636bd3e9860bbc896a665c3447b6/watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef", size = 92888, upload-time = "2024-08-11T07:37:15.077Z" }, + { url = "https://files.pythonhosted.org/packages/92/f5/ea22b095340545faea37ad9a42353b265ca751f543da3fb43f5d00cdcd21/watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a", size = 100342, upload-time = "2024-08-11T07:37:16.393Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d2/8ce97dff5e465db1222951434e3115189ae54a9863aef99c6987890cc9ef/watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29", size = 92306, upload-time = "2024-08-11T07:37:17.997Z" }, + { url = "https://files.pythonhosted.org/packages/49/c4/1aeba2c31b25f79b03b15918155bc8c0b08101054fc727900f1a577d0d54/watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a", size = 92915, upload-time = "2024-08-11T07:37:19.967Z" }, + { url = "https://files.pythonhosted.org/packages/79/63/eb8994a182672c042d85a33507475c50c2ee930577524dd97aea05251527/watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b", size = 100343, upload-time = "2024-08-11T07:37:21.935Z" }, + { url = "https://files.pythonhosted.org/packages/ce/82/027c0c65c2245769580605bcd20a1dc7dfd6c6683c8c4e2ef43920e38d27/watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d", size = 92313, upload-time = "2024-08-11T07:37:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/2a/89/ad4715cbbd3440cb0d336b78970aba243a33a24b1a79d66f8d16b4590d6a/watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7", size = 92919, upload-time = "2024-08-11T07:37:24.715Z" }, + { url = "https://files.pythonhosted.org/packages/55/08/1a9086a3380e8828f65b0c835b86baf29ebb85e5e94a2811a2eb4f889cfd/watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040", size = 100255, upload-time = "2024-08-11T07:37:26.862Z" }, + { url = "https://files.pythonhosted.org/packages/6c/3e/064974628cf305831f3f78264800bd03b3358ec181e3e9380a36ff156b93/watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7", size = 92257, upload-time = "2024-08-11T07:37:28.253Z" }, + { url = "https://files.pythonhosted.org/packages/23/69/1d2ad9c12d93bc1e445baa40db46bc74757f3ffc3a3be592ba8dbc51b6e5/watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4", size = 92886, upload-time = "2024-08-11T07:37:29.52Z" }, + { url = "https://files.pythonhosted.org/packages/68/eb/34d3173eceab490d4d1815ba9a821e10abe1da7a7264a224e30689b1450c/watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9", size = 100254, upload-time = "2024-08-11T07:37:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/18/a1/4bbafe7ace414904c2cc9bd93e472133e8ec11eab0b4625017f0e34caad8/watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578", size = 92249, upload-time = "2024-08-11T07:37:32.193Z" }, + { url = "https://files.pythonhosted.org/packages/f3/11/ec5684e0ca692950826af0de862e5db167523c30c9cbf9b3f4ce7ec9cc05/watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b", size = 92891, upload-time = "2024-08-11T07:37:34.212Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9a/6f30f023324de7bad8a3eb02b0afb06bd0726003a3550e9964321315df5a/watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa", size = 91775, upload-time = "2024-08-11T07:37:35.567Z" }, + { url = "https://files.pythonhosted.org/packages/87/62/8be55e605d378a154037b9ba484e00a5478e627b69c53d0f63e3ef413ba6/watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3", size = 92255, upload-time = "2024-08-11T07:37:37.596Z" }, + { url = "https://files.pythonhosted.org/packages/6b/59/12e03e675d28f450bade6da6bc79ad6616080b317c472b9ae688d2495a03/watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508", size = 91682, upload-time = "2024-08-11T07:37:38.901Z" }, + { url = "https://files.pythonhosted.org/packages/ef/69/241998de9b8e024f5c2fbdf4324ea628b4231925305011ca8b7e1c3329f6/watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee", size = 92249, upload-time = "2024-08-11T07:37:40.143Z" }, + { url = "https://files.pythonhosted.org/packages/70/3f/2173b4d9581bc9b5df4d7f2041b6c58b5e5448407856f68d4be9981000d0/watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1", size = 91773, upload-time = "2024-08-11T07:37:42.095Z" }, + { url = "https://files.pythonhosted.org/packages/f0/de/6fff29161d5789048f06ef24d94d3ddcc25795f347202b7ea503c3356acb/watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e", size = 92250, upload-time = "2024-08-11T07:37:44.052Z" }, + { url = "https://files.pythonhosted.org/packages/8a/b1/25acf6767af6f7e44e0086309825bd8c098e301eed5868dc5350642124b9/watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83", size = 82947, upload-time = "2024-08-11T07:37:45.388Z" }, + { url = "https://files.pythonhosted.org/packages/e8/90/aebac95d6f954bd4901f5d46dcd83d68e682bfd21798fd125a95ae1c9dbf/watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c", size = 82942, upload-time = "2024-08-11T07:37:46.722Z" }, + { url = "https://files.pythonhosted.org/packages/15/3a/a4bd8f3b9381824995787488b9282aff1ed4667e1110f31a87b871ea851c/watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a", size = 82947, upload-time = "2024-08-11T07:37:48.941Z" }, + { url = "https://files.pythonhosted.org/packages/09/cc/238998fc08e292a4a18a852ed8274159019ee7a66be14441325bcd811dfd/watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73", size = 82946, upload-time = "2024-08-11T07:37:50.279Z" }, + { url = "https://files.pythonhosted.org/packages/80/f1/d4b915160c9d677174aa5fae4537ae1f5acb23b3745ab0873071ef671f0a/watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc", size = 82947, upload-time = "2024-08-11T07:37:51.55Z" }, + { url = "https://files.pythonhosted.org/packages/db/02/56ebe2cf33b352fe3309588eb03f020d4d1c061563d9858a9216ba004259/watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757", size = 82944, upload-time = "2024-08-11T07:37:52.855Z" }, + { url = "https://files.pythonhosted.org/packages/01/d2/c8931ff840a7e5bd5dcb93f2bb2a1fd18faf8312e9f7f53ff1cf76ecc8ed/watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8", size = 82947, upload-time = "2024-08-11T07:37:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d8/cdb0c21a4a988669d7c210c75c6a2c9a0e16a3b08d9f7e633df0d9a16ad8/watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19", size = 82935, upload-time = "2024-08-11T07:37:56.668Z" }, + { url = "https://files.pythonhosted.org/packages/99/2e/b69dfaae7a83ea64ce36538cc103a3065e12c447963797793d5c0a1d5130/watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b", size = 82934, upload-time = "2024-08-11T07:37:57.991Z" }, + { url = "https://files.pythonhosted.org/packages/b0/0b/43b96a9ecdd65ff5545b1b13b687ca486da5c6249475b1a45f24d63a1858/watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c", size = 82933, upload-time = "2024-08-11T07:37:59.573Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/56/90994d789c61df619bfc5ce2ecdabd5eeff564e1eb47512bd01b5e019569/watchdog-6.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d1cdb490583ebd691c012b3d6dae011000fe42edb7a82ece80965b42abd61f26", size = 96390, upload-time = "2024-11-01T14:06:24.793Z" }, + { url = "https://files.pythonhosted.org/packages/55/46/9a67ee697342ddf3c6daa97e3a587a56d6c4052f881ed926a849fcf7371c/watchdog-6.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc64ab3bdb6a04d69d4023b29422170b74681784ffb9463ed4870cf2f3e66112", size = 88389, upload-time = "2024-11-01T14:06:27.112Z" }, + { url = "https://files.pythonhosted.org/packages/44/65/91b0985747c52064d8701e1075eb96f8c40a79df889e59a399453adfb882/watchdog-6.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c897ac1b55c5a1461e16dae288d22bb2e412ba9807df8397a635d88f671d36c3", size = 89020, upload-time = "2024-11-01T14:06:29.876Z" }, + { url = "https://files.pythonhosted.org/packages/e0/24/d9be5cd6642a6aa68352ded4b4b10fb0d7889cb7f45814fb92cecd35f101/watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c", size = 96393, upload-time = "2024-11-01T14:06:31.756Z" }, + { url = "https://files.pythonhosted.org/packages/63/7a/6013b0d8dbc56adca7fdd4f0beed381c59f6752341b12fa0886fa7afc78b/watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2", size = 88392, upload-time = "2024-11-01T14:06:32.99Z" }, + { url = "https://files.pythonhosted.org/packages/d1/40/b75381494851556de56281e053700e46bff5b37bf4c7267e858640af5a7f/watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c", size = 89019, upload-time = "2024-11-01T14:06:34.963Z" }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, + { url = "https://files.pythonhosted.org/packages/05/52/7223011bb760fce8ddc53416beb65b83a3ea6d7d13738dde75eeb2c89679/watchdog-6.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8", size = 96390, upload-time = "2024-11-01T14:06:49.325Z" }, + { url = "https://files.pythonhosted.org/packages/9c/62/d2b21bc4e706d3a9d467561f487c2938cbd881c69f3808c43ac1ec242391/watchdog-6.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a", size = 88386, upload-time = "2024-11-01T14:06:50.536Z" }, + { url = "https://files.pythonhosted.org/packages/ea/22/1c90b20eda9f4132e4603a26296108728a8bfe9584b006bd05dd94548853/watchdog-6.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c", size = 89017, upload-time = "2024-11-01T14:06:51.717Z" }, + { url = "https://files.pythonhosted.org/packages/30/ad/d17b5d42e28a8b91f8ed01cb949da092827afb9995d4559fd448d0472763/watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881", size = 87902, upload-time = "2024-11-01T14:06:53.119Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ca/c3649991d140ff6ab67bfc85ab42b165ead119c9e12211e08089d763ece5/watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11", size = 88380, upload-time = "2024-11-01T14:06:55.19Z" }, + { url = "https://files.pythonhosted.org/packages/5b/79/69f2b0e8d3f2afd462029031baafb1b75d11bb62703f0e1022b2e54d49ee/watchdog-6.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa", size = 87903, upload-time = "2024-11-01T14:06:57.052Z" }, + { url = "https://files.pythonhosted.org/packages/e2/2b/dc048dd71c2e5f0f7ebc04dd7912981ec45793a03c0dc462438e0591ba5d/watchdog-6.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e", size = 88381, upload-time = "2024-11-01T14:06:58.193Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + [[package]] name = "watchfiles" version = "0.24.0" @@ -7990,6 +8687,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] +[[package]] +name = "wheel" +version = "0.45.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/98/2d9906746cdc6a6ef809ae6338005b3f21bb568bea3165cfc6a243fdc25c/wheel-0.45.1.tar.gz", hash = "sha256:661e1abd9198507b1409a20c02106d9670b2576e916d58f520316666abca6729", size = 107545, upload-time = "2024-11-23T00:18:23.513Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/2c/87f3254fd8ffd29e4c02732eee68a83a1d3c346ae39bc6822dcbcb697f2b/wheel-0.45.1-py3-none-any.whl", hash = "sha256:708e7481cc80179af0e556bbf0cc00b8444c7321e2700b8d8580231d13017248", size = 72494, upload-time = "2024-11-23T00:18:21.207Z" }, +] + [[package]] name = "widgetsnbextension" version = "4.0.14" From ec4b6cdedfedd9a04532af5672ffaec32ec17cb4 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Thu, 17 Jul 2025 16:28:00 -0400 Subject: [PATCH 15/29] Update figurewidget.md --- doc/python/figurewidget.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/python/figurewidget.md b/doc/python/figurewidget.md index c2d76327e7b..9482c29f767 100644 --- a/doc/python/figurewidget.md +++ b/doc/python/figurewidget.md @@ -22,7 +22,7 @@ jupyter: pygments_lexer: ipython3 version: 3.6.5 plotly: - description: Introduction to the new Plotly FigureWidget + description: Introduction to the Plotly FigureWidget display_as: chart_events language: python layout: base @@ -34,6 +34,12 @@ jupyter: redirect_from: /python/ipython-widgets/ --- +The Plotly FigureWidget allows you to add Plotly charts as interactive widgets in Jupyter and other compatible notebooks. To use the FigureWidget, you'll need to install `anywidget`: + +```bash +pip install anywidget +``` + #### Create a Simple FigureWidget Create an empty FigureWidget and then view it. From 3dced444a044a73a3d3c8d4c4d047b763fa2d808 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 22 Jul 2025 10:35:49 -0400 Subject: [PATCH 16/29] preload _plotly_utils --- mkdocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index c92823309e2..d7a8ab7e7cc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,6 +13,8 @@ plugins: handlers: python: options: + preload_modules: + - _plotly_utils docstring_style: google show_source: false show_root_heading: true From bc32c86143ba07e9dc04200cde1e4ae6cf602208 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Mon, 2 Dec 2024 16:18:44 -0500 Subject: [PATCH 17/29] add docstrings directly to px functions --- plotly/express/_chart_types.py | 5757 ++++++++++++++++++++++- plotly/express/_doc.py | 31 - plotly/express/_imshow.py | 30 +- plotly/figure_factory/_hexbin_mapbox.py | 125 +- 4 files changed, 5700 insertions(+), 243 deletions(-) diff --git a/plotly/express/_chart_types.py b/plotly/express/_chart_types.py index 9ec2b4a6a63..cfcabb319e3 100644 --- a/plotly/express/_chart_types.py +++ b/plotly/express/_chart_types.py @@ -1,7 +1,6 @@ from warnings import warn from ._core import make_figure -from ._doc import make_docstring import plotly.graph_objs as go _wide_mode_xy_append = [ @@ -65,13 +64,247 @@ def scatter( """ In a scatter plot, each row of `data_frame` is represented by a symbol mark in 2D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + marginal_x : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + horizontal subplot is drawn above the main plot, visualizing the + x-distribution. + marginal_y : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + vertical subplot is drawn to the right of the main plot, visualizing + the y-distribution. + trendline : str + One of `'ols'`, `'lowess'`, `'rolling'`, `'expanding'` or `'ewm'`. If + `'ols'`, an Ordinary Least Squares regression line will be drawn for + each discrete-color/symbol group. If `'lowess`', a Locally Weighted + Scatterplot Smoothing line will be drawn for each discrete-color/symbol + group. If `'rolling`', a Rolling (e.g. rolling average, rolling median) + line will be drawn for each discrete-color/symbol group. If + `'expanding`', an Expanding (e.g. expanding average, expanding sum) + line will be drawn for each discrete-color/symbol group. If `'ewm`', an + Exponentially Weighted Moment (e.g. exponentially-weighted moving + average) line will be drawn for each discrete-color/symbol group. See + the docstrings for the functions in + `plotly.express.trendline_functions` for more details on these + functions and how to configure them with the `trendline_options` + argument. + trendline_options : dict + Options passed as the first argument to the function from + `plotly.express.trendline_functions` named in the `trendline` + argument. + trendline_color_override : str + Valid CSS color. If provided, and if `trendline` is set, all trendlines + will be drawn in this color rather than in the same color as the traces + from which they draw their inputs. + trendline_scope : str (one of `'trace'` or `'overall'`, default `'trace'`) + If `'trace'`, then one trendline is drawn per trace (i.e. per color, + symbol, facet, animation frame etc) and if `'overall'` then one + trendline is computed for the entire dataset, and replicated across all + facets. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter) -scatter.__doc__ = make_docstring(scatter, append_dict=_cartesian_append_dict) - - def density_contour( data_frame=None, x=None, @@ -117,6 +350,194 @@ def density_contour( In a density contour plot, rows of `data_frame` are grouped together into contour marks to visualize the 2D distribution of an aggregate function `histfunc` (e.g. the count or sum) of the value `z`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. For + `density_heatmap` and `density_contour` these values are used as the + inputs to `histfunc`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + marginal_x : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + horizontal subplot is drawn above the main plot, visualizing the + x-distribution. + marginal_y : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + vertical subplot is drawn to the right of the main plot, visualizing + the y-distribution. + trendline : str + One of `'ols'`, `'lowess'`, `'rolling'`, `'expanding'` or `'ewm'`. If + `'ols'`, an Ordinary Least Squares regression line will be drawn for + each discrete-color/symbol group. If `'lowess`', a Locally Weighted + Scatterplot Smoothing line will be drawn for each discrete-color/symbol + group. If `'rolling`', a Rolling (e.g. rolling average, rolling median) + line will be drawn for each discrete-color/symbol group. If + `'expanding`', an Expanding (e.g. expanding average, expanding sum) + line will be drawn for each discrete-color/symbol group. If `'ewm`', an + Exponentially Weighted Moment (e.g. exponentially-weighted moving + average) line will be drawn for each discrete-color/symbol group. See + the docstrings for the functions in + `plotly.express.trendline_functions` for more details on these + functions and how to configure them with the `trendline_options` + argument. + trendline_options : dict + Options passed as the first argument to the function from + `plotly.express.trendline_functions` named in the `trendline` + argument. + trendline_color_override : str + Valid CSS color. If provided, and if `trendline` is set, all trendlines + will be drawn in this color rather than in the same color as the traces + from which they draw their inputs. + trendline_scope : str (one of `'trace'` or `'overall'`, default `'trace'`) + If `'trace'`, then one trendline is drawn per trace (i.e. per color, + symbol, facet, animation frame etc) and if `'overall'` then one + trendline is computed for the entire dataset, and replicated across all + facets. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + histfunc : str (default `'count'` if no arguments are provided, else `'sum'`) + One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`. Function used + to aggregate values for summarization (note: can be normalized with + `histnorm`). The arguments to this function are the values of `z`. + histnorm : str (default `None`) + One of `'percent'`, `'probability'`, `'density'`, or `'probability + density'` If `None`, the output of `histfunc` is used as is. If + `'probability'`, the output of `histfunc` for a given bin is divided by + the sum of the output of `histfunc` for all bins. If `'percent'`, the + output of `histfunc` for a given bin is divided by the sum of the + output of `histfunc` for all bins and multiplied by 100. If + `'density'`, the output of `histfunc` for a given bin is divided by the + size of the bin. If `'probability density'`, the output of `histfunc` + for a given bin is normalized such that it corresponds to the + probability that a random event whose distribution is described by the + output of `histfunc` will fall into that bin. + nbinsx : int + Positive integer. Sets the number of bins along the x axis. + nbinsy : int + Positive integer. Sets the number of bins along the y axis. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + -------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -133,19 +554,6 @@ def density_contour( ) -density_contour.__doc__ = make_docstring( - density_contour, - append_dict=dict( - x=_wide_mode_xy_append, - y=_wide_mode_xy_append, - z=[ - "For `density_heatmap` and `density_contour` these values are used as the inputs to `histfunc`.", - ], - histfunc=["The arguments to this function are the values of `z`."], - ), -) - - def density_heatmap( data_frame=None, x=None, @@ -188,6 +596,165 @@ def density_heatmap( In a density heatmap, rows of `data_frame` are grouped together into colored rectangular tiles to visualize the 2D distribution of an aggregate function `histfunc` (e.g. the count or sum) of the value `z`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. For + `density_heatmap` and `density_contour` these values are used as the + inputs to `histfunc`. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + marginal_x : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + horizontal subplot is drawn above the main plot, visualizing the + x-distribution. + marginal_y : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + vertical subplot is drawn to the right of the main plot, visualizing + the y-distribution. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + histfunc : str (default `'count'` if no arguments are provided, else `'sum'`) + One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`. Function used + to aggregate values for summarization (note: can be normalized with + `histnorm`). The arguments to this function are the values of `z`. + histnorm: str (default `None`) + One of `'percent'`, `'probability'`, `'density'`, or `'probability + density'` If `None`, the output of `histfunc` is used as is. If + `'probability'`, the output of `histfunc` for a given bin is divided by + the sum of the output of `histfunc` for all bins. If `'percent'`, the + output of `histfunc` for a given bin is divided by the sum of the + output of `histfunc` for all bins and multiplied by 100. If + `'density'`, the output of `histfunc` for a given bin is divided by the + size of the bin. If `'probability density'`, the output of `histfunc` + for a given bin is normalized such that it corresponds to the + probability that a random event whose distribution is described by the + output of `histfunc` will fall into that bin. + nbinsx : int + Positive integer. Sets the number of bins along the x axis. + nbinsy : int + Positive integer. Sets the number of bins along the y axis. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -203,21 +770,6 @@ def density_heatmap( ) -density_heatmap.__doc__ = make_docstring( - density_heatmap, - append_dict=dict( - x=_wide_mode_xy_append, - y=_wide_mode_xy_append, - z=[ - "For `density_heatmap` and `density_contour` these values are used as the inputs to `histfunc`.", - ], - histfunc=[ - "The arguments to this function are the values of `z`.", - ], - ), -) - - def line( data_frame=None, x=None, @@ -266,13 +818,214 @@ def line( """ In a 2D line plot, each row of `data_frame` is represented as a vertex of a polyline mark in 2D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter) -line.__doc__ = make_docstring(line, append_dict=_cartesian_append_dict) - - def area( data_frame=None, x=None, @@ -318,6 +1071,186 @@ def area( In a stacked area plot, each row of `data_frame` is represented as a vertex of a polyline mark in 2D space. The area between successive polylines is filled. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + groupnorm : str (default `None`) + One of `'fraction'` or `'percent'`. If `'fraction'`, the value of each + point is divided by the sum of all values at that location coordinate. + `'percent'` is the same but multiplied by 100 to show percentages. + `None` will stack up all values at each location coordinate. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -326,9 +1259,6 @@ def area( ) -area.__doc__ = make_docstring(area, append_dict=_cartesian_append_dict) - - def bar( data_frame=None, x=None, @@ -377,6 +1307,208 @@ def bar( """ In a bar plot, each row of `data_frame` is represented as a rectangular mark. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + base : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position the base of the bar. + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + barmode : str (default `'relative'`) + One of `'group'`, `'overlay'` or `'relative'` In `'relative'` mode, + bars are stacked above zero for positive values and below zero for + negative values. In `'overlay'` mode, bars are drawn on top of one + another. In `'group'` mode, bars are placed beside each other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -386,9 +1518,6 @@ def bar( ) -bar.__doc__ = make_docstring(bar, append_dict=_cartesian_append_dict) - - def timeline( data_frame=None, x_start=None, @@ -428,6 +1557,162 @@ def timeline( """ In a timeline plot, each row of `data_frame` is represented as a rectangular mark on an x axis of type `date`, spanning from `x_start` to `x_end`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x_start : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. (required) Values from this column or array_like are + used to position marks along the x axis in cartesian coordinates. + x_end : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. (required) Values from this column or array_like are + used to position marks along the x axis in cartesian coordinates. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -437,9 +1722,6 @@ def timeline( ) -timeline.__doc__ = make_docstring(timeline) - - def histogram( data_frame=None, x=None, @@ -486,6 +1768,189 @@ def histogram( rectangular mark to visualize the 1D distribution of an aggregate function `histfunc` (e.g. the count or sum) of the value `y` (or `x` if `orientation` is `'h'`). + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. If + `orientation` is `'h'`, these values are used as inputs to `histfunc`. + Either `x` or `y` can optionally be a list of column references or + array_likes, in which case the data will be treated as if it were + 'wide' rather than 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. If + `orientation` is `'v'`, these values are used as inputs to `histfunc`. + Either `x` or `y` can optionally be a list of column references or + array_likes, in which case the data will be treated as if it were + 'wide' rather than 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + marginal : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + subplot is drawn alongside the main plot, visualizing the distribution. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + barmode : str (default `'relative'`) + One of `'group'`, `'overlay'` or `'relative'` In `'relative'` mode, + bars are stacked above zero for positive values and below zero for + negative values. In `'overlay'` mode, bars are drawn on top of one + another. In `'group'` mode, bars are placed beside each other. + barnorm : str (default `None`) + One of `'fraction'` or `'percent'`. If `'fraction'`, the value of each + bar is divided by the sum of all values at that location coordinate. + `'percent'` is the same but multiplied by 100 to show percentages. + `None` will stack up all values at each location coordinate. + histnorm: str (default `None`) + One of `'percent'`, `'probability'`, `'density'`, or `'probability + density'` If `None`, the output of `histfunc` is used as is. If + `'probability'`, the output of `histfunc` for a given bin is divided by + the sum of the output of `histfunc` for all bins. If `'percent'`, the + output of `histfunc` for a given bin is divided by the sum of the + output of `histfunc` for all bins and multiplied by 100. If + `'density'`, the output of `histfunc` for a given bin is divided by the + size of the bin. If `'probability density'`, the output of `histfunc` + for a given bin is normalized such that it corresponds to the + probability that a random event whose distribution is described by the + output of `histfunc` will fall into that bin. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + histfunc : str (default `'count'` if no arguments are provided, else `'sum'`) + One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`. Function used + to aggregate values for summarization (note: can be normalized with + `histnorm`). The arguments to this function are the values of `y` (`x`) + if `orientation` is `'v'` (`'h'`). + cumulative : boolean (default `False`) + If `True`, histogram values are cumulative. + nbins : int + Positive integer. Sets the number of bins. + text_auto : bool or string (default `False`) + If `True` or a string, the x or y or z values will be displayed as + text, depending on the orientation A string like `'.2f'` will be + interpreted as a `texttemplate` numeric formatting directive. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -499,20 +1964,6 @@ def histogram( ) -histogram.__doc__ = make_docstring( - histogram, - append_dict=dict( - x=["If `orientation` is `'h'`, these values are used as inputs to `histfunc`."] - + _wide_mode_xy_append, - y=["If `orientation` is `'v'`, these values are used as inputs to `histfunc`."] - + _wide_mode_xy_append, - histfunc=[ - "The arguments to this function are the values of `y` (`x`) if `orientation` is `'v'` (`'h'`).", - ], - ), -) - - def ecdf( data_frame=None, x=None, @@ -561,25 +2012,201 @@ def ecdf( are sorted by the value `x` (or `y` if `orientation` is `'h'`) and their cumulative count (or the cumulative sum of `y` if supplied and `orientation` is `h`) is drawn as a line. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. If + `orientation` is `'h'`, the cumulative sum of this argument is plotted + rather than the cumulative count. Either `x` or `y` can optionally be a + list of column references or array_likes, in which case the data will + be treated as if it were 'wide' rather than 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. If + `orientation` is `'v'`, the cumulative sum of this argument is plotted + rather than the cumulative count. Either `x` or `y` can optionally be a + list of column references or array_likes, in which case the data will + be treated as if it were 'wide' rather than 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + lines : boolean (default `True`) + If `False`, lines are not drawn (forced to `True` if `markers` is + `False`). + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + marginal : str + One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`. If set, a + subplot is drawn alongside the main plot, visualizing the distribution. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + ecdfnorm : string or `None` (default `'probability'`) + One of `'probability'` or `'percent'` If `None`, values will be raw + counts or sums. If `'probability', values will be probabilities + normalized from 0 to 1. If `'percent', values will be percentages + normalized from 0 to 100. + ecdfmode : string (default `'standard'`) + One of `'standard'`, `'complementary'` or `'reversed'` If `'standard'`, + the ECDF is plotted such that values represent data at or below the + point. If `'complementary'`, the CCDF is plotted such that values + represent data above the point. If `'reversed'`, a variant of the CCDF + is plotted such that values represent data at or above the point. + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter) -ecdf.__doc__ = make_docstring( - ecdf, - append_dict=dict( - x=[ - "If `orientation` is `'h'`, the cumulative sum of this argument is plotted rather than the cumulative count." - ] - + _wide_mode_xy_append, - y=[ - "If `orientation` is `'v'`, the cumulative sum of this argument is plotted rather than the cumulative count." - ] - + _wide_mode_xy_append, - ), -) - - def violin( data_frame=None, x=None, @@ -616,6 +2243,151 @@ def violin( """ In a violin plot, rows of `data_frame` are grouped together into a curved mark to visualize their distribution. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + violinmode : str (default `'group'`) + One of `'group'` or `'overlay'` In `'overlay'` mode, violins are on + drawn top of one another. In `'group'` mode, violins are placed beside + each other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + points : str or boolean (default `'outliers'`) + One of `'outliers'`, `'suspectedoutliers'`, `'all'`, or `False`. If + `'outliers'`, only the sample points lying outside the whiskers are + shown. If `'suspectedoutliers'`, all outlier points are shown and those + less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted with the + marker's `'outliercolor'`. If `'outliers'`, only the sample points + lying outside the whiskers are shown. If `'all'`, all sample points are + shown. If `False`, no sample points are shown and the whiskers extend + to the full range of the sample. + box : boolean (default `False`) + If `True`, boxes are drawn inside the violins. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -631,9 +2403,6 @@ def violin( ) -violin.__doc__ = make_docstring(violin, append_dict=_cartesian_append_dict) - - def box( data_frame=None, x=None, @@ -675,6 +2444,151 @@ def box( quartile (Q2) is marked by a line inside the box. By default, the whiskers correspond to the box' edges +/- 1.5 times the interquartile range (IQR: Q3-Q1), see "points" for other options. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + boxmode : str (default `'group'`) + One of `'group'` or `'overlay'` In `'overlay'` mode, boxes are on drawn + top of one another. In `'group'` mode, boxes are placed beside each + other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + points : str or boolean (default `'outliers'`) + One of `'outliers'`, `'suspectedoutliers'`, `'all'`, or `False`. If + `'outliers'`, only the sample points lying outside the whiskers are + shown. If `'suspectedoutliers'`, all outlier points are shown and those + less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted with the + marker's `'outliercolor'`. If `'outliers'`, only the sample points + lying outside the whiskers are shown. If `'all'`, all sample points are + shown. If `False`, no sample points are shown and the whiskers extend + to the full range of the sample. + notched : boolean (default `False`) + If `True`, boxes are drawn with notches. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -684,9 +2598,6 @@ def box( ) -box.__doc__ = make_docstring(box, append_dict=_cartesian_append_dict) - - def strip( data_frame=None, x=None, @@ -721,6 +2632,140 @@ def strip( """ In a strip plot each row of `data_frame` is represented as a jittered mark within categories. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + stripmode: str (default `'group'`) + One of `'group'` or `'overlay'` In `'overlay'` mode, strips are on + drawn top of one another. In `'group'` mode, strips are placed beside + each other. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -738,9 +2783,6 @@ def strip( ) -strip.__doc__ = make_docstring(strip, append_dict=_cartesian_append_dict) - - def scatter_3d( data_frame=None, x=None, @@ -787,13 +2829,196 @@ def scatter_3d( """ In a 3D scatter plot, each row of `data_frame` is represented by a symbol mark in 3D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + error_z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars. If `error_z_minus` is `None`, error bars will + be symmetrical, otherwise `error_z` is used for the positive direction + only. + error_z_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars in the negative direction. Ignored if `error_z` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + log_z : boolean (default `False`) + If `True`, the z-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + range_z : list of two numbers + If provided, overrides auto-scaling on the z-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter3d) -scatter_3d.__doc__ = make_docstring(scatter_3d) - - def line_3d( data_frame=None, x=None, @@ -839,13 +3064,197 @@ def line_3d( """ In a 3D line plot, each row of `data_frame` is represented as a vertex of a polyline mark in 3D space. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + error_x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars. If `error_x_minus` is `None`, error bars will + be symmetrical, otherwise `error_x` is used for the positive direction + only. + error_x_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size x-axis error bars in the negative direction. Ignored if `error_x` + is `None`. + error_y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars. If `error_y_minus` is `None`, error bars will + be symmetrical, otherwise `error_y` is used for the positive direction + only. + error_y_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size y-axis error bars in the negative direction. Ignored if `error_y` + is `None`. + error_z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars. If `error_z_minus` is `None`, error bars will + be symmetrical, otherwise `error_z` is used for the positive direction + only. + error_z_minus : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + size z-axis error bars in the negative direction. Ignored if `error_z` + is `None`. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + log_z : boolean (default `False`) + If `True`, the z-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + range_z : list of two numbers + If provided, overrides auto-scaling on the z-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatter3d) -line_3d.__doc__ = make_docstring(line_3d) - - def scatter_ternary( data_frame=None, a=None, @@ -880,13 +3289,148 @@ def scatter_ternary( """ In a ternary scatter plot, each row of `data_frame` is represented by a symbol mark in ternary coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + a : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the a axis in ternary coordinates. + b : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the b axis in ternary coordinates. + c : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the c axis in ternary coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterternary) -scatter_ternary.__doc__ = make_docstring(scatter_ternary) - - def line_ternary( data_frame=None, a=None, @@ -921,13 +3465,151 @@ def line_ternary( """ In a ternary line plot, each row of `data_frame` is represented as a vertex of a polyline mark in ternary coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + a : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the a axis in ternary coordinates. + b : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the b axis in ternary coordinates. + c : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the c axis in ternary coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterternary) -line_ternary.__doc__ = make_docstring(line_ternary) - - def scatter_polar( data_frame=None, r=None, @@ -967,13 +3649,166 @@ def scatter_polar( """ In a polar scatter plot, each row of `data_frame` is represented by a symbol mark in polar coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + r : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the radial axis in polar coordinates. + theta : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the angular axis in polar coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + direction : str + One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'` + Sets the direction in which increasing values of the angular axis are + drawn. + start_angle : int (default `90`) + Sets start angle for the angular axis, with 0 being due east and 90 + being due north. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + range_r : list of two numbers + If provided, overrides auto-scaling on the radial axis in polar + coordinates. + range_theta : list of two numbers + If provided, overrides auto-scaling on the angular axis in polar + coordinates. + log_r : boolean (default `False`) + If `True`, the radial axis is log-scaled in polar coordinates. + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterpolar) -scatter_polar.__doc__ = make_docstring(scatter_polar) - - def line_polar( data_frame=None, r=None, @@ -1014,13 +3849,172 @@ def line_polar( """ In a polar line plot, each row of `data_frame` is represented as a vertex of a polyline mark in polar coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + r : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the radial axis in polar coordinates. + theta : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the angular axis in polar coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + direction : str + One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'` + Sets the direction in which increasing values of the angular axis are + drawn. + start_angle : int (default `90`) + Sets start angle for the angular axis, with 0 being due east and 90 + being due north. + line_close: boolean (default `False`) + If `True`, an extra line segment is drawn between the first and last + point. + line_shape : str (default `'linear'`) + One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'` + render_mode : str + One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'` Controls the + browser API used to draw marks. `'svg'` is appropriate for figures of + less than 1000 data points, and will allow for fully-vectorized output. + `'webgl'` is likely necessary for acceptable performance above 1000 + points but rasterizes part of the output. `'auto'` uses heuristics to + choose the mode. + range_r : list of two numbers + If provided, overrides auto-scaling on the radial axis in polar + coordinates. + range_theta : list of two numbers + If provided, overrides auto-scaling on the angular axis in polar + coordinates. + log_r : boolean (default `False`) + If `True`, the radial axis is log-scaled in polar coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scatterpolar) -line_polar.__doc__ = make_docstring(line_polar) - - def bar_polar( data_frame=None, r=None, @@ -1058,6 +4052,158 @@ def bar_polar( """ In a polar bar plot, each row of `data_frame` is represented as a wedge mark in polar coordinates. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + r : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the radial axis in polar coordinates. + theta : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the angular axis in polar coordinates. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + pattern_shape : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign pattern shapes to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + base : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position the base of the bar. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + pattern_shape_sequence : list of str + Strings should define valid plotly.js patterns-shapes. When + `pattern_shape` is set, values in that column are assigned patterns- + shapes by cycling through `pattern_shape_sequence` in the order + described in `category_orders`, unless the value of `pattern_shape` is + a key in `pattern_shape_map`. + pattern_shape_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js patterns-shapes. Used to override + `pattern_shape_sequences` to assign a specific patterns-shapes to lines + corresponding with specific values. Keys in `pattern_shape_map` should + be values in the column denoted by `pattern_shape`. Alternatively, if + the values of `pattern_shape` are valid patterns-shapes names, the + string `'identity'` may be passed to cause them to be used directly. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + barnorm : str (default `None`) + One of `'fraction'` or `'percent'`. If `'fraction'`, the value of each + bar is divided by the sum of all values at that location coordinate. + `'percent'` is the same but multiplied by 100 to show percentages. + `None` will stack up all values at each location coordinate. + barmode : str (default `'relative'`) + One of `'group'`, `'overlay'` or `'relative'` In `'relative'` mode, + bars are stacked above zero for positive values and below zero for + negative values. In `'overlay'` mode, bars are drawn on top of one + another. In `'group'` mode, bars are placed beside each other. + direction : str + One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'` + Sets the direction in which increasing values of the angular axis are + drawn. + start_angle : int (default `90`) + Sets start angle for the angular axis, with 0 being due east and 90 + being due north. + range_r : list of two numbers + If provided, overrides auto-scaling on the radial axis in polar + coordinates. + range_theta : list of two numbers + If provided, overrides auto-scaling on the angular axis in polar + coordinates. + log_r : boolean (default `False`) + If `True`, the radial axis is log-scaled in polar coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1066,9 +4212,6 @@ def bar_polar( ) -bar_polar.__doc__ = make_docstring(bar_polar) - - def choropleth( data_frame=None, lat=None, @@ -1109,6 +4252,162 @@ def choropleth( """ In a choropleth map, each row of `data_frame` is represented by a colored region mark on a map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + locationmode : str + One of 'ISO-3', 'USA-states', or 'country names' Determines the set of + locations used to match entries in `locations` to regions on the map. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + projection : str + One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural + earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, + `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal + area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, + `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, + `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`Default + depends on `scope`. + scope : str (default `'world'`). + One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north + america'`, or `'south america'`Default is `'world'` unless `projection` + is set to `'albers usa'`, which forces `'usa'`. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + fitbounds : str (default `False`). + One of `False`, `locations` or `geojson`. + basemap_visible : bool + Force the basemap visibility. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1117,9 +4416,6 @@ def choropleth( ) -choropleth.__doc__ = make_docstring(choropleth) - - def scatter_geo( data_frame=None, lat=None, @@ -1167,6 +4463,190 @@ def scatter_geo( """ In a geographic scatter plot, each row of `data_frame` is represented by a symbol mark on a map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + locationmode : str + One of 'ISO-3', 'USA-states', or 'country names' Determines the set of + locations used to match entries in `locations` to regions on the map. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + projection : str + One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural + earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, + `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal + area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, + `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, + `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`Default + depends on `scope`. + scope : str (default `'world'`). + One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north + america'`, or `'south america'`Default is `'world'` unless `projection` + is set to `'albers usa'`, which forces `'usa'`. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + fitbounds : str (default `False`). + One of `False`, `locations` or `geojson`. + basemap_visible : bool + Force the basemap visibility. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1175,9 +4655,6 @@ def scatter_geo( ) -scatter_geo.__doc__ = make_docstring(scatter_geo) - - def line_geo( data_frame=None, lat=None, @@ -1224,6 +4701,191 @@ def line_geo( """ In a geographic line plot, each row of `data_frame` is represented as a vertex of a polyline mark on a map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + locationmode : str + One of 'ISO-3', 'USA-states', or 'country names' Determines the set of + locations used to match entries in `locations` to regions on the map. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + line_dash : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign dash-patterns to lines. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + line_dash_sequence : list of str + Strings should define valid plotly.js dash-patterns. When `line_dash` + is set, values in that column are assigned dash-patterns by cycling + through `line_dash_sequence` in the order described in + `category_orders`, unless the value of `line_dash` is a key in + `line_dash_map`. + line_dash_map : dict with str keys and str values (default `{}`) + Strings values define plotly.js dash-patterns. Used to override + `line_dash_sequences` to assign a specific dash-patterns to lines + corresponding with specific values. Keys in `line_dash_map` should be + values in the column denoted by `line_dash`. Alternatively, if the + values of `line_dash` are valid line-dash names, the string + `'identity'` may be passed to cause them to be used directly. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + markers : boolean (default `False`) + If `True`, markers are shown on lines. + projection : str + One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural + earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, + `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal + area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, + `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, + `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`Default + depends on `scope`. + scope : str (default `'world'`). + One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north + america'`, or `'south america'`Default is `'world'` unless `projection` + is set to `'albers usa'`, which forces `'usa'`. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + fitbounds : str (default `False`). + One of `False`, `locations` or `geojson`. + basemap_visible : bool + Force the basemap visibility. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), @@ -1232,9 +4894,6 @@ def line_geo( ) -line_geo.__doc__ = make_docstring(line_geo) - - def scatter_map( data_frame=None, lat=None, @@ -1268,11 +4927,137 @@ def scatter_map( """ In a scatter map, each row of `data_frame` is represented by a symbol mark on the map. - """ - return make_figure(args=locals(), constructor=go.Scattermap) + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure -scatter_map.__doc__ = make_docstring(scatter_map) + """ + return make_figure(args=locals(), constructor=go.Scattermap) def choropleth_map( @@ -1306,13 +5091,132 @@ def choropleth_map( """ In a choropleth map, each row of `data_frame` is represented by a colored region on the map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Choroplethmap) -choropleth_map.__doc__ = make_docstring(choropleth_map) - - def density_map( data_frame=None, lat=None, @@ -1342,15 +5246,117 @@ def density_map( """ In a density map, each row of `data_frame` contributes to the intensity of the color of the region around the corresponding point on the map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + radius : int (default is 30) + Sets the radius of influence of each point. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), constructor=go.Densitymap, trace_patch=dict(radius=radius) ) -density_map.__doc__ = make_docstring(density_map) - - def line_map( data_frame=None, lat=None, @@ -1379,13 +5385,120 @@ def line_map( """ In a line map, each row of `data_frame` is represented as a vertex of a polyline mark on the map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + map_style : str (default `'basic'`) + Identifier of base map style. Allowed values are `'basic'`, `'carto- + darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, + `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager- + nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, + `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Scattermap) -line_map.__doc__ = make_docstring(line_map) - - def scatter_mapbox( data_frame=None, lat=None, @@ -1421,6 +5534,138 @@ def scatter_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox scatter plot, each row of `data_frame` is represented by a symbol mark on a Mapbox map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*scatter_mapbox* is deprecated!" @@ -1432,9 +5677,6 @@ def scatter_mapbox( return make_figure(args=locals(), constructor=go.Scattermapbox) -scatter_mapbox.__doc__ = make_docstring(scatter_mapbox) - - def choropleth_mapbox( data_frame=None, geojson=None, @@ -1468,6 +5710,132 @@ def choropleth_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox choropleth map, each row of `data_frame` is represented by a colored region on a Mapbox map. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + geojson : GeoJSON-formatted dict + Must contain a Polygon feature collection, with IDs, which are + references from `locations`. + featureidkey : str (default: `'id'`) + Path to field in GeoJSON feature object with which to match the values + passed in to `locations`.The most common alternative to the default is + of the form `'properties.`. + locations : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are to be + interpreted according to `locationmode` and mapped to + longitude/latitude. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*choropleth_mapbox* is deprecated!" @@ -1479,9 +5847,6 @@ def choropleth_mapbox( return make_figure(args=locals(), constructor=go.Choroplethmapbox) -choropleth_mapbox.__doc__ = make_docstring(choropleth_mapbox) - - def density_mapbox( data_frame=None, lat=None, @@ -1513,6 +5878,115 @@ def density_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox density map, each row of `data_frame` contributes to the intensity of the color of the region around the corresponding point on the map + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + z : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the z axis in cartesian coordinates. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + radius : int (default is 30) + Sets the radius of influence of each point. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*density_mapbox* is deprecated!" @@ -1526,9 +6000,6 @@ def density_mapbox( ) -density_mapbox.__doc__ = make_docstring(density_mapbox) - - def line_mapbox( data_frame=None, lat=None, @@ -1559,6 +6030,121 @@ def line_mapbox( Learn more at: https://plotly.com/python/mapbox-to-maplibre/ In a Mapbox line plot, each row of `data_frame` is represented as a vertex of a polyline mark on a Mapbox map. + + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + line_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + group rows of `data_frame` into lines. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ warn( "*line_mapbox* is deprecated!" @@ -1570,9 +6156,6 @@ def line_mapbox( return make_figure(args=locals(), constructor=go.Scattermapbox) -line_mapbox.__doc__ = make_docstring(line_mapbox) - - def scatter_matrix( data_frame=None, dimensions=None, @@ -1604,15 +6187,128 @@ def scatter_matrix( represented by a multiple symbol marks, one in each cell of a grid of 2D scatter plots, which plot each pair of `dimensions` against each other. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + dimensions : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects Values from these columns are used for + multidimensional visualization. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + symbol : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign symbols to marks. + size : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign mark sizes. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + symbol_sequence : list of str + Strings should define valid plotly.js symbols. When `symbol` is set, + values in that column are assigned symbols by cycling through + `symbol_sequence` in the order described in `category_orders`, unless + the value of `symbol` is a key in `symbol_map`. + symbol_map : dict with str keys and str values (default `{}`) + String values should define plotly.js symbols Used to override + `symbol_sequence` to assign a specific symbols to marks corresponding + with specific values. Keys in `symbol_map` should be values in the + column denoted by `symbol`. Alternatively, if the values of `symbol` + are valid symbol names, the string `'identity'` may be passed to cause + them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + size_max : int (default `20`) + Set the maximum mark size when using `size`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure( args=locals(), constructor=go.Splom, layout_patch=dict(dragmode="select") ) -scatter_matrix.__doc__ = make_docstring(scatter_matrix) - - def parallel_coordinates( data_frame=None, dimensions=None, @@ -1631,13 +6327,60 @@ def parallel_coordinates( In a parallel coordinates plot, each row of `data_frame` is represented by a polyline mark which traverses a set of parallel axes, one for each of the `dimensions`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + dimensions : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects Values from these columns are used for + multidimensional visualization. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Parcoords) -parallel_coordinates.__doc__ = make_docstring(parallel_coordinates) - - def parallel_categories( data_frame=None, dimensions=None, @@ -1658,13 +6401,64 @@ def parallel_categories( `data_frame` is grouped with other rows that share the same values of `dimensions` and then plotted as a polyline mark through a set of parallel axes, one for each of the `dimensions`. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + dimensions : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects Values from these columns are used for + multidimensional visualization. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + dimensions_max_cardinality : int (default 50) + When `dimensions` is `None` and `data_frame` is provided, columns with + more than this number of unique values are excluded from the output. + Not used when `dimensions` is passed. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Parcats) -parallel_categories.__doc__ = make_docstring(parallel_categories) - - def pie( data_frame=None, names=None, @@ -1693,6 +6487,110 @@ def pie( """ In a pie plot, each row of `data_frame` is represented as a sector of a pie. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + hole : float + Sets the fraction of the radius to cut out of the pie.Use this to make + a donut chart. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"piecolorway": color_discrete_sequence} @@ -1706,18 +6604,6 @@ def pie( ) -pie.__doc__ = make_docstring( - pie, - override_dict=dict( - hole=[ - "float", - "Sets the fraction of the radius to cut out of the pie." - "Use this to make a donut chart.", - ], - ), -) - - def sunburst( data_frame=None, names=None, @@ -1746,6 +6632,116 @@ def sunburst( """ A sunburst plot represents hierarchial data as sectors laid out over several levels of concentric rings. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + parents : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + parents in sunburst and treemap charts. + path : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects List of columns names or columns of a rectangular + dataframe defining the hierarchy of sectors, from root to leaves. An + error is raised if path AND ids or parents is passed + ids : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set ids of sectors + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + branchvalues : str + 'total' or 'remainder' Determines how the items in `values` are summed. + Whenset to 'total', items in `values` are taken to be valueof all its + descendants. When set to 'remainder', itemsin `values` corresponding to + the root and the branches:sectors are taken to be the extra part not + part of thesum of the values at their leaves. + maxdepth : int + Positive integer Sets the number of rendered sectors from any given + `level`. Set `maxdepth` to -1 to render all thelevels in the hierarchy. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"sunburstcolorway": color_discrete_sequence} @@ -1766,9 +6762,6 @@ def sunburst( ) -sunburst.__doc__ = make_docstring(sunburst) - - def treemap( data_frame=None, names=None, @@ -1797,6 +6790,116 @@ def treemap( """ A treemap plot represents hierarchial data as nested rectangular sectors. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + parents : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + parents in sunburst and treemap charts. + ids : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set ids of sectors + path : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects List of columns names or columns of a rectangular + dataframe defining the hierarchy of sectors, from root to leaves. An + error is raised if path AND ids or parents is passed + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + branchvalues : str + 'total' or 'remainder' Determines how the items in `values` are summed. + Whenset to 'total', items in `values` are taken to be valueof all its + descendants. When set to 'remainder', itemsin `values` corresponding to + the root and the branches:sectors are taken to be the extra part not + part of thesum of the values at their leaves. + maxdepth : int + Positive integer Sets the number of rendered sectors from any given + `level`. Set `maxdepth` to -1 to render all thelevels in the hierarchy. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"treemapcolorway": color_discrete_sequence} @@ -1817,9 +6920,6 @@ def treemap( ) -treemap.__doc__ = make_docstring(treemap) - - def icicle( data_frame=None, names=None, @@ -1848,6 +6948,116 @@ def icicle( """ An icicle plot represents hierarchial data with adjoined rectangular sectors that all cascade from root down to leaf in one direction. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + parents : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + parents in sunburst and treemap charts. + path : list of str or int, or Series or array-like + Either names of columns in `data_frame`, or pandas Series, or + array_like objects List of columns names or columns of a rectangular + dataframe defining the hierarchy of sectors, from root to leaves. An + error is raised if path AND ids or parents is passed + ids : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set ids of sectors + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + branchvalues : str + 'total' or 'remainder' Determines how the items in `values` are summed. + Whenset to 'total', items in `values` are taken to be valueof all its + descendants. When set to 'remainder', itemsin `values` corresponding to + the root and the branches:sectors are taken to be the extra part not + part of thesum of the values at their leaves. + maxdepth : int + Positive integer Sets the number of rendered sectors from any given + `level`. Set `maxdepth` to -1 to render all thelevels in the hierarchy. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"iciclecolorway": color_discrete_sequence} @@ -1868,9 +7078,6 @@ def icicle( ) -icicle.__doc__ = make_docstring(icicle) - - def funnel( data_frame=None, x=None, @@ -1906,13 +7113,146 @@ def funnel( """ In a funnel plot, each row of `data_frame` is represented as a rectangular sector of a funnel. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + x : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the x axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + y : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks along the y axis in cartesian coordinates. Either `x` or + `y` can optionally be a list of column references or array_likes, in + which case the data will be treated as if it were 'wide' rather than + 'long'. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + facet_row : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the vertical direction. + facet_col : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to facetted subplots in the horizontal direction. + facet_col_wrap : int + Maximum number of facet columns. Wraps the column variable at this + width, so that the column facets span multiple rows. Ignored if 0, and + forced to 0 if `facet_row` or a `marginal` is set. + facet_row_spacing : float between 0 and 1 + Spacing between facet rows, in paper units. Default is 0.03 or 0.07 + when facet_col_wrap is used. + facet_col_spacing : float between 0 and 1 + Spacing between facet columns, in paper units Default is 0.02. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + text : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in the + figure as text labels. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + animation_group : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + provide object-constancy across animation frames: rows with matching + `animation_group`s will be treated as if they describe the same object + in each frame. + category_orders : dict with str keys and list of str values (default `{}`) + By default, in Python 3.6+, the order of categorical values in axes, + legends and facets depends on the order in which these values are first + encountered in `data_frame` (and no order is guaranteed by default in + Python below 3.6). This parameter is used to force a specific ordering + of values per column. The keys of this dict should correspond to column + names, and the values should be lists of strings corresponding to the + specific display order desired. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + orientation : str, one of `'h'` for horizontal or `'v'` for vertical. + (default `'v'` if `x` and `y` are provided and both continuous or both + categorical, otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and + `y`(`x`) is continuous, otherwise `'v'`(`'h'`) if only `x`(`y`) is + provided) + log_x : boolean (default `False`) + If `True`, the x-axis is log-scaled in cartesian coordinates. + log_y : boolean (default `False`) + If `True`, the y-axis is log-scaled in cartesian coordinates. + range_x : list of two numbers + If provided, overrides auto-scaling on the x-axis in cartesian + coordinates. + range_y : list of two numbers + If provided, overrides auto-scaling on the y-axis in cartesian + coordinates. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + + Returns + ------- + plotly.graph_objects.Figure """ return make_figure(args=locals(), constructor=go.Funnel) -funnel.__doc__ = make_docstring(funnel, append_dict=_cartesian_append_dict) - - def funnel_area( data_frame=None, names=None, @@ -1934,6 +7274,82 @@ def funnel_area( """ In a funnel area plot, each row of `data_frame` is represented as a trapezoidal sector of a funnel. + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + names : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used as + labels for sectors. + values : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + set values associated to sectors. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + hover_name : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like appear in bold + in the hover tooltip. + hover_data : str, or list of str or int, or Series or array-like, or dict + Either a name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects or a dict with column names as keys, with + values True (for default formatting) False (in order to remove this + column from hover information), or a formatting string, for example + ':.3f' or '|%a' or list-like data to appear in the hover tooltip or + tuples with a bool or formatting string as first element, and list-like + data to appear in hover as second element Values from these columns + appear as extra data in the hover tooltip. + custom_data : str, or list of str or int, or Series or array-like + Either name or list of names of columns in `data_frame`, or pandas + Series, or array_like objects Values from these columns are extra data, + to be used in widgets or Dash callbacks for example. This data is not + user-visible but is included in events emitted by the figure (lasso + selection etc.) + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + title : str + The figure title. + subtitle : str + The figure subtitle. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + + Returns + ------- + plotly.graph_objects.Figure """ if color_discrete_sequence is not None: layout_patch = {"funnelareacolorway": color_discrete_sequence} @@ -1945,6 +7361,3 @@ def funnel_area( trace_patch=dict(showlegend=(names is not None)), layout_patch=layout_patch, ) - - -funnel_area.__doc__ = make_docstring(funnel_area) diff --git a/plotly/express/_doc.py b/plotly/express/_doc.py index 59faac4c0b3..7bb2be56770 100644 --- a/plotly/express/_doc.py +++ b/plotly/express/_doc.py @@ -607,34 +607,3 @@ "A string like `'.2f'` will be interpreted as a `texttemplate` numeric formatting directive.", ], ) - - -def make_docstring(fn, override_dict=None, append_dict=None): - override_dict = {} if override_dict is None else override_dict - append_dict = {} if append_dict is None else append_dict - tw = TextWrapper( - width=75, - initial_indent=" ", - subsequent_indent=" ", - break_on_hyphens=False, - ) - result = (fn.__doc__ or "") + "\nParameters\n----------\n" - for param in getfullargspec(fn)[0]: - if override_dict.get(param): - param_doc = list(override_dict[param]) - else: - param_doc = list(docs[param]) - if append_dict.get(param): - param_doc += append_dict[param] - param_desc_list = param_doc[1:] - param_desc = ( - tw.fill(" ".join(param_desc_list or "")) - if param in docs or param in override_dict - else "(documentation missing from map)" - ) - - param_type = param_doc[0] - result += "%s: %s\n%s\n" % (param, param_type, param_desc) - result += "\nReturns\n-------\n" - result += " plotly.graph_objects.Figure" - return result diff --git a/plotly/express/_imshow.py b/plotly/express/_imshow.py index ce6ddb84286..83dee3e3dc6 100644 --- a/plotly/express/_imshow.py +++ b/plotly/express/_imshow.py @@ -87,7 +87,7 @@ def imshow( Parameters ---------- - img: array-like image, or xarray + img : array-like image, or xarray The image data. Supported array shapes are - (M, N): an image with scalar data. The data is visualized @@ -115,28 +115,28 @@ def imshow( names are used for axis titles, and long name for the colorbar title (unless overridden in ``labels``). Possible keys are: x, y, and color. - x, y: list-like, optional + x, y : list-like, optional x and y are used to label the axes of single-channel heatmap visualizations and their lengths must match the lengths of the second and first dimensions of the img argument. They are auto-populated if the input is an xarray. - animation_frame: int or str, optional (default None) + animation_frame : int or str, optional (default None) axis number along which the image array is sliced to create an animation plot. If `img` is an xarray, `animation_frame` can be the name of one the dimensions. - facet_col: int or str, optional (default None) + facet_col : int or str, optional (default None) axis number along which the image array is sliced to create a facetted plot. If `img` is an xarray, `facet_col` can be the name of one the dimensions. - facet_col_wrap: int + facet_col_wrap : int Maximum number of facet columns. Wraps the column variable at this width, so that the column facets span multiple rows. Ignored if `facet_col` is None. - facet_col_spacing: float between 0 and 1 + facet_col_spacing : float between 0 and 1 Spacing between facet columns, in paper units. Default is 0.02. - facet_row_spacing: float between 0 and 1 + facet_row_spacing : float between 0 and 1 Spacing between facet rows created when ``facet_col_wrap`` is used, in paper units. Default is 0.0.7. @@ -164,10 +164,10 @@ def imshow( width : number The figure width in pixels. - height: number + height : number The figure height in pixels. - aspect: 'equal', 'auto', or None + aspect : 'equal', 'auto', or None - 'equal': Ensures an aspect ratio of 1 or pixels (square pixels) - 'auto': The axes is kept fixed and the aspect ratio of pixels is adjusted so that the data fit in the axes. In general, this will @@ -175,13 +175,13 @@ def imshow( - if None, 'equal' is used for numpy arrays and 'auto' for xarrays (which have typically heterogeneous coordinates) - contrast_rescaling: 'minmax', 'infer', or None + contrast_rescaling : 'minmax', 'infer', or None how to determine data values corresponding to the bounds of the color range, when zmin or zmax are not passed. If `minmax`, the min and max values of the image are used. If `infer`, a heuristic based on the image data type is used. - binary_string: bool, default None + binary_string : bool, default None if True, the image data are first rescaled and encoded as uint8 and then passed to plotly.js as a b64 PNG string. If False, data are passed unchanged as a numerical array. Setting to True may lead to performance @@ -191,12 +191,12 @@ def imshow( represented as grayscale and with no colorbar if use_binary_string is True. - binary_backend: str, 'auto' (default), 'pil' or 'pypng' + binary_backend : str, 'auto' (default), 'pil' or 'pypng' Third-party package for the transformation of numpy arrays to png b64 strings. If 'auto', Pillow is used if installed, otherwise pypng. - binary_compression_level: int, between 0 and 9 (default 4) + binary_compression_level : int, between 0 and 9 (default 4) png compression level to be passed to the backend when transforming an array to a png b64 string. Increasing `binary_compression` decreases the size of the png string, but the compression step takes more time. For most @@ -204,12 +204,12 @@ def imshow( test `len(fig.data[0].source)` and to time the execution of `imshow` to tune the level of compression. 0 means no compression (not recommended). - binary_format: str, 'png' (default) or 'jpg' + binary_format : str, 'png' (default) or 'jpg' compression format used to generate b64 string. 'png' is recommended since it uses lossless compression, but 'jpg' (lossy) compression can result if smaller binary strings for natural images. - text_auto: bool or str (default `False`) + text_auto : bool or str (default `False`) If `True` or a string, single-channel `img` values will be displayed as text. A string like `'.2f'` will be interpreted as a `texttemplate` numeric formatting directive. diff --git a/plotly/figure_factory/_hexbin_mapbox.py b/plotly/figure_factory/_hexbin_mapbox.py index c76352248b0..efff98ef4f8 100644 --- a/plotly/figure_factory/_hexbin_mapbox.py +++ b/plotly/figure_factory/_hexbin_mapbox.py @@ -1,5 +1,4 @@ from plotly.express._core import build_dataframe -from plotly.express._doc import make_docstring from plotly.express._chart_types import choropleth_mapbox, scatter_mapbox import narwhals.stable.v1 as nw import numpy as np @@ -350,6 +349,106 @@ def create_hexbin_mapbox( ): """ Returns a figure aggregating scattered points into connected hexagons + + Parameters + ---------- + data_frame : DataFrame or array-like or dict + This argument needs to be passed for column names (and not keyword + names) to be used. Array-like and dict are transformed internally to a + pandas DataFrame. Optional: if missing, a DataFrame gets constructed + under the hood using the other arguments. + lat : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to latitude on a map. + lon : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + position marks according to longitude on a map. + color : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign color to marks. + nx_hexagon : int + Number of hexagons (horizontally) to be created + agg_func : function + Numpy array aggregator, it must take as input a 1D array and output a + scalar value. + animation_frame : str or int or Series or array-like + Either a name of a column in `data_frame`, or a pandas Series or + array_like object. Values from this column or array_like are used to + assign marks to animation frames. + color_discrete_sequence : list of str + Strings should define valid CSS-colors. When `color` is set and the + values in the corresponding column are not numeric, values in that + column are assigned colors by cycling through `color_discrete_sequence` + in the order described in `category_orders`, unless the value of + `color` is a key in `color_discrete_map`. Various useful color + sequences are available in the `plotly.express.colors` submodules, + specifically `plotly.express.colors.qualitative`. + color_discrete_map : dict with str keys and str values (default `{}`) + String values should define valid CSS-colors Used to override + `color_discrete_sequence` to assign a specific colors to marks + corresponding with specific values. Keys in `color_discrete_map` should + be values in the column denoted by `color`. Alternatively, if the + values of `color` are valid colors, the string `'identity'` may be + passed to cause them to be used directly. + labels : dict with str keys and str values (default `{}`) + By default, column names are used in the figure for axis titles, legend + entries and hovers. This parameter allows this to be overridden. The + keys of this dict should correspond to column names, and the values + should correspond to the desired label to be displayed. + color_continuous_scale : list of str + Strings should define valid CSS-colors This list is used to build a + continuous color scale when the column denoted by `color` contains + numeric data. Various useful color scales are available in the + `plotly.express.colors` submodules, specifically + `plotly.express.colors.sequential`, `plotly.express.colors.diverging` + and `plotly.express.colors.cyclical`. + range_color : list of two numbers + If provided, overrides auto-scaling on the continuous color scale. + color_continuous_midpoint : number (default `None`) + If set, computes the bounds of the continuous color scale to have the + desired midpoint. Setting this value is recommended when using + `plotly.express.colors.diverging` color scales as the inputs to + `color_continuous_scale`. + opacity : float + Value between 0 and 1. Sets the opacity for markers. + zoom : int (default `8`) + Between 0 and 20. Sets map zoom level. + center : dict + Dict keys are `'lat'` and `'lon'` Sets the center point of the map. + mapbox_style : str (default `'basic'`, needs Mapbox API token) + Identifier of base map style, some of which require a Mapbox or Stadia + Maps API token to be set using + `plotly.express.set_mapbox_access_token()`. Allowed values which do not + require a token are `'open-street-map'`, `'white-bg'`, `'carto- + positron'`, `'carto-darkmatter'`. Allowed values which require a Mapbox + API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, + `'dark'`, `'satellite'`, `'satellite-streets'`. Allowed values which + require a Stadia Maps API token are `'stamen-terrain'`, `'stamen- + toner'`, `'stamen-watercolor'`. + title : str + The figure title. + template : str or dict or plotly.graph_objects.layout.Template instance + The figure template name (must be a key in plotly.io.templates) or + definition. + width : int (default `None`) + The figure width in pixels. + height : int (default `None`) + The figure height in pixels. + min_count : int + Minimum number of points in a hexagon for it to be displayed. If None + and color is not set, display all hexagons. If None and color is set, + only display hexagons that contain points. + show_original_data : bool + Whether to show the original data on top of the hexbin aggregation. + original_data_marker : dict + Scattermapbox marker options. + + Returns + ------- + plotly.graph_objects.Figure """ args = build_dataframe(args=locals(), constructor=None) native_namespace = nw.get_native_namespace(args["data_frame"]) @@ -500,27 +599,3 @@ def create_hexbin_mapbox( ] return fig - - -create_hexbin_mapbox.__doc__ = make_docstring( - create_hexbin_mapbox, - override_dict=dict( - nx_hexagon=["int", "Number of hexagons (horizontally) to be created"], - agg_func=[ - "function", - "Numpy array aggregator, it must take as input a 1D array", - "and output a scalar value.", - ], - min_count=[ - "int", - "Minimum number of points in a hexagon for it to be displayed.", - "If None and color is not set, display all hexagons.", - "If None and color is set, only display hexagons that contain points.", - ], - show_original_data=[ - "bool", - "Whether to show the original data on top of the hexbin aggregation.", - ], - original_data_marker=["dict", "Scattermapbox marker options."], - ), -) From 174b0e951a713651342226ab52d4c5a423c6b4f0 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 22 Jul 2025 10:52:48 -0400 Subject: [PATCH 18/29] change docstring style --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index c92823309e2..523322efff5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -13,7 +13,7 @@ plugins: handlers: python: options: - docstring_style: google + docstring_style: numpy show_source: false show_root_heading: true show_root_toc_entry: true From 76b36dd29e8732d31f1e639dfbf3aa9a23192f59 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 22 Jul 2025 12:52:10 -0400 Subject: [PATCH 19/29] feat: numpy documentation style --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index d7a8ab7e7cc..8755f084ca8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,7 +15,7 @@ plugins: options: preload_modules: - _plotly_utils - docstring_style: google + docstring_style: numpy show_source: false show_root_heading: true show_root_toc_entry: true From 96af9f6f7a7e272916ad60c6899fd18ba4658279 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 22 Jul 2025 12:53:07 -0400 Subject: [PATCH 20/29] feat: regenerating Python code with .js fixes --- plotly/graph_objs/_bar.py | 8 +- plotly/graph_objs/_barpolar.py | 12 +- plotly/graph_objs/_box.py | 12 +- plotly/graph_objs/_choropleth.py | 12 +- plotly/graph_objs/_choroplethmap.py | 6 +- plotly/graph_objs/_choroplethmapbox.py | 6 +- plotly/graph_objs/_cone.py | 12 +- plotly/graph_objs/_contour.py | 12 +- plotly/graph_objs/_densitymap.py | 12 +- plotly/graph_objs/_densitymapbox.py | 12 +- plotly/graph_objs/_figure.py | 199 +++++++++++------- plotly/graph_objs/_figurewidget.py | 199 +++++++++++------- plotly/graph_objs/_funnel.py | 12 +- plotly/graph_objs/_funnelarea.py | 12 +- plotly/graph_objs/_heatmap.py | 12 +- plotly/graph_objs/_histogram.py | 6 +- plotly/graph_objs/_histogram2d.py | 12 +- plotly/graph_objs/_histogram2dcontour.py | 12 +- plotly/graph_objs/_icicle.py | 14 +- plotly/graph_objs/_image.py | 18 +- plotly/graph_objs/_isosurface.py | 12 +- plotly/graph_objs/_mesh3d.py | 12 +- plotly/graph_objs/_parcats.py | 8 +- plotly/graph_objs/_pie.py | 12 +- plotly/graph_objs/_scatter.py | 12 +- plotly/graph_objs/_scatter3d.py | 12 +- plotly/graph_objs/_scattercarpet.py | 12 +- plotly/graph_objs/_scattergeo.py | 12 +- plotly/graph_objs/_scattergl.py | 12 +- plotly/graph_objs/_scattermap.py | 12 +- plotly/graph_objs/_scattermapbox.py | 12 +- plotly/graph_objs/_scatterpolar.py | 12 +- plotly/graph_objs/_scatterpolargl.py | 12 +- plotly/graph_objs/_scattersmith.py | 12 +- plotly/graph_objs/_scatterternary.py | 12 +- plotly/graph_objs/_splom.py | 12 +- plotly/graph_objs/_streamtube.py | 14 +- plotly/graph_objs/_sunburst.py | 14 +- plotly/graph_objs/_surface.py | 12 +- plotly/graph_objs/_treemap.py | 14 +- plotly/graph_objs/_violin.py | 12 +- plotly/graph_objs/_volume.py | 12 +- plotly/graph_objs/_waterfall.py | 12 +- plotly/graph_objs/bar/marker/_pattern.py | 62 ++++++ plotly/graph_objs/barpolar/marker/_pattern.py | 62 ++++++ plotly/graph_objs/carpet/_aaxis.py | 6 +- plotly/graph_objs/carpet/_baxis.py | 6 +- plotly/graph_objs/contour/_contours.py | 50 ++--- plotly/graph_objs/contourcarpet/_contours.py | 50 ++--- .../graph_objs/funnelarea/marker/_pattern.py | 62 ++++++ .../graph_objs/histogram/marker/_pattern.py | 62 ++++++ .../histogram2dcontour/_contours.py | 50 ++--- plotly/graph_objs/icicle/marker/_pattern.py | 62 ++++++ plotly/graph_objs/layout/_annotation.py | 29 +-- plotly/graph_objs/layout/_grid.py | 8 +- plotly/graph_objs/layout/_image.py | 4 +- plotly/graph_objs/layout/_legend.py | 50 +++++ plotly/graph_objs/layout/_selection.py | 4 +- plotly/graph_objs/layout/_shape.py | 4 +- plotly/graph_objs/layout/_xaxis.py | 104 ++++++--- plotly/graph_objs/layout/_yaxis.py | 104 ++++++--- plotly/graph_objs/layout/map/layer/_symbol.py | 6 +- plotly/graph_objs/layout/polar/_radialaxis.py | 6 +- plotly/graph_objs/layout/scene/_annotation.py | 21 +- plotly/graph_objs/layout/scene/_xaxis.py | 6 +- plotly/graph_objs/layout/scene/_yaxis.py | 6 +- plotly/graph_objs/layout/scene/_zaxis.py | 6 +- plotly/graph_objs/parcats/_line.py | 8 +- plotly/graph_objs/parcoords/_dimension.py | 4 +- plotly/graph_objs/pie/marker/_pattern.py | 62 ++++++ plotly/graph_objs/sankey/_link.py | 6 +- plotly/graph_objs/sankey/_node.py | 14 +- plotly/graph_objs/scatter/_fillpattern.py | 62 ++++++ plotly/graph_objs/scattermap/_marker.py | 6 +- plotly/graph_objs/sunburst/marker/_pattern.py | 62 ++++++ plotly/graph_objs/table/_cells.py | 22 +- plotly/graph_objs/table/_header.py | 12 +- plotly/graph_objs/treemap/marker/_pattern.py | 62 ++++++ plotly/validators/_validators.json | 186 ++++++++++++++++ resources/plot-schema.json | 88 ++++---- 80 files changed, 1674 insertions(+), 628 deletions(-) diff --git a/plotly/graph_objs/_bar.py b/plotly/graph_objs/_bar.py index 0e12061a8f9..5bce1c93010 100644 --- a/plotly/graph_objs/_bar.py +++ b/plotly/graph_objs/_bar.py @@ -386,8 +386,8 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1731,7 +1731,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -2197,7 +2197,7 @@ def __init__( are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_barpolar.py b/plotly/graph_objs/_barpolar.py index a45eb7bc638..380e811c61f 100644 --- a/plotly/graph_objs/_barpolar.py +++ b/plotly/graph_objs/_barpolar.py @@ -260,7 +260,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1086,8 +1086,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1368,8 +1369,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_box.py b/plotly/graph_objs/_box.py index 34ef561d87e..c9df0f218c6 100644 --- a/plotly/graph_objs/_box.py +++ b/plotly/graph_objs/_box.py @@ -377,7 +377,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1996,8 +1996,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2567,8 +2568,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_choropleth.py b/plotly/graph_objs/_choropleth.py index 9c55f8a52b1..8e060bcd33e 100644 --- a/plotly/graph_objs/_choropleth.py +++ b/plotly/graph_objs/_choropleth.py @@ -370,7 +370,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1196,8 +1196,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1515,8 +1516,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_choroplethmap.py b/plotly/graph_objs/_choroplethmap.py index 7c23376023d..abcd14e4a76 100644 --- a/plotly/graph_objs/_choroplethmap.py +++ b/plotly/graph_objs/_choroplethmap.py @@ -368,7 +368,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1193,7 +1193,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1510,7 +1510,7 @@ def __init__( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_choroplethmapbox.py b/plotly/graph_objs/_choroplethmapbox.py index 8225c27ab30..ec4745dc0be 100644 --- a/plotly/graph_objs/_choroplethmapbox.py +++ b/plotly/graph_objs/_choroplethmapbox.py @@ -369,7 +369,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1198,7 +1198,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1525,7 +1525,7 @@ def __init__( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_cone.py b/plotly/graph_objs/_cone.py index 0e85f56d56d..b5c73b2e67d 100644 --- a/plotly/graph_objs/_cone.py +++ b/plotly/graph_objs/_cone.py @@ -421,7 +421,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1509,8 +1509,9 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1927,8 +1928,9 @@ def __init__( are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_contour.py b/plotly/graph_objs/_contour.py index 3d4eb5c2236..51f6f9ecf0c 100644 --- a/plotly/graph_objs/_contour.py +++ b/plotly/graph_objs/_contour.py @@ -470,7 +470,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1759,8 +1759,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2233,8 +2234,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_densitymap.py b/plotly/graph_objs/_densitymap.py index 42918490a36..25d129bb9d0 100644 --- a/plotly/graph_objs/_densitymap.py +++ b/plotly/graph_objs/_densitymap.py @@ -325,7 +325,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1161,8 +1161,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1475,8 +1476,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_densitymapbox.py b/plotly/graph_objs/_densitymapbox.py index e483328534d..59761b4739d 100644 --- a/plotly/graph_objs/_densitymapbox.py +++ b/plotly/graph_objs/_densitymapbox.py @@ -326,7 +326,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1166,8 +1166,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1489,8 +1490,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_figure.py b/plotly/graph_objs/_figure.py index a3c9f839c96..f43df0e4160 100644 --- a/plotly/graph_objs/_figure.py +++ b/plotly/graph_objs/_figure.py @@ -816,7 +816,7 @@ def add_bar( are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1336,8 +1336,9 @@ def add_barpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1767,8 +1768,9 @@ def add_box( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3068,8 +3070,9 @@ def add_choropleth( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3452,7 +3455,7 @@ def add_choroplethmap( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -3839,7 +3842,7 @@ def add_choroplethmapbox( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -4247,8 +4250,9 @@ def add_cone( are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -4763,8 +4767,9 @@ def add_contour( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -5685,8 +5690,9 @@ def add_densitymap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6068,8 +6074,9 @@ def add_densitymapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6462,8 +6469,9 @@ def add_funnel( to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6967,8 +6975,9 @@ def add_funnelarea( to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7397,8 +7406,9 @@ def add_heatmap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7971,7 +7981,7 @@ def add_histogram( are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -8514,8 +8524,9 @@ def add_histogram2d( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9056,8 +9067,9 @@ def add_histogram2dcontour( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9522,8 +9534,9 @@ def add_icicle( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9899,8 +9912,9 @@ def add_image( to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9963,7 +9977,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -10505,8 +10519,9 @@ def add_isosurface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11014,8 +11029,9 @@ def add_mesh3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11841,7 +11857,7 @@ def add_parcats( `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont @@ -12294,8 +12310,9 @@ def add_pie( to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13005,8 +13022,9 @@ def add_scatter( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13540,8 +13558,9 @@ def add_scatter3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13994,8 +14013,9 @@ def add_scattercarpet( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14401,8 +14421,9 @@ def add_scattergeo( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14832,8 +14853,9 @@ def add_scattergl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15307,8 +15329,9 @@ def add_scattermap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15688,8 +15711,9 @@ def add_scattermapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16095,8 +16119,9 @@ def add_scatterpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16514,8 +16539,9 @@ def add_scatterpolargl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16923,8 +16949,9 @@ def add_scattersmith( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17348,8 +17375,9 @@ def add_scatterternary( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17717,8 +17745,9 @@ def add_splom( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18125,8 +18154,9 @@ def add_streamtube( `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18553,8 +18583,9 @@ def add_sunburst( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19002,8 +19033,9 @@ def add_surface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19627,8 +19659,9 @@ def add_treemap( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20031,8 +20064,9 @@ def add_violin( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20583,8 +20617,9 @@ def add_volume( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -21051,8 +21086,9 @@ def add_waterfall( to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -23141,9 +23177,10 @@ def add_annotation( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/_figurewidget.py b/plotly/graph_objs/_figurewidget.py index 9731635870c..a67d1870e9d 100644 --- a/plotly/graph_objs/_figurewidget.py +++ b/plotly/graph_objs/_figurewidget.py @@ -818,7 +818,7 @@ def add_bar( are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -1338,8 +1338,9 @@ def add_barpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1769,8 +1770,9 @@ def add_box( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3070,8 +3072,9 @@ def add_choropleth( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -3454,7 +3457,7 @@ def add_choroplethmap( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -3841,7 +3844,7 @@ def add_choroplethmapbox( are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -4249,8 +4252,9 @@ def add_cone( are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -4765,8 +4769,9 @@ def add_contour( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -5687,8 +5692,9 @@ def add_densitymap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6070,8 +6076,9 @@ def add_densitymapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6464,8 +6471,9 @@ def add_funnel( to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -6969,8 +6977,9 @@ def add_funnelarea( to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7399,8 +7408,9 @@ def add_heatmap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -7973,7 +7983,7 @@ def add_histogram( are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -8516,8 +8526,9 @@ def add_histogram2d( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9058,8 +9069,9 @@ def add_histogram2dcontour( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9524,8 +9536,9 @@ def add_icicle( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9901,8 +9914,9 @@ def add_image( to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -9965,7 +9979,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -10507,8 +10521,9 @@ def add_isosurface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11016,8 +11031,9 @@ def add_mesh3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -11843,7 +11859,7 @@ def add_parcats( `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont @@ -12296,8 +12312,9 @@ def add_pie( to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13007,8 +13024,9 @@ def add_scatter( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13542,8 +13560,9 @@ def add_scatter3d( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -13996,8 +14015,9 @@ def add_scattercarpet( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14403,8 +14423,9 @@ def add_scattergeo( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -14834,8 +14855,9 @@ def add_scattergl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15309,8 +15331,9 @@ def add_scattermap( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -15690,8 +15713,9 @@ def add_scattermapbox( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16097,8 +16121,9 @@ def add_scatterpolar( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16516,8 +16541,9 @@ def add_scatterpolargl( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -16925,8 +16951,9 @@ def add_scattersmith( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17350,8 +17377,9 @@ def add_scatterternary( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -17719,8 +17747,9 @@ def add_splom( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18127,8 +18156,9 @@ def add_streamtube( `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -18555,8 +18585,9 @@ def add_sunburst( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19004,8 +19035,9 @@ def add_surface( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -19629,8 +19661,9 @@ def add_treemap( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20033,8 +20066,9 @@ def add_violin( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -20585,8 +20619,9 @@ def add_volume( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -21053,8 +21088,9 @@ def add_waterfall( to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -23145,9 +23181,10 @@ def add_annotation( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/_funnel.py b/plotly/graph_objs/_funnel.py index fd2682f9cc7..6689f3092aa 100644 --- a/plotly/graph_objs/_funnel.py +++ b/plotly/graph_objs/_funnel.py @@ -323,7 +323,7 @@ def hovertemplate(self): template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1565,8 +1565,9 @@ def _prop_descriptions(self): to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2007,8 +2008,9 @@ def __init__( to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_funnelarea.py b/plotly/graph_objs/_funnelarea.py index 50e316bdd19..0d4d58b99d2 100644 --- a/plotly/graph_objs/_funnelarea.py +++ b/plotly/graph_objs/_funnelarea.py @@ -259,7 +259,7 @@ def hovertemplate(self): template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1090,8 +1090,9 @@ def _prop_descriptions(self): to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1388,8 +1389,9 @@ def __init__( to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_heatmap.py b/plotly/graph_objs/_heatmap.py index 0a6819e3946..45146b6495a 100644 --- a/plotly/graph_objs/_heatmap.py +++ b/plotly/graph_objs/_heatmap.py @@ -403,7 +403,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1691,8 +1691,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2155,8 +2156,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_histogram.py b/plotly/graph_objs/_histogram.py index 9bc14623c32..efa2fecfb7c 100644 --- a/plotly/graph_objs/_histogram.py +++ b/plotly/graph_objs/_histogram.py @@ -447,7 +447,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1628,7 +1628,7 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -2075,7 +2075,7 @@ def __init__( are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/_histogram2d.py b/plotly/graph_objs/_histogram2d.py index bf1befd5d35..154861bceef 100644 --- a/plotly/graph_objs/_histogram2d.py +++ b/plotly/graph_objs/_histogram2d.py @@ -439,7 +439,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1588,8 +1588,9 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2029,8 +2030,9 @@ def __init__( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_histogram2dcontour.py b/plotly/graph_objs/_histogram2dcontour.py index 2cfc1edb21f..ae9e3762e02 100644 --- a/plotly/graph_objs/_histogram2dcontour.py +++ b/plotly/graph_objs/_histogram2dcontour.py @@ -480,7 +480,7 @@ def hovertemplate(self): (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1626,8 +1626,9 @@ def _prop_descriptions(self): are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2082,8 +2083,9 @@ def __init__( are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_icicle.py b/plotly/graph_objs/_icicle.py index 94d491975f9..7f657c17d86 100644 --- a/plotly/graph_objs/_icicle.py +++ b/plotly/graph_objs/_icicle.py @@ -254,8 +254,8 @@ def hovertemplate(self): template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1170,8 +1170,9 @@ def _prop_descriptions(self): `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1492,8 +1493,9 @@ def __init__( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_image.py b/plotly/graph_objs/_image.py index e0f8afebd90..88220babb2a 100644 --- a/plotly/graph_objs/_image.py +++ b/plotly/graph_objs/_image.py @@ -237,7 +237,7 @@ def hovertemplate(self): template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -521,7 +521,7 @@ def opacity(self, val): def source(self): """ Specifies the data URI of the image to be visualized. The URI - consists of "data:image/[][;base64]," + consists of "data:image/[]\\[;base64]," The 'source' property is a string and must be specified as: - A string @@ -956,8 +956,9 @@ def _prop_descriptions(self): to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1020,7 +1021,7 @@ def _prop_descriptions(self): source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -1228,8 +1229,9 @@ def __init__( to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1292,7 +1294,7 @@ def __init__( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[][;base64]," + subtype>]\\[;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/_isosurface.py b/plotly/graph_objs/_isosurface.py index 1705fcf211d..307bab664c3 100644 --- a/plotly/graph_objs/_isosurface.py +++ b/plotly/graph_objs/_isosurface.py @@ -453,7 +453,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1467,8 +1467,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1860,8 +1861,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_mesh3d.py b/plotly/graph_objs/_mesh3d.py index 68928a8cae6..cdc62e2689c 100644 --- a/plotly/graph_objs/_mesh3d.py +++ b/plotly/graph_objs/_mesh3d.py @@ -564,7 +564,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1751,8 +1751,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2224,8 +2225,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_parcats.py b/plotly/graph_objs/_parcats.py index bea3d956e2f..5f4919a8c20 100644 --- a/plotly/graph_objs/_parcats.py +++ b/plotly/graph_objs/_parcats.py @@ -254,8 +254,8 @@ def hovertemplate(self): template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -626,7 +626,7 @@ def _prop_descriptions(self): `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont @@ -809,7 +809,7 @@ def __init__( `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. labelfont diff --git a/plotly/graph_objs/_pie.py b/plotly/graph_objs/_pie.py index f2eda4ab887..615f719c720 100644 --- a/plotly/graph_objs/_pie.py +++ b/plotly/graph_objs/_pie.py @@ -287,7 +287,7 @@ def hovertemplate(self): template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1249,8 +1249,9 @@ def _prop_descriptions(self): to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1583,8 +1584,9 @@ def __init__( to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatter.py b/plotly/graph_objs/_scatter.py index 9bef62b011c..b9b6bf210f8 100644 --- a/plotly/graph_objs/_scatter.py +++ b/plotly/graph_objs/_scatter.py @@ -504,7 +504,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1830,8 +1830,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2345,8 +2346,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatter3d.py b/plotly/graph_objs/_scatter3d.py index 229056e2d8e..ed6889b4273 100644 --- a/plotly/graph_objs/_scatter3d.py +++ b/plotly/graph_objs/_scatter3d.py @@ -269,7 +269,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1316,8 +1316,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1679,8 +1680,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattercarpet.py b/plotly/graph_objs/_scattercarpet.py index 4b846bffa2f..a06c597f308 100644 --- a/plotly/graph_objs/_scattercarpet.py +++ b/plotly/graph_objs/_scattercarpet.py @@ -374,7 +374,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1229,8 +1229,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1562,8 +1563,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattergeo.py b/plotly/graph_objs/_scattergeo.py index 4c0fb090e14..c6d8936ec3d 100644 --- a/plotly/graph_objs/_scattergeo.py +++ b/plotly/graph_objs/_scattergeo.py @@ -320,7 +320,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1238,8 +1238,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1578,8 +1579,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattergl.py b/plotly/graph_objs/_scattergl.py index bccddc41564..d81af3ed352 100644 --- a/plotly/graph_objs/_scattergl.py +++ b/plotly/graph_objs/_scattergl.py @@ -356,7 +356,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1520,8 +1520,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1940,8 +1941,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattermap.py b/plotly/graph_objs/_scattermap.py index a4b82a931c9..ad47dfc2730 100644 --- a/plotly/graph_objs/_scattermap.py +++ b/plotly/graph_objs/_scattermap.py @@ -290,7 +290,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1137,8 +1137,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1449,8 +1450,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattermapbox.py b/plotly/graph_objs/_scattermapbox.py index 3c20238aa02..c23b9bb8317 100644 --- a/plotly/graph_objs/_scattermapbox.py +++ b/plotly/graph_objs/_scattermapbox.py @@ -292,7 +292,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1143,8 +1143,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1464,8 +1465,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatterpolar.py b/plotly/graph_objs/_scatterpolar.py index 5168023fac0..34d6328bf0f 100644 --- a/plotly/graph_objs/_scatterpolar.py +++ b/plotly/graph_objs/_scatterpolar.py @@ -343,7 +343,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1283,8 +1283,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1634,8 +1635,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatterpolargl.py b/plotly/graph_objs/_scatterpolargl.py index f75aa05cd2a..781030c5ec7 100644 --- a/plotly/graph_objs/_scatterpolargl.py +++ b/plotly/graph_objs/_scatterpolargl.py @@ -308,7 +308,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1248,8 +1248,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1597,8 +1598,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scattersmith.py b/plotly/graph_objs/_scattersmith.py index e43d34b499a..a38d4cd3f21 100644 --- a/plotly/graph_objs/_scattersmith.py +++ b/plotly/graph_objs/_scattersmith.py @@ -300,7 +300,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1179,8 +1179,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1512,8 +1513,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_scatterternary.py b/plotly/graph_objs/_scatterternary.py index db865eaf195..b0b3ca3fcf0 100644 --- a/plotly/graph_objs/_scatterternary.py +++ b/plotly/graph_objs/_scatterternary.py @@ -420,7 +420,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1273,8 +1273,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1626,8 +1627,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_splom.py b/plotly/graph_objs/_splom.py index 6dda1855e82..803f9cd234c 100644 --- a/plotly/graph_objs/_splom.py +++ b/plotly/graph_objs/_splom.py @@ -239,7 +239,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -986,8 +986,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1277,8 +1278,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_streamtube.py b/plotly/graph_objs/_streamtube.py index de98ac33d05..fba538c29c0 100644 --- a/plotly/graph_objs/_streamtube.py +++ b/plotly/graph_objs/_streamtube.py @@ -399,8 +399,8 @@ def hovertemplate(self): template string has access to variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1452,8 +1452,9 @@ def _prop_descriptions(self): `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1853,8 +1854,9 @@ def __init__( `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_sunburst.py b/plotly/graph_objs/_sunburst.py index 3f14360a1a5..7e3000fa81b 100644 --- a/plotly/graph_objs/_sunburst.py +++ b/plotly/graph_objs/_sunburst.py @@ -253,8 +253,8 @@ def hovertemplate(self): template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1157,8 +1157,9 @@ def _prop_descriptions(self): `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1483,8 +1484,9 @@ def __init__( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_surface.py b/plotly/graph_objs/_surface.py index a2d65c3b3e5..12ea2060ad6 100644 --- a/plotly/graph_objs/_surface.py +++ b/plotly/graph_objs/_surface.py @@ -454,7 +454,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1446,8 +1446,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1840,8 +1841,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_treemap.py b/plotly/graph_objs/_treemap.py index 69dbd3b3ae4..f6df8010aeb 100644 --- a/plotly/graph_objs/_treemap.py +++ b/plotly/graph_objs/_treemap.py @@ -253,8 +253,8 @@ def hovertemplate(self): template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1150,8 +1150,9 @@ def _prop_descriptions(self): `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1469,8 +1470,9 @@ def __init__( `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_violin.py b/plotly/graph_objs/_violin.py index 943a5f2d377..3e83919e916 100644 --- a/plotly/graph_objs/_violin.py +++ b/plotly/graph_objs/_violin.py @@ -306,7 +306,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1467,8 +1467,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1893,8 +1894,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_volume.py b/plotly/graph_objs/_volume.py index 9bc3099f422..8e77cfba558 100644 --- a/plotly/graph_objs/_volume.py +++ b/plotly/graph_objs/_volume.py @@ -454,7 +454,7 @@ def hovertemplate(self): Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1493,8 +1493,9 @@ def _prop_descriptions(self): specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -1898,8 +1899,9 @@ def __init__( specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/_waterfall.py b/plotly/graph_objs/_waterfall.py index 04dc7746bb3..c37283badba 100644 --- a/plotly/graph_objs/_waterfall.py +++ b/plotly/graph_objs/_waterfall.py @@ -367,7 +367,7 @@ def hovertemplate(self): template string has access to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -1707,8 +1707,9 @@ def _prop_descriptions(self): to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -2175,8 +2176,9 @@ def __init__( to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/bar/marker/_pattern.py b/plotly/graph_objs/bar/marker/_pattern.py index 71b73ab9642..ce8bd8a10ae 100644 --- a/plotly/graph_objs/bar/marker/_pattern.py +++ b/plotly/graph_objs/bar/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/barpolar/marker/_pattern.py b/plotly/graph_objs/barpolar/marker/_pattern.py index e94caf71875..94329f6afb4 100644 --- a/plotly/graph_objs/barpolar/marker/_pattern.py +++ b/plotly/graph_objs/barpolar/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/carpet/_aaxis.py b/plotly/graph_objs/carpet/_aaxis.py index f10597ef659..389bdb3eecc 100644 --- a/plotly/graph_objs/carpet/_aaxis.py +++ b/plotly/graph_objs/carpet/_aaxis.py @@ -721,7 +721,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1381,7 +1381,7 @@ def _prop_descriptions(self): appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1670,7 +1670,7 @@ def __init__( appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. diff --git a/plotly/graph_objs/carpet/_baxis.py b/plotly/graph_objs/carpet/_baxis.py index f268f698338..fc0df8f0590 100644 --- a/plotly/graph_objs/carpet/_baxis.py +++ b/plotly/graph_objs/carpet/_baxis.py @@ -721,7 +721,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1381,7 +1381,7 @@ def _prop_descriptions(self): appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. @@ -1670,7 +1670,7 @@ def __init__( appears. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. diff --git a/plotly/graph_objs/contour/_contours.py b/plotly/graph_objs/contour/_contours.py index 122d8d20b26..430811a1fe9 100644 --- a/plotly/graph_objs/contour/_contours.py +++ b/plotly/graph_objs/contour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', ')(', '](', ')['] Returns @@ -238,11 +238,11 @@ def value(self): """ Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When + (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an array of - two numbers where the first is the lower bound and the second - is the upper bound. + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an + array of two numbers where the first is the lower bound and the + second is the upper bound. The 'value' property accepts values of any type @@ -283,10 +283,11 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -309,11 +310,11 @@ def _prop_descriptions(self): value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. """ def __init__( @@ -365,10 +366,11 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -391,11 +393,11 @@ def __init__( value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. Returns ------- diff --git a/plotly/graph_objs/contourcarpet/_contours.py b/plotly/graph_objs/contourcarpet/_contours.py index 0b5e3fbe175..c17ec3ff88e 100644 --- a/plotly/graph_objs/contourcarpet/_contours.py +++ b/plotly/graph_objs/contourcarpet/_contours.py @@ -114,7 +114,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -122,7 +122,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', ')(', '](', ')['] Returns @@ -237,11 +237,11 @@ def value(self): """ Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When + (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an array of - two numbers where the first is the lower bound and the second - is the upper bound. + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an + array of two numbers where the first is the lower bound and the + second is the upper bound. The 'value' property accepts values of any type @@ -281,10 +281,11 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -307,11 +308,11 @@ def _prop_descriptions(self): value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. """ def __init__( @@ -362,10 +363,11 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -388,11 +390,11 @@ def __init__( value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. Returns ------- diff --git a/plotly/graph_objs/funnelarea/marker/_pattern.py b/plotly/graph_objs/funnelarea/marker/_pattern.py index 99e8420f9e1..cf447b7bc4e 100644 --- a/plotly/graph_objs/funnelarea/marker/_pattern.py +++ b/plotly/graph_objs/funnelarea/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/histogram/marker/_pattern.py b/plotly/graph_objs/histogram/marker/_pattern.py index 1b3673a7086..bfc03a0367a 100644 --- a/plotly/graph_objs/histogram/marker/_pattern.py +++ b/plotly/graph_objs/histogram/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/histogram2dcontour/_contours.py b/plotly/graph_objs/histogram2dcontour/_contours.py index fd0c3745697..2dade36cdb1 100644 --- a/plotly/graph_objs/histogram2dcontour/_contours.py +++ b/plotly/graph_objs/histogram2dcontour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', ')(', '](', ')['] Returns @@ -238,11 +238,11 @@ def value(self): """ Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When + (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an array of - two numbers where the first is the lower bound and the second - is the upper bound. + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an + array of two numbers where the first is the lower bound and the + second is the upper bound. The 'value' property accepts values of any type @@ -283,10 +283,11 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -309,11 +310,11 @@ def _prop_descriptions(self): value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. """ def __init__( @@ -365,10 +366,11 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "][", ")(", "](", ")[" keep regions outside - `value[0]` to value[1]` Open vs. closed intervals make - no difference to constraint display, but all versions - are allowed for consistency with filter transforms. + `value[1]` "]\\[", ")(", "](", ")[" keep regions + outside `value[0]` to value[1]` Open vs. closed + intervals make no difference to constraint display, but + all versions are allowed for consistency with filter + transforms. showlabels Determines whether to label the contour lines with their values. @@ -391,11 +393,11 @@ def __init__( value Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values - (=,<,>=,>,<=) "value" is expected to be a number. When - `operation` is set to one of the interval values - ([],(),[),(],][,)(,](,)[) "value" is expected to be an - array of two numbers where the first is the lower bound - and the second is the upper bound. + (`=,<,>=,>,<=`) "value" is expected to be a number. + When `operation` is set to one of the interval values + (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + an array of two numbers where the first is the lower + bound and the second is the upper bound. Returns ------- diff --git a/plotly/graph_objs/icicle/marker/_pattern.py b/plotly/graph_objs/icicle/marker/_pattern.py index 1e58174135d..ac85c878504 100644 --- a/plotly/graph_objs/icicle/marker/_pattern.py +++ b/plotly/graph_objs/icicle/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/layout/_annotation.py b/plotly/graph_objs/layout/_annotation.py index 5be9964935c..f066a671d95 100644 --- a/plotly/graph_objs/layout/_annotation.py +++ b/plotly/graph_objs/layout/_annotation.py @@ -226,7 +226,7 @@ def axref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -288,7 +288,7 @@ def ayref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -690,9 +690,10 @@ def templateitemname(self, val): def text(self): """ Sets the text associated with this annotation. Plotly uses a - subset of HTML tags to do things like newline (
), bold - (), italics (), hyperlinks (). - Tags , , , , are also supported. + subset of HTML tags to do things like newline (`
`), bold + (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, + and `` are also supported. The 'text' property is a string and must be specified as: - A string @@ -875,7 +876,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -993,7 +994,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1205,9 +1206,10 @@ def _prop_descriptions(self): text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. @@ -1542,9 +1544,10 @@ def __init__( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/layout/_grid.py b/plotly/graph_objs/layout/_grid.py index 8788027b3a4..c364d366744 100644 --- a/plotly/graph_objs/layout/_grid.py +++ b/plotly/graph_objs/layout/_grid.py @@ -145,11 +145,11 @@ def subplots(self): The 'subplots' property is an info array that may be specified as: * a 2D list where: - The 'subplots[i][j]' property is an enumeration that may be specified as: + The 'subplots[i]\[j]' property is an enumeration that may be specified as: - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?y([2-9]|[1-9]\[0-9]+)?$'] Returns ------- @@ -177,7 +177,7 @@ def xaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -246,7 +246,7 @@ def yaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_image.py b/plotly/graph_objs/layout/_image.py index 33865e42ac6..402c17fef77 100644 --- a/plotly/graph_objs/layout/_image.py +++ b/plotly/graph_objs/layout/_image.py @@ -280,7 +280,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -349,7 +349,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_legend.py b/plotly/graph_objs/layout/_legend.py index 7df6dadbe34..168fc6b6261 100644 --- a/plotly/graph_objs/layout/_legend.py +++ b/plotly/graph_objs/layout/_legend.py @@ -22,6 +22,7 @@ class Legend(_BaseLayoutHierarchyType): "itemdoubleclick", "itemsizing", "itemwidth", + "maxheight", "orientation", "title", "tracegroupgap", @@ -308,6 +309,31 @@ def itemwidth(self): def itemwidth(self, val): self["itemwidth"] = val + @property + def maxheight(self): + """ + Sets the max height (in px) of the legend, or max height ratio + (reference height * ratio) if less than one. Default value is: + 0.5 for horizontal legends; 1 for vertical legends. The minimum + allowed height is 30px. For a ratio of 0.5, the legend will + take up to 50% of the reference height before displaying a + scrollbar. The reference height is the full layout height + except for vertically oriented legends with a `yref` of + `"paper"`, where the reference height is the plot height. + + The 'maxheight' property is a number and may be specified as: + - An int or float in the interval [0, inf] + + Returns + ------- + int|float + """ + return self["maxheight"] + + @maxheight.setter + def maxheight(self, val): + self["maxheight"] = val + @property def orientation(self): """ @@ -636,6 +662,17 @@ def _prop_descriptions(self): itemwidth Sets the width (in px) of the legend item symbols (the part other than the title.text). + maxheight + Sets the max height (in px) of the legend, or max + height ratio (reference height * ratio) if less than + one. Default value is: 0.5 for horizontal legends; 1 + for vertical legends. The minimum allowed height is + 30px. For a ratio of 0.5, the legend will take up to + 50% of the reference height before displaying a + scrollbar. The reference height is the full layout + height except for vertically oriented legends with a + `yref` of `"paper"`, where the reference height is the + plot height. orientation Sets the orientation of the legend. title @@ -723,6 +760,7 @@ def __init__( itemdoubleclick=None, itemsizing=None, itemwidth=None, + maxheight=None, orientation=None, title=None, tracegroupgap=None, @@ -792,6 +830,17 @@ def __init__( itemwidth Sets the width (in px) of the legend item symbols (the part other than the title.text). + maxheight + Sets the max height (in px) of the legend, or max + height ratio (reference height * ratio) if less than + one. Default value is: 0.5 for horizontal legends; 1 + for vertical legends. The minimum allowed height is + 30px. For a ratio of 0.5, the legend will take up to + 50% of the reference height before displaying a + scrollbar. The reference height is the full layout + height except for vertically oriented legends with a + `yref` of `"paper"`, where the reference height is the + plot height. orientation Sets the orientation of the legend. title @@ -899,6 +948,7 @@ def __init__( self._set_property("itemdoubleclick", arg, itemdoubleclick) self._set_property("itemsizing", arg, itemsizing) self._set_property("itemwidth", arg, itemwidth) + self._set_property("maxheight", arg, maxheight) self._set_property("orientation", arg, orientation) self._set_property("title", arg, title) self._set_property("tracegroupgap", arg, tracegroupgap) diff --git a/plotly/graph_objs/layout/_selection.py b/plotly/graph_objs/layout/_selection.py index 3ebf7419c32..799a2e8d4e1 100644 --- a/plotly/graph_objs/layout/_selection.py +++ b/plotly/graph_objs/layout/_selection.py @@ -206,7 +206,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -271,7 +271,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_shape.py b/plotly/graph_objs/layout/_shape.py index 8923d1c172f..38b7eada241 100644 --- a/plotly/graph_objs/layout/_shape.py +++ b/plotly/graph_objs/layout/_shape.py @@ -564,7 +564,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -720,7 +720,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_xaxis.py b/plotly/graph_objs/layout/_xaxis.py index 901e4180b08..160f7fcff4e 100644 --- a/plotly/graph_objs/layout/_xaxis.py +++ b/plotly/graph_objs/layout/_xaxis.py @@ -101,6 +101,7 @@ class XAxis(_BaseLayoutHierarchyType): "visible", "zeroline", "zerolinecolor", + "zerolinelayer", "zerolinewidth", } @@ -115,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -780,8 +781,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -924,8 +925,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1034,7 +1035,7 @@ def rangebreakdefaults(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1121,8 +1122,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1715,12 +1716,13 @@ def ticklabeloverflow(self, val): @property def ticklabelposition(self): """ - Determines where tick labels are drawn with respect to the axis - Please note that top or bottom has no effect on x axes or when - `ticklabelmode` is set to "period". Similarly left or right has - no effect on y axes or when `ticklabelmode` is set to "period". - Has no effect on "multicategory" axes or when `tickson` is set - to "boundaries". When used on axes linked by `matches` or + Determines where tick labels are drawn with respect to the + axis. Please note that top or bottom has no effect on x axes or + when `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Similarly, left or right has no effect on + y axes or when `ticklabelmode` is set to "period" or when + `tickson` is set to "boundaries". Has no effect on + "multicategory" axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. @@ -2152,6 +2154,30 @@ def zerolinecolor(self): def zerolinecolor(self, val): self["zerolinecolor"] = val + @property + def zerolinelayer(self): + """ + Sets the layer on which this zeroline is displayed. If *above + traces*, this zeroline is displayed above all the subplot's + traces If *below traces*, this zeroline is displayed below all + the subplot's traces, but above the grid lines. Limitation: + "zerolinelayer" currently has no effect if the "zorder" + property is set on any trace. + + The 'zerolinelayer' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['above traces', 'below traces'] + + Returns + ------- + Any + """ + return self["zerolinelayer"] + + @zerolinelayer.setter + def zerolinelayer(self, val): + self["zerolinelayer"] = val + @property def zerolinewidth(self): """ @@ -2414,7 +2440,7 @@ def _prop_descriptions(self): layout.xaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -2581,12 +2607,13 @@ def _prop_descriptions(self): cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -2677,6 +2704,14 @@ def _prop_descriptions(self): on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. """ @@ -2776,6 +2811,7 @@ def __init__( visible=None, zeroline=None, zerolinecolor=None, + zerolinelayer=None, zerolinewidth=None, **kwargs, ): @@ -3028,7 +3064,7 @@ def __init__( layout.xaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -3195,12 +3231,13 @@ def __init__( cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -3291,6 +3328,14 @@ def __init__( on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. @@ -3410,6 +3455,7 @@ def __init__( self._set_property("visible", arg, visible) self._set_property("zeroline", arg, zeroline) self._set_property("zerolinecolor", arg, zerolinecolor) + self._set_property("zerolinelayer", arg, zerolinelayer) self._set_property("zerolinewidth", arg, zerolinewidth) self._process_kwargs(**dict(arg, **kwargs)) self._skip_invalid = False diff --git a/plotly/graph_objs/layout/_yaxis.py b/plotly/graph_objs/layout/_yaxis.py index 95cf85f2836..d0b625bf646 100644 --- a/plotly/graph_objs/layout/_yaxis.py +++ b/plotly/graph_objs/layout/_yaxis.py @@ -101,6 +101,7 @@ class YAxis(_BaseLayoutHierarchyType): "visible", "zeroline", "zerolinecolor", + "zerolinelayer", "zerolinewidth", } @@ -115,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -802,8 +803,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -946,8 +947,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1056,7 +1057,7 @@ def rangebreakdefaults(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1105,8 +1106,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9][0-9]+)?( domain)?$', - '^y([2-9]|[1-9][0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', + '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] Returns ------- @@ -1723,12 +1724,13 @@ def ticklabeloverflow(self, val): @property def ticklabelposition(self): """ - Determines where tick labels are drawn with respect to the axis - Please note that top or bottom has no effect on x axes or when - `ticklabelmode` is set to "period". Similarly left or right has - no effect on y axes or when `ticklabelmode` is set to "period". - Has no effect on "multicategory" axes or when `tickson` is set - to "boundaries". When used on axes linked by `matches` or + Determines where tick labels are drawn with respect to the + axis. Please note that top or bottom has no effect on x axes or + when `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Similarly, left or right has no effect on + y axes or when `ticklabelmode` is set to "period" or when + `tickson` is set to "boundaries". Has no effect on + "multicategory" axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. @@ -2160,6 +2162,30 @@ def zerolinecolor(self): def zerolinecolor(self, val): self["zerolinecolor"] = val + @property + def zerolinelayer(self): + """ + Sets the layer on which this zeroline is displayed. If *above + traces*, this zeroline is displayed above all the subplot's + traces If *below traces*, this zeroline is displayed below all + the subplot's traces, but above the grid lines. Limitation: + "zerolinelayer" currently has no effect if the "zorder" + property is set on any trace. + + The 'zerolinelayer' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['above traces', 'below traces'] + + Returns + ------- + Any + """ + return self["zerolinelayer"] + + @zerolinelayer.setter + def zerolinelayer(self, val): + self["zerolinelayer"] = val + @property def zerolinewidth(self): """ @@ -2429,7 +2455,7 @@ def _prop_descriptions(self): layout.yaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -2599,12 +2625,13 @@ def _prop_descriptions(self): cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -2695,6 +2722,14 @@ def _prop_descriptions(self): on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. """ @@ -2794,6 +2829,7 @@ def __init__( visible=None, zeroline=None, zerolinecolor=None, + zerolinelayer=None, zerolinewidth=None, **kwargs, ): @@ -3053,7 +3089,7 @@ def __init__( layout.yaxis.rangebreaks rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -3223,12 +3259,13 @@ def __init__( cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to - the axis Please note that top or bottom has no effect - on x axes or when `ticklabelmode` is set to "period". - Similarly left or right has no effect on y axes or when - `ticklabelmode` is set to "period". Has no effect on - "multicategory" axes or when `tickson` is set to - "boundaries". When used on axes linked by `matches` or + the axis. Please note that top or bottom has no effect + on x axes or when `ticklabelmode` is set to "period" or + when `tickson` is set to "boundaries". Similarly, left + or right has no effect on y axes or when + `ticklabelmode` is set to "period" or when `tickson` is + set to "boundaries". Has no effect on "multicategory" + axes. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match. ticklabelshift @@ -3319,6 +3356,14 @@ def __init__( on top of the grid lines. zerolinecolor Sets the line color of the zero line. + zerolinelayer + Sets the layer on which this zeroline is displayed. If + *above traces*, this zeroline is displayed above all + the subplot's traces If *below traces*, this zeroline + is displayed below all the subplot's traces, but above + the grid lines. Limitation: "zerolinelayer" currently + has no effect if the "zorder" property is set on any + trace. zerolinewidth Sets the width (in px) of the zero line. @@ -3438,6 +3483,7 @@ def __init__( self._set_property("visible", arg, visible) self._set_property("zeroline", arg, zeroline) self._set_property("zerolinecolor", arg, zerolinecolor) + self._set_property("zerolinelayer", arg, zerolinelayer) self._set_property("zerolinewidth", arg, zerolinewidth) self._process_kwargs(**dict(arg, **kwargs)) self._skip_invalid = False diff --git a/plotly/graph_objs/layout/map/layer/_symbol.py b/plotly/graph_objs/layout/map/layer/_symbol.py index 58507ae4ede..5891fe4d7e9 100644 --- a/plotly/graph_objs/layout/map/layer/_symbol.py +++ b/plotly/graph_objs/layout/map/layer/_symbol.py @@ -14,7 +14,7 @@ class Symbol(_BaseLayoutHierarchyType): def icon(self): """ Sets the symbol icon image (map.layer.layout.icon-image). Full - list: https://www.map.com/maki-icons/ + list: https://www.mapbox.com/maki-icons/ The 'icon' property is a string and must be specified as: - A string @@ -142,7 +142,7 @@ def _prop_descriptions(self): return """\ icon Sets the symbol icon image (map.layer.layout.icon- - image). Full list: https://www.map.com/maki-icons/ + image). Full list: https://www.mapbox.com/maki-icons/ iconsize Sets the symbol icon size (map.layer.layout.icon-size). Has an effect only when `type` is set to "symbol". @@ -187,7 +187,7 @@ def __init__( :class:`plotly.graph_objs.layout.map.layer.Symbol` icon Sets the symbol icon image (map.layer.layout.icon- - image). Full list: https://www.map.com/maki-icons/ + image). Full list: https://www.mapbox.com/maki-icons/ iconsize Sets the symbol icon size (map.layer.layout.icon-size). Has an effect only when `type` is set to "symbol". diff --git a/plotly/graph_objs/layout/polar/_radialaxis.py b/plotly/graph_objs/layout/polar/_radialaxis.py index aa5bfd5b0b0..217d11b4fd1 100644 --- a/plotly/graph_objs/layout/polar/_radialaxis.py +++ b/plotly/graph_objs/layout/polar/_radialaxis.py @@ -661,7 +661,7 @@ def range(self, val): @property def rangemode(self): """ - If "tozero", the range extends to 0, regardless of the input + If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data (same behavior as for @@ -1466,7 +1466,7 @@ def _prop_descriptions(self): appears. Leaving either or both elements `null` impacts the default `autorange`. rangemode - If "tozero", the range extends to 0, regardless of the + If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data @@ -1835,7 +1835,7 @@ def __init__( appears. Leaving either or both elements `null` impacts the default `autorange`. rangemode - If "tozero", the range extends to 0, regardless of the + If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. If "normal", the range is computed in relation to the extrema of the input data diff --git a/plotly/graph_objs/layout/scene/_annotation.py b/plotly/graph_objs/layout/scene/_annotation.py index 341cb4b8916..ba367344d6c 100644 --- a/plotly/graph_objs/layout/scene/_annotation.py +++ b/plotly/graph_objs/layout/scene/_annotation.py @@ -568,9 +568,10 @@ def templateitemname(self, val): def text(self): """ Sets the text associated with this annotation. Plotly uses a - subset of HTML tags to do things like newline (
), bold - (), italics (), hyperlinks (). - Tags , , , , are also supported. + subset of HTML tags to do things like newline (`
`), bold + (``), italics (``), hyperlinks (``). Tags ``, ``, ``, ``, ``, + and `` are also supported. The 'text' property is a string and must be specified as: - A string @@ -916,9 +917,10 @@ def _prop_descriptions(self): text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. @@ -1125,9 +1127,10 @@ def __init__( text Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline - (
), bold (), italics (), hyperlinks - (). Tags , , , , - are also supported. + (`
`), bold (``), italics (``), + hyperlinks (``). Tags ``, + ``, ``, ``, ``, and `` are also + supported. textangle Sets the angle at which the `text` is drawn with respect to the horizontal. diff --git a/plotly/graph_objs/layout/scene/_xaxis.py b/plotly/graph_objs/layout/scene/_xaxis.py index 3158a2e8318..64e4b118bc7 100644 --- a/plotly/graph_objs/layout/scene/_xaxis.py +++ b/plotly/graph_objs/layout/scene/_xaxis.py @@ -616,7 +616,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1519,7 +1519,7 @@ def _prop_descriptions(self): the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1886,7 +1886,7 @@ def __init__( the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. diff --git a/plotly/graph_objs/layout/scene/_yaxis.py b/plotly/graph_objs/layout/scene/_yaxis.py index 852837d3984..6455e98adf7 100644 --- a/plotly/graph_objs/layout/scene/_yaxis.py +++ b/plotly/graph_objs/layout/scene/_yaxis.py @@ -616,7 +616,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1519,7 +1519,7 @@ def _prop_descriptions(self): the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1886,7 +1886,7 @@ def __init__( the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. diff --git a/plotly/graph_objs/layout/scene/_zaxis.py b/plotly/graph_objs/layout/scene/_zaxis.py index 81936c64854..9ac22491692 100644 --- a/plotly/graph_objs/layout/scene/_zaxis.py +++ b/plotly/graph_objs/layout/scene/_zaxis.py @@ -616,7 +616,7 @@ def range(self, val): def rangemode(self): """ If "normal", the range is computed in relation to the extrema - of the input data. If "tozero", the range extends to 0, + of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1519,7 +1519,7 @@ def _prop_descriptions(self): the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. @@ -1886,7 +1886,7 @@ def __init__( the default `autorange`. rangemode If "normal", the range is computed in relation to the - extrema of the input data. If "tozero", the range + extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If "nonnegative", the range is non-negative, regardless of the input data. Applies only to linear axes. diff --git a/plotly/graph_objs/parcats/_line.py b/plotly/graph_objs/parcats/_line.py index 72b01bc9f06..da1e8e7de62 100644 --- a/plotly/graph_objs/parcats/_line.py +++ b/plotly/graph_objs/parcats/_line.py @@ -303,8 +303,8 @@ def hovertemplate(self): here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the - secondary box, for example "{fullData.name}". To - hide the secondary box completely, use an empty tag + secondary box, for example `%{fullData.name}`. + To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -480,7 +480,7 @@ def _prop_descriptions(self): over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. reversescale @@ -620,7 +620,7 @@ def __init__( over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. reversescale diff --git a/plotly/graph_objs/parcoords/_dimension.py b/plotly/graph_objs/parcoords/_dimension.py index 0c28911e144..5c55be2f0dc 100644 --- a/plotly/graph_objs/parcoords/_dimension.py +++ b/plotly/graph_objs/parcoords/_dimension.py @@ -41,8 +41,8 @@ def constraintrange(self): (1) The 'constraintrange[1]' property accepts values of any type * a 2D list where: - (0) The 'constraintrange[i][0]' property accepts values of any type - (1) The 'constraintrange[i][1]' property accepts values of any type + (0) The 'constraintrange[i]\[0]' property accepts values of any type + (1) The 'constraintrange[i]\[1]' property accepts values of any type Returns ------- diff --git a/plotly/graph_objs/pie/marker/_pattern.py b/plotly/graph_objs/pie/marker/_pattern.py index db8b13e3a09..1a273043e05 100644 --- a/plotly/graph_objs/pie/marker/_pattern.py +++ b/plotly/graph_objs/pie/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/sankey/_link.py b/plotly/graph_objs/sankey/_link.py index d436fd81cfe..3ecea7c6d63 100644 --- a/plotly/graph_objs/sankey/_link.py +++ b/plotly/graph_objs/sankey/_link.py @@ -287,7 +287,7 @@ def hovertemplate(self): `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, - for example "{fullData.name}". To hide the + for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -562,7 +562,7 @@ def _prop_descriptions(self): node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc @@ -702,7 +702,7 @@ def __init__( node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for - example "{fullData.name}". To hide the + example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. hovertemplatesrc diff --git a/plotly/graph_objs/sankey/_node.py b/plotly/graph_objs/sankey/_node.py index 1e05e7a4829..80942eba028 100644 --- a/plotly/graph_objs/sankey/_node.py +++ b/plotly/graph_objs/sankey/_node.py @@ -142,7 +142,7 @@ def groups(self): The 'groups' property is an info array that may be specified as: * a 2D list where: - The 'groups[i][j]' property is a number and may be specified as: + The 'groups[i]\[j]' property is a number and may be specified as: - An int or float Returns @@ -223,7 +223,7 @@ def hovertemplate(self): objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary box + `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``. The 'hovertemplate' property is a string and must be specified as: @@ -485,8 +485,9 @@ def _prop_descriptions(self): template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. @@ -607,8 +608,9 @@ def __init__( template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example - "{fullData.name}". To hide the secondary - box completely, use an empty tag ``. + `%{fullData.name}`. To hide the + secondary box completely, use an empty tag + ``. hovertemplatesrc Sets the source reference on Chart Studio Cloud for `hovertemplate`. diff --git a/plotly/graph_objs/scatter/_fillpattern.py b/plotly/graph_objs/scatter/_fillpattern.py index f333974bca2..db963840855 100644 --- a/plotly/graph_objs/scatter/_fillpattern.py +++ b/plotly/graph_objs/scatter/_fillpattern.py @@ -15,6 +15,8 @@ class Fillpattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/scattermap/_marker.py b/plotly/graph_objs/scattermap/_marker.py index a5612a3fb67..94795ed505b 100644 --- a/plotly/graph_objs/scattermap/_marker.py +++ b/plotly/graph_objs/scattermap/_marker.py @@ -525,7 +525,7 @@ def sizesrc(self, val): @property def symbol(self): """ - Sets the marker symbol. Full list: https://www.map.com/maki- + Sets the marker symbol. Full list: https://www.mapbox.com/maki- icons/ Note that the array `marker.color` and `marker.size` are only available for "circle" symbols. @@ -676,7 +676,7 @@ def _prop_descriptions(self): `size`. symbol Sets the marker symbol. Full list: - https://www.map.com/maki-icons/ Note that the array + https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for "circle" symbols. symbolsrc @@ -833,7 +833,7 @@ def __init__( `size`. symbol Sets the marker symbol. Full list: - https://www.map.com/maki-icons/ Note that the array + https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for "circle" symbols. symbolsrc diff --git a/plotly/graph_objs/sunburst/marker/_pattern.py b/plotly/graph_objs/sunburst/marker/_pattern.py index 16346c9f2a6..1db7bb09044 100644 --- a/plotly/graph_objs/sunburst/marker/_pattern.py +++ b/plotly/graph_objs/sunburst/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/graph_objs/table/_cells.py b/plotly/graph_objs/table/_cells.py index 083afdd03ca..36b0cc0a299 100644 --- a/plotly/graph_objs/table/_cells.py +++ b/plotly/graph_objs/table/_cells.py @@ -259,7 +259,7 @@ def suffixsrc(self, val): @property def values(self): """ - Cell values. `values[m][n]` represents the value of the `n`th + Cell values. `values[m]\\[n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,11 +337,11 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m][n]` represents the value of the - `n`th point in column `m`, therefore the `values[m]` - vector length for all columns must be the same (longer - vectors will be truncated). Each value must be a finite - number or a string. + Cell values. `values[m]\\[n]` represents the value of + the `n`th point in column `m`, therefore the + `values[m]` vector length for all columns must be the + same (longer vectors will be truncated). Each value + must be a finite number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. @@ -413,11 +413,11 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m][n]` represents the value of the - `n`th point in column `m`, therefore the `values[m]` - vector length for all columns must be the same (longer - vectors will be truncated). Each value must be a finite - number or a string. + Cell values. `values[m]\\[n]` represents the value of + the `n`th point in column `m`, therefore the + `values[m]` vector length for all columns must be the + same (longer vectors will be truncated). Each value + must be a finite number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. diff --git a/plotly/graph_objs/table/_header.py b/plotly/graph_objs/table/_header.py index 5a4f6f6bac3..245b13d7bc7 100644 --- a/plotly/graph_objs/table/_header.py +++ b/plotly/graph_objs/table/_header.py @@ -259,8 +259,8 @@ def suffixsrc(self, val): @property def values(self): """ - Header cell values. `values[m][n]` represents the value of the - `n`th point in column `m`, therefore the `values[m]` vector + Header cell values. `values[m]\\[n]` represents the value of + the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,8 +337,8 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m][n]` represents the value - of the `n`th point in column `m`, therefore the + Header cell values. `values[m]\\[n]` represents the + value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -413,8 +413,8 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m][n]` represents the value - of the `n`th point in column `m`, therefore the + Header cell values. `values[m]\\[n]` represents the + value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. diff --git a/plotly/graph_objs/treemap/marker/_pattern.py b/plotly/graph_objs/treemap/marker/_pattern.py index faa03c41462..57d4fc4883c 100644 --- a/plotly/graph_objs/treemap/marker/_pattern.py +++ b/plotly/graph_objs/treemap/marker/_pattern.py @@ -15,6 +15,8 @@ class Pattern(_BaseTraceHierarchyType): "fgcolorsrc", "fgopacity", "fillmode", + "path", + "pathsrc", "shape", "shapesrc", "size", @@ -150,6 +152,46 @@ def fillmode(self): def fillmode(self, val): self["fillmode"] = val + @property + def path(self): + """ + Sets a custom path for pattern fill. Use with no `shape` or + `solidity`, provide an SVG path string for the regions of the + square from (0,0) to (`size`,`size`) to color. + + The 'path' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["path"] + + @path.setter + def path(self, val): + self["path"] = val + + @property + def pathsrc(self): + """ + Sets the source reference on Chart Studio Cloud for `path`. + + The 'pathsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["pathsrc"] + + @pathsrc.setter + def pathsrc(self, val): + self["pathsrc"] = val + @property def shape(self): """ @@ -294,6 +336,14 @@ def _prop_descriptions(self): fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -327,6 +377,8 @@ def __init__( fgcolorsrc=None, fgopacity=None, fillmode=None, + path=None, + pathsrc=None, shape=None, shapesrc=None, size=None, @@ -370,6 +422,14 @@ def __init__( fillmode Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`. + path + Sets a custom path for pattern fill. Use with no + `shape` or `solidity`, provide an SVG path string for + the regions of the square from (0,0) to (`size`,`size`) + to color. + pathsrc + Sets the source reference on Chart Studio Cloud for + `path`. shape Sets the shape of the pattern fill. By default, no pattern is used for filling the area. @@ -423,6 +483,8 @@ def __init__( self._set_property("fgcolorsrc", arg, fgcolorsrc) self._set_property("fgopacity", arg, fgopacity) self._set_property("fillmode", arg, fillmode) + self._set_property("path", arg, path) + self._set_property("pathsrc", arg, pathsrc) self._set_property("shape", arg, shape) self._set_property("shapesrc", arg, shapesrc) self._set_property("size", arg, size) diff --git a/plotly/validators/_validators.json b/plotly/validators/_validators.json index ab1114e69d6..e2a73a8daac 100644 --- a/plotly/validators/_validators.json +++ b/plotly/validators/_validators.json @@ -25,6 +25,18 @@ }, "superclass": "NumberValidator" }, + "layout.yaxis.zerolinelayer": { + "params": { + "plotly_name": "zerolinelayer", + "parent_name": "layout.yaxis", + "edit_type": "plot", + "values": [ + "above traces", + "below traces" + ] + }, + "superclass": "EnumeratedValidator" + }, "layout.yaxis.zerolinecolor": { "params": { "plotly_name": "zerolinecolor", @@ -1635,6 +1647,18 @@ }, "superclass": "NumberValidator" }, + "layout.xaxis.zerolinelayer": { + "params": { + "plotly_name": "zerolinelayer", + "parent_name": "layout.xaxis", + "edit_type": "plot", + "values": [ + "above traces", + "below traces" + ] + }, + "superclass": "EnumeratedValidator" + }, "layout.xaxis.zerolinecolor": { "params": { "plotly_name": "zerolinecolor", @@ -17491,6 +17515,15 @@ }, "superclass": "EnumeratedValidator" }, + "layout.legend.maxheight": { + "params": { + "plotly_name": "maxheight", + "parent_name": "layout.legend", + "edit_type": "legend", + "min": 0 + }, + "superclass": "NumberValidator" + }, "layout.legend.itemwidth": { "params": { "plotly_name": "itemwidth", @@ -28108,6 +28141,23 @@ }, "superclass": "EnumeratedValidator" }, + "treemap.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "treemap.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "treemap.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "treemap.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "treemap.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -34417,6 +34467,23 @@ }, "superclass": "EnumeratedValidator" }, + "sunburst.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "sunburst.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "sunburst.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "sunburst.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "sunburst.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -72520,6 +72587,23 @@ }, "superclass": "EnumeratedValidator" }, + "scatter.fillpattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "scatter.fillpattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "scatter.fillpattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "scatter.fillpattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "scatter.fillpattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -75796,6 +75880,23 @@ }, "superclass": "EnumeratedValidator" }, + "pie.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "pie.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "pie.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "pie.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "pie.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -88904,6 +89005,23 @@ }, "superclass": "EnumeratedValidator" }, + "icicle.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "icicle.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "icicle.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "icicle.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "icicle.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -95869,6 +95987,23 @@ }, "superclass": "EnumeratedValidator" }, + "histogram.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "histogram.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "histogram.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "histogram.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "histogram.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -100777,6 +100912,23 @@ }, "superclass": "EnumeratedValidator" }, + "funnelarea.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "funnelarea.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "funnelarea.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "funnelarea.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "funnelarea.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -124475,6 +124627,23 @@ }, "superclass": "EnumeratedValidator" }, + "barpolar.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "barpolar.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "barpolar.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "barpolar.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "barpolar.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", @@ -127176,6 +127345,23 @@ }, "superclass": "EnumeratedValidator" }, + "bar.marker.pattern.pathsrc": { + "params": { + "plotly_name": "pathsrc", + "parent_name": "bar.marker.pattern", + "edit_type": "none" + }, + "superclass": "SrcValidator" + }, + "bar.marker.pattern.path": { + "params": { + "plotly_name": "path", + "parent_name": "bar.marker.pattern", + "array_ok": true, + "edit_type": "style" + }, + "superclass": "StringValidator" + }, "bar.marker.pattern.fillmode": { "params": { "plotly_name": "fillmode", diff --git a/resources/plot-schema.json b/resources/plot-schema.json index 5648e294fe0..1148cf2e4b7 100644 --- a/resources/plot-schema.json +++ b/resources/plot-schema.json @@ -16699,7 +16699,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -18898,7 +18898,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -20490,7 +20490,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -25053,7 +25053,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -26334,7 +26334,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -27611,7 +27611,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `properties` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -28921,7 +28921,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `norm` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -30488,7 +30488,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -33305,7 +33305,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -34520,7 +34520,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -35185,7 +35185,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -37213,7 +37213,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -39050,7 +39050,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -40205,7 +40205,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -42846,7 +42846,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -44536,7 +44536,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variable `z` Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -45462,7 +45462,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -47548,7 +47548,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -50074,7 +50074,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -51615,7 +51615,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -53058,7 +53058,7 @@ ] }, "hovertemplate": { - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over dimensions. Note that `*categorycount`, *colorcount* and *bandcolorcount* are only available when `hoveron` contains the *color* flagFinally, the template string has access to variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "plot", "valType": "string" @@ -53932,7 +53932,7 @@ }, "editType": "calc", "hovertemplate": { - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. This value here applies when hovering over lines.Finally, the template string has access to variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "plot", "valType": "string" @@ -55898,7 +55898,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -57762,7 +57762,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `source` and `target` are node objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -58127,7 +58127,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `sourceLinks` and `targetLinks` are arrays of link objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Variables `sourceLinks` and `targetLinks` are arrays of link objects.Finally, the template string has access to variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -59011,7 +59011,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -61740,7 +61740,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -64193,7 +64193,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -66468,7 +66468,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -68910,7 +68910,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -71233,7 +71233,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -72770,7 +72770,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -74261,7 +74261,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -76562,7 +76562,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -78715,7 +78715,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -81024,7 +81024,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -83325,7 +83325,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -85921,7 +85921,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -86732,7 +86732,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -89531,7 +89531,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -91362,7 +91362,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -93537,7 +93537,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" @@ -95637,7 +95637,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "calc", "valType": "string" @@ -96588,7 +96588,7 @@ }, "hovertemplate": { "arrayOk": true, - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\" as well as %{xother}, {%_xother}, {%_xother_}, {%xother_}. When showing info for several points, *xother* will be added to those with different x positions from the first point. An underscore before or after *(x|y)other* will add a space on that side, only when this field is shown. Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-format/tree/v1.4.5#d3-format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Finally, the template string has access to variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example `%{fullData.name}`. To hide the secondary box completely, use an empty tag ``.", "dflt": "", "editType": "none", "valType": "string" From 9525f6ac44d3d00eca7550ed7b0916be9e55ceaa Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Wed, 23 Jul 2025 15:52:14 -0400 Subject: [PATCH 21/29] feat: converting doc/python/*.md using bin/run_markdown.py - Add `bin/run_markdown.py` (with help from Claude). - Runs Python chunks embedded in Markdown, writing result as Markdown. - Has option to embed interactive figures as well as generate PNG. - Modify `Makefile` to run the script on selected files for testing purposes. - Commented-out target runs on all. To do: - [ ] Figure out why `bin/run_markdown.py` fails with "too many open files" for large numbers of input files. - [ ] Modify `Makefile` to allow select re-running as well as batch runs. - [ ] Modify `bin/run_markdown.py` to use a single Kaleido sub-process to speed up image generation. --- .gitignore | 1 + Makefile | 8 + bin/codegen/datatypes.py | 4 +- bin/codegen/utils.py | 4 +- bin/run_markdown.py | 246 ++++++++++++++++++ notes.txt | 36 +++ plotly/graph_objs/_figure.py | 2 +- plotly/graph_objs/_figurewidget.py | 2 +- plotly/graph_objs/_image.py | 6 +- plotly/graph_objs/contour/_contours.py | 30 +-- plotly/graph_objs/contourcarpet/_contours.py | 30 +-- .../histogram2dcontour/_contours.py | 30 +-- plotly/graph_objs/layout/_annotation.py | 8 +- plotly/graph_objs/layout/_grid.py | 8 +- plotly/graph_objs/layout/_image.py | 4 +- plotly/graph_objs/layout/_selection.py | 4 +- plotly/graph_objs/layout/_shape.py | 4 +- plotly/graph_objs/layout/_xaxis.py | 16 +- plotly/graph_objs/layout/_yaxis.py | 16 +- plotly/graph_objs/parcoords/_dimension.py | 4 +- plotly/graph_objs/sankey/_node.py | 2 +- plotly/graph_objs/table/_cells.py | 22 +- plotly/graph_objs/table/_header.py | 12 +- 23 files changed, 392 insertions(+), 107 deletions(-) create mode 100644 bin/run_markdown.py create mode 100644 notes.txt diff --git a/.gitignore b/.gitignore index 063be791b13..b091fbc48e0 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ doc/python/raw.githubusercontent.com/ docs/ docs_tmp/ +pages/examples/ # Don't ignore dataset files !*.csv.gz diff --git a/Makefile b/Makefile index 63d26ae08ba..2313542cca5 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ RUN = uv run PACKAGE_DIRS = _plotly_utils plotly CODE_DIRS = ${PACKAGE_DIRS} scripts +EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md +# EXAMPLE_SRC = $(wildcard doc/python/*.md) ## commands: show available commands commands: @@ -21,6 +23,10 @@ docs-lint: docs-tmp: MKDOCS_TEMP_DIR=./docs_tmp ${RUN} mkdocs build +## examples: generate Markdown from doc/python +examples: + ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose ${EXAMPLE_SRC} + ## format: reformat code format: ${RUN} ruff format ${CODE_DIRS} @@ -52,6 +58,8 @@ clean: @rm -rf .pytest_cache @rm -rf .ruff_cache @rm -rf dist + @rm -rf docs + @rm -rf pages/examples ## sync: update Python packages sync: diff --git a/bin/codegen/datatypes.py b/bin/codegen/datatypes.py index d29e4f715a3..acabac95da3 100644 --- a/bin/codegen/datatypes.py +++ b/bin/codegen/datatypes.py @@ -218,8 +218,8 @@ def _subplot_re_match(self, prop): else: property_docstring = property_description - # Fix `][`. - property_docstring = property_docstring.replace("][", "]\\[") + # FIXME: replace '][' with ']\[' to avoid confusion with Markdown reference links + # property_docstring = property_docstring.replace("][", "]\\[") # Write get property buffer.write( diff --git a/bin/codegen/utils.py b/bin/codegen/utils.py index 2cc4e018811..c002574ada7 100644 --- a/bin/codegen/utils.py +++ b/bin/codegen/utils.py @@ -163,8 +163,8 @@ def format_description(desc): # replace {2D arrays} with 2D lists desc = desc.replace("{2D arrays}", "2D lists") - # replace '][' with ']\[' to avoid confusion with Markdown reference links - desc = desc.replace("][", r"]\\[") + # FIXME: replace '][' with ']\[' to avoid confusion with Markdown reference links + # desc = desc.replace("][", r"]\\[") return desc diff --git a/bin/run_markdown.py b/bin/run_markdown.py new file mode 100644 index 00000000000..6f29ee2fdff --- /dev/null +++ b/bin/run_markdown.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python3 +""" +Process Markdown files with embedded Python code blocks, saving +the output and images. +""" + +import argparse +from contextlib import redirect_stdout, redirect_stderr +import io +from pathlib import Path +import plotly.graph_objects as go +import sys +import traceback + + +def main(): + args = _parse_args() + for filename in args.input: + _do_file(args, Path(filename)) + + +def _do_file(args, input_file): + """Process a single file.""" + + # Validate input file + if not input_file.exists(): + print(f"Error: '{input_file}' not found", file=sys.stderr) + sys.exit(1) + + # Determine output file path etc. + stem = input_file.stem + output_file = args.outdir / f"{input_file.stem}{input_file.suffix}" + if input_file.resolve() == output_file.resolve(): + print(f"Error: output would overwrite input '{input_file}'", file=sys.stderr) + sys.exit(1) + + # Read input + try: + with open(input_file, "r", encoding="utf-8") as f: + content = f.read() + except Exception as e: + print(f"Error reading input file: {e}", file=sys.stderr) + sys.exit(1) + + # Parse markdown and extract code blocks + _report(args.verbose, f"Processing {input_file}...") + code_blocks = _parse_md(content) + _report(args.verbose, f"- Found {len(code_blocks)} code blocks") + + # Execute code blocks and collect results + execution_results = [] + figure_counter = 0 + for i, block in enumerate(code_blocks): + _report(args.verbose, f"- Executing block {i + 1}/{len(code_blocks)}") + figure_counter, result = _run_code(block["code"], args.outdir, stem, figure_counter) + execution_results.append(result) + _report(result["error"], f" - Warning: block {i + 1} had an error") + _report(result["images"], f" - Generated {len(result['images'])} image(s)") + + # Generate and save output + content = _generate_markdown(args, content, code_blocks, execution_results, args.outdir) + try: + with open(output_file, "w", encoding="utf-8") as f: + f.write(content) + _report(args.verbose, f"- Output written to {output_file}") + _report(any(result["images"] for result in execution_results), f"- Images saved to {args.outdir}") + except Exception as e: + print(f"Error writing output file: {e}", file=sys.stderr) + sys.exit(1) + + +def _capture_plotly_show(fig, counter, result, output_dir, stem): + """Saves figures instead of displaying them.""" + # Save PNG + png_filename = f"{stem}_{counter}.png" + png_path = output_dir / png_filename + fig.write_image(png_path, width=800, height=600) + result["images"].append(png_filename) + + # Save HTML and get the content for embedding + html_filename = f"{stem}_{counter}.html" + html_path = output_dir / html_filename + fig.write_html(html_path, include_plotlyjs="cdn") + html_content = fig.to_html(include_plotlyjs="cdn", div_id=f"plotly-div-{counter}", full_html=False) + result["html_files"].append(html_filename) + result.setdefault("html_content", []).append(html_content) + + +def _generate_markdown(args, content, code_blocks, execution_results, output_dir): + """Generate the output markdown with embedded results.""" + lines = content.split("\n") + + # Sort code blocks by start line in reverse order for safe insertion + sorted_blocks = sorted( + enumerate(code_blocks), key=lambda x: x[1]["start_line"], reverse=True + ) + + # Process each code block and insert results + for block_idx, block in sorted_blocks: + result = execution_results[block_idx] + insert_lines = [] + + # Add output if there's stdout + if result["stdout"].strip(): + insert_lines.append("") + insert_lines.append("**Output:**") + insert_lines.append("```") + insert_lines.extend(result["stdout"].rstrip().split("\n")) + insert_lines.append("```") + + # Add error if there was one + if result["error"]: + insert_lines.append("") + insert_lines.append("**Error:**") + insert_lines.append("```") + insert_lines.extend(result["error"].rstrip().split("\n")) + insert_lines.append("```") + + # Add stderr if there's content + if result["stderr"].strip(): + insert_lines.append("") + insert_lines.append("**Warnings/Messages:**") + insert_lines.append("```") + insert_lines.extend(result["stderr"].rstrip().split("\n")) + insert_lines.append("```") + + # Add images + for image in result["images"]: + insert_lines.append("") + insert_lines.append(f"![Generated Plot](./{image})") + + # Embed HTML content for plotly figures + if args.inline: + for html_content in result.get("html_content", []): + insert_lines.append("") + insert_lines.append("**Interactive Plot:**") + insert_lines.append("") + insert_lines.extend(html_content.split("\n")) + + # Insert the results after the code block + if insert_lines: + # Insert after the closing ``` of the code block + insertion_point = block["end_line"] + 1 + lines[insertion_point:insertion_point] = insert_lines + + return "\n".join(lines) + + +def _parse_args(): + """Parse command-line arguments.""" + parser = argparse.ArgumentParser(description="Process Markdown files with code blocks") + parser.add_argument("input", nargs="+", help="Input .md file") + parser.add_argument("--inline", action="store_true", help="Inline HTML in .md") + parser.add_argument("--outdir", type=Path, help="Output directory") + parser.add_argument("--verbose", action="store_true", help="Report progress") + return parser.parse_args() + + +def _parse_md(content): + """Parse Markdown and extract Python code blocks.""" + lines = content.split("\n") + blocks = [] + current_block = None + in_code_block = False + + for i, line in enumerate(lines): + # Start of Python code block + if line.strip().startswith("```python"): + in_code_block = True + current_block = { + "start_line": i, + "end_line": None, + "code": [], + "type": "python", + } + + # End of code block + elif line.strip() == "```" and in_code_block: + in_code_block = False + current_block["end_line"] = i + current_block["code"] = "\n".join(current_block["code"]) + blocks.append(current_block) + current_block = None + + # Line inside code block + elif in_code_block: + current_block["code"].append(line) + + return blocks + + +def _report(condition, message): + """Report if condition is true.""" + if condition: + print(message, file=sys.stderr) + + +def _run_code(code, output_dir, stem, figure_counter): + """Execute code capturing output and generated files.""" + # Capture stdout and stderr + stdout_buffer = io.StringIO() + stderr_buffer = io.StringIO() + + # Track files created during execution + if not output_dir.exists(): + output_dir.mkdir(parents=True, exist_ok=True) + + files_before = set(f.name for f in output_dir.iterdir()) + result = {"stdout": "", "stderr": "", "error": None, "images": [], "html_files": []} + try: + + # Create a namespace for code execution + exec_globals = { + "__name__": "__main__", + "__file__": "", + } + + # Execute the code with output capture + with redirect_stdout(stdout_buffer), redirect_stderr(stderr_buffer): + # Try to import plotly and patch the show method + def patched_show(self, *args, **kwargs): + nonlocal figure_counter + figure_counter += 1 + _capture_plotly_show(self, figure_counter, result, output_dir, stem) + original_show = go.Figure.show + go.Figure.show = patched_show + exec(code, exec_globals) + go.Figure.show = original_show + + except Exception as e: + result["error"] = f"Error executing code: {str(e)}\n{traceback.format_exc()}" + + result["stdout"] = stdout_buffer.getvalue() + result["stderr"] = stderr_buffer.getvalue() + + # Check for any additional files created + files_after = set(f.name for f in output_dir.iterdir()) + for f in (files_after - files_before): + if f not in result["images"] and f.lower().endswith(".png"): + result["images"].append(f) + + return figure_counter, result + + +if __name__ == "__main__": + main() diff --git a/notes.txt b/notes.txt new file mode 100644 index 00000000000..ba1abcdb766 --- /dev/null +++ b/notes.txt @@ -0,0 +1,36 @@ +- Can we get rid of `plotly/api` entirely? +- Can we eliminate `plotly/conftest.py` and fix breaking tests? +- Why the distinction between `graph_objects` and `graph_objs`? + - Historical reasons, but `graph_objs` is widely used. + - Generate code into `graph_objects` and have `graph_objs` point at it + instead of vice versa. +- Switch focus for now to the main documentation in `./doc`. + +- Ran this to create a `.ipynb` file: + +``` +jupytext --to ipynb --execute --output pages/strip-charts.ipynb doc/python/strip-charts.md +``` + +- Loading the notebook like this, the charts don't show up: + +``` +jupyter notebook pages/strip-charts.ipynb +``` + +- Had to add this in a cell at the top: + +``` +import plotly.io as pio +pio.renderers.default = "notebook" +``` + +- `mkdocs build` produces many (many) lines like this that did *not* appear + before `mkdocs-jupyter` was added to `mkdocs.yml`: + +``` +[WARNING] Div at /var/folders/w2/l51fjbjd25n9zbwkz9fw9jp00000gn/T/tmpgvlxh1sq line 3 column 1 unclosed at /var/folders/w2/l51fjbjd25n9zbwkz9fw9jp00000gn/T/tmpgvlxh1sq line 6 column 1, closing implicitly. +``` + +- But with the `plotly.io` line, the `.ipynb` file is converted to usable HTML. + - Still clearly originated as a notebook, but the chart shows up. diff --git a/plotly/graph_objs/_figure.py b/plotly/graph_objs/_figure.py index f43df0e4160..28cb7a927d3 100644 --- a/plotly/graph_objs/_figure.py +++ b/plotly/graph_objs/_figure.py @@ -9977,7 +9977,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/_figurewidget.py b/plotly/graph_objs/_figurewidget.py index a67d1870e9d..2b603479ecf 100644 --- a/plotly/graph_objs/_figurewidget.py +++ b/plotly/graph_objs/_figurewidget.py @@ -9979,7 +9979,7 @@ def add_image( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/_image.py b/plotly/graph_objs/_image.py index 88220babb2a..0a6155dedf4 100644 --- a/plotly/graph_objs/_image.py +++ b/plotly/graph_objs/_image.py @@ -521,7 +521,7 @@ def opacity(self, val): def source(self): """ Specifies the data URI of the image to be visualized. The URI - consists of "data:image/[]\\[;base64]," + consists of "data:image/[][;base64]," The 'source' property is a string and must be specified as: - A string @@ -1021,7 +1021,7 @@ def _prop_descriptions(self): source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties @@ -1294,7 +1294,7 @@ def __init__( source Specifies the data URI of the image to be visualized. The URI consists of "data:image/[]\\[;base64]," + subtype>][;base64]," stream :class:`plotly.graph_objects.image.Stream` instance or dict with compatible properties diff --git a/plotly/graph_objs/contour/_contours.py b/plotly/graph_objs/contour/_contours.py index 430811a1fe9..841169d8775 100644 --- a/plotly/graph_objs/contour/_contours.py +++ b/plotly/graph_objs/contour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', ')(', '](', ')['] Returns @@ -240,8 +240,8 @@ def value(self): `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an - array of two numbers where the first is the lower bound and the + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array + of two numbers where the first is the lower bound and the second is the upper bound. The 'value' property accepts values of any type @@ -283,11 +283,10 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -312,7 +311,7 @@ def _prop_descriptions(self): When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. """ @@ -366,11 +365,10 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -395,7 +393,7 @@ def __init__( When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. diff --git a/plotly/graph_objs/contourcarpet/_contours.py b/plotly/graph_objs/contourcarpet/_contours.py index c17ec3ff88e..cf84e8cd541 100644 --- a/plotly/graph_objs/contourcarpet/_contours.py +++ b/plotly/graph_objs/contourcarpet/_contours.py @@ -114,7 +114,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -122,7 +122,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', ')(', '](', ')['] Returns @@ -239,8 +239,8 @@ def value(self): `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an - array of two numbers where the first is the lower bound and the + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array + of two numbers where the first is the lower bound and the second is the upper bound. The 'value' property accepts values of any type @@ -281,11 +281,10 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -310,7 +309,7 @@ def _prop_descriptions(self): When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. """ @@ -363,11 +362,10 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -392,7 +390,7 @@ def __init__( When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. diff --git a/plotly/graph_objs/histogram2dcontour/_contours.py b/plotly/graph_objs/histogram2dcontour/_contours.py index 2dade36cdb1..dff878cf44b 100644 --- a/plotly/graph_objs/histogram2dcontour/_contours.py +++ b/plotly/graph_objs/histogram2dcontour/_contours.py @@ -115,7 +115,7 @@ def operation(self): Sets the constraint operation. "=" keeps regions equal to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and - "(]" keep regions inside `value[0]` to `value[1]` "]\\[", ")(", + "(]" keep regions inside `value[0]` to `value[1]` "][", ")(", "](", ")[" keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter @@ -123,7 +123,7 @@ def operation(self): The 'operation' property is an enumeration that may be specified as: - One of the following enumeration values: - ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', ']\[', + ['=', '<', '>=', '>', '<=', '[]', '()', '[)', '(]', '][', ')(', '](', ')['] Returns @@ -240,8 +240,8 @@ def value(self): `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be an - array of two numbers where the first is the lower bound and the + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array + of two numbers where the first is the lower bound and the second is the upper bound. The 'value' property accepts values of any type @@ -283,11 +283,10 @@ def _prop_descriptions(self): to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -312,7 +311,7 @@ def _prop_descriptions(self): When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. """ @@ -366,11 +365,10 @@ def __init__( to `value` "<" and "<=" keep regions less than `value` ">" and ">=" keep regions greater than `value` "[]", "()", "[)", and "(]" keep regions inside `value[0]` to - `value[1]` "]\\[", ")(", "](", ")[" keep regions - outside `value[0]` to value[1]` Open vs. closed - intervals make no difference to constraint display, but - all versions are allowed for consistency with filter - transforms. + `value[1]` "][", ")(", "](", ")[" keep regions outside + `value[0]` to value[1]` Open vs. closed intervals make + no difference to constraint display, but all versions + are allowed for consistency with filter transforms. showlabels Determines whether to label the contour lines with their values. @@ -395,7 +393,7 @@ def __init__( When `operation` is set to one of the comparison values (`=,<,>=,>,<=`) "value" is expected to be a number. When `operation` is set to one of the interval values - (`[],(),[),(],]\\[,)(,](,)[`) "value" is expected to be + (`[],(),[),(],][,)(,](,)[`) "value" is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound. diff --git a/plotly/graph_objs/layout/_annotation.py b/plotly/graph_objs/layout/_annotation.py index f066a671d95..d06b1061141 100644 --- a/plotly/graph_objs/layout/_annotation.py +++ b/plotly/graph_objs/layout/_annotation.py @@ -226,7 +226,7 @@ def axref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -288,7 +288,7 @@ def ayref(self): - One of the following enumeration values: ['pixel'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -876,7 +876,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -994,7 +994,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_grid.py b/plotly/graph_objs/layout/_grid.py index c364d366744..8788027b3a4 100644 --- a/plotly/graph_objs/layout/_grid.py +++ b/plotly/graph_objs/layout/_grid.py @@ -145,11 +145,11 @@ def subplots(self): The 'subplots' property is an info array that may be specified as: * a 2D list where: - The 'subplots[i]\[j]' property is an enumeration that may be specified as: + The 'subplots[i][j]' property is an enumeration that may be specified as: - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?y([2-9]|[1-9]\[0-9]+)?$'] + ['^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$'] Returns ------- @@ -177,7 +177,7 @@ def xaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -246,7 +246,7 @@ def yaxes(self): - One of the following enumeration values: [''] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_image.py b/plotly/graph_objs/layout/_image.py index 402c17fef77..33865e42ac6 100644 --- a/plotly/graph_objs/layout/_image.py +++ b/plotly/graph_objs/layout/_image.py @@ -280,7 +280,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -349,7 +349,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_selection.py b/plotly/graph_objs/layout/_selection.py index 799a2e8d4e1..3ebf7419c32 100644 --- a/plotly/graph_objs/layout/_selection.py +++ b/plotly/graph_objs/layout/_selection.py @@ -206,7 +206,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -271,7 +271,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_shape.py b/plotly/graph_objs/layout/_shape.py index 38b7eada241..8923d1c172f 100644 --- a/plotly/graph_objs/layout/_shape.py +++ b/plotly/graph_objs/layout/_shape.py @@ -564,7 +564,7 @@ def xref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -720,7 +720,7 @@ def yref(self): - One of the following enumeration values: ['paper'] - A string that matches one of the following regular expressions: - ['^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_xaxis.py b/plotly/graph_objs/layout/_xaxis.py index 160f7fcff4e..64331a5d5fa 100644 --- a/plotly/graph_objs/layout/_xaxis.py +++ b/plotly/graph_objs/layout/_xaxis.py @@ -116,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -781,8 +781,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -925,8 +925,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -1122,8 +1122,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/layout/_yaxis.py b/plotly/graph_objs/layout/_yaxis.py index d0b625bf646..22d79241caa 100644 --- a/plotly/graph_objs/layout/_yaxis.py +++ b/plotly/graph_objs/layout/_yaxis.py @@ -116,8 +116,8 @@ def anchor(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -803,8 +803,8 @@ def matches(self): The 'matches' property is an enumeration that may be specified as: - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -947,8 +947,8 @@ def overlaying(self): - One of the following enumeration values: ['free'] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- @@ -1106,8 +1106,8 @@ def scaleanchor(self): - One of the following enumeration values: [False] - A string that matches one of the following regular expressions: - ['^x([2-9]|[1-9]\[0-9]+)?( domain)?$', - '^y([2-9]|[1-9]\[0-9]+)?( domain)?$'] + ['^x([2-9]|[1-9][0-9]+)?( domain)?$', + '^y([2-9]|[1-9][0-9]+)?( domain)?$'] Returns ------- diff --git a/plotly/graph_objs/parcoords/_dimension.py b/plotly/graph_objs/parcoords/_dimension.py index 5c55be2f0dc..0c28911e144 100644 --- a/plotly/graph_objs/parcoords/_dimension.py +++ b/plotly/graph_objs/parcoords/_dimension.py @@ -41,8 +41,8 @@ def constraintrange(self): (1) The 'constraintrange[1]' property accepts values of any type * a 2D list where: - (0) The 'constraintrange[i]\[0]' property accepts values of any type - (1) The 'constraintrange[i]\[1]' property accepts values of any type + (0) The 'constraintrange[i][0]' property accepts values of any type + (1) The 'constraintrange[i][1]' property accepts values of any type Returns ------- diff --git a/plotly/graph_objs/sankey/_node.py b/plotly/graph_objs/sankey/_node.py index 80942eba028..8bb6492aea7 100644 --- a/plotly/graph_objs/sankey/_node.py +++ b/plotly/graph_objs/sankey/_node.py @@ -142,7 +142,7 @@ def groups(self): The 'groups' property is an info array that may be specified as: * a 2D list where: - The 'groups[i]\[j]' property is a number and may be specified as: + The 'groups[i][j]' property is a number and may be specified as: - An int or float Returns diff --git a/plotly/graph_objs/table/_cells.py b/plotly/graph_objs/table/_cells.py index 36b0cc0a299..083afdd03ca 100644 --- a/plotly/graph_objs/table/_cells.py +++ b/plotly/graph_objs/table/_cells.py @@ -259,7 +259,7 @@ def suffixsrc(self, val): @property def values(self): """ - Cell values. `values[m]\\[n]` represents the value of the `n`th + Cell values. `values[m][n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,11 +337,11 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m]\\[n]` represents the value of - the `n`th point in column `m`, therefore the - `values[m]` vector length for all columns must be the - same (longer vectors will be truncated). Each value - must be a finite number or a string. + Cell values. `values[m][n]` represents the value of the + `n`th point in column `m`, therefore the `values[m]` + vector length for all columns must be the same (longer + vectors will be truncated). Each value must be a finite + number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. @@ -413,11 +413,11 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Cell values. `values[m]\\[n]` represents the value of - the `n`th point in column `m`, therefore the - `values[m]` vector length for all columns must be the - same (longer vectors will be truncated). Each value - must be a finite number or a string. + Cell values. `values[m][n]` represents the value of the + `n`th point in column `m`, therefore the `values[m]` + vector length for all columns must be the same (longer + vectors will be truncated). Each value must be a finite + number or a string. valuessrc Sets the source reference on Chart Studio Cloud for `values`. diff --git a/plotly/graph_objs/table/_header.py b/plotly/graph_objs/table/_header.py index 245b13d7bc7..5a4f6f6bac3 100644 --- a/plotly/graph_objs/table/_header.py +++ b/plotly/graph_objs/table/_header.py @@ -259,8 +259,8 @@ def suffixsrc(self, val): @property def values(self): """ - Header cell values. `values[m]\\[n]` represents the value of - the `n`th point in column `m`, therefore the `values[m]` vector + Header cell values. `values[m][n]` represents the value of the + `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -337,8 +337,8 @@ def _prop_descriptions(self): Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m]\\[n]` represents the - value of the `n`th point in column `m`, therefore the + Header cell values. `values[m][n]` represents the value + of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. @@ -413,8 +413,8 @@ def __init__( Sets the source reference on Chart Studio Cloud for `suffix`. values - Header cell values. `values[m]\\[n]` represents the - value of the `n`th point in column `m`, therefore the + Header cell values. `values[m][n]` represents the value + of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string. From 80792d861c8f8806a60557cb7d63b676093187d9 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Sat, 26 Jul 2025 11:35:32 -0400 Subject: [PATCH 22/29] better verbosity --- Makefile | 15 +++++++++++---- bin/run_markdown.py | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 2313542cca5..e373577a249 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,9 @@ RUN = uv run PACKAGE_DIRS = _plotly_utils plotly CODE_DIRS = ${PACKAGE_DIRS} scripts -EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md # EXAMPLE_SRC = $(wildcard doc/python/*.md) +EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md +EXAMPLE_DST = $(patsubst doc/python/%.md,pages/examples/%.md,${EXAMPLE_SRC}) ## commands: show available commands commands: @@ -23,9 +24,15 @@ docs-lint: docs-tmp: MKDOCS_TEMP_DIR=./docs_tmp ${RUN} mkdocs build -## examples: generate Markdown from doc/python -examples: - ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose ${EXAMPLE_SRC} +## examples-batch: generate Markdown for all doc/python +examples-batch: + ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose 1 ${EXAMPLE_SRC} + +## examples: generate Markdown for individual doc/python +examples: ${EXAMPLE_DST} + +pages/examples/%.md: doc/python/%.md + ${RUN} bin/run_markdown.py --outdir pages/examples --inline --verbose 2 $< ## format: reformat code format: diff --git a/bin/run_markdown.py b/bin/run_markdown.py index 6f29ee2fdff..887431d361b 100644 --- a/bin/run_markdown.py +++ b/bin/run_markdown.py @@ -15,7 +15,7 @@ def main(): args = _parse_args() - for filename in args.input: + for filename in args.inputs: _do_file(args, Path(filename)) @@ -43,27 +43,27 @@ def _do_file(args, input_file): sys.exit(1) # Parse markdown and extract code blocks - _report(args.verbose, f"Processing {input_file}...") + _report(args.verbose > 0, f"Processing {input_file}...") code_blocks = _parse_md(content) - _report(args.verbose, f"- Found {len(code_blocks)} code blocks") + _report(args.verbose > 1, f"- Found {len(code_blocks)} code blocks") # Execute code blocks and collect results execution_results = [] figure_counter = 0 for i, block in enumerate(code_blocks): - _report(args.verbose, f"- Executing block {i + 1}/{len(code_blocks)}") + _report(args.verbose > 1, f"- Executing block {i + 1}/{len(code_blocks)}") figure_counter, result = _run_code(block["code"], args.outdir, stem, figure_counter) execution_results.append(result) - _report(result["error"], f" - Warning: block {i + 1} had an error") - _report(result["images"], f" - Generated {len(result['images'])} image(s)") + _report(args.verbose > 0 and bool(result["error"]), f" - Warning: block {i + 1} had an error") + _report(args.verbose > 1 and bool(result["images"]), f" - Generated {len(result['images'])} image(s)") # Generate and save output content = _generate_markdown(args, content, code_blocks, execution_results, args.outdir) try: with open(output_file, "w", encoding="utf-8") as f: f.write(content) - _report(args.verbose, f"- Output written to {output_file}") - _report(any(result["images"] for result in execution_results), f"- Images saved to {args.outdir}") + _report(args.verbose > 1, f"- Output written to {output_file}") + _report(args.verbose > 1 and any(result["images"] for result in execution_results), f"- Images saved to {args.outdir}") except Exception as e: print(f"Error writing output file: {e}", file=sys.stderr) sys.exit(1) @@ -149,10 +149,10 @@ def _generate_markdown(args, content, code_blocks, execution_results, output_dir def _parse_args(): """Parse command-line arguments.""" parser = argparse.ArgumentParser(description="Process Markdown files with code blocks") - parser.add_argument("input", nargs="+", help="Input .md file") + parser.add_argument("inputs", nargs="+", help="Input .md files") parser.add_argument("--inline", action="store_true", help="Inline HTML in .md") parser.add_argument("--outdir", type=Path, help="Output directory") - parser.add_argument("--verbose", action="store_true", help="Report progress") + parser.add_argument("--verbose", type=int, default=0, help="Integer verbosity level") return parser.parse_args() From 93867506ef78bae30704c75fc9627f63ffedf6b5 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Tue, 29 Jul 2025 08:29:37 -0400 Subject: [PATCH 23/29] feat: conditionalize Makefile target for testing --- Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e373577a249..56f5a2895ba 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,13 @@ RUN = uv run PACKAGE_DIRS = _plotly_utils plotly CODE_DIRS = ${PACKAGE_DIRS} scripts -# EXAMPLE_SRC = $(wildcard doc/python/*.md) + +ifdef MKDOCS_ALL +EXAMPLE_SRC = $(wildcard doc/python/*.md) +else EXAMPLE_SRC = doc/python/cone-plot.md doc/python/strip-charts.md +endif + EXAMPLE_DST = $(patsubst doc/python/%.md,pages/examples/%.md,${EXAMPLE_SRC}) ## commands: show available commands From 36b21ab6bf132a7824aded390d67d0ff6bd6f35b Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 29 Jul 2025 15:18:15 -0400 Subject: [PATCH 24/29] add missing imports and variable definitions --- doc/python/3d-mesh.md | 2 ++ doc/python/axes.md | 4 +++- doc/python/box-plots.md | 1 + doc/python/creating-and-updating-figures.md | 3 +++ doc/python/imshow.md | 1 + doc/python/network-graphs.md | 2 ++ doc/python/ohlc-charts.md | 2 ++ doc/python/templates.md | 1 + doc/python/time-series.md | 2 +- 9 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/python/3d-mesh.md b/doc/python/3d-mesh.md index 610c8153a90..edec74b6248 100644 --- a/doc/python/3d-mesh.md +++ b/doc/python/3d-mesh.md @@ -154,6 +154,8 @@ Whereas the previous example used the default `intensitymode='vertex'`, we plot ```python import plotly.graph_objects as go +import numpy as np + fig = go.Figure(data=[ go.Mesh3d( # 8 vertices of a cube diff --git a/doc/python/axes.md b/doc/python/axes.md index df8672e0e2e..2739c6fcc42 100644 --- a/doc/python/axes.md +++ b/doc/python/axes.md @@ -118,7 +118,7 @@ The PX `labels` argument can also be used without a data frame argument: ```python import plotly.express as px -fig = px.bar(df, x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], +fig = px.bar(x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], labels=dict(x="Fruit", y="Amount", color="Place") ) fig.show() @@ -460,6 +460,7 @@ Here, `ticklabelstandoff=15` moves the labels 15 pixels further away from the x- ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') @@ -487,6 +488,7 @@ To draw the label for the minor tick before each major tick, set `ticklabelindex ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') diff --git a/doc/python/box-plots.md b/doc/python/box-plots.md index 244c21106ef..1eaec475db2 100644 --- a/doc/python/box-plots.md +++ b/doc/python/box-plots.md @@ -448,6 +448,7 @@ fig.show() ```python import plotly.graph_objects as go +import numpy as np x_data = ['Carmelo Anthony', 'Dwyane Wade', 'Deron Williams', 'Brook Lopez', diff --git a/doc/python/creating-and-updating-figures.md b/doc/python/creating-and-updating-figures.md index 694e0d1ae0d..b23d69e41be 100644 --- a/doc/python/creating-and-updating-figures.md +++ b/doc/python/creating-and-updating-figures.md @@ -206,6 +206,7 @@ fig.show() The `plotly.subplots.make_subplots()` function produces a graph object figure that is preconfigured with a grid of subplots that traces can be added to. The `add_trace()` function will be discussed more below. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -260,6 +261,7 @@ fig.show() If a figure was created using `plotly.subplots.make_subplots()`, then supplying the `row` and `col` arguments to `add_trace()` can be used to add a trace to a particular subplot. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -274,6 +276,7 @@ This also works for figures created by Plotly Express using the `facet_row` and ```python import plotly.express as px +import plotly.graph_objects as go df = px.data.iris() diff --git a/doc/python/imshow.md b/doc/python/imshow.md index bec3b83de93..08be73e2985 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -274,6 +274,7 @@ fig.show() ### Displaying an image and the histogram of color values ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots from skimage import data img = data.chelsea() diff --git a/doc/python/network-graphs.md b/doc/python/network-graphs.md index ae47e9923c0..c9d85b5aa31 100644 --- a/doc/python/network-graphs.md +++ b/doc/python/network-graphs.md @@ -128,6 +128,8 @@ node_trace.text = node_text #### Create Network Graph ```python +import plotly.graph_objects as go + fig = go.Figure(data=[edge_trace, node_trace], layout=go.Layout( title=dict( diff --git a/doc/python/ohlc-charts.md b/doc/python/ohlc-charts.md index f59228b79c0..a11a06970aa 100644 --- a/doc/python/ohlc-charts.md +++ b/doc/python/ohlc-charts.md @@ -138,6 +138,8 @@ import plotly.graph_objects as go import pandas as pd from datetime import datetime +df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') + hovertext=[] for i in range(len(df['AAPL.Open'])): hovertext.append('Open: '+str(df['AAPL.Open'][i])+'
Close: '+str(df['AAPL.Close'][i])) diff --git a/doc/python/templates.md b/doc/python/templates.md index b110b736b1d..070d8633f35 100644 --- a/doc/python/templates.md +++ b/doc/python/templates.md @@ -389,6 +389,7 @@ Combining themes is also supported by Plotly Express ```python import plotly.io as pio +import plotly.graph_objects as go import plotly.express as px pio.templates["draft"] = go.layout.Template( diff --git a/doc/python/time-series.md b/doc/python/time-series.md index c55ffef7a42..bc3ee71df17 100644 --- a/doc/python/time-series.md +++ b/doc/python/time-series.md @@ -325,7 +325,7 @@ fig.show() ``` ```python -import plotly.graph_objects as go +import plotly.express as px import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') From 1e54e0cf6d610391e45733548af5bdf98c84bdb0 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Tue, 29 Jul 2025 15:18:15 -0400 Subject: [PATCH 25/29] add missing imports and variable definitions --- doc/python/3d-mesh.md | 2 ++ doc/python/axes.md | 4 +++- doc/python/box-plots.md | 1 + doc/python/creating-and-updating-figures.md | 3 +++ doc/python/imshow.md | 1 + doc/python/network-graphs.md | 2 ++ doc/python/ohlc-charts.md | 2 ++ doc/python/templates.md | 1 + doc/python/time-series.md | 2 +- 9 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/python/3d-mesh.md b/doc/python/3d-mesh.md index 610c8153a90..edec74b6248 100644 --- a/doc/python/3d-mesh.md +++ b/doc/python/3d-mesh.md @@ -154,6 +154,8 @@ Whereas the previous example used the default `intensitymode='vertex'`, we plot ```python import plotly.graph_objects as go +import numpy as np + fig = go.Figure(data=[ go.Mesh3d( # 8 vertices of a cube diff --git a/doc/python/axes.md b/doc/python/axes.md index df8672e0e2e..2739c6fcc42 100644 --- a/doc/python/axes.md +++ b/doc/python/axes.md @@ -118,7 +118,7 @@ The PX `labels` argument can also be used without a data frame argument: ```python import plotly.express as px -fig = px.bar(df, x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], +fig = px.bar(x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"], labels=dict(x="Fruit", y="Amount", color="Place") ) fig.show() @@ -460,6 +460,7 @@ Here, `ticklabelstandoff=15` moves the labels 15 pixels further away from the x- ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') @@ -487,6 +488,7 @@ To draw the label for the minor tick before each major tick, set `ticklabelindex ```python import plotly.express as px +import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') diff --git a/doc/python/box-plots.md b/doc/python/box-plots.md index 244c21106ef..1eaec475db2 100644 --- a/doc/python/box-plots.md +++ b/doc/python/box-plots.md @@ -448,6 +448,7 @@ fig.show() ```python import plotly.graph_objects as go +import numpy as np x_data = ['Carmelo Anthony', 'Dwyane Wade', 'Deron Williams', 'Brook Lopez', diff --git a/doc/python/creating-and-updating-figures.md b/doc/python/creating-and-updating-figures.md index 694e0d1ae0d..b23d69e41be 100644 --- a/doc/python/creating-and-updating-figures.md +++ b/doc/python/creating-and-updating-figures.md @@ -206,6 +206,7 @@ fig.show() The `plotly.subplots.make_subplots()` function produces a graph object figure that is preconfigured with a grid of subplots that traces can be added to. The `add_trace()` function will be discussed more below. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -260,6 +261,7 @@ fig.show() If a figure was created using `plotly.subplots.make_subplots()`, then supplying the `row` and `col` arguments to `add_trace()` can be used to add a trace to a particular subplot. ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots fig = make_subplots(rows=1, cols=2) @@ -274,6 +276,7 @@ This also works for figures created by Plotly Express using the `facet_row` and ```python import plotly.express as px +import plotly.graph_objects as go df = px.data.iris() diff --git a/doc/python/imshow.md b/doc/python/imshow.md index bec3b83de93..08be73e2985 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -274,6 +274,7 @@ fig.show() ### Displaying an image and the histogram of color values ```python +import plotly.graph_objects as go from plotly.subplots import make_subplots from skimage import data img = data.chelsea() diff --git a/doc/python/network-graphs.md b/doc/python/network-graphs.md index ae47e9923c0..c9d85b5aa31 100644 --- a/doc/python/network-graphs.md +++ b/doc/python/network-graphs.md @@ -128,6 +128,8 @@ node_trace.text = node_text #### Create Network Graph ```python +import plotly.graph_objects as go + fig = go.Figure(data=[edge_trace, node_trace], layout=go.Layout( title=dict( diff --git a/doc/python/ohlc-charts.md b/doc/python/ohlc-charts.md index f59228b79c0..a11a06970aa 100644 --- a/doc/python/ohlc-charts.md +++ b/doc/python/ohlc-charts.md @@ -138,6 +138,8 @@ import plotly.graph_objects as go import pandas as pd from datetime import datetime +df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') + hovertext=[] for i in range(len(df['AAPL.Open'])): hovertext.append('Open: '+str(df['AAPL.Open'][i])+'
Close: '+str(df['AAPL.Close'][i])) diff --git a/doc/python/templates.md b/doc/python/templates.md index b110b736b1d..070d8633f35 100644 --- a/doc/python/templates.md +++ b/doc/python/templates.md @@ -389,6 +389,7 @@ Combining themes is also supported by Plotly Express ```python import plotly.io as pio +import plotly.graph_objects as go import plotly.express as px pio.templates["draft"] = go.layout.Template( diff --git a/doc/python/time-series.md b/doc/python/time-series.md index c55ffef7a42..bc3ee71df17 100644 --- a/doc/python/time-series.md +++ b/doc/python/time-series.md @@ -325,7 +325,7 @@ fig.show() ``` ```python -import plotly.graph_objects as go +import plotly.express as px import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv') From a07ea4587d528b9c9dc7e9db3e773903f4252ad7 Mon Sep 17 00:00:00 2001 From: Greg Wilson Date: Wed, 30 Jul 2025 09:28:25 -0400 Subject: [PATCH 26/29] feat: script to check all examples in doc/python. - Updates `pyproject.toml` to install packages previously listed in `doc/requirements.txt`. - Removes `doc/requirements.txt`. - Run `python bin/check-all-md.py doc/python/*.md` to re-run all examples. --- bin/check-all-md.py | 18 + doc/requirements.txt | 48 -- pyproject.toml | 8 + uv.lock | 1045 ++++++++++++++++++++++++++++++++++++++---- 4 files changed, 984 insertions(+), 135 deletions(-) create mode 100644 bin/check-all-md.py delete mode 100644 doc/requirements.txt diff --git a/bin/check-all-md.py b/bin/check-all-md.py new file mode 100644 index 00000000000..95fe75f3d33 --- /dev/null +++ b/bin/check-all-md.py @@ -0,0 +1,18 @@ +from pathlib import Path +import os +import re +import sys + +PAT = re.compile(r"^```python\n(.+?)\n```", re.MULTILINE | re.DOTALL) +TMP_FILE = "tmp.py" + +for filename in sys.argv[1:]: + content = Path(filename).read_text() + blocks = PAT.findall(content) + for i, b in enumerate(blocks): + Path(TMP_FILE).write_text(b.strip()) + sys.stdout.write(f"\n{'=' * 40}\n{filename}: {i}\n") + sys.stdout.flush() + sys.stdout.write(f"{'-' * 40}\n") + sys.stdout.flush() + os.system(f"python {TMP_FILE} > /dev/null") diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index a874f2f0228..00000000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,48 +0,0 @@ -plotly==6.2.0 -anywidget -cufflinks==0.17.3 -dash-bio -dask==2022.2.0 -datashader==0.14.4 -geopandas==0.8.1 -geoparse<=2.0.3 -igraph -jinja2<3.1 -jupyter -jupyter-client<7 -jupytext==1.16.4 -kaleido -nbconvert==5.6.1 -networkx==2.8.0 -notebook -numpy==1.22.4 -orjson -pandas==1.4.0 -pathlib -patsy==0.5.6 -plotly-geo -polars -pooch -psutil -pyarrow -pyshp==2.1.2 -python-frontmatter -recommonmark -requests -scikit-image==0.20.0 -scikit-learn -scipy==1.9.1 -shapely==2.0.5 -sphinx==3.5.4 -sphinx_bootstrap_theme -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -squarify -statsmodels==0.14.2 -umap-learn==0.5.1 -wget -xarray==2022.9.0 diff --git a/pyproject.toml b/pyproject.toml index b427a4701bd..ef2bf459c2c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,9 +63,13 @@ dev_optional = [ "plotly[kaleido]", "anywidget", "colorcet", + "dash_bio", + "datashader", # fiona>1.9.6 is not compatible with geopandas<1; geopandas>=1 is not compatible with python 3.8 "fiona<=1.9.6;python_version<='3.8'", "geopandas", + "google", + "igraph", "inflect", "numpy", "orjson", @@ -74,15 +78,19 @@ dev_optional = [ "pillow", "plotly-geo", "polars[timezone]", + "pooch", "pyarrow", "pydoclint", "pyshp", "pytz", "scikit-image", + "scikit-learn", "scipy", "shapely", "statsmodels", + "umap", "vaex;python_version<='3.9'", + "wget", "xarray" ] dev = [ diff --git a/uv.lock b/uv.lock index 987dadda1bf..6695a852471 100644 --- a/uv.lock +++ b/uv.lock @@ -391,6 +391,98 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/50/cd/30110dc0ffcf3b131156077b90e9f60ed75711223f306da4db08eff8403b/beautifulsoup4-4.13.4-py3-none-any.whl", hash = "sha256:9bbbb14bfde9d79f38b8cd5f8c7c85f4b8f2523190ebed90e950a8dea4cb1c4b", size = 187285, upload-time = "2025-04-15T17:05:12.221Z" }, ] +[[package]] +name = "biopython" +version = "1.83" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/d4/3d8848191a7a37187704c382e6dfda4d6a47d05a14cd64f004c55a3cd5a1/biopython-1.83.tar.gz", hash = "sha256:78e6bfb78de63034037afd35fe77cb6e0a9e5b62706becf78a7d922b16ed83f7", size = 19431530, upload-time = "2024-01-10T12:25:28.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/72/121580953f63a20870d7e6ce1bd0bb86fb916b034870189b61cbc8f6e096/biopython-1.83-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e2cc737906d8de47eedbc4476f711b960c16a65daa8cdd021875398c81999a09", size = 2689906, upload-time = "2024-01-10T12:25:43.026Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ea/45c6239aa17ce0994ee5deb6d847e22c9f75723612c67a258957e63e0a5b/biopython-1.83-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:741abad84165e4caf0c80e485054135f51c21177e50ac6fcc502a45a6e8f7311", size = 2676869, upload-time = "2024-02-26T13:47:12.275Z" }, + { url = "https://files.pythonhosted.org/packages/1f/24/54402fd6343a688a59f83aab37234ae2716dc7ed0ed8c33cef02727acfc3/biopython-1.83-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2df408be9816dd98c28fe181ea93fb6e0d375bf1763ad9ed503ac30bb2df5b1a", size = 3101912, upload-time = "2024-01-10T12:25:49.786Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6a/f38bc09251404d546cc7011ef27353531ceba5f29f25be35e66706e24a13/biopython-1.83-cp310-cp310-win32.whl", hash = "sha256:a0c1c70789c7e2a26563db5ba533fb9fea0cc1f2c7bc7ad240146cb223ba44a3", size = 2689413, upload-time = "2024-01-10T12:25:55.772Z" }, + { url = "https://files.pythonhosted.org/packages/0c/09/4b5ad1d3f08c040ad4809e937d4d469eebb05f93a4fb7a85a9e7e40ccde8/biopython-1.83-cp310-cp310-win_amd64.whl", hash = "sha256:56f03f43c183acb88c082bc31e5f047fcc6d0aceb5270fbd29c31ab769795b86", size = 2725216, upload-time = "2024-01-10T12:26:01.086Z" }, + { url = "https://files.pythonhosted.org/packages/44/a1/53fdaf58f677a54dca2cf23d4a6dafc3c55478416f602738308fda2a107f/biopython-1.83-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a01dfdad7210f2fd5c4f36606278f91dbfdda6dac02347206d13cc618e79fe32", size = 2690083, upload-time = "2024-01-10T12:26:06.269Z" }, + { url = "https://files.pythonhosted.org/packages/7e/40/0543d137e4a45b0e5d3a7c5ce9b607e687d9e5b715eadfdae34de8d6906a/biopython-1.83-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3686ff61df3f24ecf6f23826e4fe5172c5e5f745099bc8fbb176f5304582f88f", size = 2676975, upload-time = "2024-02-26T13:47:18.835Z" }, + { url = "https://files.pythonhosted.org/packages/2a/38/3b971995c8bb2fad0b9809a61c8099fb1b2e579236e4c94fb0797825e171/biopython-1.83-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c756c0b81702c705141c87c2805203df01c6d4cf290e8cefd48cbc61a3c85b82", size = 3113769, upload-time = "2024-01-10T12:26:11.343Z" }, + { url = "https://files.pythonhosted.org/packages/f1/91/0759c7476a157887d68a1b286de4f1a7ec387cabdbf022e78d6c9a1010a9/biopython-1.83-cp311-cp311-win32.whl", hash = "sha256:0496f2a6e6e060d8ff0f34784ad15ed342b10cfe282020efe168286f0c14c479", size = 2689340, upload-time = "2024-01-10T12:26:15.995Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c8/18570a63e8b6fe99a856698d500fb326f0ce247d2b70d8d631d4abcb5c9c/biopython-1.83-cp311-cp311-win_amd64.whl", hash = "sha256:8552cc467429b555c604b84fc174c33923bf7e4c735774eda505f1d5a9c2feab", size = 2725183, upload-time = "2024-01-10T12:26:21.15Z" }, + { url = "https://files.pythonhosted.org/packages/82/fd/176b5198f3d31d089c66a2ae6236b4f9ba311e251a3cc6df9708fc31f4ad/biopython-1.83-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0d5ce14755a6b49dea4743cf6929570afe5becb66ad222194984c7bf04218f86", size = 2690888, upload-time = "2024-01-10T12:26:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/29/86/cc72bc4aef2607e28520793dbb3878191428605900247d23c3e68102803a/biopython-1.83-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:29708772651d930e808cd24c519fd4f39b2e719668944c0aa1eaf0b1deef9f48", size = 2677167, upload-time = "2024-02-26T13:47:24.769Z" }, + { url = "https://files.pythonhosted.org/packages/13/82/f279caa7647d4afde960ae466cab1f44257d39ca26ecf4deecd086f23290/biopython-1.83-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b35aa095de0fa8339b70664797d0e83322a1a9d512e2fd52d4e872df5189f56", size = 3127122, upload-time = "2024-01-10T12:26:31.016Z" }, + { url = "https://files.pythonhosted.org/packages/53/18/ece4454497a2e14042deba6ec4ad4e0328d01035527a752c6db5e2244dd2/biopython-1.83-cp312-cp312-win32.whl", hash = "sha256:118425a210cb3d184c7a78154c5646089366faf124cd46c6056ca7f9302b94ad", size = 2690448, upload-time = "2024-01-10T12:26:35.525Z" }, + { url = "https://files.pythonhosted.org/packages/8a/32/ad3f07c3dfc20a8f168f897b6d2312647ee3e598e0cd1270304897049126/biopython-1.83-cp312-cp312-win_amd64.whl", hash = "sha256:ca94e8ea8907de841a515af55acb1922a9de99b3144c738a193f2a75e4726078", size = 2725541, upload-time = "2024-01-10T12:26:40.218Z" }, + { url = "https://files.pythonhosted.org/packages/43/e5/30dc0f967b2792bedff350d4a87e30c3cbbe0e4cb2608b7e6241056d6db9/biopython-1.83-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e37884fe39e4560bf5934a4ec4ba7f7fe0e7c091053d03d05b20a70557167717", size = 2689881, upload-time = "2024-01-10T12:26:45.027Z" }, + { url = "https://files.pythonhosted.org/packages/bd/5f/7494b759be0478cb2779a5e26db0ff6356eeab051ced65496ff7af16137c/biopython-1.83-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4cc011346bc8af264e3d3ea98c665b6ebe20e503f1dd50ee7e0bc913941b4c6e", size = 2676864, upload-time = "2024-02-26T13:47:29.893Z" }, + { url = "https://files.pythonhosted.org/packages/05/2f/4ad16933096030e76046659f40b381869e46c4a26f4735969240d2c0adee/biopython-1.83-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd9bc6fef3f6a10043635a75e1a77c9dce877375140e81059c67c73d4ce65c4c", size = 3111259, upload-time = "2024-01-10T12:26:51.006Z" }, + { url = "https://files.pythonhosted.org/packages/70/4a/6f9653c962ed59c3b166ffcd12336f4c6188b080d21a1aacc959efc3b151/biopython-1.83-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c3584122a5daca25b3914a32c52785b051c11518cd5e111e9e89ee04a6234fe", size = 3073513, upload-time = "2024-01-10T12:26:56.753Z" }, + { url = "https://files.pythonhosted.org/packages/13/2f/e344b9d250a9f6f7d9b07e543ee05bc0d4e53c5fab140a9a1b7d4225389f/biopython-1.83-cp38-cp38-win32.whl", hash = "sha256:641c1a860705d6740eb16c6147b2b730b05a8f5974db804c14d5faa8a1446085", size = 2689412, upload-time = "2024-01-10T12:27:01.309Z" }, + { url = "https://files.pythonhosted.org/packages/2a/3c/10f22f3599acdf12b2a7a687589e3722b521147fe0e7846bd11f294eaf90/biopython-1.83-cp38-cp38-win_amd64.whl", hash = "sha256:94b68e550619e1b6e3784ed8cecb62f201d70d8b87d3a90365291f065ab42bd9", size = 2725178, upload-time = "2024-01-10T12:27:06.186Z" }, + { url = "https://files.pythonhosted.org/packages/a7/a9/1b1eb46b43541c7d5fd627022915ff80a5d3ba860fdf206a665b3d3d9077/biopython-1.83-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:81d1e2515b380e1876720ba79dbf50f8ef3a38cc38ba5953ef61ec20d0934ee2", size = 2689915, upload-time = "2024-01-10T12:27:11.456Z" }, + { url = "https://files.pythonhosted.org/packages/61/55/4e60b4b75520761ce78fe685a0a4fd18488e8fdaf5230328339176ac98ed/biopython-1.83-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:30fa323694ee640978888d0c8c4f61f951d119ccec52b1dd5fe0668cfffb6648", size = 2676879, upload-time = "2024-02-26T13:47:34.66Z" }, + { url = "https://files.pythonhosted.org/packages/30/b0/73fc250af13256c1c1db1edd17f2786fb02dda4c141d809b0d4159c6bbf1/biopython-1.83-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec82350c24cdcf34a8d4a5f189d0ff7dc025658098a60e6f0e681d24b6a1414e", size = 3100642, upload-time = "2024-01-10T12:27:16.517Z" }, + { url = "https://files.pythonhosted.org/packages/98/ed/5a342a9a3fe84a2b7699881331bb6e7296fb6332ec4c0a705ff82c9b8dde/biopython-1.83-cp39-cp39-win32.whl", hash = "sha256:e914f7161b3831d7c58db33cc5c7ca64b42c9877c5a776a8313e7a5fd494f8de", size = 2689415, upload-time = "2024-01-10T12:27:21.629Z" }, + { url = "https://files.pythonhosted.org/packages/f1/27/be0ea2b3b5a03976e122376954c3b0f761a5ba55f107ee3b050725bf1c1e/biopython-1.83-cp39-cp39-win_amd64.whl", hash = "sha256:aae1b156a76907c2abfe9d141776b0aead65695ea914eaecdf12bd1e8991f869", size = 2725199, upload-time = "2024-01-10T12:27:26.191Z" }, +] + +[[package]] +name = "biopython" +version = "1.85" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/ca/1d5fab0fedaf5c2f376d9746d447cdce04241c433602c3861693361ce54c/biopython-1.85.tar.gz", hash = "sha256:5dafab74059de4e78f49f6b5684eddae6e7ce46f09cfa059c1d1339e8b1ea0a6", size = 19909902, upload-time = "2025-01-15T15:06:51.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/de/79824470fdc5c2aedeb1bab637d24eab654a7e9fbb7070f779fd944fd1ca/biopython-1.85-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a6308053a61f3bdbb11504ece4cf24e264c6f1d6fad278f7e59e6b84b0d9a7b4", size = 2787511, upload-time = "2025-01-15T15:11:56.656Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d6/3c90df2ebc4f2a522235f4391392253e528f19f5fb6a52396a2316e17064/biopython-1.85-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:434dd23e972b0c89e128f2ebbd16b38075d609184f4f1fd16368035f923019c2", size = 2765456, upload-time = "2025-01-15T15:12:05.177Z" }, + { url = "https://files.pythonhosted.org/packages/ff/d7/34233c4ee906b088b199eb2af9c4107384a547d44b5960257ef2bf2cc3c8/biopython-1.85-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a08d082e85778259a83501063871e00ba57336136403b75050eea14d523c00a", size = 3225137, upload-time = "2025-01-15T15:12:15.847Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6b/e7a5ae49ef7e8f81720593db22e884c1c8e3504e0e235da0395758a5c7d0/biopython-1.85-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93464e629950e4df87d810125dc4e904538a4344b924f340908ea5bc95db986", size = 3245258, upload-time = "2025-01-15T15:12:21.012Z" }, + { url = "https://files.pythonhosted.org/packages/68/2c/0035656dbe51ac0bbe81321172b43c37b38408f8d136abaac443e9f44b62/biopython-1.85-cp310-cp310-win32.whl", hash = "sha256:f2f45ab3f1e43fdaa697fd753148999090298623278097c19c2c3c0ba134e57c", size = 2786505, upload-time = "2025-01-15T15:12:26.545Z" }, + { url = "https://files.pythonhosted.org/packages/32/a4/f20d5830dbd8654c13e763daef429fa32ef0b2b09749ac427d045cc81976/biopython-1.85-cp310-cp310-win_amd64.whl", hash = "sha256:7c8326cd2825ba166abecaf72843b9b15823affd6cec04fde65f0d2526767da4", size = 2820961, upload-time = "2025-01-15T15:12:32.364Z" }, + { url = "https://files.pythonhosted.org/packages/c3/73/c3a1323a3fe0d07212b09c04fb903e2cbb98aebfbb58e55e8717473e1bc0/biopython-1.85-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db8822adab0cd75a6e6ae845acf312addd8eab5f9b731c191454b961fc2c2cdc", size = 2787585, upload-time = "2025-01-15T15:12:36.927Z" }, + { url = "https://files.pythonhosted.org/packages/ff/cf/299524e896fa49beb7588143e1509cce4848572215ebafb8eea83a861820/biopython-1.85-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e2bbe58cc1a592b239ef6d68396745d3fbfaafc668ce38283871d8ff070dbab", size = 2765608, upload-time = "2025-01-15T15:12:43.853Z" }, + { url = "https://files.pythonhosted.org/packages/b1/dd/be3e95b72a35ee6d52c84412e15af828951e5c69175080d4619985fd54ce/biopython-1.85-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5916eb56df7ecd4a3babc07a48d4894c40cfb45dc18ccda1c148d0131017ce04", size = 3237552, upload-time = "2025-01-15T15:12:49.046Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/612821b946930b6caa5d795cfe4169ed6a522562eced9776914be7efaf21/biopython-1.85-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0cec8833bf3036049129944ee5382dd576dac9670c3814ff2314b52aa94f199", size = 3257287, upload-time = "2025-01-15T15:12:56.168Z" }, + { url = "https://files.pythonhosted.org/packages/a1/77/316e51dd42fd8225429574a268bdc627ce4f42067a3976c4c8c457a42023/biopython-1.85-cp311-cp311-win32.whl", hash = "sha256:cf88a4c8d8af13138be115949639a5e4a201618185a72ff09adbe175b7946b28", size = 2786411, upload-time = "2025-01-15T15:13:02.754Z" }, + { url = "https://files.pythonhosted.org/packages/f2/11/3c4e8c049b91998bbbd51ddebc6f790b1aa66211babfbf5ff008a72fb1f9/biopython-1.85-cp311-cp311-win_amd64.whl", hash = "sha256:d3c99db65d57ae4fc5034e42ac6cd8ddce069e664903f04c8a4f684d7609d6fa", size = 2820912, upload-time = "2025-01-15T15:13:10.499Z" }, + { url = "https://files.pythonhosted.org/packages/a3/25/e46f05359df7f0049c3adc5eaeb9aee0f5fbde1d959d05c78eb1de8f4d12/biopython-1.85-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc5b981b9e3060db7c355b6145dfe3ce0b6572e1601b31211f6d742b10543874", size = 2789327, upload-time = "2025-01-15T15:13:17.086Z" }, + { url = "https://files.pythonhosted.org/packages/54/5b/8b3b029c94c63ab4c1781d141615b4a837e658422381d460c5573d5d8262/biopython-1.85-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6fe47d704c2d3afac99aeb461219ec5f00273120d2d99835dc0a9a617f520141", size = 2765805, upload-time = "2025-01-15T15:13:26.92Z" }, + { url = "https://files.pythonhosted.org/packages/69/0a/9a8a38eff03c4607b9cec8d0e08c76b346b1cee1f77bc6d00efebfc7ec83/biopython-1.85-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e54e495239e623660ad367498c2f7a1a294b1997ba603f2ceafb36fd18f0eba6", size = 3249276, upload-time = "2025-01-15T15:13:36.639Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0d/b7a0f10f5100dcf51ae36ba31490169bfa45617323bd82af43e1fb0098fb/biopython-1.85-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d024ad48997ad53d53a77da24b072aaba8a550bd816af8f2e7e606a9918a3b43", size = 3268869, upload-time = "2025-01-15T15:13:44.009Z" }, + { url = "https://files.pythonhosted.org/packages/07/51/646a4b7bdb4c1153786a70d33588ed09178bfcdda0542dfdc976294f4312/biopython-1.85-cp312-cp312-win32.whl", hash = "sha256:6985e17a2911defcbd30275a12f5ed5de2765e4bc91a60439740d572fdbfdf43", size = 2787011, upload-time = "2025-01-15T15:13:48.958Z" }, + { url = "https://files.pythonhosted.org/packages/c1/84/c583fa2ac6e7d392d24ebdc5c99e95e517507de22cf143efb6cf1fc93ff5/biopython-1.85-cp312-cp312-win_amd64.whl", hash = "sha256:d6f8efb2db03f2ec115c5e8c764dbadf635e0c9ecd4c0e91fc8216c1b62f85f5", size = 2820972, upload-time = "2025-01-15T15:13:54.475Z" }, + { url = "https://files.pythonhosted.org/packages/c3/3f/65814bf221f0bfdd2633830e573ac8594794686f54110571dce98cc32fd3/biopython-1.85-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bae6f17262f20e9587d419ba5683e9dc93a31ee1858b98fa0cff203694d5b786", size = 2789844, upload-time = "2025-01-15T15:14:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/be/61/1443ce34226e261c20ae4a154b2bab72c109cf31415c92c54c1aada36b00/biopython-1.85-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1e4918e6399ab0183dd863527fec18b53b7c61b6f0ef95db84b4adfa430ce75", size = 2765767, upload-time = "2025-01-15T15:14:07.096Z" }, + { url = "https://files.pythonhosted.org/packages/53/51/bec4c763c704e2715691bb087cfab5907804a1bbef5873588698cece1a30/biopython-1.85-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86e487b6fe0f20a2b0138cb53f3d4dc26a7e4060ac4cb6fb1d19e194d445ef46", size = 3248867, upload-time = "2025-01-15T15:14:12.822Z" }, + { url = "https://files.pythonhosted.org/packages/9e/a4/552f20253a7c95988067c4955831bd17dd9b864fd5c215d15c2f63f2d415/biopython-1.85-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:327184048b5a50634ae0970119bcb8a35b76d7cefb2658a01f772915f2fb7686", size = 3268479, upload-time = "2025-01-15T15:14:20.414Z" }, + { url = "https://files.pythonhosted.org/packages/97/f4/6dfc6ef3e0997f792f93893551d4a9bf7f6052a70d34f4e1b1e5e4a359f6/biopython-1.85-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66b08905fb1b3f5194f908aaf04bbad474c4e3eaebad6d9f889a04e64dd1faf4", size = 3192338, upload-time = "2025-01-15T15:14:26.843Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/73da6588fab3a7d734118f21ac619c0a949f51d3cf7b1b8343d175c33460/biopython-1.85-cp313-cp313-win32.whl", hash = "sha256:5a236ab1e2797c7dcf1577d80fdaafabead2908bc338eaed0aa1509dab769fef", size = 2787017, upload-time = "2025-01-15T15:14:33.802Z" }, + { url = "https://files.pythonhosted.org/packages/60/ff/fe8f03ac0ccc7219e0959010750c6ac1a5b1411c91c7f4ec3a37d8313673/biopython-1.85-cp313-cp313-win_amd64.whl", hash = "sha256:1b61593765e9ebdb71d73307d55fd4b46eb976608d329ae6803c084d90ed34c7", size = 2821012, upload-time = "2025-01-15T15:14:40.825Z" }, + { url = "https://files.pythonhosted.org/packages/b3/04/9bdf0003913803d3d2239785f0f53875694dd441bd5e1a8c1581cab37747/biopython-1.85-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d76e44b46f555da2e72ac36e757efd327f7f5f690e9f00ede6f723b48538b6d5", size = 2787519, upload-time = "2025-01-15T15:14:45.867Z" }, + { url = "https://files.pythonhosted.org/packages/a4/9b/bef7dd17980eb4625c3c69411d3273e9b45d83dc7e2f1c63719607fa1026/biopython-1.85-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8469095907a17f156c76b6644829227efdf4996164f7726e6f4ca15039329776", size = 2765442, upload-time = "2025-01-15T15:14:51.469Z" }, + { url = "https://files.pythonhosted.org/packages/94/49/20f55dcfcc5487d84a6a4c84b59bcfb7ae2610f7370847b07e63e0f79cc6/biopython-1.85-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cffc15ac46688cd4cf662b24d03037234ce00b571df67be45a942264f101f990", size = 3223396, upload-time = "2025-01-15T15:14:56.519Z" }, + { url = "https://files.pythonhosted.org/packages/80/5a/6ba0066b7f38b9e7a085f2fc4c171a25ebfa64202aab0965961621f561e1/biopython-1.85-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a630b3804f6c3fcae2f9b7485d7a05425e143fc570f25babbc5a4b3d3db00d7", size = 3243475, upload-time = "2025-01-15T15:15:01.798Z" }, + { url = "https://files.pythonhosted.org/packages/90/1d/a38a9a61abd4a917fb9b95698971914d722e75027885bdb957b0fe757cd5/biopython-1.85-cp39-cp39-win32.whl", hash = "sha256:0ffb03cd982cb3a79326b84e789f2093880175c44eea10f3030c632f98de24f6", size = 2786482, upload-time = "2025-01-15T15:15:06.532Z" }, + { url = "https://files.pythonhosted.org/packages/4a/46/9cb732167a3ce4fd40920d1bec444d1739aaf18b58190f2fab8692fcaba5/biopython-1.85-cp39-cp39-win_amd64.whl", hash = "sha256:8208bf2d87ade066fafe9a63a2eb77486c233bc1bdda2cbf721ebee54715f1bf", size = 2820941, upload-time = "2025-01-15T15:15:12.311Z" }, +] + [[package]] name = "blake3" version = "1.0.5" @@ -530,6 +622,36 @@ css = [ { name = "tinycss2", version = "1.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] +[[package]] +name = "blinker" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/1e/57/a6a1721eff09598fb01f3c7cda070c1b6a0f12d63c83236edf79a440abcc/blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83", size = 23161, upload-time = "2024-05-06T17:04:10.101Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/2a/10164ed1f31196a2f7f3799368a821765c62851ead0e630ab52b8e14b4d0/blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01", size = 9456, upload-time = "2024-05-06T17:04:08.444Z" }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + [[package]] name = "bqplot" version = "0.12.45" @@ -853,6 +975,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c6/c6/9963d588cc3d75d766c819e0377a168ef83cf3316a92769971527a1ad1de/colorcet-3.1.0-py3-none-any.whl", hash = "sha256:2a7d59cc8d0f7938eeedd08aad3152b5319b4ba3bcb7a612398cc17a384cb296", size = 260286, upload-time = "2024-02-29T19:15:40.494Z" }, ] +[[package]] +name = "colour" +version = "0.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/d4/5911a7618acddc3f594ddf144ecd8a03c29074a540f4494670ad8f153efe/colour-0.1.5.tar.gz", hash = "sha256:af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee", size = 24776, upload-time = "2017-11-19T23:20:08.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/46/e81907704ab203206769dee1385dc77e1407576ff8f50a0681d0a6b541be/colour-0.1.5-py2.py3-none-any.whl", hash = "sha256:33f6db9d564fadc16e59921a56999b79571160ce09916303d35346dddc17978c", size = 23772, upload-time = "2017-11-19T23:20:04.56Z" }, +] + [[package]] name = "comm" version = "0.2.2" @@ -1020,6 +1151,57 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, ] +[[package]] +name = "dash" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "flask", version = "3.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "nest-asyncio" }, + { name = "plotly" }, + { name = "requests" }, + { name = "retrying" }, + { name = "setuptools", version = "75.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "setuptools", version = "80.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "typing-extensions", version = "4.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "typing-extensions", version = "4.14.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "werkzeug", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "werkzeug", version = "3.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/7c/8569c50a4c07fabee6b2428a1515c0c92247e2127367b438a9f99d69723c/dash-3.1.1.tar.gz", hash = "sha256:916b31cec46da0a3339da0e9df9f446126aa7f293c0544e07adf9fe4ba060b18", size = 7544441, upload-time = "2025-06-30T15:31:30.518Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/df/267614cbc1003f6982d7078fd5c7591778f75e07bf36d4771fcb2eab8ff1/dash-3.1.1-py3-none-any.whl", hash = "sha256:66fff37e79c6aa114cd55aea13683d1e9afe0e3f96b35388baca95ff6cfdad23", size = 7885616, upload-time = "2025-06-30T15:31:22.768Z" }, +] + +[[package]] +name = "dash-bio" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "biopython", version = "1.83", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "biopython", version = "1.85", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "colour" }, + { name = "dash" }, + { name = "geoparse" }, + { name = "jsonschema", version = "4.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "jsonschema", version = "4.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "parmed" }, + { name = "periodictable" }, + { name = "requests" }, + { name = "scikit-learn", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scikit-learn", version = "1.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scikit-learn", version = "1.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7e/eb/5f12d4b0b91974e2457aaf344230010488453edadffb9e5c241eb9f02d34/dash_bio-1.0.2.tar.gz", hash = "sha256:6de28e412a37aef19429579f3285c27a5d4f21d8f387564d0698d63466259a36", size = 10214690, upload-time = "2022-03-19T01:34:19.559Z" } + [[package]] name = "dask" version = "2023.5.0" @@ -1067,6 +1249,103 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/db/47/136a5dd68a33089f96f8aa1178ccd545d325ec9ab2bb42a3038711a935c0/dask-2024.8.0-py3-none-any.whl", hash = "sha256:250ea3df30d4a25958290eec4f252850091c6cfaed82d098179c3b25bba18309", size = 1233681, upload-time = "2024-08-06T20:23:42.258Z" }, ] +[[package]] +name = "datashader" +version = "0.15.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "colorcet", marker = "python_full_version < '3.9'" }, + { name = "dask", version = "2023.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "datashape", marker = "python_full_version < '3.9'" }, + { name = "numba", version = "0.58.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "param", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pillow", version = "10.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyct", marker = "python_full_version < '3.9'" }, + { name = "requests", marker = "python_full_version < '3.9'" }, + { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "toolz", marker = "python_full_version < '3.9'" }, + { name = "xarray", version = "2023.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/16/e765a52ecde43565be52cfff60d53ac4892ea89641ec24db3f0fae36f80f/datashader-0.15.2.tar.gz", hash = "sha256:9539529379287d69c10e9ab4e0b2900e1a16004d6ff06de0d84aa62c4833b1bb", size = 35653073, upload-time = "2023-08-17T10:29:12.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/ef/5b62935b9fb53828a7740fd77e94641a398c5639762f6aee0cd4ceb47bef/datashader-0.15.2-py2.py3-none-any.whl", hash = "sha256:9af96d76bc7011c60b4e76177e283efe20e060278ecd81ce7005a4d80a4dc69e", size = 18261448, upload-time = "2023-08-17T10:29:09.58Z" }, +] + +[[package]] +name = "datashader" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "colorcet", marker = "python_full_version == '3.9.*'" }, + { name = "multipledispatch", marker = "python_full_version == '3.9.*'" }, + { name = "numba", version = "0.60.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "packaging", marker = "python_full_version == '3.9.*'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "param", version = "2.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "pyct", marker = "python_full_version == '3.9.*'" }, + { name = "requests", marker = "python_full_version == '3.9.*'" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "toolz", marker = "python_full_version == '3.9.*'" }, + { name = "xarray", version = "2024.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/f9/39f5589bc8f645ba77b6afe70df82b3f79d799e721b79dcf83d91d0f396a/datashader-0.17.0.tar.gz", hash = "sha256:571aaea639e62222ba2fc49a530cffb3b1b183b6ec8ca8054978e01d2de79440", size = 18195497, upload-time = "2025-01-29T19:19:00.205Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/52/755bbab06c4d10f693abb724e82271ccf8adc98e9305a5c559867ee40c98/datashader-0.17.0-py3-none-any.whl", hash = "sha256:39421ff999294913e63d41954af955a5dece5d0c55d8fce1426043d70b22d07a", size = 18330202, upload-time = "2025-01-29T19:18:56.103Z" }, +] + +[[package]] +name = "datashader" +version = "0.18.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "colorcet", marker = "python_full_version >= '3.10'" }, + { name = "multipledispatch", marker = "python_full_version >= '3.10'" }, + { name = "numba", version = "0.60.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numba", version = "0.61.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "packaging", marker = "python_full_version >= '3.10'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "param", version = "2.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pyct", marker = "python_full_version >= '3.10'" }, + { name = "requests", marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "toolz", marker = "python_full_version >= '3.10'" }, + { name = "xarray", version = "2025.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3a/e0/84a61b2c0d677719979b3bbd6a2b6c8d58c0600b9976da28e9306887e8ef/datashader-0.18.1.tar.gz", hash = "sha256:ad9390a9178eb03493fb67649f6570d59ccb371cf663533e0672a1826bb436b0", size = 18194615, upload-time = "2025-05-08T07:16:10.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/3d/f783a19cedbd5e146543775404d6976ca2162fec53ccbba5ffd8da68bd9a/datashader-0.18.1-py3-none-any.whl", hash = "sha256:5585af146e83af51c61d49168a741a6280a482072572e16573af1e5c6b600f8a", size = 18329111, upload-time = "2025-05-08T07:16:07.429Z" }, +] + +[[package]] +name = "datashape" +version = "0.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "multipledispatch", marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "python-dateutil", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/5b/95b2ed56b61e649b69c9a5b1ecb32ff0a5cd68b9f69f5aa7774540e6b444/datashape-0.5.2.tar.gz", hash = "sha256:2356ea690c3cf003c1468a243a9063144235de45b080b3652de4f3d44e57d783", size = 76465, upload-time = "2016-04-25T16:26:13.503Z" } + [[package]] name = "debugpy" version = "1.8.14" @@ -1239,6 +1518,53 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/55/2b98f4e82017a1ff10ffcc5e9860be23d28fd14a17440b1b1e45ae062e63/fiona-1.9.6-cp39-cp39-win_amd64.whl", hash = "sha256:f1b49d51a744874608b689f029766aa1e078dd72e94b44cf8eeef6d7bd2e9051", size = 22911558, upload-time = "2024-03-08T16:10:27.35Z" }, ] +[[package]] +name = "flask" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "blinker", version = "1.8.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "click", marker = "python_full_version < '3.9'" }, + { name = "importlib-metadata", version = "8.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "itsdangerous", marker = "python_full_version < '3.9'" }, + { name = "jinja2", marker = "python_full_version < '3.9'" }, + { name = "werkzeug", version = "3.0.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/e1/d104c83026f8d35dfd2c261df7d64738341067526406b40190bc063e829a/flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842", size = 676315, upload-time = "2024-04-07T19:26:11.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3", size = 101735, upload-time = "2024-04-07T19:26:08.569Z" }, +] + +[[package]] +name = "flask" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "blinker", version = "1.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "click", marker = "python_full_version >= '3.9'" }, + { name = "importlib-metadata", version = "8.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "itsdangerous", marker = "python_full_version >= '3.9'" }, + { name = "jinja2", marker = "python_full_version >= '3.9'" }, + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "werkzeug", version = "3.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/de/e47735752347f4128bcf354e0da07ef311a78244eba9e3dc1d4a5ab21a98/flask-3.1.1.tar.gz", hash = "sha256:284c7b8f2f58cb737f0cf1c30fd7eaf0ccfcde196099d24ecede3fc2005aa59e", size = 753440, upload-time = "2025-05-13T15:01:17.447Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/68/9d4508e893976286d2ead7f8f571314af6c2037af34853a30fd769c02e9d/flask-3.1.1-py3-none-any.whl", hash = "sha256:07aae2bb5eaf77993ef57e357491839f5fd9f4dc281593a81a9e4d79a24f295c", size = 103305, upload-time = "2025-05-13T15:01:15.591Z" }, +] + [[package]] name = "fonttools" version = "4.57.0" @@ -1485,8 +1811,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pyogrio", marker = "python_full_version >= '3.10'" }, @@ -1498,6 +1824,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/82/79e02a0e5dd4aca81894842b9d6522624a40048a913c6384efb2987a4144/geopandas-1.1.0-py3-none-any.whl", hash = "sha256:b19b18bdc736ee05b237f5e9184211c452768a4c883f7d7f8421b0cbe1da5875", size = 338014, upload-time = "2025-06-01T16:54:29.239Z" }, ] +[[package]] +name = "geoparse" +version = "2.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/a9/0a2621953ddffd6957cd2db0f3553e6ee9ce1401bbd87167800561f8c977/geoparse-2.0.4.tar.gz", hash = "sha256:f2185310e5f7c6bd551c763476ad8a296cf7c355afa3136881e4bad5a5dad81a", size = 277953, upload-time = "2024-04-23T19:02:04.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/4a/b6a3e141c21e4d4b72b0c11231c1d88a8bae127f43921c5dea391b299b2a/GEOparse-2.0.4-py3-none-any.whl", hash = "sha256:5982e38d1e66314bd20ad5ad8313a6adef8cf9c29e44583aaca13261e404d622", size = 29043, upload-time = "2024-04-23T19:02:01.807Z" }, +] + [[package]] name = "ghp-import" version = "2.1.0" @@ -1510,6 +1854,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, ] +[[package]] +name = "google" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/97/b49c69893cddea912c7a660a4b6102c6b02cd268f8c7162dd70b7c16f753/google-3.0.0.tar.gz", hash = "sha256:143530122ee5130509ad5e989f0512f7cb218b2d4eddbafbad40fd10e8d8ccbe", size = 44978, upload-time = "2020-07-11T14:50:45.678Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/35/17c9141c4ae21e9a29a43acdfd848e3e468a810517f862cad07977bf8fe9/google-3.0.0-py2.py3-none-any.whl", hash = "sha256:889cf695f84e4ae2c55fbc0cfdaf4c1e729417fa52ab1db0485202ba173e4935", size = 45258, upload-time = "2020-07-11T14:49:58.287Z" }, +] + [[package]] name = "griffe" version = "1.4.0" @@ -1720,6 +2076,107 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] +[[package]] +name = "igraph" +version = "0.11.8" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "texttable", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b8/8e/8810c9ccdef97c614423ca82fca693608db9546a1a9716671035e3630499/igraph-0.11.8.tar.gz", hash = "sha256:d7dc1404567ba3b0ea1bf8b5fa6e101617915c8ad11ea5a9f925a40bf4adad7d", size = 4568774, upload-time = "2024-10-28T12:50:33.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/00/a9a6f46fbc40dbef90be06d49502ba9cd5a65a4528818cbe44c2556cbc1a/igraph-0.11.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9a7aa8e65e7b9ddfe66f9473ce93863f40fccac26b24dc3f56e63159641c9946", size = 1948543, upload-time = "2024-10-28T12:49:17.27Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c9/8e44056c29252fdb70323e8c4963d712976e052e77c3650092d15aef95f0/igraph-0.11.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9e953e1c5e9c5712a48df5cea93963be84aa26618cdae341b4a6b07761f56a45", size = 1753351, upload-time = "2024-10-28T12:49:19.229Z" }, + { url = "https://files.pythonhosted.org/packages/4d/79/c79e8d8d4786e3cf07c9021289a29da3ab6fbebf47309edf3c63f6d3a66f/igraph-0.11.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9baf699fdd10491e9a0842e546e630165c49c78d21ac4aaa9fb434ab4a817458", size = 2992553, upload-time = "2024-10-28T12:49:20.963Z" }, + { url = "https://files.pythonhosted.org/packages/58/14/f0473cc62ee6f407ecc8702effc21f4cdb7751de3f6e30972a1b762c111f/igraph-0.11.8-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:434e35d935675caddac3221863b43a02085c7f66030eda542f0dd9fc36e1f8ff", size = 3068373, upload-time = "2024-10-28T12:49:23.638Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e2/7f051001ea1c8b317e832b9e17a252a1a167911836151c13942254d984d6/igraph-0.11.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:745e5d7aebca7e9c16f882041718c8ceeb404a5c7201cb8685f57b0e19ebe24d", size = 3151759, upload-time = "2024-10-28T12:49:25.526Z" }, + { url = "https://files.pythonhosted.org/packages/c9/cb/95f498e61c69fb63ff22e614f81143a90443919b119d0bfc18c77b25f62d/igraph-0.11.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24c97ce9f40a358a8d6ff9c27fab0e4617068aaeeb5448247308c67519b91fa2", size = 3901786, upload-time = "2024-10-28T12:49:27.665Z" }, + { url = "https://files.pythonhosted.org/packages/f3/30/5faae7d8d7a3f5e15e257778a8d505b3b5bd25c834d864570a7a0ad76ca2/igraph-0.11.8-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c89ab68f076528736d4ed56a01983d7fd433f50b08c58bee7ded2326a4eacda1", size = 4176015, upload-time = "2024-10-28T12:49:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/cd/44/25eb1f46194dc48294e7b814fff0a7785eef081d96e8411272e7b79afa64/igraph-0.11.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:d964fc35d65ce67b121e4dcfd7d3479fb3eeb232b6a346a217e397c7d5c5f124", size = 4064310, upload-time = "2024-10-28T12:49:32.06Z" }, + { url = "https://files.pythonhosted.org/packages/34/80/e0fb04e36bdf1f42f4f832d57dba7b06f9aab9b1d3a5bb187711cfd432c9/igraph-0.11.8-cp38-cp38-win32.whl", hash = "sha256:511b036c876fdbfc919a6a4c72b0335fd2a6a3249e5e4312b660390213875afb", size = 1597473, upload-time = "2024-10-28T12:49:33.694Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a2/eb684a26c83008b9e0f8c99e6fe021f4081840a7bf458b700c70e8bd1909/igraph-0.11.8-cp38-cp38-win_amd64.whl", hash = "sha256:417b8375c1c9adbb431f7481a6cae6f9e440db81d8d4ee6fa5d2c2983148930a", size = 1976911, upload-time = "2024-10-28T12:49:35.789Z" }, + { url = "https://files.pythonhosted.org/packages/24/f4/0c39bd163de47bf2e293813a9b4ae61e34575142dde2b744151c872f9da9/igraph-0.11.8-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:92c47ceb9f4c95ff7461cd94eaec55e901dbc59f6e51f4244d2dd064f31c5491", size = 1948579, upload-time = "2024-10-28T12:49:37.89Z" }, + { url = "https://files.pythonhosted.org/packages/dd/7e/8ee4e8f03b03feca33bb9dcc730724353ac36cbe7da7b38397f8ae5cd58b/igraph-0.11.8-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:3a2afdb046b602fea71ca18aff6c72165de5002ec38d0dcf1275e34ecd0d9d02", size = 1753346, upload-time = "2024-10-28T12:49:39.808Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7d/9d23c0936070f5beb99559c1064c9057374dfa435c7e3b13504d5a2c839e/igraph-0.11.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7870fb72fd9e9218940262671fb79baf281ef066aa1cd35adc092ce9ad39a038", size = 2984081, upload-time = "2024-10-28T12:49:41.448Z" }, + { url = "https://files.pythonhosted.org/packages/88/b0/210f242123b14d3ff4b36f97410f928e9bf446414c066dc8d3b8c9cad2ab/igraph-0.11.8-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c8108138ad605714761bc6d526feab54074904a99c47dcaabc269ed7b45e7650", size = 3060225, upload-time = "2024-10-28T12:49:43.112Z" }, + { url = "https://files.pythonhosted.org/packages/90/61/ec7edb5233ec2dc3d2129d94211801fb46a1c2b9beec40989707c82271f7/igraph-0.11.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2e3abe641622cd9c95eb152c97caa22e68257a524cc1851a099b066f8f5c5f3", size = 3142403, upload-time = "2024-10-28T12:49:45.802Z" }, + { url = "https://files.pythonhosted.org/packages/6b/89/09f1d251c48f239238cf75714e8cee8fcaacb3513620e0f59dbf1ef0c51d/igraph-0.11.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b546eaa9461473a65bb56a51672c6aeb898b737d5e86c3efa1b1bf520ee4b031", size = 3893169, upload-time = "2024-10-28T12:49:48Z" }, + { url = "https://files.pythonhosted.org/packages/e2/90/3e913fd9698fb91f002fc7a96b2c81bdd77bb8f60f7cb3ec922b6e218666/igraph-0.11.8-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:178ef859135ac5075a7159e6826a546b7340cf45a01a928c2a0c24c32e3dfa63", size = 4168476, upload-time = "2024-10-28T12:49:51.03Z" }, + { url = "https://files.pythonhosted.org/packages/4f/76/35ae678a78bd1d221af92f3ab98bedbce24968d9d096a2ddfde8580fbe5b/igraph-0.11.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a68ae7b6324e9c4cb1d04ce75b6e0f67974433fc7667895f1e25bf4f4c6fd530", size = 4056329, upload-time = "2024-10-28T12:49:53.302Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f5/8c79fd8cdb3708cb404a31538c11eec4283e72dfc8cb47307966f0a3af74/igraph-0.11.8-cp39-abi3-win32.whl", hash = "sha256:cc93d2f97f93bf30c2027c31e9e1aa088a3c60cdfeb6b33e0259e4b40b4c5597", size = 1597440, upload-time = "2024-10-28T12:49:55.027Z" }, + { url = "https://files.pythonhosted.org/packages/b0/17/621d3a59430851a327421fdbec9ec8494d7fadaffc6dfdd42d4a95accbf2/igraph-0.11.8-cp39-abi3-win_amd64.whl", hash = "sha256:248831a6162130f16909c1f776cc246b48f692339ea4baca489cad4ed8dc0e13", size = 1976778, upload-time = "2024-10-28T12:49:57.022Z" }, + { url = "https://files.pythonhosted.org/packages/54/0c/d293db1a7353632387afc00ae92a2d024bf098fd9336ab98c047c8e7f87d/igraph-0.11.8-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f0a8cad10406fba28c4b0199dfb491bcfdf1cdd3a56feeb52bb3b1cd724d04b4", size = 1936005, upload-time = "2024-10-28T12:49:58.965Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e6/492b224f2d4fac430ce93cfd462dcb35fd73746baefe8f5a26e09226b312/igraph-0.11.8-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1c11127a58ac2fc8062dac9f20ef612aff1b09f5f9d3e90800c4817229d0a0bc", size = 1741196, upload-time = "2024-10-28T12:50:01.035Z" }, + { url = "https://files.pythonhosted.org/packages/bd/35/0f6bc83d217c853b527f01a73cdc970894374e627b8751363e3e017bbf0f/igraph-0.11.8-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17d79bfb170b8c195fe6bacfa1c906817e8e812417c7e6a8e15f0bcf9b0775a8", size = 2595984, upload-time = "2024-10-28T12:50:02.891Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/d94a1ff1d9502a880e175054667167f097f12bf67243bc70d22cc005bba8/igraph-0.11.8-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9de09a26d7aae4d83338497cfd2d107d3ee3a2e9335b9db4b6c73a089e8cf47", size = 2759711, upload-time = "2024-10-28T12:50:04.758Z" }, + { url = "https://files.pythonhosted.org/packages/1a/9e/2d51720ec198b8ee9fe8d15044c0b69673876d303b7b69587c34c1a2239a/igraph-0.11.8-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6559e2c925ed2ac608103adfd1dec9ccb9a04ddc7ad1d9d2a7db46dda6b1955", size = 2764832, upload-time = "2024-10-28T12:50:07.175Z" }, + { url = "https://files.pythonhosted.org/packages/ba/77/af680ee6e6d81bf803dcc0ae9c116e7c160f86014bdd3a584bcac93077ad/igraph-0.11.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6c17658b367be4f725a253678bfe799d9fe4d4e5c01ad82449cf8f2e9917937c", size = 1976705, upload-time = "2024-10-28T12:50:08.978Z" }, + { url = "https://files.pythonhosted.org/packages/f1/db/3795e7afd85a0498eb732eb915780ad7c8db2d5a11f80271a15afaa7814d/igraph-0.11.8-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d4971b4fcb005ed72f630a5f4c9bb80f10153471fe30846810f63beb3e282a19", size = 1935931, upload-time = "2024-10-28T12:50:10.442Z" }, + { url = "https://files.pythonhosted.org/packages/a4/95/c56e3cb4e8b2989818046f49e9b0b4701e982b0f3a4906db8fb6628524ef/igraph-0.11.8-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d7b1eaa3563c1e2dda940c1f154fefe9b3b257da8e8251af443cdc69a039480", size = 1741245, upload-time = "2024-10-28T12:50:12.059Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/7277ce5bd7fc147f8350a8298246d35d5d3e952c801fbd2a3d98e7729a9c/igraph-0.11.8-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35438d6d69a73288949a80f1eb84597e783486cd71a5cdf5862c0db7a7cbd5c5", size = 2596328, upload-time = "2024-10-28T12:50:13.643Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c8/dc366f9cd89103eeef1700b5793018e59859b72fa1b1c937016eb2ad3313/igraph-0.11.8-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09c609c5d6a844582a10085c18c1c15d14b2f9fd3be59fed3feaa4be091d671f", size = 2759682, upload-time = "2024-10-28T12:50:15.482Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f0/2df6f78248cf9701614f9f6e34fbd19cd81ffe7b1014099adce0c6c068a6/igraph-0.11.8-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9b836baa221027f1781ebcff05f1b23339a51a63eb70948ebaba5641efc060a", size = 2764760, upload-time = "2024-10-28T12:50:18.099Z" }, + { url = "https://files.pythonhosted.org/packages/93/75/2ed47a02df1d65d8d8148e9a600237ec0c6350b8bbab1498aa5d2a8c9ba7/igraph-0.11.8-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:caf4a178f7fb7890195c9fb358dbef0ed4a4f5323f529ea14a0f64da4c05f564", size = 1976596, upload-time = "2024-10-28T12:50:19.979Z" }, + { url = "https://files.pythonhosted.org/packages/5e/90/1bf6f93e561ec7bfb69af93ecc395eb6b3e9fded57529f4bf38b3eb6e7a4/igraph-0.11.8-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e702a436935d3e127f6affff397ebbab48b522434bd8d6f15cfb1ab5d940e7d5", size = 1935989, upload-time = "2024-10-28T12:50:21.609Z" }, + { url = "https://files.pythonhosted.org/packages/a6/6b/e4a79c2063d979f93204fdda35adea6e1b04750a3a6d439b190481a7e15f/igraph-0.11.8-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5bcad4d052785fe9b076f5aca6e870e2fae35373b09867477adc7307f2692a36", size = 1741176, upload-time = "2024-10-28T12:50:23.125Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9f/bcb7e522133ebbf9d6ba0ac7923ce01508c51fc5b9487b368c52de00d624/igraph-0.11.8-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d420cd48353e7c138bc39a118c3a01dc41aeba38486cca1524a960a755016171", size = 2596033, upload-time = "2024-10-28T12:50:25.172Z" }, + { url = "https://files.pythonhosted.org/packages/21/22/430bbc64d3efc8937a71436c3691c5ac11f21fd5c34b1c7308388e716a72/igraph-0.11.8-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ae9486a52da72d2ab634b92e17a969dc4e8e83303384329b903830ad67315e5", size = 2759696, upload-time = "2024-10-28T12:50:27.228Z" }, + { url = "https://files.pythonhosted.org/packages/f4/63/91f79e74fc78853842e46fc8883587e16d275f7b3cc4349ee80b2e2bf876/igraph-0.11.8-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4e36a4f8a40bb4ffc8aa08c1cfe6fa3dfa78393cf65165bd9d59e6ac24a2468", size = 2764848, upload-time = "2024-10-28T12:50:29.22Z" }, + { url = "https://files.pythonhosted.org/packages/e9/0c/465c20825f70c4f0c2fc774a9f291df91f81df18132e1f433f5b23fc9f75/igraph-0.11.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f4048b843be54a77bc7206ce8c58825a9b1b42748c1713699034dc4f7df36f73", size = 1976704, upload-time = "2024-10-28T12:50:30.82Z" }, +] + +[[package]] +name = "igraph" +version = "0.11.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "texttable", marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/a2/ed3f1513b14e98f73ad29a2bbd2898aef7ceac739e9eff1b3b6a9126dfe6/igraph-0.11.9.tar.gz", hash = "sha256:c57ce44873abcfcfd1d61d7d261e416d352186958e7b5d299cf244efa6757816", size = 4587322, upload-time = "2025-06-11T09:27:49.958Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/84/bbcde5833e2685b722ce04ed2ec542cff49f12b4d6a3aa27d23c4febd4db/igraph-0.11.9-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ef30a8eb6329a71211652223cad900dc42bc7fdb44d9e942e991181232906ac2", size = 1936209, upload-time = "2025-06-11T09:24:32.932Z" }, + { url = "https://files.pythonhosted.org/packages/15/47/6e94649b7fe12f3a82e75ef0f35fb0a2d860b13aafcfcfcdf467d50e9208/igraph-0.11.9-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:4b3224b2b74e9dfac1271dc6f2e1061d13492f91198d05e1b8b696b994e5e269", size = 1752923, upload-time = "2025-06-11T09:24:36.256Z" }, + { url = "https://files.pythonhosted.org/packages/2c/21/8649eebbe101ecc704863a05814ccca90f578afcfd990038c739027211e9/igraph-0.11.9-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:adf7d7200c2e11a3b1122786f77cee96072c593fd62794aadb5ce546a24fa791", size = 4133376, upload-time = "2025-06-11T09:24:40.65Z" }, + { url = "https://files.pythonhosted.org/packages/7c/63/c4e561d5947d728dc1dd244bd86c1c2d01bd1e1b14ec04e6dc9bac1e601c/igraph-0.11.9-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78a7f3a490f3f6a8aab99948e3e62ae81fc1e8a8aa07e326b09f4e570c042e79", size = 4285168, upload-time = "2025-06-11T09:24:46.84Z" }, + { url = "https://files.pythonhosted.org/packages/b8/79/a21fec50837ee429fd0cb675b93cd7db80f687a9eeab53f63ea02f0a5a99/igraph-0.11.9-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:773201c9eafef668be11d8966cf2d7114d34757cd9cfdbd8c190fefcd341220b", size = 4372306, upload-time = "2025-06-11T09:24:51.698Z" }, + { url = "https://files.pythonhosted.org/packages/8a/01/42bd858f01aa45f769f4edd0a643cf333f5a2b36efcca38f228af1cd02bc/igraph-0.11.9-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9bc6fb4316bc79bd0d800dd0186921ef62da971be147861872be90242acbae7d", size = 5250489, upload-time = "2025-06-11T09:24:57.376Z" }, + { url = "https://files.pythonhosted.org/packages/39/b5/44c6cd220baa6213a9edcc097aa9b2f4867d4f1f9b321369aa4820cb4790/igraph-0.11.9-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:e45d03bfb931b73f323b531fc0d87235ac96c41a64363b243677034576cf411b", size = 5638683, upload-time = "2025-06-11T09:25:03.056Z" }, + { url = "https://files.pythonhosted.org/packages/ef/06/91761a416d52ba7049dffa8bfc6eb14b41c5c7f926c6d02a3532030f59d6/igraph-0.11.9-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:157b4a836628ca55c6422098bf34336006c1d517fc86fa0e89af3a233e3baa30", size = 5512189, upload-time = "2025-06-11T09:25:09Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/b330e61dc2afb2f00bf152d1b570267741e2465a460a4f9a6e4c41057cbb/igraph-0.11.9-cp39-abi3-win32.whl", hash = "sha256:1fd67a0771b8ce70bef361557bdeb6ca7a1012f9fb8368eba86967deeb99a110", size = 2500729, upload-time = "2025-06-11T09:26:31.389Z" }, + { url = "https://files.pythonhosted.org/packages/1c/36/8de9605ba946f9ce82558e753ab08c4705124a92df561df83ac551c6e36a/igraph-0.11.9-cp39-abi3-win_amd64.whl", hash = "sha256:09c7d49c7759e058bf2526bbac54dd1f9e0725ff64352f01545db59c09de88cf", size = 2927497, upload-time = "2025-06-11T09:26:23.7Z" }, + { url = "https://files.pythonhosted.org/packages/e4/71/608f07217246858d5c73a68488bef60b819e502a3287e34a77743109011c/igraph-0.11.9-cp39-abi3-win_arm64.whl", hash = "sha256:8acca4f2463f4de572471cca2d46bb3ef5b3082bc125b9ec30e8032b177951df", size = 2568065, upload-time = "2025-06-11T09:26:27.491Z" }, + { url = "https://files.pythonhosted.org/packages/3e/1b/e1d03f3173f7b8b3b837f3d8ffbdbcdd942ab2e0e5ad824f29f5cce40af1/igraph-0.11.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:63f5953619b308b0afbb3ceb5c7b7ab3ee847eca348dfca7d7eb93290568ce02", size = 1922428, upload-time = "2025-06-11T09:26:35.023Z" }, + { url = "https://files.pythonhosted.org/packages/d2/a1/8c7619d74c587b793fcdff80424c0bc62dfaa8604510b5bceb3329ed4ce7/igraph-0.11.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a2c4384d1ea1fb071c1b367069783dc195919596d9bb73fef1eddf97cfb5613b", size = 1739360, upload-time = "2025-06-11T09:26:38.68Z" }, + { url = "https://files.pythonhosted.org/packages/53/5b/9403e5e90e496799226f5a0ea99582b41c9b97c99fd34256a33a6956cf13/igraph-0.11.9-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02e2e6747d3c70fcb539bc29b80377d63859f30db8a9b4bc6f440d317c07a47b", size = 2599045, upload-time = "2025-06-11T09:26:42.147Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f8/c2b3256f6aa986a4204bcdfd0be0d4fe44fdec66a14573ff1b16bb7d0e28/igraph-0.11.9-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f74dd13b36fd5a831632be0e8f0b3b1519067c479a820f54168e70ac0b71b89d", size = 2759711, upload-time = "2025-06-11T09:26:45.573Z" }, + { url = "https://files.pythonhosted.org/packages/1c/23/839f946aea34856ba0dd96320eb0c3cec1b52ab2f1ab7351d607a79ef8ca/igraph-0.11.9-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abb5097c402e82a8bb074ab9df2e45e0c9bcd76bb36a3a839e7cd4d71143bbba", size = 2765467, upload-time = "2025-06-11T09:26:49.147Z" }, + { url = "https://files.pythonhosted.org/packages/83/fa/cbb7226191a54238930d66701293cf66e5d0798b89b0c08d47812c8c79c8/igraph-0.11.9-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b0561914fc415dc2fa4194c39585336dde42c3cf5fafd1b404f5e847d055fa17", size = 2926684, upload-time = "2025-06-11T09:26:53.242Z" }, + { url = "https://files.pythonhosted.org/packages/cc/a6/9dbdb3063139102f899b30ce4b4aab30db9f741519432f876a75f3fce044/igraph-0.11.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a38e20a45499ae258c36ff27a32e9afeac777bac0c94c3511af75503f37523f", size = 1922237, upload-time = "2025-06-11T09:26:56.807Z" }, + { url = "https://files.pythonhosted.org/packages/74/92/0d48d40febb259ef9ec8e0ba3de6c23169469a1deabd00377533aae80970/igraph-0.11.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:1bbf2b7a928441184ec9fc1f771ddf61bcd6a3f812a8861cab465c5c985ccc6c", size = 1739476, upload-time = "2025-06-11T09:27:01.472Z" }, + { url = "https://files.pythonhosted.org/packages/1a/21/ae0f653be1e25110f536ffd37948a08b4f1de2dfeb804dcdbde793289afb/igraph-0.11.9-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fb6db6056f90364436f32439b3fc23947d469de0894240ed94dfdecc2eb3c89", size = 2599570, upload-time = "2025-06-11T09:27:05.443Z" }, + { url = "https://files.pythonhosted.org/packages/98/6f/b5bc2d59aafcf6f3a5524cf11b5c9eb91fd2ed34895ed63e5fb45209fec5/igraph-0.11.9-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4c6ff8fea88f4b7f6202f6ff939853e09c383b2a35c58aa05f374b66fe46c7c", size = 2759495, upload-time = "2025-06-11T09:27:09.777Z" }, + { url = "https://files.pythonhosted.org/packages/01/81/54ed84a43b796f943d78ad28582c6a85b645870e38d752d31497bc4179a2/igraph-0.11.9-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9911a7c5b256c0e7d50f958bbabba47a5eeddde67b47271a05e0850de129e2fc", size = 2765372, upload-time = "2025-06-11T09:27:14.246Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/c1b597004248bd7ce6c9593465308a1a5f0467c4ec4056aa51a6c017a669/igraph-0.11.9-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f35694100691bf8ef0c370615d87bcf1d6c0f15e356269c6357f8f78a9f1acea", size = 2926242, upload-time = "2025-06-11T09:27:18.553Z" }, + { url = "https://files.pythonhosted.org/packages/4d/02/46932458476aedc3c447ab7db471afafc2d4fee8654044eb3cdebffe4f63/igraph-0.11.9-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:03114d751b2bc6171259e52d773682b1d771a4b31acc345574f187c6c12ea943", size = 1922276, upload-time = "2025-06-11T09:27:21.959Z" }, + { url = "https://files.pythonhosted.org/packages/bc/83/00c6f25a926400aec3ebb5794a3dba6d4ae71e81baff077f5adcb2ae9f87/igraph-0.11.9-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3dc836e4fddb040eae297bdf56cf0158279f534519a27b35a3c4112bfd2b5244", size = 1739380, upload-time = "2025-06-11T09:27:25.402Z" }, + { url = "https://files.pythonhosted.org/packages/41/78/81cdd32c1b3cd61f012d107ba1ddf47ea0fa42ec7777a8aeec31eb496969/igraph-0.11.9-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fe5f5a55ea211219278da3b74ecbd86c57fedadead51481141853b7594b33f0", size = 2599206, upload-time = "2025-06-11T09:27:30.18Z" }, + { url = "https://files.pythonhosted.org/packages/5d/df/05773ff7df3499618078a1b484ffc85cb0b5477f1640a681bc6391547cb3/igraph-0.11.9-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:06434f9d31300a7b7174c922e6940ffa4ca5db46288ca654a3c923729f5c4ab0", size = 2759479, upload-time = "2025-06-11T09:27:35.368Z" }, + { url = "https://files.pythonhosted.org/packages/84/68/c8744433ad447fedf74768825d7e1a4d3e9952124e24ad2b0a716f118ca9/igraph-0.11.9-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:461bcc31f1ffec4f60881c4cc79ed3f732c7c98b405f97ff3f84d748452a279d", size = 2765326, upload-time = "2025-06-11T09:27:39.957Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6a/728699748f7f7ccdb5e0f4a881277161d2ff55a4465d3591959d8aee7a0f/igraph-0.11.9-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b948b2e302585c5ed23ef4a7e8caa8ca4cc946106ff8d9b197d16c49d929b777", size = 2926740, upload-time = "2025-06-11T09:27:44.026Z" }, +] + [[package]] name = "imageio" version = "2.35.1" @@ -1750,9 +2207,8 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pillow", version = "11.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0c/47/57e897fb7094afb2d26e8b2e4af9a45c7cf1a405acdeeca001fdf2c98501/imageio-2.37.0.tar.gz", hash = "sha256:71b57b3669666272c818497aebba2b4c5f20d5b37c81720e5e1a56d59c492996", size = 389963, upload-time = "2025-01-20T02:42:37.089Z" } @@ -1783,11 +2239,13 @@ name = "importlib-metadata" version = "8.7.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" }, + { name = "zipp", version = "3.23.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } wheels = [ @@ -2175,6 +2633,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, ] +[[package]] +name = "itsdangerous" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, +] + [[package]] name = "jedi" version = "0.19.2" @@ -2200,6 +2667,36 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] +[[package]] +name = "joblib" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621, upload-time = "2024-05-02T12:15:05.765Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817, upload-time = "2024-05-02T12:15:00.765Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/fe/0f5a938c54105553436dbff7a61dc4fed4b1b2c98852f8833beaf4d5968f/joblib-1.5.1.tar.gz", hash = "sha256:f4f86e351f39fe3d0d32a9f2c3d8af1ee4cec285aafcb27003dda5205576b444", size = 330475, upload-time = "2025-05-23T12:04:37.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/4f/1195bbac8e0c2acc5f740661631d8d750dc38d4a32b23ee5df3cde6f4e0d/joblib-1.5.1-py3-none-any.whl", hash = "sha256:4719a31f054c7d766948dcd83e9613686b27114f190f717cec7eaa2084f8a74a", size = 307746, upload-time = "2025-05-23T12:04:35.124Z" }, +] + [[package]] name = "json5" version = "0.12.0" @@ -2853,6 +3350,8 @@ name = "llvmlite" version = "0.43.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/9f/3d/f513755f285db51ab363a53e898b85562e950f79a2e6767a364530c2f645/llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5", size = 157069, upload-time = "2024-06-13T18:09:32.641Z" } @@ -2879,6 +3378,37 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/df/41/73cc26a2634b538cfe813f618c91e7e9960b8c163f8f0c94a2b0f008b9da/llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4", size = 28123489, upload-time = "2024-06-13T18:09:29.78Z" }, ] +[[package]] +name = "llvmlite" +version = "0.44.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/89/6a/95a3d3610d5c75293d5dbbb2a76480d5d4eeba641557b69fe90af6c5b84e/llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4", size = 171880, upload-time = "2025-01-20T11:14:41.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/75/d4863ddfd8ab5f6e70f4504cf8cc37f4e986ec6910f4ef8502bb7d3c1c71/llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614", size = 28132306, upload-time = "2025-01-20T11:12:18.634Z" }, + { url = "https://files.pythonhosted.org/packages/37/d9/6e8943e1515d2f1003e8278819ec03e4e653e2eeb71e4d00de6cfe59424e/llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791", size = 26201096, upload-time = "2025-01-20T11:12:24.544Z" }, + { url = "https://files.pythonhosted.org/packages/aa/46/8ffbc114def88cc698906bf5acab54ca9fdf9214fe04aed0e71731fb3688/llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8", size = 42361859, upload-time = "2025-01-20T11:12:31.839Z" }, + { url = "https://files.pythonhosted.org/packages/30/1c/9366b29ab050a726af13ebaae8d0dff00c3c58562261c79c635ad4f5eb71/llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408", size = 41184199, upload-time = "2025-01-20T11:12:40.049Z" }, + { url = "https://files.pythonhosted.org/packages/69/07/35e7c594b021ecb1938540f5bce543ddd8713cff97f71d81f021221edc1b/llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2", size = 30332381, upload-time = "2025-01-20T11:12:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e2/86b245397052386595ad726f9742e5223d7aea999b18c518a50e96c3aca4/llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3", size = 28132305, upload-time = "2025-01-20T11:12:53.936Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ec/506902dc6870249fbe2466d9cf66d531265d0f3a1157213c8f986250c033/llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427", size = 26201090, upload-time = "2025-01-20T11:12:59.847Z" }, + { url = "https://files.pythonhosted.org/packages/99/fe/d030f1849ebb1f394bb3f7adad5e729b634fb100515594aca25c354ffc62/llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1", size = 42361858, upload-time = "2025-01-20T11:13:07.623Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7a/ce6174664b9077fc673d172e4c888cb0b128e707e306bc33fff8c2035f0d/llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610", size = 41184200, upload-time = "2025-01-20T11:13:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c6/258801143975a6d09a373f2641237992496e15567b907a4d401839d671b8/llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955", size = 30331193, upload-time = "2025-01-20T11:13:26.976Z" }, + { url = "https://files.pythonhosted.org/packages/15/86/e3c3195b92e6e492458f16d233e58a1a812aa2bfbef9bdd0fbafcec85c60/llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad", size = 28132297, upload-time = "2025-01-20T11:13:32.57Z" }, + { url = "https://files.pythonhosted.org/packages/d6/53/373b6b8be67b9221d12b24125fd0ec56b1078b660eeae266ec388a6ac9a0/llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db", size = 26201105, upload-time = "2025-01-20T11:13:38.744Z" }, + { url = "https://files.pythonhosted.org/packages/cb/da/8341fd3056419441286c8e26bf436923021005ece0bff5f41906476ae514/llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9", size = 42361901, upload-time = "2025-01-20T11:13:46.711Z" }, + { url = "https://files.pythonhosted.org/packages/53/ad/d79349dc07b8a395a99153d7ce8b01d6fcdc9f8231355a5df55ded649b61/llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d", size = 41184247, upload-time = "2025-01-20T11:13:56.159Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3b/a9a17366af80127bd09decbe2a54d8974b6d8b274b39bf47fbaedeec6307/llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1", size = 30332380, upload-time = "2025-01-20T11:14:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/89/24/4c0ca705a717514c2092b18476e7a12c74d34d875e05e4d742618ebbf449/llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516", size = 28132306, upload-time = "2025-01-20T11:14:09.035Z" }, + { url = "https://files.pythonhosted.org/packages/01/cf/1dd5a60ba6aee7122ab9243fd614abcf22f36b0437cbbe1ccf1e3391461c/llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e", size = 26201090, upload-time = "2025-01-20T11:14:15.401Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1b/656f5a357de7135a3777bd735cc7c9b8f23b4d37465505bd0eaf4be9befe/llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf", size = 42361904, upload-time = "2025-01-20T11:14:22.949Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e1/12c5f20cb9168fb3464a34310411d5ad86e4163c8ff2d14a2b57e5cc6bac/llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc", size = 41184245, upload-time = "2025-01-20T11:14:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" }, +] + [[package]] name = "locket" version = "1.0.0" @@ -3575,6 +4105,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2b/9f/7ba6f94fc1e9ac3d2b853fdff3035fb2fa5afbed898c4a72b8a020610594/more_itertools-10.7.0-py3-none-any.whl", hash = "sha256:d43980384673cb07d2f7d2d918c616b30c659c089ee23953f601d6609c67510e", size = 65278, upload-time = "2025-04-22T14:17:40.49Z" }, ] +[[package]] +name = "multipledispatch" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/3e/a62c3b824c7dec33c4a1578bcc842e6c30300051033a4e5975ed86cc2536/multipledispatch-1.0.0.tar.gz", hash = "sha256:5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0", size = 12385, upload-time = "2023-06-27T16:45:11.074Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/c0/00c9809d8b9346eb238a6bbd5f83e846a4ce4503da94a4c08cb7284c325b/multipledispatch-1.0.0-py3-none-any.whl", hash = "sha256:0c53cd8b077546da4e48869f49b13164bebafd0c2a5afceb6bb6a316e7fb46e4", size = 12818, upload-time = "2023-06-27T16:45:09.418Z" }, +] + [[package]] name = "narwhals" version = "1.42.0" @@ -3834,11 +4373,13 @@ name = "numba" version = "0.60.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.9.*'", ] dependencies = [ - { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "llvmlite", version = "0.43.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/3c/93/2849300a9184775ba274aba6f82f303343669b0592b7bb0849ea713dabb0/numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16", size = 2702171, upload-time = "2024-06-13T18:11:19.869Z" } wheels = [ @@ -3864,6 +4405,41 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/01/01/8b7b670c77c5ea0e47e283d82332969bf672ab6410d0b2610cac5b7a3ded/numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab", size = 2686978, upload-time = "2024-06-13T18:11:17.765Z" }, ] +[[package]] +name = "numba" +version = "0.61.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "llvmlite", version = "0.44.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/a0/e21f57604304aa03ebb8e098429222722ad99176a4f979d34af1d1ee80da/numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d", size = 2820615, upload-time = "2025-04-09T02:58:07.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/ca/f470be59552ccbf9531d2d383b67ae0b9b524d435fb4a0d229fef135116e/numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a", size = 2775663, upload-time = "2025-04-09T02:57:34.143Z" }, + { url = "https://files.pythonhosted.org/packages/f5/13/3bdf52609c80d460a3b4acfb9fdb3817e392875c0d6270cf3fd9546f138b/numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd", size = 2778344, upload-time = "2025-04-09T02:57:36.609Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/bfb2805bcfbd479f04f835241ecf28519f6e3609912e3a985aed45e21370/numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642", size = 3824054, upload-time = "2025-04-09T02:57:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/e3/27/797b2004745c92955470c73c82f0e300cf033c791f45bdecb4b33b12bdea/numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2", size = 3518531, upload-time = "2025-04-09T02:57:39.709Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c6/c2fb11e50482cb310afae87a997707f6c7d8a48967b9696271347441f650/numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9", size = 2831612, upload-time = "2025-04-09T02:57:41.559Z" }, + { url = "https://files.pythonhosted.org/packages/3f/97/c99d1056aed767503c228f7099dc11c402906b42a4757fec2819329abb98/numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2", size = 2775825, upload-time = "2025-04-09T02:57:43.442Z" }, + { url = "https://files.pythonhosted.org/packages/95/9e/63c549f37136e892f006260c3e2613d09d5120672378191f2dc387ba65a2/numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b", size = 2778695, upload-time = "2025-04-09T02:57:44.968Z" }, + { url = "https://files.pythonhosted.org/packages/97/c8/8740616c8436c86c1b9a62e72cb891177d2c34c2d24ddcde4c390371bf4c/numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60", size = 3829227, upload-time = "2025-04-09T02:57:46.63Z" }, + { url = "https://files.pythonhosted.org/packages/fc/06/66e99ae06507c31d15ff3ecd1f108f2f59e18b6e08662cd5f8a5853fbd18/numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18", size = 3523422, upload-time = "2025-04-09T02:57:48.222Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a4/2b309a6a9f6d4d8cfba583401c7c2f9ff887adb5d54d8e2e130274c0973f/numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1", size = 2831505, upload-time = "2025-04-09T02:57:50.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a0/c6b7b9c615cfa3b98c4c63f4316e3f6b3bbe2387740277006551784218cd/numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2", size = 2776626, upload-time = "2025-04-09T02:57:51.857Z" }, + { url = "https://files.pythonhosted.org/packages/92/4a/fe4e3c2ecad72d88f5f8cd04e7f7cff49e718398a2fac02d2947480a00ca/numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8", size = 2779287, upload-time = "2025-04-09T02:57:53.658Z" }, + { url = "https://files.pythonhosted.org/packages/9a/2d/e518df036feab381c23a624dac47f8445ac55686ec7f11083655eb707da3/numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546", size = 3885928, upload-time = "2025-04-09T02:57:55.206Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/23cced68ead67b75d77cfcca3df4991d1855c897ee0ff3fe25a56ed82108/numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd", size = 3577115, upload-time = "2025-04-09T02:57:56.818Z" }, + { url = "https://files.pythonhosted.org/packages/68/1d/ddb3e704c5a8fb90142bf9dc195c27db02a08a99f037395503bfbc1d14b3/numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18", size = 2831929, upload-time = "2025-04-09T02:57:58.45Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f3/0fe4c1b1f2569e8a18ad90c159298d862f96c3964392a20d74fc628aee44/numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154", size = 2771785, upload-time = "2025-04-09T02:57:59.96Z" }, + { url = "https://files.pythonhosted.org/packages/e9/71/91b277d712e46bd5059f8a5866862ed1116091a7cb03bd2704ba8ebe015f/numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140", size = 2773289, upload-time = "2025-04-09T02:58:01.435Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e0/5ea04e7ad2c39288c0f0f9e8d47638ad70f28e275d092733b5817cf243c9/numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab", size = 3893918, upload-time = "2025-04-09T02:58:02.933Z" }, + { url = "https://files.pythonhosted.org/packages/17/58/064f4dcb7d7e9412f16ecf80ed753f92297e39f399c905389688cf950b81/numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e", size = 3584056, upload-time = "2025-04-09T02:58:04.538Z" }, + { url = "https://files.pythonhosted.org/packages/af/a4/6d3a0f2d3989e62a18749e1e9913d5fa4910bbb3e3311a035baea6caf26d/numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7", size = 2831846, upload-time = "2025-04-09T02:58:06.125Z" }, +] + [[package]] name = "numpy" version = "1.24.4" @@ -3910,6 +4486,8 @@ name = "numpy" version = "2.0.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015, upload-time = "2024-08-26T20:19:40.945Z" } @@ -4025,68 +4603,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] -[[package]] -name = "numpy" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.12'", - "python_full_version == '3.11.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/f3/db/8e12381333aea300890829a0a36bfa738cac95475d88982d538725143fd9/numpy-2.3.0.tar.gz", hash = "sha256:581f87f9e9e9db2cba2141400e160e9dd644ee248788d6f90636eeb8fd9260a6", size = 20382813, upload-time = "2025-06-07T14:54:32.608Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/5f/df67435257d827eb3b8af66f585223dc2c3f2eb7ad0b50cb1dae2f35f494/numpy-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c3c9fdde0fa18afa1099d6257eb82890ea4f3102847e692193b54e00312a9ae9", size = 21199688, upload-time = "2025-06-07T14:36:52.067Z" }, - { url = "https://files.pythonhosted.org/packages/e5/ce/aad219575055d6c9ef29c8c540c81e1c38815d3be1fe09cdbe53d48ee838/numpy-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46d16f72c2192da7b83984aa5455baee640e33a9f1e61e656f29adf55e406c2b", size = 14359277, upload-time = "2025-06-07T14:37:15.325Z" }, - { url = "https://files.pythonhosted.org/packages/29/6b/2d31da8e6d2ec99bed54c185337a87f8fbeccc1cd9804e38217e92f3f5e2/numpy-2.3.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a0be278be9307c4ab06b788f2a077f05e180aea817b3e41cebbd5aaf7bd85ed3", size = 5376069, upload-time = "2025-06-07T14:37:25.636Z" }, - { url = "https://files.pythonhosted.org/packages/7d/2a/6c59a062397553ec7045c53d5fcdad44e4536e54972faa2ba44153bca984/numpy-2.3.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:99224862d1412d2562248d4710126355d3a8db7672170a39d6909ac47687a8a4", size = 6913057, upload-time = "2025-06-07T14:37:37.215Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5a/8df16f258d28d033e4f359e29d3aeb54663243ac7b71504e89deeb813202/numpy-2.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2393a914db64b0ead0ab80c962e42d09d5f385802006a6c87835acb1f58adb96", size = 14568083, upload-time = "2025-06-07T14:37:59.337Z" }, - { url = "https://files.pythonhosted.org/packages/0a/92/0528a563dfc2cdccdcb208c0e241a4bb500d7cde218651ffb834e8febc50/numpy-2.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7729c8008d55e80784bd113787ce876ca117185c579c0d626f59b87d433ea779", size = 16929402, upload-time = "2025-06-07T14:38:24.343Z" }, - { url = "https://files.pythonhosted.org/packages/e4/2f/e7a8c8d4a2212c527568d84f31587012cf5497a7271ea1f23332142f634e/numpy-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:06d4fb37a8d383b769281714897420c5cc3545c79dc427df57fc9b852ee0bf58", size = 15879193, upload-time = "2025-06-07T14:38:48.007Z" }, - { url = "https://files.pythonhosted.org/packages/e2/c3/dada3f005953847fe35f42ac0fe746f6e1ea90b4c6775e4be605dcd7b578/numpy-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c39ec392b5db5088259c68250e342612db82dc80ce044cf16496cf14cf6bc6f8", size = 18665318, upload-time = "2025-06-07T14:39:15.794Z" }, - { url = "https://files.pythonhosted.org/packages/3b/ae/3f448517dedefc8dd64d803f9d51a8904a48df730e00a3c5fb1e75a60620/numpy-2.3.0-cp311-cp311-win32.whl", hash = "sha256:ee9d3ee70d62827bc91f3ea5eee33153212c41f639918550ac0475e3588da59f", size = 6601108, upload-time = "2025-06-07T14:39:27.176Z" }, - { url = "https://files.pythonhosted.org/packages/8c/4a/556406d2bb2b9874c8cbc840c962683ac28f21efbc9b01177d78f0199ca1/numpy-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:43c55b6a860b0eb44d42341438b03513cf3879cb3617afb749ad49307e164edd", size = 13021525, upload-time = "2025-06-07T14:39:46.637Z" }, - { url = "https://files.pythonhosted.org/packages/ed/ee/bf54278aef30335ffa9a189f869ea09e1a195b3f4b93062164a3b02678a7/numpy-2.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:2e6a1409eee0cb0316cb64640a49a49ca44deb1a537e6b1121dc7c458a1299a8", size = 10170327, upload-time = "2025-06-07T14:40:02.703Z" }, - { url = "https://files.pythonhosted.org/packages/89/59/9df493df81ac6f76e9f05cdbe013cdb0c9a37b434f6e594f5bd25e278908/numpy-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:389b85335838155a9076e9ad7f8fdba0827496ec2d2dc32ce69ce7898bde03ba", size = 20897025, upload-time = "2025-06-07T14:40:33.558Z" }, - { url = "https://files.pythonhosted.org/packages/2f/86/4ff04335901d6cf3a6bb9c748b0097546ae5af35e455ae9b962ebff4ecd7/numpy-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9498f60cd6bb8238d8eaf468a3d5bb031d34cd12556af53510f05fcf581c1b7e", size = 14129882, upload-time = "2025-06-07T14:40:55.034Z" }, - { url = "https://files.pythonhosted.org/packages/71/8d/a942cd4f959de7f08a79ab0c7e6cecb7431d5403dce78959a726f0f57aa1/numpy-2.3.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:622a65d40d8eb427d8e722fd410ac3ad4958002f109230bc714fa551044ebae2", size = 5110181, upload-time = "2025-06-07T14:41:04.4Z" }, - { url = "https://files.pythonhosted.org/packages/86/5d/45850982efc7b2c839c5626fb67fbbc520d5b0d7c1ba1ae3651f2f74c296/numpy-2.3.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b9446d9d8505aadadb686d51d838f2b6688c9e85636a0c3abaeb55ed54756459", size = 6647581, upload-time = "2025-06-07T14:41:14.695Z" }, - { url = "https://files.pythonhosted.org/packages/1a/c0/c871d4a83f93b00373d3eebe4b01525eee8ef10b623a335ec262b58f4dc1/numpy-2.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:50080245365d75137a2bf46151e975de63146ae6d79f7e6bd5c0e85c9931d06a", size = 14262317, upload-time = "2025-06-07T14:41:35.862Z" }, - { url = "https://files.pythonhosted.org/packages/b7/f6/bc47f5fa666d5ff4145254f9e618d56e6a4ef9b874654ca74c19113bb538/numpy-2.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c24bb4113c66936eeaa0dc1e47c74770453d34f46ee07ae4efd853a2ed1ad10a", size = 16633919, upload-time = "2025-06-07T14:42:00.622Z" }, - { url = "https://files.pythonhosted.org/packages/f5/b4/65f48009ca0c9b76df5f404fccdea5a985a1bb2e34e97f21a17d9ad1a4ba/numpy-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4d8d294287fdf685281e671886c6dcdf0291a7c19db3e5cb4178d07ccf6ecc67", size = 15567651, upload-time = "2025-06-07T14:42:24.429Z" }, - { url = "https://files.pythonhosted.org/packages/f1/62/5367855a2018578e9334ed08252ef67cc302e53edc869666f71641cad40b/numpy-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6295f81f093b7f5769d1728a6bd8bf7466de2adfa771ede944ce6711382b89dc", size = 18361723, upload-time = "2025-06-07T14:42:51.167Z" }, - { url = "https://files.pythonhosted.org/packages/d4/75/5baed8cd867eabee8aad1e74d7197d73971d6a3d40c821f1848b8fab8b84/numpy-2.3.0-cp312-cp312-win32.whl", hash = "sha256:e6648078bdd974ef5d15cecc31b0c410e2e24178a6e10bf511e0557eed0f2570", size = 6318285, upload-time = "2025-06-07T14:43:02.052Z" }, - { url = "https://files.pythonhosted.org/packages/bc/49/d5781eaa1a15acb3b3a3f49dc9e2ff18d92d0ce5c2976f4ab5c0a7360250/numpy-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:0898c67a58cdaaf29994bc0e2c65230fd4de0ac40afaf1584ed0b02cd74c6fdd", size = 12732594, upload-time = "2025-06-07T14:43:21.071Z" }, - { url = "https://files.pythonhosted.org/packages/c2/1c/6d343e030815c7c97a1f9fbad00211b47717c7fe446834c224bd5311e6f1/numpy-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:bd8df082b6c4695753ad6193018c05aac465d634834dca47a3ae06d4bb22d9ea", size = 9891498, upload-time = "2025-06-07T14:43:36.332Z" }, - { url = "https://files.pythonhosted.org/packages/73/fc/1d67f751fd4dbafc5780244fe699bc4084268bad44b7c5deb0492473127b/numpy-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5754ab5595bfa2c2387d241296e0381c21f44a4b90a776c3c1d39eede13a746a", size = 20889633, upload-time = "2025-06-07T14:44:06.839Z" }, - { url = "https://files.pythonhosted.org/packages/e8/95/73ffdb69e5c3f19ec4530f8924c4386e7ba097efc94b9c0aff607178ad94/numpy-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d11fa02f77752d8099573d64e5fe33de3229b6632036ec08f7080f46b6649959", size = 14151683, upload-time = "2025-06-07T14:44:28.847Z" }, - { url = "https://files.pythonhosted.org/packages/64/d5/06d4bb31bb65a1d9c419eb5676173a2f90fd8da3c59f816cc54c640ce265/numpy-2.3.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:aba48d17e87688a765ab1cd557882052f238e2f36545dfa8e29e6a91aef77afe", size = 5102683, upload-time = "2025-06-07T14:44:38.417Z" }, - { url = "https://files.pythonhosted.org/packages/12/8b/6c2cef44f8ccdc231f6b56013dff1d71138c48124334aded36b1a1b30c5a/numpy-2.3.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4dc58865623023b63b10d52f18abaac3729346a7a46a778381e0e3af4b7f3beb", size = 6640253, upload-time = "2025-06-07T14:44:49.359Z" }, - { url = "https://files.pythonhosted.org/packages/62/aa/fca4bf8de3396ddb59544df9b75ffe5b73096174de97a9492d426f5cd4aa/numpy-2.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:df470d376f54e052c76517393fa443758fefcdd634645bc9c1f84eafc67087f0", size = 14258658, upload-time = "2025-06-07T14:45:10.156Z" }, - { url = "https://files.pythonhosted.org/packages/1c/12/734dce1087eed1875f2297f687e671cfe53a091b6f2f55f0c7241aad041b/numpy-2.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:87717eb24d4a8a64683b7a4e91ace04e2f5c7c77872f823f02a94feee186168f", size = 16628765, upload-time = "2025-06-07T14:45:35.076Z" }, - { url = "https://files.pythonhosted.org/packages/48/03/ffa41ade0e825cbcd5606a5669962419528212a16082763fc051a7247d76/numpy-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d8fa264d56882b59dcb5ea4d6ab6f31d0c58a57b41aec605848b6eb2ef4a43e8", size = 15564335, upload-time = "2025-06-07T14:45:58.797Z" }, - { url = "https://files.pythonhosted.org/packages/07/58/869398a11863310aee0ff85a3e13b4c12f20d032b90c4b3ee93c3b728393/numpy-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e651756066a0eaf900916497e20e02fe1ae544187cb0fe88de981671ee7f6270", size = 18360608, upload-time = "2025-06-07T14:46:25.687Z" }, - { url = "https://files.pythonhosted.org/packages/2f/8a/5756935752ad278c17e8a061eb2127c9a3edf4ba2c31779548b336f23c8d/numpy-2.3.0-cp313-cp313-win32.whl", hash = "sha256:e43c3cce3b6ae5f94696669ff2a6eafd9a6b9332008bafa4117af70f4b88be6f", size = 6310005, upload-time = "2025-06-07T14:50:13.138Z" }, - { url = "https://files.pythonhosted.org/packages/08/60/61d60cf0dfc0bf15381eaef46366ebc0c1a787856d1db0c80b006092af84/numpy-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:81ae0bf2564cf475f94be4a27ef7bcf8af0c3e28da46770fc904da9abd5279b5", size = 12729093, upload-time = "2025-06-07T14:50:31.82Z" }, - { url = "https://files.pythonhosted.org/packages/66/31/2f2f2d2b3e3c32d5753d01437240feaa32220b73258c9eef2e42a0832866/numpy-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:c8738baa52505fa6e82778580b23f945e3578412554d937093eac9205e845e6e", size = 9885689, upload-time = "2025-06-07T14:50:47.888Z" }, - { url = "https://files.pythonhosted.org/packages/f1/89/c7828f23cc50f607ceb912774bb4cff225ccae7131c431398ad8400e2c98/numpy-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:39b27d8b38942a647f048b675f134dd5a567f95bfff481f9109ec308515c51d8", size = 20986612, upload-time = "2025-06-07T14:46:56.077Z" }, - { url = "https://files.pythonhosted.org/packages/dd/46/79ecf47da34c4c50eedec7511e53d57ffdfd31c742c00be7dc1d5ffdb917/numpy-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0eba4a1ea88f9a6f30f56fdafdeb8da3774349eacddab9581a21234b8535d3d3", size = 14298953, upload-time = "2025-06-07T14:47:18.053Z" }, - { url = "https://files.pythonhosted.org/packages/59/44/f6caf50713d6ff4480640bccb2a534ce1d8e6e0960c8f864947439f0ee95/numpy-2.3.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0f1f11d0a1da54927436505a5a7670b154eac27f5672afc389661013dfe3d4f", size = 5225806, upload-time = "2025-06-07T14:47:27.524Z" }, - { url = "https://files.pythonhosted.org/packages/a6/43/e1fd1aca7c97e234dd05e66de4ab7a5be54548257efcdd1bc33637e72102/numpy-2.3.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:690d0a5b60a47e1f9dcec7b77750a4854c0d690e9058b7bef3106e3ae9117808", size = 6735169, upload-time = "2025-06-07T14:47:38.057Z" }, - { url = "https://files.pythonhosted.org/packages/84/89/f76f93b06a03177c0faa7ca94d0856c4e5c4bcaf3c5f77640c9ed0303e1c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8b51ead2b258284458e570942137155978583e407babc22e3d0ed7af33ce06f8", size = 14330701, upload-time = "2025-06-07T14:47:59.113Z" }, - { url = "https://files.pythonhosted.org/packages/aa/f5/4858c3e9ff7a7d64561b20580cf7cc5d085794bd465a19604945d6501f6c/numpy-2.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:aaf81c7b82c73bd9b45e79cfb9476cb9c29e937494bfe9092c26aece812818ad", size = 16692983, upload-time = "2025-06-07T14:48:24.196Z" }, - { url = "https://files.pythonhosted.org/packages/08/17/0e3b4182e691a10e9483bcc62b4bb8693dbf9ea5dc9ba0b77a60435074bb/numpy-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f420033a20b4f6a2a11f585f93c843ac40686a7c3fa514060a97d9de93e5e72b", size = 15641435, upload-time = "2025-06-07T14:48:47.712Z" }, - { url = "https://files.pythonhosted.org/packages/4e/d5/463279fda028d3c1efa74e7e8d507605ae87f33dbd0543cf4c4527c8b882/numpy-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d344ca32ab482bcf8735d8f95091ad081f97120546f3d250240868430ce52555", size = 18433798, upload-time = "2025-06-07T14:49:14.866Z" }, - { url = "https://files.pythonhosted.org/packages/0e/1e/7a9d98c886d4c39a2b4d3a7c026bffcf8fbcaf518782132d12a301cfc47a/numpy-2.3.0-cp313-cp313t-win32.whl", hash = "sha256:48a2e8eaf76364c32a1feaa60d6925eaf32ed7a040183b807e02674305beef61", size = 6438632, upload-time = "2025-06-07T14:49:25.67Z" }, - { url = "https://files.pythonhosted.org/packages/fe/ab/66fc909931d5eb230107d016861824f335ae2c0533f422e654e5ff556784/numpy-2.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ba17f93a94e503551f154de210e4d50c5e3ee20f7e7a1b5f6ce3f22d419b93bb", size = 12868491, upload-time = "2025-06-07T14:49:44.898Z" }, - { url = "https://files.pythonhosted.org/packages/ee/e8/2c8a1c9e34d6f6d600c83d5ce5b71646c32a13f34ca5c518cc060639841c/numpy-2.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:f14e016d9409680959691c109be98c436c6249eaf7f118b424679793607b5944", size = 9935345, upload-time = "2025-06-07T14:50:02.311Z" }, - { url = "https://files.pythonhosted.org/packages/6a/a2/f8c1133f90eaa1c11bbbec1dc28a42054d0ce74bc2c9838c5437ba5d4980/numpy-2.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80b46117c7359de8167cc00a2c7d823bdd505e8c7727ae0871025a86d668283b", size = 21070759, upload-time = "2025-06-07T14:51:18.241Z" }, - { url = "https://files.pythonhosted.org/packages/6c/e0/4c05fc44ba28463096eee5ae2a12832c8d2759cc5bcec34ae33386d3ff83/numpy-2.3.0-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:5814a0f43e70c061f47abd5857d120179609ddc32a613138cbb6c4e9e2dbdda5", size = 5301054, upload-time = "2025-06-07T14:51:27.413Z" }, - { url = "https://files.pythonhosted.org/packages/8a/3b/6c06cdebe922bbc2a466fe2105f50f661238ea223972a69c7deb823821e7/numpy-2.3.0-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:ef6c1e88fd6b81ac6d215ed71dc8cd027e54d4bf1d2682d362449097156267a2", size = 6817520, upload-time = "2025-06-07T14:51:38.015Z" }, - { url = "https://files.pythonhosted.org/packages/9d/a3/1e536797fd10eb3c5dbd2e376671667c9af19e241843548575267242ea02/numpy-2.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33a5a12a45bb82d9997e2c0b12adae97507ad7c347546190a18ff14c28bbca12", size = 14398078, upload-time = "2025-06-07T14:52:00.122Z" }, - { url = "https://files.pythonhosted.org/packages/7c/61/9d574b10d9368ecb1a0c923952aa593510a20df4940aa615b3a71337c8db/numpy-2.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:54dfc8681c1906d239e95ab1508d0a533c4a9505e52ee2d71a5472b04437ef97", size = 16751324, upload-time = "2025-06-07T14:52:25.077Z" }, - { url = "https://files.pythonhosted.org/packages/39/de/bcad52ce972dc26232629ca3a99721fd4b22c1d2bda84d5db6541913ef9c/numpy-2.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e017a8a251ff4d18d71f139e28bdc7c31edba7a507f72b1414ed902cbe48c74d", size = 12924237, upload-time = "2025-06-07T14:52:44.713Z" }, -] - [[package]] name = "orjson" version = "3.10.15" @@ -4346,9 +4862,8 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "python-dateutil", marker = "python_full_version >= '3.9'" }, { name = "pytz", marker = "python_full_version >= '3.9'" }, { name = "tzdata", marker = "python_full_version >= '3.9'" }, @@ -4407,6 +4922,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" }, ] +[[package]] +name = "param" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/15/39/75203d36ddd59f3819ef930451d4436e60248a674fb1136d9cf126cb9859/param-2.1.1.tar.gz", hash = "sha256:3b1da14abafa75bfd908572378a58696826b3719a723bc31b40ffff2e9a5c852", size = 174619, upload-time = "2024-06-25T08:12:58.804Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/7b/5593a40fcd0981bda85274bb3e622ac433a94ae1e11ef8639de362cfa7de/param-2.1.1-py3-none-any.whl", hash = "sha256:81066d040526fbaa44b6419f3e92348fa8856ea44c8d3915e9245937ddabe2d6", size = 116757, upload-time = "2024-06-25T08:12:56.173Z" }, +] + +[[package]] +name = "param" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/97/9c/69a576ffb9da36072ffc1f7ef7afaad88366d30dcb327caeb92c8b6cc4ee/param-2.2.1.tar.gz", hash = "sha256:ba1f7cec6455ea8ad96f641f4082759bf1057dcbe629aa79d956b25973252422", size = 176980, upload-time = "2025-06-11T15:10:26.683Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/57/2b46b199482bbaaade2f978164577cf7c2fdc2782a7caf29fabd5265a84f/param-2.2.1-py3-none-any.whl", hash = "sha256:e3a4ca7f3d7610615129a55dbde2e90eb67d11cef70936487b0a59717dba0bdc", size = 119047, upload-time = "2025-06-11T15:10:25.136Z" }, +] + +[[package]] +name = "parmed" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/15/29/80bc4fa049e166e0b8eda2a7220c5473809f2f96bb15f1f117abfb8dad7c/parmed-4.3.0.tar.gz", hash = "sha256:3d0208f56507649b5af91bbb128f650a6f86de1b5a9af780e6479145e5362ea3", size = 20197299, upload-time = "2024-10-30T21:27:51.114Z" } + [[package]] name = "parso" version = "0.8.4" @@ -4466,9 +5017,8 @@ version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/d1/81/74f6a65b848ffd16c18f920620ce999fe45fe27f01ab3911260ce4ed85e4/patsy-1.0.1.tar.gz", hash = "sha256:e786a9391eec818c054e359b737bbce692f051aee4c661f4141cc88fb459c0c4", size = 396010, upload-time = "2024-11-12T14:10:54.642Z" } wheels = [ @@ -4484,6 +5034,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/84/af442c4458756bb0c0d2424102d1200616f3ff9b82c48aaa130e08549bf6/pdfrw-0.4-py2.py3-none-any.whl", hash = "sha256:758289edaa3b672e9a1a67504be73c18ec668d4e5b9d5ac9cbc0dc753d8d196b", size = 69460, upload-time = "2017-09-18T10:08:10.732Z" }, ] +[[package]] +name = "periodictable" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "pyparsing", version = "3.1.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "pyparsing", version = "3.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/e4/f2a338abfb5a6b9e2a48dc4acaa9df0bd94126df336ab403178f6a7a901a/periodictable-2.0.2-py3-none-any.whl", hash = "sha256:7d0680baf758715dd66bdac733de82dcb976aa03981fbd6d75a84213fb3b5f86", size = 811077, upload-time = "2024-12-20T02:26:26.165Z" }, +] + [[package]] name = "pexpect" version = "4.9.0" @@ -4745,10 +5310,17 @@ dev = [ { name = "anywidget" }, { name = "build" }, { name = "colorcet" }, + { name = "dash-bio" }, + { name = "datashader", version = "0.15.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "datashader", version = "0.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "datashader", version = "0.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "fiona", marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "0.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "1.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "geopandas", version = "1.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "google" }, + { name = "igraph", version = "0.11.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "igraph", version = "0.11.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "inflect", version = "7.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, @@ -4762,9 +5334,8 @@ dev = [ { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "orjson", version = "3.10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "orjson", version = "3.10.18", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4775,6 +5346,7 @@ dev = [ { name = "plotly-geo" }, { name = "polars", version = "1.8.2", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version < '3.9'" }, { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, + { name = "pooch" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4788,6 +5360,9 @@ dev = [ { name = "scikit-image", version = "0.21.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scikit-image", version = "0.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scikit-image", version = "0.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scikit-learn", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scikit-learn", version = "1.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scikit-learn", version = "1.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -4795,7 +5370,9 @@ dev = [ { name = "shapely", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "statsmodels", version = "0.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "statsmodels", version = "0.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "umap" }, { name = "vaex", marker = "python_full_version < '3.10'" }, + { name = "wget" }, { name = "xarray", version = "2023.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "xarray", version = "2024.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "xarray", version = "2025.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -4826,10 +5403,17 @@ dev-optional = [ { name = "anywidget" }, { name = "build" }, { name = "colorcet" }, + { name = "dash-bio" }, + { name = "datashader", version = "0.15.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "datashader", version = "0.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "datashader", version = "0.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "fiona", marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "0.13.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "geopandas", version = "1.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "geopandas", version = "1.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "google" }, + { name = "igraph", version = "0.11.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "igraph", version = "0.11.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "inflect", version = "7.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "inflect", version = "7.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "jupyter" }, @@ -4843,9 +5427,8 @@ dev-optional = [ { name = "mkdocstrings", version = "0.26.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version < '3.9'" }, { name = "mkdocstrings", version = "0.29.1", source = { registry = "https://pypi.org/simple" }, extra = ["python"], marker = "python_full_version >= '3.9'" }, { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "orjson", version = "3.10.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "orjson", version = "3.10.18", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pandas", version = "2.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4856,6 +5439,7 @@ dev-optional = [ { name = "plotly-geo" }, { name = "polars", version = "1.8.2", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version < '3.9'" }, { name = "polars", version = "1.30.0", source = { registry = "https://pypi.org/simple" }, extra = ["timezone"], marker = "python_full_version >= '3.9'" }, + { name = "pooch" }, { name = "pyarrow", version = "17.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "pyarrow", version = "20.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "pydoclint", version = "0.5.11", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, @@ -4869,6 +5453,9 @@ dev-optional = [ { name = "scikit-image", version = "0.21.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scikit-image", version = "0.24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scikit-image", version = "0.25.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scikit-learn", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scikit-learn", version = "1.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scikit-learn", version = "1.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -4876,16 +5463,17 @@ dev-optional = [ { name = "shapely", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "statsmodels", version = "0.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "statsmodels", version = "0.14.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "umap" }, { name = "vaex", marker = "python_full_version < '3.10'" }, + { name = "wget" }, { name = "xarray", version = "2023.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, { name = "xarray", version = "2024.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, { name = "xarray", version = "2025.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] express = [ { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] kaleido = [ { name = "kaleido" }, @@ -4896,8 +5484,12 @@ requires-dist = [ { name = "anywidget", marker = "extra == 'dev-optional'" }, { name = "build", marker = "extra == 'dev-build'" }, { name = "colorcet", marker = "extra == 'dev-optional'" }, + { name = "dash-bio", marker = "extra == 'dev-optional'" }, + { name = "datashader", marker = "extra == 'dev-optional'" }, { name = "fiona", marker = "python_full_version < '3.9' and extra == 'dev-optional'", specifier = "<=1.9.6" }, { name = "geopandas", marker = "extra == 'dev-optional'" }, + { name = "google", marker = "extra == 'dev-optional'" }, + { name = "igraph", marker = "extra == 'dev-optional'" }, { name = "inflect", marker = "extra == 'dev-optional'" }, { name = "jupyter", marker = "extra == 'dev-build'" }, { name = "kaleido", marker = "extra == 'kaleido'", specifier = ">=1.0.0" }, @@ -4921,6 +5513,7 @@ requires-dist = [ { name = "plotly", extras = ["kaleido"], marker = "extra == 'dev-optional'" }, { name = "plotly-geo", marker = "extra == 'dev-optional'" }, { name = "polars", extras = ["timezone"], marker = "extra == 'dev-optional'" }, + { name = "pooch", marker = "extra == 'dev-optional'" }, { name = "pyarrow", marker = "extra == 'dev-optional'" }, { name = "pydoclint", marker = "extra == 'dev-optional'" }, { name = "pyshp", marker = "extra == 'dev-optional'" }, @@ -4929,10 +5522,13 @@ requires-dist = [ { name = "requests", marker = "extra == 'dev-core'" }, { name = "ruff", marker = "extra == 'dev-core'", specifier = "==0.11.12" }, { name = "scikit-image", marker = "extra == 'dev-optional'" }, + { name = "scikit-learn", marker = "extra == 'dev-optional'" }, { name = "scipy", marker = "extra == 'dev-optional'" }, { name = "shapely", marker = "extra == 'dev-optional'" }, { name = "statsmodels", marker = "extra == 'dev-optional'" }, + { name = "umap", marker = "extra == 'dev-optional'" }, { name = "vaex", marker = "python_full_version < '3.10' and extra == 'dev-optional'" }, + { name = "wget", marker = "extra == 'dev-optional'" }, { name = "xarray", marker = "extra == 'dev-optional'" }, ] provides-extras = ["express", "kaleido", "dev-core", "dev-build", "dev-optional", "dev"] @@ -5026,6 +5622,21 @@ timezone = [ { name = "tzdata", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, ] +[[package]] +name = "pooch" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "platformdirs", version = "4.3.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/77/b3d3e00c696c16cf99af81ef7b1f5fe73bd2a307abca41bd7605429fe6e5/pooch-1.8.2.tar.gz", hash = "sha256:76561f0de68a01da4df6af38e9955c4c9d1a5c90da73f7e40276a5728ec83d10", size = 59353, upload-time = "2024-06-06T16:53:46.224Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/87/77cc11c7a9ea9fd05503def69e3d18605852cd0d4b0d3b8f15bbeb3ef1d1/pooch-1.8.2-py3-none-any.whl", hash = "sha256:3529a57096f7198778a5ceefd5ac3ef0e4d06a6ddaf9fc2d609b806f25302c47", size = 64574, upload-time = "2024-06-06T16:53:44.343Z" }, +] + [[package]] name = "progressbar2" version = "4.2.0" @@ -5339,6 +5950,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" }, ] +[[package]] +name = "pyct" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "param", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "param", version = "2.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/3b/b5b9d4215bc98df9186a5dfb9f2b4ce6db0b33b1728f63143f1431542e20/pyct-0.5.0.tar.gz", hash = "sha256:dd9f4ac5cbd8e37c352c04036062d3c5f67efec76d404761ef16b0cbf26aa6a0", size = 15837, upload-time = "2023-01-30T11:11:02.365Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/e7/c7c1e9e1b6b23ca1db7af3c6826d57d8da883021f751edcc9c82143b127a/pyct-0.5.0-py2.py3-none-any.whl", hash = "sha256:a4038a8885059ab8cac6f946ea30e0b5e6bdbe0b92b6723f06737035f9d65e8c", size = 15750, upload-time = "2023-01-30T11:11:01.088Z" }, +] + [[package]] name = "pydantic" version = "2.10.6" @@ -5771,9 +6395,8 @@ version = "0.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi", marker = "python_full_version >= '3.9'" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.9'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/54/c3/5e30f913ad8a975abe6f6582a2d3cf321bdf40fd696940d9283c63880c7a/pyogrio-0.11.0.tar.gz", hash = "sha256:a7e0a97bc10c0d7204f6bf52e1b928cba0554c35a907c32b23065aed1ed97b3f", size = 286915, upload-time = "2025-05-08T15:20:17.843Z" } @@ -5830,6 +6453,9 @@ name = "pyparsing" version = "3.2.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] sdist = { url = "https://files.pythonhosted.org/packages/bb/22/f1129e69d94ffff626bdb5c835506b3a5b4f3d070f17ea295e12c2c6f60f/pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be", size = 1088608, upload-time = "2025-03-25T05:01:28.114Z" } @@ -6513,6 +7139,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" }, ] +[[package]] +name = "retrying" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/2e/90b236e496810c23eb428a1f3e2723849eb219d6196a4f7afe16f4981b5c/retrying-1.4.1.tar.gz", hash = "sha256:4d206e0ed2aff5ef2f3cd867abb9511e9e8f31127c5aca20f1d5246e476903b0", size = 11344, upload-time = "2025-07-19T09:39:01.906Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/25/f3b628e123699139b959551ed922f35af97fa1505e195ae3e6537a14fbc3/retrying-1.4.1-py3-none-any.whl", hash = "sha256:d736050c1adfc0a71fa022d9198ee130b0e66be318678a3fdd8b1b8872dc0997", size = 12184, upload-time = "2025-07-19T09:39:00.574Z" }, +] + [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -6920,8 +7555,8 @@ dependencies = [ { name = "lazy-loader", marker = "python_full_version >= '3.10'" }, { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, { name = "networkx", version = "3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pillow", version = "11.2.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, @@ -6953,6 +7588,142 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/10/cc/75e9f17e3670b5ed93c32456fda823333c6279b144cd93e2c03aa06aa472/scikit_image-0.25.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330d061bd107d12f8d68f1d611ae27b3b813b8cdb0300a71d07b1379178dd4cd", size = 13862801, upload-time = "2025-02-18T18:05:20.783Z" }, ] +[[package]] +name = "scikit-learn" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "joblib", version = "1.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "scipy", version = "1.10.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, + { name = "threadpoolctl", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/88/00/835e3d280fdd7784e76bdef91dd9487582d7951a7254f59fc8004fc8b213/scikit-learn-1.3.2.tar.gz", hash = "sha256:a2f54c76accc15a34bfb9066e6c7a56c1e7235dda5762b990792330b52ccfb05", size = 7510251, upload-time = "2023-10-23T13:47:55.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/53/570b55a6e10b8694ac1e3024d2df5cd443f1b4ff6d28430845da8b9019b3/scikit_learn-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e326c0eb5cf4d6ba40f93776a20e9a7a69524c4db0757e7ce24ba222471ee8a1", size = 10209999, upload-time = "2023-10-23T13:46:30.373Z" }, + { url = "https://files.pythonhosted.org/packages/70/d0/50ace22129f79830e3cf682d0a2bd4843ef91573299d43112d52790163a8/scikit_learn-1.3.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:535805c2a01ccb40ca4ab7d081d771aea67e535153e35a1fd99418fcedd1648a", size = 9479353, upload-time = "2023-10-23T13:46:34.368Z" }, + { url = "https://files.pythonhosted.org/packages/8f/46/fcc35ed7606c50d3072eae5a107a45cfa5b7f5fa8cc48610edd8cc8e8550/scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1215e5e58e9880b554b01187b8c9390bf4dc4692eedeaf542d3273f4785e342c", size = 10304705, upload-time = "2023-10-23T13:46:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/d0/0b/26ad95cf0b747be967b15fb71a06f5ac67aba0fd2f9cd174de6edefc4674/scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ee107923a623b9f517754ea2f69ea3b62fc898a3641766cb7deb2f2ce450161", size = 10827807, upload-time = "2023-10-23T13:46:41.59Z" }, + { url = "https://files.pythonhosted.org/packages/69/8a/cf17d6443f5f537e099be81535a56ab68a473f9393fbffda38cd19899fc8/scikit_learn-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:35a22e8015048c628ad099da9df5ab3004cdbf81edc75b396fd0cff8699ac58c", size = 9255427, upload-time = "2023-10-23T13:46:44.826Z" }, + { url = "https://files.pythonhosted.org/packages/08/5d/e5acecd6e99a6b656e42e7a7b18284e2f9c9f512e8ed6979e1e75d25f05f/scikit_learn-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6fb6bc98f234fda43163ddbe36df8bcde1d13ee176c6dc9b92bb7d3fc842eb66", size = 10116376, upload-time = "2023-10-23T13:46:48.147Z" }, + { url = "https://files.pythonhosted.org/packages/40/c6/2e91eefb757822e70d351e02cc38d07c137212ae7c41ac12746415b4860a/scikit_learn-1.3.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:18424efee518a1cde7b0b53a422cde2f6625197de6af36da0b57ec502f126157", size = 9383415, upload-time = "2023-10-23T13:46:51.324Z" }, + { url = "https://files.pythonhosted.org/packages/fa/fd/b3637639e73bb72b12803c5245f2a7299e09b2acd85a0f23937c53369a1c/scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3271552a5eb16f208a6f7f617b8cc6d1f137b52c8a1ef8edf547db0259b2c9fb", size = 10279163, upload-time = "2023-10-23T13:46:54.642Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2a/d3ff6091406bc2207e0adb832ebd15e40ac685811c7e2e3b432bfd969b71/scikit_learn-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4144a5004a676d5022b798d9e573b05139e77f271253a4703eed295bde0433", size = 10884422, upload-time = "2023-10-23T13:46:58.087Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ba/ce9bd1cd4953336a0e213b29cb80bb11816f2a93de8c99f88ef0b446ad0c/scikit_learn-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:67f37d708f042a9b8d59551cf94d30431e01374e00dc2645fa186059c6c5d78b", size = 9207060, upload-time = "2023-10-23T13:47:00.948Z" }, + { url = "https://files.pythonhosted.org/packages/26/7e/2c3b82c8c29aa384c8bf859740419278627d2cdd0050db503c8840e72477/scikit_learn-1.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8db94cd8a2e038b37a80a04df8783e09caac77cbe052146432e67800e430c028", size = 9979322, upload-time = "2023-10-23T13:47:03.977Z" }, + { url = "https://files.pythonhosted.org/packages/cf/fc/6c52ffeb587259b6b893b7cac268f1eb1b5426bcce1aa20e53523bfe6944/scikit_learn-1.3.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:61a6efd384258789aa89415a410dcdb39a50e19d3d8410bd29be365bcdd512d5", size = 9270688, upload-time = "2023-10-23T13:47:07.316Z" }, + { url = "https://files.pythonhosted.org/packages/e5/a7/6f4ae76f72ae9de162b97acbf1f53acbe404c555f968d13da21e4112a002/scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb06f8dce3f5ddc5dee1715a9b9f19f20d295bed8e3cd4fa51e1d050347de525", size = 10280398, upload-time = "2023-10-23T13:47:10.796Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b7/ee35904c07a0666784349529412fbb9814a56382b650d30fd9d6be5e5054/scikit_learn-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b2de18d86f630d68fe1f87af690d451388bb186480afc719e5f770590c2ef6c", size = 10796478, upload-time = "2023-10-23T13:47:14.077Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6b/db949ed5ac367987b1f250f070f340b7715d22f0c9c965bdf07de6ca75a3/scikit_learn-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:0402638c9a7c219ee52c94cbebc8fcb5eb9fe9c773717965c1f4185588ad3107", size = 9133979, upload-time = "2023-10-23T13:47:17.389Z" }, + { url = "https://files.pythonhosted.org/packages/e3/52/fd60b0b022af41fbf3463587ddc719288f0f2d4e46603ab3184996cd5f04/scikit_learn-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a19f90f95ba93c1a7f7924906d0576a84da7f3b2282ac3bfb7a08a32801add93", size = 10064879, upload-time = "2023-10-23T13:47:21.392Z" }, + { url = "https://files.pythonhosted.org/packages/a4/62/92e9cec3deca8b45abf62dd8f6469d688b3f28b9c170809fcc46f110b523/scikit_learn-1.3.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b8692e395a03a60cd927125eef3a8e3424d86dde9b2370d544f0ea35f78a8073", size = 9373934, upload-time = "2023-10-23T13:47:24.645Z" }, + { url = "https://files.pythonhosted.org/packages/49/81/91585dc83ec81dcd52e934f6708bf350b06949d8bfa13bf3b711b851c3f4/scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15e1e94cc23d04d39da797ee34236ce2375ddea158b10bee3c343647d615581d", size = 10499159, upload-time = "2023-10-23T13:47:28.41Z" }, + { url = "https://files.pythonhosted.org/packages/3f/48/6fdd99f5717045f9984616b5c2ec683d6286d30c0ac234563062132b83ab/scikit_learn-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:785a2213086b7b1abf037aeadbbd6d67159feb3e30263434139c98425e3dcfcf", size = 11067392, upload-time = "2023-10-23T13:47:32.087Z" }, + { url = "https://files.pythonhosted.org/packages/52/2d/ad6928a578c78bb0e44e34a5a922818b14c56716b81d145924f1f291416f/scikit_learn-1.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:64381066f8aa63c2710e6b56edc9f0894cc7bf59bd71b8ce5613a4559b6145e0", size = 9257871, upload-time = "2023-10-23T13:47:36.142Z" }, + { url = "https://files.pythonhosted.org/packages/f8/67/584acfc492ae1bd293d80c7a8c57ba7456e4e415c64869b7c240679eaf78/scikit_learn-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6c43290337f7a4b969d207e620658372ba3c1ffb611f8bc2b6f031dc5c6d1d03", size = 10232286, upload-time = "2023-10-23T13:47:39.434Z" }, + { url = "https://files.pythonhosted.org/packages/20/0f/51e3ccdc87c25e2e33bf7962249ff8c5ab1d6aed0144fb003348ce8bd352/scikit_learn-1.3.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:dc9002fc200bed597d5d34e90c752b74df516d592db162f756cc52836b38fe0e", size = 9504918, upload-time = "2023-10-23T13:47:42.679Z" }, + { url = "https://files.pythonhosted.org/packages/61/2e/5bbf3c9689d2911b65297fb5861c4257e54c797b3158c9fca8a5c576644b/scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d08ada33e955c54355d909b9c06a4789a729977f165b8bae6f225ff0a60ec4a", size = 10358127, upload-time = "2023-10-23T13:47:45.96Z" }, + { url = "https://files.pythonhosted.org/packages/25/89/dce01a35d354159dcc901e3c7e7eb3fe98de5cb3639c6cd39518d8830caa/scikit_learn-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:763f0ae4b79b0ff9cca0bf3716bcc9915bdacff3cebea15ec79652d1cc4fa5c9", size = 10890482, upload-time = "2023-10-23T13:47:49.046Z" }, + { url = "https://files.pythonhosted.org/packages/1c/49/30ffcac5af06d08dfdd27da322ce31a373b733711bb272941877c1e4794a/scikit_learn-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:ed932ea780517b00dae7431e031faae6b49b20eb6950918eb83bd043237950e0", size = 9331050, upload-time = "2023-10-23T13:47:52.246Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "joblib", version = "1.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "threadpoolctl", version = "3.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312, upload-time = "2025-01-10T08:07:55.348Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/3a/f4597eb41049110b21ebcbb0bcb43e4035017545daa5eedcfeb45c08b9c5/scikit_learn-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d056391530ccd1e501056160e3c9673b4da4805eb67eb2bdf4e983e1f9c9204e", size = 12067702, upload-time = "2025-01-10T08:05:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/37/19/0423e5e1fd1c6ec5be2352ba05a537a473c1677f8188b9306097d684b327/scikit_learn-1.6.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:0c8d036eb937dbb568c6242fa598d551d88fb4399c0344d95c001980ec1c7d36", size = 11112765, upload-time = "2025-01-10T08:06:00.272Z" }, + { url = "https://files.pythonhosted.org/packages/70/95/d5cb2297a835b0f5fc9a77042b0a2d029866379091ab8b3f52cc62277808/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8634c4bd21a2a813e0a7e3900464e6d593162a29dd35d25bdf0103b3fce60ed5", size = 12643991, upload-time = "2025-01-10T08:06:04.813Z" }, + { url = "https://files.pythonhosted.org/packages/b7/91/ab3c697188f224d658969f678be86b0968ccc52774c8ab4a86a07be13c25/scikit_learn-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:775da975a471c4f6f467725dff0ced5c7ac7bda5e9316b260225b48475279a1b", size = 13497182, upload-time = "2025-01-10T08:06:08.42Z" }, + { url = "https://files.pythonhosted.org/packages/17/04/d5d556b6c88886c092cc989433b2bab62488e0f0dafe616a1d5c9cb0efb1/scikit_learn-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:8a600c31592bd7dab31e1c61b9bbd6dea1b3433e67d264d17ce1017dbdce8002", size = 11125517, upload-time = "2025-01-10T08:06:12.783Z" }, + { url = "https://files.pythonhosted.org/packages/6c/2a/e291c29670795406a824567d1dfc91db7b699799a002fdaa452bceea8f6e/scikit_learn-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72abc587c75234935e97d09aa4913a82f7b03ee0b74111dcc2881cba3c5a7b33", size = 12102620, upload-time = "2025-01-10T08:06:16.675Z" }, + { url = "https://files.pythonhosted.org/packages/25/92/ee1d7a00bb6b8c55755d4984fd82608603a3cc59959245068ce32e7fb808/scikit_learn-1.6.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:b3b00cdc8f1317b5f33191df1386c0befd16625f49d979fe77a8d44cae82410d", size = 11116234, upload-time = "2025-01-10T08:06:21.83Z" }, + { url = "https://files.pythonhosted.org/packages/30/cd/ed4399485ef364bb25f388ab438e3724e60dc218c547a407b6e90ccccaef/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc4765af3386811c3ca21638f63b9cf5ecf66261cc4815c1db3f1e7dc7b79db2", size = 12592155, upload-time = "2025-01-10T08:06:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f3/62fc9a5a659bb58a03cdd7e258956a5824bdc9b4bb3c5d932f55880be569/scikit_learn-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25fc636bdaf1cc2f4a124a116312d837148b5e10872147bdaf4887926b8c03d8", size = 13497069, upload-time = "2025-01-10T08:06:32.515Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a6/c5b78606743a1f28eae8f11973de6613a5ee87366796583fb74c67d54939/scikit_learn-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:fa909b1a36e000a03c382aade0bd2063fd5680ff8b8e501660c0f59f021a6415", size = 11139809, upload-time = "2025-01-10T08:06:35.514Z" }, + { url = "https://files.pythonhosted.org/packages/0a/18/c797c9b8c10380d05616db3bfb48e2a3358c767affd0857d56c2eb501caa/scikit_learn-1.6.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:926f207c804104677af4857b2c609940b743d04c4c35ce0ddc8ff4f053cddc1b", size = 12104516, upload-time = "2025-01-10T08:06:40.009Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b7/2e35f8e289ab70108f8cbb2e7a2208f0575dc704749721286519dcf35f6f/scikit_learn-1.6.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c2cae262064e6a9b77eee1c8e768fc46aa0b8338c6a8297b9b6759720ec0ff2", size = 11167837, upload-time = "2025-01-10T08:06:43.305Z" }, + { url = "https://files.pythonhosted.org/packages/a4/f6/ff7beaeb644bcad72bcfd5a03ff36d32ee4e53a8b29a639f11bcb65d06cd/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1061b7c028a8663fb9a1a1baf9317b64a257fcb036dae5c8752b2abef31d136f", size = 12253728, upload-time = "2025-01-10T08:06:47.618Z" }, + { url = "https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e69fab4ebfc9c9b580a7a80111b43d214ab06250f8a7ef590a4edf72464dd86", size = 13147700, upload-time = "2025-01-10T08:06:50.888Z" }, + { url = "https://files.pythonhosted.org/packages/62/27/585859e72e117fe861c2079bcba35591a84f801e21bc1ab85bce6ce60305/scikit_learn-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:70b1d7e85b1c96383f872a519b3375f92f14731e279a7b4c6cfd650cf5dffc52", size = 11110613, upload-time = "2025-01-10T08:06:54.115Z" }, + { url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001, upload-time = "2025-01-10T08:06:58.613Z" }, + { url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360, upload-time = "2025-01-10T08:07:01.556Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004, upload-time = "2025-01-10T08:07:06.931Z" }, + { url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776, upload-time = "2025-01-10T08:07:11.715Z" }, + { url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865, upload-time = "2025-01-10T08:07:16.088Z" }, + { url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804, upload-time = "2025-01-10T08:07:20.385Z" }, + { url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530, upload-time = "2025-01-10T08:07:23.675Z" }, + { url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852, upload-time = "2025-01-10T08:07:26.817Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256, upload-time = "2025-01-10T08:07:31.084Z" }, + { url = "https://files.pythonhosted.org/packages/d2/37/b305b759cc65829fe1b8853ff3e308b12cdd9d8884aa27840835560f2b42/scikit_learn-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6849dd3234e87f55dce1db34c89a810b489ead832aaf4d4550b7ea85628be6c1", size = 12101868, upload-time = "2025-01-10T08:07:34.189Z" }, + { url = "https://files.pythonhosted.org/packages/83/74/f64379a4ed5879d9db744fe37cfe1978c07c66684d2439c3060d19a536d8/scikit_learn-1.6.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:e7be3fa5d2eb9be7d77c3734ff1d599151bb523674be9b834e8da6abe132f44e", size = 11144062, upload-time = "2025-01-10T08:07:37.67Z" }, + { url = "https://files.pythonhosted.org/packages/fd/dc/d5457e03dc9c971ce2b0d750e33148dd060fefb8b7dc71acd6054e4bb51b/scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44a17798172df1d3c1065e8fcf9019183f06c87609b49a124ebdf57ae6cb0107", size = 12693173, upload-time = "2025-01-10T08:07:42.713Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/b1d2188967c3204c78fa79c9263668cf1b98060e8e58d1a730fe5b2317bb/scikit_learn-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b7a3b86e411e4bce21186e1c180d792f3d99223dcfa3b4f597ecc92fa1a422", size = 13518605, upload-time = "2025-01-10T08:07:46.551Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d8/8d603bdd26601f4b07e2363032b8565ab82eb857f93d86d0f7956fcf4523/scikit_learn-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7a73d457070e3318e32bdb3aa79a8d990474f19035464dfd8bede2883ab5dc3b", size = 11155078, upload-time = "2025-01-10T08:07:51.376Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.7.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", +] +dependencies = [ + { name = "joblib", version = "1.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "threadpoolctl", version = "3.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/84/5f4af978fff619706b8961accac84780a6d298d82a8873446f72edb4ead0/scikit_learn-1.7.1.tar.gz", hash = "sha256:24b3f1e976a4665aa74ee0fcaac2b8fccc6ae77c8e07ab25da3ba6d3292b9802", size = 7190445, upload-time = "2025-07-18T08:01:54.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/88/0dd5be14ef19f2d80a77780be35a33aa94e8a3b3223d80bee8892a7832b4/scikit_learn-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:406204dd4004f0517f0b23cf4b28c6245cbd51ab1b6b78153bc784def214946d", size = 9338868, upload-time = "2025-07-18T08:01:00.25Z" }, + { url = "https://files.pythonhosted.org/packages/fd/52/3056b6adb1ac58a0bc335fc2ed2fcf599974d908855e8cb0ca55f797593c/scikit_learn-1.7.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:16af2e44164f05d04337fd1fc3ae7c4ea61fd9b0d527e22665346336920fe0e1", size = 8655943, upload-time = "2025-07-18T08:01:02.974Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a4/e488acdece6d413f370a9589a7193dac79cd486b2e418d3276d6ea0b9305/scikit_learn-1.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2f2e78e56a40c7587dea9a28dc4a49500fa2ead366869418c66f0fd75b80885c", size = 9652056, upload-time = "2025-07-18T08:01:04.978Z" }, + { url = "https://files.pythonhosted.org/packages/18/41/bceacec1285b94eb9e4659b24db46c23346d7e22cf258d63419eb5dec6f7/scikit_learn-1.7.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b62b76ad408a821475b43b7bb90a9b1c9a4d8d125d505c2df0539f06d6e631b1", size = 9473691, upload-time = "2025-07-18T08:01:07.006Z" }, + { url = "https://files.pythonhosted.org/packages/12/7b/e1ae4b7e1dd85c4ca2694ff9cc4a9690970fd6150d81b975e6c5c6f8ee7c/scikit_learn-1.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:9963b065677a4ce295e8ccdee80a1dd62b37249e667095039adcd5bce6e90deb", size = 8900873, upload-time = "2025-07-18T08:01:09.332Z" }, + { url = "https://files.pythonhosted.org/packages/b4/bd/a23177930abd81b96daffa30ef9c54ddbf544d3226b8788ce4c3ef1067b4/scikit_learn-1.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90c8494ea23e24c0fb371afc474618c1019dc152ce4a10e4607e62196113851b", size = 9334838, upload-time = "2025-07-18T08:01:11.239Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a1/d3a7628630a711e2ac0d1a482910da174b629f44e7dd8cfcd6924a4ef81a/scikit_learn-1.7.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:bb870c0daf3bf3be145ec51df8ac84720d9972170786601039f024bf6d61a518", size = 8651241, upload-time = "2025-07-18T08:01:13.234Z" }, + { url = "https://files.pythonhosted.org/packages/26/92/85ec172418f39474c1cd0221d611345d4f433fc4ee2fc68e01f524ccc4e4/scikit_learn-1.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:40daccd1b5623f39e8943ab39735cadf0bdce80e67cdca2adcb5426e987320a8", size = 9718677, upload-time = "2025-07-18T08:01:15.649Z" }, + { url = "https://files.pythonhosted.org/packages/df/ce/abdb1dcbb1d2b66168ec43b23ee0cee356b4cc4100ddee3943934ebf1480/scikit_learn-1.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30d1f413cfc0aa5a99132a554f1d80517563c34a9d3e7c118fde2d273c6fe0f7", size = 9511189, upload-time = "2025-07-18T08:01:18.013Z" }, + { url = "https://files.pythonhosted.org/packages/b2/3b/47b5eaee01ef2b5a80ba3f7f6ecf79587cb458690857d4777bfd77371c6f/scikit_learn-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:c711d652829a1805a95d7fe96654604a8f16eab5a9e9ad87b3e60173415cb650", size = 8914794, upload-time = "2025-07-18T08:01:20.357Z" }, + { url = "https://files.pythonhosted.org/packages/cb/16/57f176585b35ed865f51b04117947fe20f130f78940c6477b6d66279c9c2/scikit_learn-1.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3cee419b49b5bbae8796ecd690f97aa412ef1674410c23fc3257c6b8b85b8087", size = 9260431, upload-time = "2025-07-18T08:01:22.77Z" }, + { url = "https://files.pythonhosted.org/packages/67/4e/899317092f5efcab0e9bc929e3391341cec8fb0e816c4789686770024580/scikit_learn-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2fd8b8d35817b0d9ebf0b576f7d5ffbbabdb55536b0655a8aaae629d7ffd2e1f", size = 8637191, upload-time = "2025-07-18T08:01:24.731Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1b/998312db6d361ded1dd56b457ada371a8d8d77ca2195a7d18fd8a1736f21/scikit_learn-1.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:588410fa19a96a69763202f1d6b7b91d5d7a5d73be36e189bc6396bfb355bd87", size = 9486346, upload-time = "2025-07-18T08:01:26.713Z" }, + { url = "https://files.pythonhosted.org/packages/ad/09/a2aa0b4e644e5c4ede7006748f24e72863ba2ae71897fecfd832afea01b4/scikit_learn-1.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e3142f0abe1ad1d1c31a2ae987621e41f6b578144a911ff4ac94781a583adad7", size = 9290988, upload-time = "2025-07-18T08:01:28.938Z" }, + { url = "https://files.pythonhosted.org/packages/15/fa/c61a787e35f05f17fc10523f567677ec4eeee5f95aa4798dbbbcd9625617/scikit_learn-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3ddd9092c1bd469acab337d87930067c87eac6bd544f8d5027430983f1e1ae88", size = 8735568, upload-time = "2025-07-18T08:01:30.936Z" }, + { url = "https://files.pythonhosted.org/packages/52/f8/e0533303f318a0f37b88300d21f79b6ac067188d4824f1047a37214ab718/scikit_learn-1.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b7839687fa46d02e01035ad775982f2470be2668e13ddd151f0f55a5bf123bae", size = 9213143, upload-time = "2025-07-18T08:01:32.942Z" }, + { url = "https://files.pythonhosted.org/packages/71/f3/f1df377d1bdfc3e3e2adc9c119c238b182293e6740df4cbeac6de2cc3e23/scikit_learn-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a10f276639195a96c86aa572ee0698ad64ee939a7b042060b98bd1930c261d10", size = 8591977, upload-time = "2025-07-18T08:01:34.967Z" }, + { url = "https://files.pythonhosted.org/packages/99/72/c86a4cd867816350fe8dee13f30222340b9cd6b96173955819a5561810c5/scikit_learn-1.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:13679981fdaebc10cc4c13c43344416a86fcbc61449cb3e6517e1df9d12c8309", size = 9436142, upload-time = "2025-07-18T08:01:37.397Z" }, + { url = "https://files.pythonhosted.org/packages/e8/66/277967b29bd297538dc7a6ecfb1a7dce751beabd0d7f7a2233be7a4f7832/scikit_learn-1.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f1262883c6a63f067a980a8cdd2d2e7f2513dddcef6a9eaada6416a7a7cbe43", size = 9282996, upload-time = "2025-07-18T08:01:39.721Z" }, + { url = "https://files.pythonhosted.org/packages/e2/47/9291cfa1db1dae9880420d1e07dbc7e8dd4a7cdbc42eaba22512e6bde958/scikit_learn-1.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:ca6d31fb10e04d50bfd2b50d66744729dbb512d4efd0223b864e2fdbfc4cee11", size = 8707418, upload-time = "2025-07-18T08:01:42.124Z" }, + { url = "https://files.pythonhosted.org/packages/61/95/45726819beccdaa34d3362ea9b2ff9f2b5d3b8bf721bd632675870308ceb/scikit_learn-1.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:781674d096303cfe3d351ae6963ff7c958db61cde3421cd490e3a5a58f2a94ae", size = 9561466, upload-time = "2025-07-18T08:01:44.195Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1c/6f4b3344805de783d20a51eb24d4c9ad4b11a7f75c1801e6ec6d777361fd/scikit_learn-1.7.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:10679f7f125fe7ecd5fad37dd1aa2daae7e3ad8df7f3eefa08901b8254b3e12c", size = 9040467, upload-time = "2025-07-18T08:01:46.671Z" }, + { url = "https://files.pythonhosted.org/packages/6f/80/abe18fe471af9f1d181904203d62697998b27d9b62124cd281d740ded2f9/scikit_learn-1.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1f812729e38c8cb37f760dce71a9b83ccfb04f59b3dca7c6079dcdc60544fa9e", size = 9532052, upload-time = "2025-07-18T08:01:48.676Z" }, + { url = "https://files.pythonhosted.org/packages/14/82/b21aa1e0c4cee7e74864d3a5a721ab8fcae5ca55033cb6263dca297ed35b/scikit_learn-1.7.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88e1a20131cf741b84b89567e1717f27a2ced228e0f29103426102bc2e3b8ef7", size = 9361575, upload-time = "2025-07-18T08:01:50.639Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/f4777fcd5627dc6695fa6b92179d0edb7a3ac1b91bcd9a1c7f64fa7ade23/scikit_learn-1.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b1bd1d919210b6a10b7554b717c9000b5485aa95a1d0f177ae0d7ee8ec750da5", size = 9277310, upload-time = "2025-07-18T08:01:52.547Z" }, +] + [[package]] name = "scipy" version = "1.10.1" @@ -7038,8 +7809,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } wheels = [ @@ -7194,8 +7965,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ca/3c/2da625233f4e605155926566c0e7ea8dda361877f48e8b1655e53456f252/shapely-2.1.1.tar.gz", hash = "sha256:500621967f2ffe9642454808009044c21e5b35db89ce69f8a2042c2ffd0e2772", size = 315422, upload-time = "2025-05-19T11:04:41.265Z" } wheels = [ @@ -7464,9 +8235,8 @@ resolution-markers = [ "python_full_version == '3.9.*'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*' or python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.9'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, { name = "patsy", marker = "python_full_version >= '3.9'" }, @@ -7531,6 +8301,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" }, ] +[[package]] +name = "texttable" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/dc/0aff23d6036a4d3bf4f1d8c8204c5c79c4437e25e0ae94ffe4bbb55ee3c2/texttable-1.7.0.tar.gz", hash = "sha256:2d2068fb55115807d3ac77a4ca68fa48803e84ebb0ee2340f858107a36522638", size = 12831, upload-time = "2023-10-03T09:48:12.272Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/99/4772b8e00a136f3e01236de33b0efda31ee7077203ba5967fcc76da94d65/texttable-1.7.0-py2.py3-none-any.whl", hash = "sha256:72227d592c82b3d7f672731ae73e4d1f88cd8e2ef5b075a7a7f01a23a3743917", size = 10768, upload-time = "2023-10-03T09:48:10.434Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936, upload-time = "2024-04-29T13:50:16.544Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414, upload-time = "2024-04-29T13:50:14.014Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + [[package]] name = "tifffile" version = "2023.7.10" @@ -7588,7 +8397,7 @@ resolution-markers = [ "python_full_version == '3.11.*'", ] dependencies = [ - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/33/cc/deed7dd69d4029adba8e95214f8bf65fca8bc6b8426e27d056e1de624206/tifffile-2025.6.1.tar.gz", hash = "sha256:63cff7cf7305c26e3f3451c0b05fd95a09252beef4f1663227d4b70cb75c5fdb", size = 369769, upload-time = "2025-06-02T01:41:44.083Z" } wheels = [ @@ -7728,6 +8537,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/55/a7/535c44c7bea4578e48281d83c615219f3ab19e6abc67625ef637c73987be/tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7", size = 443596, upload-time = "2025-05-22T18:15:37.433Z" }, ] +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + [[package]] name = "traitlets" version = "5.14.3" @@ -7868,6 +8689,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, ] +[[package]] +name = "umap" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4b/46/08ab68936625400fe690684428d4db4764f49b406782cc133df1d0299d06/umap-0.1.1.tar.gz", hash = "sha256:5d08c1a335cc7ee175811a99dc9356d3d4b8567ad082e2b1b205198cf27c4256", size = 3191, upload-time = "2016-01-20T16:33:11.724Z" } + [[package]] name = "uri-template" version = "1.3.0" @@ -8687,6 +9514,48 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] +[[package]] +name = "werkzeug" +version = "3.0.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform == 'win32'", + "python_full_version <= '3.8' and sys_platform == 'win32'", + "python_full_version > '3.8' and python_full_version < '3.9' and sys_platform != 'win32'", + "python_full_version <= '3.8' and sys_platform != 'win32'", +] +dependencies = [ + { name = "markupsafe", version = "2.1.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d4/f9/0ba83eaa0df9b9e9d1efeb2ea351d0677c37d41ee5d0f91e98423c7281c9/werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d", size = 805170, upload-time = "2024-10-25T18:52:31.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/69/05837f91dfe42109203ffa3e488214ff86a6d68b2ed6c167da6cdc42349b/werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17", size = 227979, upload-time = "2024-10-25T18:52:30.129Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.1.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version == '3.10.*'", + "python_full_version == '3.9.*'", +] +dependencies = [ + { name = "markupsafe", version = "3.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/69/83029f1f6300c5fb2471d621ab06f6ec6b3324685a2ce0f9777fd4a8b71e/werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746", size = 806925, upload-time = "2024-11-08T15:52:18.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/24/ab44c871b0f07f491e5d2ad12c9bd7358e527510618cb1b803a88e986db1/werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e", size = 224498, upload-time = "2024-11-08T15:52:16.132Z" }, +] + +[[package]] +name = "wget" +version = "3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/6a/62e288da7bcda82b935ff0c6cfe542970f04e29c756b0e147251b2fb251f/wget-3.2.zip", hash = "sha256:35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061", size = 10857, upload-time = "2015-10-22T15:26:37.51Z" } + [[package]] name = "wheel" version = "0.45.1" @@ -8752,8 +9621,8 @@ resolution-markers = [ "python_full_version == '3.10.*'", ] dependencies = [ + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, - { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pandas", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] @@ -8791,6 +9660,8 @@ name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", "python_full_version == '3.9.*'", ] From 5cad01388b6f5d90549d731f7d53d1cf12fa550b Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Wed, 30 Jul 2025 14:26:10 -0400 Subject: [PATCH 27/29] use _parse_md function --- bin/check-all-md.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/bin/check-all-md.py b/bin/check-all-md.py index 95fe75f3d33..c06b00e3393 100644 --- a/bin/check-all-md.py +++ b/bin/check-all-md.py @@ -1,16 +1,15 @@ from pathlib import Path import os -import re import sys +from run_markdown import _parse_md -PAT = re.compile(r"^```python\n(.+?)\n```", re.MULTILINE | re.DOTALL) TMP_FILE = "tmp.py" for filename in sys.argv[1:]: content = Path(filename).read_text() - blocks = PAT.findall(content) - for i, b in enumerate(blocks): - Path(TMP_FILE).write_text(b.strip()) + blocks = _parse_md(content) + for i, block in enumerate(blocks): + Path(TMP_FILE).write_text(block["code"].strip()) sys.stdout.write(f"\n{'=' * 40}\n{filename}: {i}\n") sys.stdout.flush() sys.stdout.write(f"{'-' * 40}\n") From 2e38a9a4ec34a400653e96e8879380bda88b2a92 Mon Sep 17 00:00:00 2001 From: Liam Connors Date: Wed, 30 Jul 2025 14:58:06 -0400 Subject: [PATCH 28/29] don't process code block in region sections --- bin/run_markdown.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/bin/run_markdown.py b/bin/run_markdown.py index 887431d361b..d427c03c650 100644 --- a/bin/run_markdown.py +++ b/bin/run_markdown.py @@ -162,17 +162,26 @@ def _parse_md(content): blocks = [] current_block = None in_code_block = False + in_region_block = False for i, line in enumerate(lines): + # Check for region start/end markers + if "