moderne-visualizations-misc 0.71.0__py3-none-any.whl → 0.71.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,9 +31,8 @@
31
31
  "# Filter the data frame to only include rows where repositoryWithBranch contain\n",
32
32
  "# a term in the repository_filter (case insensitive)\n",
33
33
  "if len(repository_filter) > 0:\n",
34
- " df = df[\n",
35
- " df[\"repositoryWithBranch\"].str.contains(\"|\".join(repository_filter), case=False)\n",
36
- " ]"
34
+ " df = df[df[\"repositoryWithBranch\"].str.contains(\n",
35
+ " \"|\".join(repository_filter), case=False)]"
37
36
  ]
38
37
  },
39
38
  {
@@ -42,6 +41,9 @@
42
41
  "metadata": {},
43
42
  "outputs": [],
44
43
  "source": [
44
+ "import pandas as pd\n",
45
+ "import numpy as np\n",
46
+ "\n",
45
47
  "df = df[[\"parentRecipe\", \"recipe\"]].assign(count=lambda r: 1)\n",
46
48
  "recipe_counts = (\n",
47
49
  " df[[\"parentRecipe\", \"recipe\", \"count\"]]\n",
@@ -50,10 +52,6 @@
50
52
  " .sort_values(ascending=False)\n",
51
53
  " .reset_index(name=\"count\")\n",
52
54
  ")\n",
53
- "recipe_counts[\"parentRecipe\"] = recipe_counts[\"parentRecipe\"].transform(\n",
54
- " lambda s: s.split(\".\")[-1]\n",
55
- ")\n",
56
- "recipe_counts[\"recipe\"] = recipe_counts[\"recipe\"].transform(lambda s: s.split(\".\")[-1])\n",
57
55
  "\n",
58
56
  "# sort recipe_counts by count\n",
59
57
  "recipe_counts = recipe_counts.sort_values(by=[\"count\"], ascending=False)\n",
@@ -87,9 +85,8 @@
87
85
  "# convert the 'count' column to a list\n",
88
86
  "value = list(recipe_counts[\"count\"])\n",
89
87
  "\n",
90
- "# Format labels with node names and counts\n",
91
- "\n",
92
88
  "\n",
89
+ "# Format labels with node names and counts\n",
93
90
  "def getCount(node):\n",
94
91
  " left = recipe_counts[recipe_counts[\"recipe\"] == node][\"count\"].sum()\n",
95
92
  " if left == 0:\n",
@@ -98,7 +95,12 @@
98
95
  " return left\n",
99
96
  "\n",
100
97
  "\n",
101
- "formatted_labels = [f\"{node} - {getCount(node)}\" for node in all_nodes]\n",
98
+ "def short_name(node):\n",
99
+ " return node.split(\".\")[-1]\n",
100
+ "\n",
101
+ "\n",
102
+ "formatted_labels = [f\"{short_name(node)} - {getCount(node)}\" for node in all_nodes]\n",
103
+ "\n",
102
104
  "base_colors = [\n",
103
105
  " \"#2f42ff\",\n",
104
106
  " \"#7e9bd2\",\n",
@@ -124,6 +126,13 @@
124
126
  " colors.append(base_colors[i % len(base_colors)])\n",
125
127
  "\n",
126
128
  "\n",
129
+ "# Create custom data for links to show full node names\n",
130
+ "link_customdata = []\n",
131
+ "for i in range(len(source)):\n",
132
+ " source_name = all_nodes[source[i]]\n",
133
+ " target_name = all_nodes[target[i]]\n",
134
+ " link_customdata.append([source_name, target_name])\n",
135
+ "\n",
127
136
  "# Create the Sankey diagram\n",
128
137
  "fig = go.Figure(\n",
129
138
  " data=[\n",
@@ -134,11 +143,16 @@
134
143
  " line=dict(color=\"black\", width=0.5),\n",
135
144
  " label=formatted_labels,\n",
136
145
  " color=colors,\n",
146
+ " customdata=all_nodes,\n",
147
+ " hovertemplate=\"<b>%{customdata}</b><extra></extra>\",\n",
148
+ "\n",
137
149
  " ),\n",
138
150
  " link=dict(\n",
139
151
  " source=source,\n",
140
152
  " target=target,\n",
141
153
  " value=value,\n",
154
+ " customdata=link_customdata,\n",
155
+ " hovertemplate=\"<b>Source:</b> %{customdata[0]}<br><b>Target:</b> %{customdata[1]}<br><b>Count:</b> %{value}<extra></extra>\",\n",
142
156
  " ),\n",
143
157
  " )\n",
144
158
  " ]\n",
@@ -148,16 +162,16 @@
148
162
  "fig.update_layout(\n",
149
163
  " title_text=\"Recipes that made changes\",\n",
150
164
  " font_size=10,\n",
151
- " height=max(len(all_nodes) * 15, 400),\n",
165
+ " height=max(len(all_nodes) * 10, 500),\n",
152
166
  ")\n",
153
167
  "\n",
154
- "fig.show()"
168
+ "fig.show()\n"
155
169
  ]
156
170
  }
