moderne-visualizations-misc 0.54.0__tar.gz → 0.55.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/MANIFEST.in +1 -0
  2. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/PKG-INFO +1 -1
  3. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs.ipynb +36 -0
  4. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_build_tools.ipynb +36 -0
  5. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_db.ipynb +36 -0
  6. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_forms.ipynb +36 -0
  7. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_lint.ipynb +36 -0
  8. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_rtc.ipynb +36 -0
  9. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_security.ipynb +36 -0
  10. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_ss.ipynb +36 -0
  11. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_state.ipynb +36 -0
  12. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_testing.ipynb +36 -0
  13. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_ui.ipynb +36 -0
  14. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/dependency_tree_view_nodejs_utility.ipynb +36 -0
  15. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_build_tools.300.png +0 -0
  16. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_db.300.png +0 -0
  17. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_forms.300.png +0 -0
  18. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_lint.300.png +0 -0
  19. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_rtc.300.png +0 -0
  20. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_security.300.png +0 -0
  21. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_ss.300.png +0 -0
  22. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_state.300.png +0 -0
  23. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_testing.300.png +0 -0
  24. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_ui.300.png +0 -0
  25. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs_utility.300.png +0 -0
  26. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs.300.png +0 -0
  27. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_build_tools.300.png +0 -0
  28. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_db.300.png +0 -0
  29. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_forms.300.png +0 -0
  30. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_lint.300.png +0 -0
  31. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_rtc.300.png +0 -0
  32. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_security.300.png +0 -0
  33. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_ss.300.png +0 -0
  34. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_state.300.png +0 -0
  35. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_testing.300.png +0 -0
  36. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_ui.300.png +0 -0
  37. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_utility.300.png +0 -0
  38. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/reusable/tree_view_nodejs.py +40 -0
  39. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/reusable/violin_nodejs.py +111 -0
  40. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_build_tools.yml +7 -0
  41. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_db.yml +7 -0
  42. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_forms.yml +7 -0
  43. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_lint.yml +7 -0
  44. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_rtc.yml +7 -0
  45. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_security.yml +7 -0
  46. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_ss.yml +7 -0
  47. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_state.yml +7 -0
  48. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_testing.yml +7 -0
  49. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_ui.yml +7 -0
  50. moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_utility.yml +7 -0
  51. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs.yml +2 -3
  52. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc.egg-info/PKG-INFO +1 -1
  53. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc.egg-info/SOURCES.txt +49 -3
  54. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/pyproject.toml +1 -1
  55. moderne_visualizations_misc-0.54.0/moderne_visualizations_misc/dependency_tree_view_javascript.ipynb +0 -79
  56. moderne_visualizations_misc-0.54.0/moderne_visualizations_misc/images/dependency_usage_violin_nodejs.300.png +0 -0
  57. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/README.md +0 -0
  58. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/__init__.py +0 -0
  59. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/call_graph_data_grid.ipynb +0 -0
  60. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/call_graph_uml.ipynb +0 -0
  61. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/cobol_find_copybook.ipynb +0 -0
  62. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/cobol_relationships.ipynb +0 -0
  63. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/cobol_relationships_data_grid.ipynb +0 -0
  64. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/comment_language_distribution.ipynb +0 -0
  65. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/composite_recipe_results_sankey.ipynb +0 -0
  66. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_tree_view.ipynb +0 -0
  67. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin.ipynb +0 -0
  68. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_gradle.ipynb +0 -0
  69. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_jackson.ipynb +0 -0
  70. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_maven.ipynb +0 -0
  71. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs.ipynb +0 -0
  72. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_build_tools.ipynb +0 -0
  73. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_db.ipynb +0 -0
  74. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_forms.ipynb +0 -0
  75. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_lint.ipynb +0 -0
  76. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_rtc.ipynb +0 -0
  77. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_security.ipynb +0 -0
  78. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_ss.ipynb +0 -0
  79. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_state.ipynb +0 -0
  80. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_testing.ipynb +0 -0
  81. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_ui.ipynb +0 -0
  82. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_utility.ipynb +0 -0
  83. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_vulnerabilities.ipynb +0 -0
  84. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/dependency_vulnerabilities_npm.ipynb +0 -0
  85. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/effective_maven_settings.ipynb +0 -0
  86. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/embeddings_clustering.ipynb +0 -0
  87. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/eslint_problems.ipynb +0 -0
  88. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/eslint_problems_by_repo.ipynb +0 -0
  89. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/find_methods.ipynb +0 -0
  90. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/find_source_files.ipynb +0 -0
  91. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/github_secrets_in_use.ipynb +0 -0
  92. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/gradle_wrappers.ipynb +0 -0
  93. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/call_graph_data_grid.300.png +0 -0
  94. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/call_graph_uml.300.png +0 -0
  95. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/cobol_find_copybook.300.png +0 -0
  96. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/cobol_relationships.300.png +0 -0
  97. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/cobol_relationships_data_grid.300.png +0 -0
  98. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/comment_language_distribution.300.png +0 -0
  99. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/composite_recipe_results_sankey.300.png +0 -0
  100. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_tree_view.300.png +0 -0
  101. /moderne_visualizations_misc-0.54.0/moderne_visualizations_misc/images/dependency_tree_view_javascript.300.png → /moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/images/dependency_tree_view_nodejs.300.png +0 -0
  102. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_usage_violin.300.png +0 -0
  103. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_usage_violin_gradle.300.png +0 -0
  104. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_usage_violin_jackson.300.png +0 -0
  105. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_usage_violin_maven.300.png +0 -0
  106. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_vulnerabilities.300.png +0 -0
  107. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/dependency_vulnerabilities_npm.300.png +0 -0
  108. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/eslint_problems.300.png +0 -0
  109. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/eslint_problems_by_repo.300.png +0 -0
  110. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/github_secrets_in_use.300.png +0 -0
  111. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/gradle_wrappers.300.png +0 -0
  112. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/language_composition.300.png +0 -0
  113. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/language_composition_by_folder.300.png +0 -0
  114. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/language_composition_by_repo.300.png +0 -0
  115. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/maven_parent_poms.300.png +0 -0
  116. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/parse_failure_stacktraces.300.png +0 -0
  117. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/recipe_performance.300.png +0 -0
  118. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/spring_component_relationships.300.png +0 -0
  119. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/spring_component_relationships_data_grid.300.png +0 -0
  120. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/spring_components_data_grid.300.png +0 -0
  121. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/sql_crud.300.png +0 -0
  122. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/images/text_matches_tree_grid.300.png +0 -0
  123. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/java_versions.ipynb +0 -0
  124. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/language_composition.ipynb +0 -0
  125. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/language_composition_by_folder.ipynb +0 -0
  126. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/language_composition_by_repo.ipynb +0 -0
  127. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/lst_provenance.ipynb +0 -0
  128. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/maven_parent_poms.ipynb +0 -0
  129. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/parse_failure_stacktraces.ipynb +0 -0
  130. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/recipe_performance.ipynb +0 -0
  131. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/recommendations.ipynb +0 -0
  132. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/resources/plantuml.jar +0 -0
  133. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/call_graph_data_grid.yml +0 -0
  134. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/call_graph_uml.yml +0 -0
  135. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/cobol_find_copybook.yml +0 -0
  136. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/cobol_relationships.yml +0 -0
  137. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/cobol_relationships_data_grid.yml +0 -0
  138. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/comment_language_distribution.yml +0 -0
  139. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/composite_recipe_results_sankey.yml +0 -0
  140. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_tree_view.yml +0 -0
  141. /moderne_visualizations_misc-0.54.0/moderne_visualizations_misc/specs/dependency_tree_view_javascript.yml → /moderne_visualizations_misc-0.55.0/moderne_visualizations_misc/specs/dependency_tree_view_nodejs.yml +0 -0
  142. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin.yml +0 -0
  143. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_gradle.yml +0 -0
  144. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_jackson.yml +0 -0
  145. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_maven.yml +0 -0
  146. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_build_tools.yml +0 -0
  147. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_db.yml +0 -0
  148. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_forms.yml +0 -0
  149. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_lint.yml +0 -0
  150. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_rtc.yml +0 -0
  151. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_security.yml +0 -0
  152. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_ss.yml +0 -0
  153. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_state.yml +0 -0
  154. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_testing.yml +0 -0
  155. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_ui.yml +0 -0
  156. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_utility.yml +0 -0
  157. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_vulnerabilities.yml +0 -0
  158. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/dependency_vulnerabilities_npm.yml +0 -0
  159. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/effective_maven_settings.yml +0 -0
  160. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/embeddings_clustering.yml +0 -0
  161. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/eslint_problems.yml +0 -0
  162. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/eslint_problems_by_repo.yml +0 -0
  163. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/find_methods.yml +0 -0
  164. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/find_source_files.yml +0 -0
  165. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/github_secrets_in_use.yml +0 -0
  166. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/gradle_wrappers.yml +0 -0
  167. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/java_versions.yml +0 -0
  168. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/language_composition.yml +0 -0
  169. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/language_composition_by_folder.yml +0 -0
  170. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/language_composition_by_repo.yml +0 -0
  171. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/lst_provenance.yml +0 -0
  172. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/maven_parent_poms.yml +0 -0
  173. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/parse_failure_stacktraces.yml +0 -0
  174. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/recipe_performance.yml +0 -0
  175. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/recommendations.yml +0 -0
  176. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/spring_component_relationships.yml +0 -0
  177. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/spring_component_relationships_data_grid.yml +0 -0
  178. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/spring_components_data_grid.yml +0 -0
  179. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/sql_crud.yml +0 -0
  180. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/specs/text_matches_tree_grid.yml +0 -0
  181. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/spring_component_relationships.ipynb +0 -0
  182. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/spring_component_relationships_data_grid.ipynb +0 -0
  183. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/spring_components_data_grid.ipynb +0 -0
  184. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/sql_crud.ipynb +0 -0
  185. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc/text_matches_tree_grid.ipynb +0 -0
  186. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc.egg-info/dependency_links.txt +0 -0
  187. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc.egg-info/requires.txt +0 -0
  188. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/moderne_visualizations_misc.egg-info/top_level.txt +0 -0
  189. {moderne_visualizations_misc-0.54.0 → moderne_visualizations_misc-0.55.0}/setup.cfg +0 -0
