moderne-visualizations-misc 0.61.0__py3-none-any.whl → 0.63.0__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.
@@ -0,0 +1,162 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "from code_data_science import data_table as dt\n",
10
+ "\n",
11
+ "df = dt.read_csv(\"../samples/dependency_usage_violin.csv\")"
12
+ ]
13
+ },
14
+ {
15
+ "cell_type": "code",
16
+ "execution_count": null,
17
+ "metadata": {},
18
+ "outputs": [],
19
+ "source": [
20
+ "df = df[[\"artifactId\", \"version\", \"depth\"]]"
21
+ ]
22
+ },
23
+ {
24
+ "cell_type": "code",
25
+ "execution_count": null,
26
+ "metadata": {},
27
+ "outputs": [],
28
+ "source": [
29
+ "from code_data_science.versions import index as index_versions\n",
30
+ "\n",
31
+ "# make sure version is a string\n",
32
+ "df[\"version\"] = df[\"version\"].astype(str)\n",
33
+ "\n",
34
+ "vmap = index_versions(df.version)\n",
35
+ "df[\"nVersion\"] = list(map(lambda v: vmap[v], df.version))\n",
36
+ "\n",
37
+ "\n",
38
+ "def index_ga(groupartifacts):\n",
39
+ " sorted_ga = sorted(list(set(groupartifacts)))\n",
40
+ " return {ga: sorted_ga.index(ga) for ga in sorted_ga}\n",
41
+ "\n",
42
+ "\n",
43
+ "gmap = index_ga(df.artifactId)\n",
44
+ "df[\"nArtifactId\"] = list(map(lambda g: gmap[g], df.artifactId))\n",
45
+ "\n",
46
+ "df = df.sort_values(by=[\"nVersion\", \"nArtifactId\"])"
47
+ ]
48
+ },
49
+ {
50
+ "cell_type": "code",
51
+ "execution_count": null,
52
+ "metadata": {},
53
+ "outputs": [],
54
+ "source": [
55
+ "import plotly.graph_objects as go\n",
56
+ "import code_data_science.palette as palette\n",
57
+ "\n",
58
+ "colors = palette.colors_by_weight(500)\n",
59
+ "\n",
60
+ "fig = go.Figure()\n",
61
+ "\n",
62
+ "# Add a trace to the plot for each category\n",
63
+ "for i, category in enumerate(df[\"nArtifactId\"].unique()):\n",
64
+ " category_data = df[df[\"nArtifactId\"] == category]\n",
65
+ "\n",
66
+ " # Calculate counts for each dependency and version combination\n",
67
+ " counts = (\n",
68
+ " category_data.groupby(\"nVersion\")[\"nArtifactId\"]\n",
69
+ " .count()\n",
70
+ " .reset_index(name=\"count\")\n",
71
+ " )\n",
72
+ "\n",
73
+ " category_data_with_counts = category_data.merge(counts, on=\"nVersion\")\n",
74
+ "\n",
75
+ " # Generate hover text including the count information\n",
76
+ " hover_text = category_data_with_counts.apply(\n",
77
+ " lambda row: f'<b>Artifact</b>: {row[\"artifactId\"]}<br><b>Version</b>: {row[\"version\"]}<br><b>Count</b>: {row[\"count\"]}',\n",
78
+ " axis=1,\n",
79
+ " )\n",
80
+ "\n",
81
+ " fig.add_trace(\n",
82
+ " go.Scatter(\n",
83
+ " x=category_data[\"nArtifactId\"],\n",
84
+ " y=category_data[\"nVersion\"],\n",
85
+ " mode=\"markers\",\n",
86
+ " marker=dict(color=colors[i % len(colors)], size=8),\n",
87
+ " showlegend=False,\n",
88
+ " name=\"\",\n",
89
+ " text=hover_text,\n",
90
+ " hoverinfo=\"text\",\n",
91
+ " hoverlabel=dict(font=dict(size=18)),\n",
92
+ " )\n",
93
+ " )\n",
94
+ "\n",
95
+ " fig.add_trace(\n",
96
+ " go.Violin(\n",
97
+ " x=category_data[\"nArtifactId\"],\n",
98
+ " y=category_data[\"nVersion\"],\n",
99
+ " fillcolor=\"black\",\n",
100
+ " opacity=0.15,\n",
101
+ " line_color=\"black\",\n",
102
+ " showlegend=False,\n",
103
+ " width=0.7,\n",
104
+ " bandwidth=0.4,\n",
105
+ " hoverinfo=\"none\",\n",
106
+ " hoveron=\"points\",\n",
107
+ " )\n",
108
+ " )\n",
109
+ "\n",
110
+ "num_versions = df[\"nVersion\"].nunique()\n",
111
+ "height_per_version = 32\n",
112
+ "width_per_dependency = 80\n",
113
+ "fig_height = max(num_versions * height_per_version, 900)\n",
114
+ "fig_width = max(len(list(gmap.values())) * width_per_dependency, 900)\n",
115
+ "tick_font_size = 13\n",
116
+ "# Customizing the layout\n",
117
+ "fig.update_layout(\n",
118
+ " title=\"Artifact versions in use\",\n",
119
+ " xaxis_title=\"Artifacts\",\n",
120
+ " yaxis_title=\"Versions\",\n",
121
+ " height=fig_height,\n",
122
+ " width=fig_width,\n",
123
+ " xaxis=dict(\n",
124
+ " tickfont=dict(size=tick_font_size),\n",
125
+ " tickmode=\"array\",\n",
126
+ " tickvals=list(gmap.values()),\n",
127
+ " ticktext=list(gmap.keys()),\n",
128
+ " ),\n",
129
+ " yaxis=dict(\n",
130
+ " tickfont=dict(size=tick_font_size),\n",
131
+ " tickmode=\"array\",\n",
132
+ " tickvals=list(vmap.values()),\n",
133
+ " ticktext=list(vmap.keys()),\n",
134
+ " ),\n",
135
+ ")\n",
136
+ "\n",
137
+ "fig.show()"
138
+ ]
139
+ }
140
+ ],
141
+ "metadata": {
142
+ "kernelspec": {
143
+ "display_name": "Python 3",
144
+ "language": "python",
145
+ "name": "python3"
146
+ },
147
+ "language_info": {
148
+ "codemirror_mode": {
149
+ "name": "ipython",
150
+ "version": 3
151
+ },
152
+ "file_extension": ".py",
153
+ "mimetype": "text/x-python",
154
+ "name": "python",
155
+ "nbconvert_exporter": "python",
156
+ "pygments_lexer": "ipython3",
157
+ "version": "3.11.4"
158
+ }
159
+ },
160
+ "nbformat": 4,
161
+ "nbformat_minor": 2
162
+ }
@@ -47,7 +47,6 @@
47
47
  " mappings = {\n",