157
171
  ],
158
172
  "metadata": {
159
173
  "kernelspec": {
160
- "display_name": "Python 3",
174
+ "display_name": "moderne-visualizations-misc",
161
175
  "language": "python",
162
176
  "name": "python3"
163
177
  },
@@ -171,7 +185,7 @@
171
185
  "name": "python",
172
186
  "nbconvert_exporter": "python",
173
187
  "pygments_lexer": "ipython3",
174
- "version": "3.11.4"
188
+ "version": "3.9.6"
175
189
  }
176
190
  },
177
191
  "nbformat": 4,
@@ -38,15 +38,18 @@
38
38
  "# normalize headers to match the original names already in use\n",
39
39
  "# old headers: repositoryOrigin,repositoryPath,repositoryBranch,scmType,repositoryLink,recipe,sourceFiles,sourceFilesChanged,scanTotalTime,scanP99,scanMax,editTotalTime,editP99,editMax\n",
40
40
  "# new headers: repositoryOrigin,repositoryPath,repositoryBranch,scmType,repositoryLink,recipe,sourceFiles,sourceFilesChanged,scanTotalTimeNs,scanP99Ns,scanMaxNs,editTotalTimeNs,editP99Ns,editMaxNs\n",
41
- "if 'scanTotalTimeNs' in df.columns:\n",
42
- " df.rename(columns={\n",
43
- " 'scanTotalTimeNs': 'scanTotalTime',\n",
44
- " 'scanP99Ns': 'scanP99',\n",
45
- " 'scanMaxNs': 'scanMax',\n",
46
- " 'editTotalTimeNs': 'editTotalTime',\n",
47
- " 'editP99Ns': 'editP99',\n",
48
- " 'editMaxNs': 'editMax'\n",
49
- " }, inplace=True)"
41
+ "if \"scanTotalTimeNs\" in df.columns:\n",
42
+ " df.rename(\n",
43
+ " columns={\n",
44
+ " \"scanTotalTimeNs\": \"scanTotalTime\",\n",
45
+ " \"scanP99Ns\": \"scanP99\",\n",
46
+ " \"scanMaxNs\": \"scanMax\",\n",
47
+ " \"editTotalTimeNs\": \"editTotalTime\",\n",
48
+ " \"editP99Ns\": \"editP99\",\n",
49
+ " \"editMaxNs\": \"editMax\",\n",
50
+ " },\n",
51
+ " inplace=True,\n",
52
+ " )"
50
53
  ]
51
54
  },