@@ -2,3 +2,4 @@ include moderne_visualizations_misc/*.ipynb
2
2
  include moderne_visualizations_misc/**/*.yml
3
3
  include moderne_visualizations_misc/**/*.png
4
4
  include moderne_visualizations_misc/resources/*
5
+ include moderne_visualizations_misc/reusable/*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: moderne_visualizations_misc
3
- Version: 0.54.0
3
+ Version: 0.55.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
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import reusable.tree_view_nodejs as tree_view_nodejs\n",
10
+ "\n",
11
+ "tree_view_nodejs.create_tree_view()"
12
+ ]
13
+ }
14
+ ],
15
+ "metadata": {
16
+ "kernelspec": {
17
+ "display_name": "Python 3",
18
+ "language": "python",
19
+ "name": "python3"
20
+ },
21
+ "language_info": {
22
+ "codemirror_mode": {
23
+ "name": "ipython",
24
+ "version": 3
25
+ },
26
+ "file_extension": ".py",
27
+ "mimetype": "text/x-python",
28
+ "name": "python",
29
+ "nbconvert_exporter": "python",
30
+ "pygments_lexer": "ipython3",
31
+ "version": "3.11.4"
32
+ }
33
+ },
34
+ "nbformat": 4,
35
+ "nbformat_minor": 2
36
+ }
@@ -0,0 +1,40 @@
1
+ from code_data_science import (
2
+ data_table as dt,
3
+ unique_dictionaries as ud,
4
+ tree_data_grid,
5
+ )
6
+
7
+
8
+ def dataframe_to_tree(df):
9
+ df["repositoryPath"].fillna("", inplace=True)
10
+ df["version"].fillna("", inplace=True)
11
+ df["requestedVersion"].fillna("", inplace=True)
12
+
13
+ tree = ud.UniqueDictionaries()
14
+
15
+ for _, row in df.iterrows():
16
+ parent_path = row["repositoryPath"]
17
+ child_name = row["name"]
18
+
19
+ tree.add(
20
+ {
21
+ "path": (parent_path, child_name),
22
+ "version": f"{row['requestedVersion']}",
23
+ }
24
+ )
25
+
26
+ return tree.to_list()
27
+
28
+
29
+ def create_tree_view():
30
+ df = dt.read_csv("../samples/dependency_tree_view_nodejs.csv")
31
+ df = df.drop_duplicates(subset=["repositoryPath", "name"])
32
+ tree_data = dataframe_to_tree(df)
33
+
34
+ tree_data_grid.display(
35
+ tree_data,
36
+ "Projects",
37
+ [
38
+ {"field": "version", "headerName": "Version requested", "minWidth": 200},
39
+ ],
40
+ )
@@ -0,0 +1,111 @@
1
+ from code_data_science import data_table as dt
2
+ from code_data_science.versions import index as index_versions
3
+ import plotly.graph_objects as go
4
+ import code_data_science.palette as palette
5
+
6
+ def create_violin_plot():
7
+ df = dt.read_csv("../samples/dependency_usage_violin_nodejs.csv")
8
+ df = df[["name", "requestedVersion"]]
9
+
10
+ # make sure version is a string
11
+ df["requestedVersion"] = df["requestedVersion"].astype(str)
12
+ df["version"] = list(
13
+ map(
14
+ lambda v: v.removeprefix("^")
15
+ .removeprefix("~")
16
+ .removeprefix(">")
17
+ .removeprefix("="),
18
+ df.requestedVersion,
19
+ )
20
+ )
21
+
22
+ vmap = index_versions(df.version)
23
+ df["nVersion"] = list(map(lambda v: vmap[v], df.version))
24
+
25
+ def index_name(names):
26
+ sorted_names = sorted(list(set(names)))
27
+ return {name: sorted_names.index(name) for name in sorted_names}
28
+
29
+ nmap = index_name(df.name)
30
+ df["nName"] = list(map(lambda g: nmap[g], df.name))
31
+
32
+ df = df.sort_values(by=["nVersion", "nName"])
33
+
34
+ colors = palette.colors_by_weight(500)
35
+
36
+ fig = go.Figure()
37
+
38
+ # Add a trace to the plot for each category
39
+ for i, category in enumerate(df["nName"].unique()):
40
+ category_data = df[df["nName"] == category]
41
+
42
+ # Calculate counts for each dependency and version combination
43
+ counts = (
44
+ category_data.groupby("nVersion")["nName"].count().reset_index(name="count")
45
+ )
46
+
47
+ category_data_with_counts = category_data.merge(counts, on="nVersion")
48
+
49
+ # Generate hover text including the count information
50
+ hover_text = category_data_with_counts.apply(
51
+ lambda row: f'<b>Package</b>: {row["name"]}<br><b>Version</b>: {row["version"]}<br><b>Count</b>: {row["count"]}',
52
+ axis=1,
53
+ )
54
+
55
+ fig.add_trace(
56
+ go.Scatter(
57
+ x=category_data["nName"],
58
+ y=category_data["nVersion"],
59
+ mode="markers",
60
+ marker=dict(color=colors[i % len(colors)], size=8),
61
+ showlegend=False,
62
+ name="",
63
+ text=hover_text,
64
+ hoverinfo="text",
65
+ hoverlabel=dict(font=dict(size=18)),
66
+ )
67
+ )
68
+
69
+ fig.add_trace(
70
+ go.Violin(
71
+ x=category_data["nName"],
72
+ y=category_data["nVersion"],
73
+ fillcolor="black",
74
+ opacity=0.15,
75
+ line_color="black",
76
+ showlegend=False,
77
+ width=0.7,
78
+ bandwidth=0.4,
79
+ hoverinfo="none",
80
+ hoveron="points",
81
+ )
82
+ )
83
+
84
+ num_versions = df["nVersion"].nunique()
85
+ height_per_version = 32
86
+ width_per_dependency = 80
87
+ fig_height = max(num_versions * height_per_version, 900)
88
+ fig_width = max(len(list(nmap.values())) * width_per_dependency, 900)
89
+ tick_font_size = 13
90
+ # Customizing the layout
91
+ fig.update_layout(
92
+ title="Package versions in use",
93
+ xaxis_title="Packages",
94
+ yaxis_title="Versions",
95
+ height=fig_height,
96
+ width=fig_width,
97
+ xaxis=dict(
98
+ tickfont=dict(size=tick_font_size),
99
+ tickmode="array",
100
+ tickvals=list(nmap.values()),
101
+ ticktext=list(nmap.keys()),
102
+ ),
103
+ yaxis=dict(
104
+ tickfont=dict(size=tick_font_size),
105
+ tickmode="array",
106
+ tickvals=list(vmap.values()),
107
+ ticktext=list(vmap.keys()),
108
+ ),
109
+ )
110
+
111
+ fig.show()