48
48
  " \"Typescript\": [\"ts\", \"tsx\"],\n",
49
49
  " \"Javascript\": [\"js\", \"jsx\"],\n",
50
- " \"Python\": [\"py\"],\n",
51
50
  " \"Kotlin\": [\"kts\"],\n",
52
51
  " }\n",
53
52
  "\n",
@@ -47,7 +47,6 @@
47
47
  " mappings = {\n",
48
48
  " \"Typescript\": [\"ts\", \"tsx\"],\n",
49
49
  " \"Javascript\": [\"js\", \"jsx\"],\n",
50
- " \"Python\": [\"py\"],\n",
51
50
  " \"Kotlin\": [\"kts\"],\n",
52
51
  " }\n",
53
52
  "\n",
@@ -0,0 +1,9 @@
1
+ ---
2
+ type: specs.moderne.io/v1beta/visualization
3
+ name: io.moderne.DependencyUsageViolinNuget
4
+ displayName: C# dependency usage
5
+ description: >
6
+ See the distribution of dependencies by version.
7
+ recipe:
8
+ org.openrewrite.csharp.dependencies.DependencyInsight:
9
+ dataTable: org.openrewrite.maven.table.DependenciesInUse
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: moderne_visualizations_misc
3
- Version: 0.61.0
3
+ Version: 0.63.0
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
@@ -35,6 +35,7 @@ moderne_visualizations_misc/dependency_usage_violin_nodejs_state.ipynb,sha256=Y8
35
35
  moderne_visualizations_misc/dependency_usage_violin_nodejs_testing.ipynb,sha256=Y8rXBULhhbgGSyZOvfXNc5l-XE3R622neBbkD3fJXgU,756