52
55
  {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: moderne_visualizations_misc
3
- Version: 0.71.0
3
+ Version: 0.71.2
4
4
  Summary: Miscellaneous visualizations for the Moderne platform
5
5
  Author-email: Jonathan Schneider <jonathan@moderne.io>, Kyle Scully <kyle@moderne.io>
6
6
  License: Apache-2.0
@@ -5,7 +5,7 @@ moderne_visualizations_misc/cobol_find_copybook.ipynb,sha256=buo5GKENebMYD3OSB2L
5
5
  moderne_visualizations_misc/cobol_relationships.ipynb,sha256=eYSMUDcK5x7MlAFxpGJXPuRNjD1VU4AEFbk710bPPM0,8530
6
6
  moderne_visualizations_misc/cobol_relationships_data_grid.ipynb,sha256=QVvc-gZEQa1qgYaWc5lODA9bWEhQ-NqX51a38EMN8XI,1950
7
7
  moderne_visualizations_misc/comment_language_distribution.ipynb,sha256=8SqQPSOxMpS-oJzUQbDSnmz7tIUky-M_zFYqsxdsxLo,3157
8
- moderne_visualizations_misc/composite_recipe_results_sankey.ipynb,sha256=3n8bOWpYlI3nCaPqLa5R140Sszok0RxCJ4vhJakHqSg,5587
8
+ moderne_visualizations_misc/composite_recipe_results_sankey.ipynb,sha256=PmEZ10HnmNns-1QHqrJSrfXL-q6u0ZtBAEKRsE3kRxE,6167
9
9
  moderne_visualizations_misc/dependency_tree_view.ipynb,sha256=rcW9LQzn_zNM7wnjOq1YA0B9ybzZPdrTRcc2VqzLOfs,2983
10
10
  moderne_visualizations_misc/dependency_tree_view_nodejs.ipynb,sha256=YQRFdXkRwedWxEqe6G5ugqiU_aHPiRVFwPHQRyo0r5w,674
11
11
  moderne_visualizations_misc/dependency_tree_view_nodejs_build_tools.ipynb,sha256=YQRFdXkRwedWxEqe6G5ugqiU_aHPiRVFwPHQRyo0r5w,674
@@ -58,7 +58,7 @@ moderne_visualizations_misc/language_composition_by_repo.ipynb,sha256=OEU0GR6U8O
58
58
  moderne_visualizations_misc/lst_provenance.ipynb,sha256=0tuXcUHSn-mRQYKP27RSrbpuYj9w10KcbEB9aYMSOKQ,2148
59
59
  moderne_visualizations_misc/maven_parent_poms.ipynb,sha256=dOB7Q89Xt1ep_n8ovJpE1bHK7Jjy9_o4yXCqfhN-KUc,2115
60
60
  moderne_visualizations_misc/parse_failure_stacktraces.ipynb,sha256=0D6bPDY5oQ5BmDST1sfIGvTJSmTTkKVe3ealFfQMXwg,6122
61
- moderne_visualizations_misc/recipe_performance.ipynb,sha256=swXLoYg0wxcoxakWTQqXvhFTtQYYuNMsUL4tjdHbDZg,4123
61
+ moderne_visualizations_misc/recipe_performance.ipynb,sha256=b58bW7-moZNDApW66EOtsdnmWwwnJia6rsFgqepfN00,4228
62
62
  moderne_visualizations_misc/recommendations.ipynb,sha256=z5GQMPjTLAi2wIosjTQwb7IA5j07uhQyFo-cvXmxTVQ,4171
63
63
  moderne_visualizations_misc/spring_component_relationships.ipynb,sha256=sQglDbEQ174QP2mN3Heo50E-CeVQrJ6x6A1RW1ABl-k,6997
64
64
  moderne_visualizations_misc/spring_component_relationships_data_grid.ipynb,sha256=NkG9VjcnqR42WOZEhdPwBls29RWNkFo_SiSzKM4NTp4,1977
@@ -198,7 +198,7 @@ moderne_visualizations_misc/specs/sql_crud.yml,sha256=BaUV1bb3oJNrNARU-0YAez2S2y
198
198
  moderne_visualizations_misc/specs/text_matches_tree_grid.yml,sha256=U2-j_kFaHNex5avmPtzw_6AWUs9JKk_ouCyqdJBThp4,903
199
199
  moderne_visualizations_misc/specs/ui5lint_rule_treemap.yml,sha256=6g01v1eD93cvtS7GnRfzScunx_X5u9fjn2ax5SHCVsE,258
200
200
  moderne_visualizations_misc/specs/ui5lint_violations_heatmap.yml,sha256=Ep97JEK5xjQkAjmHJNKPAoiIiDeuvksjnx_UREZTAbI,275
201
- moderne_visualizations_misc-0.71.0.dist-info/METADATA,sha256=FuZTMZh6Cxnaj5178pdux5qQBIrvwx9SeGpIJB7h3Pc,687
202
- moderne_visualizations_misc-0.71.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
203
- moderne_visualizations_misc-0.71.0.dist-info/top_level.txt,sha256=V_gviHcBSH6w_h-g98-9ecQRoN8d82cxPdV-DA3Leeo,28
204
- moderne_visualizations_misc-0.71.0.dist-info/RECORD,,
201
+ moderne_visualizations_misc-0.71.2.dist-info/METADATA,sha256=JN1mTwlz5vp-cHdYp_EMMTaF9TfWplWPCpukVl4kdPc,687
202
+ moderne_visualizations_misc-0.71.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
203
+ moderne_visualizations_misc-0.71.2.dist-info/top_level.txt,sha256=V_gviHcBSH6w_h-g98-9ecQRoN8d82cxPdV-DA3Leeo,28
204
+ moderne_visualizations_misc-0.71.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5