36
36
  moderne_visualizations_misc/dependency_usage_violin_nodejs_ui.ipynb,sha256=Y8rXBULhhbgGSyZOvfXNc5l-XE3R622neBbkD3fJXgU,756
37
37
  moderne_visualizations_misc/dependency_usage_violin_nodejs_utility.ipynb,sha256=Y8rXBULhhbgGSyZOvfXNc5l-XE3R622neBbkD3fJXgU,756
38
+ moderne_visualizations_misc/dependency_usage_violin_nuget.ipynb,sha256=G1Ud9z8qtldM4Sqm9tr6hlyBb3FA_3kQzv17h5TNT-s,4948
38
39
  moderne_visualizations_misc/dependency_vulnerabilities.ipynb,sha256=NHbg232NpB4W_iWagaGJU7Czn5CYLhStP_2fIqGstAM,33520
39
40
  moderne_visualizations_misc/dependency_vulnerabilities_npm.ipynb,sha256=8n1vp9_-e0FROhLEmyTVEOqx5V_norBotYF1S4gpbxc,33491
40
41
  moderne_visualizations_misc/dependency_vulnerabilities_nuget.ipynb,sha256=KtyQ48CVL-HbSi5nY4Hi9QRwcSLI_M4Ezvv5mvLMIh0,33491
@@ -50,9 +51,9 @@ moderne_visualizations_misc/github_secrets_in_use.ipynb,sha256=dGCXxoqDuDh5TjGMI
50
51
  moderne_visualizations_misc/gradle_wrappers.ipynb,sha256=GtzUkmzDUZ3K3eL6Jj5VXvI-J4Ogphsf8z8b2kAfjt8,1929
51
52
  moderne_visualizations_misc/java_versions_by_sourceset.ipynb,sha256=F4Df2jVcYPilE-2z6rnmD9Blqq7K8Ulo5NRu946LrkU,2109
52
53
  moderne_visualizations_misc/java_versions_in_use.ipynb,sha256=VVsCttcq2vk2ndzKmtKnNRYT6gVEe2SJ1WI-h6M73oA,1971
53
- moderne_visualizations_misc/language_composition.ipynb,sha256=EEu32hhitv3hmpVGKbKzFo91OKrV_vGyX2bSJ_UQDo0,6755
54
+ moderne_visualizations_misc/language_composition.ipynb,sha256=kKRnUukITpuzfxMsGsfeQeF1o6TYVeblfSfdH5hd-RE,6716
54
55
  moderne_visualizations_misc/language_composition_by_folder.ipynb,sha256=LRU1GuC2EvuOpFRi4NN90odqyRt0ywroysfXuhDFlhE,2505
55
- moderne_visualizations_misc/language_composition_by_repo.ipynb,sha256=SgM-VMIn3_wMLQcXE6835x5auuM_YVR8EzqK8i4AB5c,7099
56
+ moderne_visualizations_misc/language_composition_by_repo.ipynb,sha256=OEU0GR6U8OAt9jzlCJzuaiR4xcWF3UubSio1BKWGV2k,7060
56
57
  moderne_visualizations_misc/lst_provenance.ipynb,sha256=0tuXcUHSn-mRQYKP27RSrbpuYj9w10KcbEB9aYMSOKQ,2148
57
58
  moderne_visualizations_misc/maven_parent_poms.ipynb,sha256=dOB7Q89Xt1ep_n8ovJpE1bHK7Jjy9_o4yXCqfhN-KUc,2115
58
59
  moderne_visualizations_misc/parse_failure_stacktraces.ipynb,sha256=bbMAvt0W7cQyBNufGJndh-LI7H-mLaXkq0xSKxovSyA,6216
@@ -99,6 +100,7 @@ moderne_visualizations_misc/images/dependency_usage_violin_nodejs_state.300.png,
99
100
  moderne_visualizations_misc/images/dependency_usage_violin_nodejs_testing.300.png,sha256=lfhXF98B_IQAukA-MBnk8Fp0xHfiNUTcQs4m_czksZk,25837
100
101
  moderne_visualizations_misc/images/dependency_usage_violin_nodejs_ui.300.png,sha256=lfhXF98B_IQAukA-MBnk8Fp0xHfiNUTcQs4m_czksZk,25837
101
102
  moderne_visualizations_misc/images/dependency_usage_violin_nodejs_utility.300.png,sha256=lfhXF98B_IQAukA-MBnk8Fp0xHfiNUTcQs4m_czksZk,25837
103
+ moderne_visualizations_misc/images/dependency_usage_violin_nuget.300.png,sha256=lfhXF98B_IQAukA-MBnk8Fp0xHfiNUTcQs4m_czksZk,25837
102
104
  moderne_visualizations_misc/images/dependency_vulnerabilities.300.png,sha256=X-RA8xCuZsugGa_jRZ5CtqnYGOXHoUiVUZ9mdSi8WZ0,9057
103
105
  moderne_visualizations_misc/images/dependency_vulnerabilities_npm.300.png,sha256=X-RA8xCuZsugGa_jRZ5CtqnYGOXHoUiVUZ9mdSi8WZ0,9057
104
106
  moderne_visualizations_misc/images/dependency_vulnerabilities_nuget.300.png,sha256=X-RA8xCuZsugGa_jRZ5CtqnYGOXHoUiVUZ9mdSi8WZ0,9057
@@ -159,6 +161,7 @@ moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_state.yml,sha25
159
161
  moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_testing.yml,sha256=XfHWkd8x4Zb1U7zd4UxekIEk0SQ6Zxk_vy-ufUwUG6Q,305
160
162
  moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_ui.yml,sha256=PUSYOIf0d5EduujZzTqv3GhKtg9NMEAqIoFNj2etKn0,295
161
163
  moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_utility.yml,sha256=gLjz7vGOWkxze0H8-bTbNOvzNmWuPwyp6rVpK-TGhyM,305
164
+ moderne_visualizations_misc/specs/dependency_usage_violin_nuget.yml,sha256=_JGFLIweauwZN90sa4j-4yDRNHPr-UjsX4nrCN6a0LA,313
162
165
  moderne_visualizations_misc/specs/dependency_vulnerabilities.yml,sha256=WLu7yclOQlFpeyubaP1mgGMnQKz-SjsYQTipjFfJ0r8,1263
163
166
  moderne_visualizations_misc/specs/dependency_vulnerabilities_npm.yml,sha256=EdhBpsXy3n9Dw3k3wxEuRZKP-Dzuw4YKrq6Y2OOLbsE,1244
164
167
  moderne_visualizations_misc/specs/dependency_vulnerabilities_nuget.yml,sha256=mqX0zQc93k6lUgPYNhAtztRVxyBWiNCDCqXMDtDHKqk,1241
@@ -187,7 +190,7 @@ moderne_visualizations_misc/specs/spring_component_relationships_data_grid.yml,s
187
190
  moderne_visualizations_misc/specs/spring_components_data_grid.yml,sha256=nRLXX3t2sw4gFIVdt7wEE1O8vVcr0qWx1aqIZpoFghc,323
188
191
  moderne_visualizations_misc/specs/sql_crud.yml,sha256=BaUV1bb3oJNrNARU-0YAez2S2yW8djqNUvRSY6rfmTk,533
189
192
  moderne_visualizations_misc/specs/text_matches_tree_grid.yml,sha256=U2-j_kFaHNex5avmPtzw_6AWUs9JKk_ouCyqdJBThp4,903
190
- moderne_visualizations_misc-0.61.0.dist-info/METADATA,sha256=DNqLvYHzA11AnVThraWhZ6tRwpNFCZwI7443gfLGsSk,1010
191
- moderne_visualizations_misc-0.61.0.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
192
- moderne_visualizations_misc-0.61.0.dist-info/top_level.txt,sha256=V_gviHcBSH6w_h-g98-9ecQRoN8d82cxPdV-DA3Leeo,28
193
- moderne_visualizations_misc-0.61.0.dist-info/RECORD,,
193
+ moderne_visualizations_misc-0.63.0.dist-info/METADATA,sha256=QnL2dI0r6wx-QUm4AEiZkdc8vJAfrpxN1dTjLJPXbv4,1010
194
+ moderne_visualizations_misc-0.63.0.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
195
+ moderne_visualizations_misc-0.63.0.dist-info/top_level.txt,sha256=V_gviHcBSH6w_h-g98-9ecQRoN8d82cxPdV-DA3Leeo,28
196
+ moderne_visualizations_misc-0.63.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (73.0.1)
2
+ Generator: setuptools (74.1.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5