moderne-visualizations-misc 0.67.0__tar.gz → 0.69.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.
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/PKG-INFO +1 -1
- moderne_visualizations_misc-0.69.0/moderne_visualizations_misc/composite_recipe_results_sankey.ipynb +179 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/embeddings_clustering.ipynb +1 -1
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/get_embeddings_and_cluster.ipynb +24 -13
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/java_versions_by_sourceset.ipynb +15 -15
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/java_versions_in_use.ipynb +14 -18
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/get_embeddings_and_cluster.yml +3 -4
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc.egg-info/PKG-INFO +1 -1
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/pyproject.toml +1 -1
- moderne_visualizations_misc-0.67.0/moderne_visualizations_misc/composite_recipe_results_sankey.ipynb +0 -167
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/MANIFEST.in +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/README.md +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/__init__.py +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/call_graph_data_grid.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/call_graph_uml.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/cobol_find_copybook.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/cobol_relationships.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/cobol_relationships_data_grid.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/comment_language_distribution.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_build_tools.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_db.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_forms.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_lint.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_rtc.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_security.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_ss.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_state.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_testing.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_ui.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_tree_view_nodejs_utility.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_gradle.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_jackson.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_maven.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_build_tools.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_db.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_forms.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_lint.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_rtc.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_security.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_ss.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_state.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_testing.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_ui.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nodejs_utility.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_usage_violin_nuget.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_vulnerabilities.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_vulnerabilities_npm.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/dependency_vulnerabilities_nuget.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/effective_maven_settings.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/eslint_problems.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/eslint_problems_by_repo.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/find_methods.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/find_methods_ai.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/find_methods_ai_generate_yaml.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/find_source_files.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/github_secrets_in_use.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/gradle_wrappers.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/call_graph_data_grid.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/call_graph_uml.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/cobol_find_copybook.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/cobol_relationships.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/cobol_relationships_data_grid.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/comment_language_distribution.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/composite_recipe_results_sankey.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_build_tools.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_db.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_forms.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_lint.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_rtc.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_security.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_ss.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_state.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_testing.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_ui.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_tree_view_nodejs_utility.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_gradle.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_jackson.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_maven.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_build_tools.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_db.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_forms.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_lint.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_rtc.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_security.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_ss.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_state.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_testing.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_ui.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nodejs_utility.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_usage_violin_nuget.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_vulnerabilities.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_vulnerabilities_npm.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/dependency_vulnerabilities_nuget.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/eslint_problems.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/eslint_problems_by_repo.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/find_methods.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/find_methods_ai.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/find_methods_ai_generate_yaml.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/github_secrets_in_use.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/gradle_wrappers.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/language_composition.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/language_composition_by_folder.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/language_composition_by_repo.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/maven_parent_poms.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/parse_failure_stacktraces.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/recipe_performance.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/spring_component_relationships.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/spring_component_relationships_data_grid.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/spring_components_data_grid.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/sql_crud.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/images/text_matches_tree_grid.300.png +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/language_composition.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/language_composition_by_folder.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/language_composition_by_repo.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/lst_provenance.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/maven_parent_poms.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/parse_failure_stacktraces.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/recipe_performance.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/recommendations.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/resources/plantuml.jar +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/reusable/tree_view_nodejs.py +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/reusable/violin_nodejs.py +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/call_graph_data_grid.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/call_graph_uml.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/cobol_find_copybook.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/cobol_relationships.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/cobol_relationships_data_grid.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/comment_language_distribution.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/composite_recipe_results_sankey.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_build_tools.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_db.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_forms.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_lint.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_rtc.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_security.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_ss.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_state.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_testing.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_ui.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_tree_view_nodejs_utility.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_gradle.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_jackson.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_maven.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_build_tools.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_db.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_forms.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_lint.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_rtc.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_security.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_ss.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_state.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_testing.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_ui.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nodejs_utility.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_usage_violin_nuget.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_vulnerabilities.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_vulnerabilities_npm.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/dependency_vulnerabilities_nuget.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/effective_maven_settings.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/embeddings_clustering.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/eslint_problems.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/eslint_problems_by_repo.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/find_methods.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/find_methods_ai.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/find_methods_ai_generate_yaml.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/find_source_files.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/github_secrets_in_use.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/gradle_wrappers.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/java_versions_by_sourceset.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/java_versions_in_use.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/language_composition.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/language_composition_by_folder.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/language_composition_by_repo.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/lst_provenance.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/maven_parent_poms.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/parse_failure_stacktraces.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/recipe_performance.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/recommendations.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/spring_component_relationships.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/spring_component_relationships_data_grid.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/spring_components_data_grid.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/sql_crud.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/specs/text_matches_tree_grid.yml +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/spring_component_relationships.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/spring_component_relationships_data_grid.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/spring_components_data_grid.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/sql_crud.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc/text_matches_tree_grid.ipynb +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc.egg-info/SOURCES.txt +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc.egg-info/dependency_links.txt +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc.egg-info/requires.txt +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/moderne_visualizations_misc.egg-info/top_level.txt +0 -0
- {moderne_visualizations_misc-0.67.0 → moderne_visualizations_misc-0.69.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: moderne_visualizations_misc
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.69.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
|
moderne_visualizations_misc-0.69.0/moderne_visualizations_misc/composite_recipe_results_sankey.ipynb
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "code",
|
|
5
|
+
"execution_count": null,
|
|
6
|
+
"metadata": {
|
|
7
|
+
"tags": [
|
|
8
|
+
"parameters"
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
"outputs": [],
|
|
12
|
+
"source": [
|
|
13
|
+
"repository_filter: list[str] = []\n",
|
|
14
|
+
"count_threshold = \"0\""
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"cell_type": "code",
|
|
19
|
+
"execution_count": null,
|
|
20
|
+
"metadata": {},
|
|
21
|
+
"outputs": [],
|
|
22
|
+
"source": [
|
|
23
|
+
"from code_data_science import data_table as dt\n",
|
|
24
|
+
"import warnings\n",
|
|
25
|
+
"\n",
|
|
26
|
+
"warnings.simplefilter(\"ignore\")\n",
|
|
27
|
+
"\n",
|
|
28
|
+
"df = dt.read_csv(\"../samples/composite_recipe_results_sankey.csv\")\n",
|
|
29
|
+
"\n",
|
|
30
|
+
"df[\"repositoryWithBranch\"] = df[\"repositoryPath\"] + \"/\" + df[\"repositoryBranch\"]\n",
|
|
31
|
+
"# Filter the data frame to only include rows where repositoryWithBranch contain\n",
|
|
32
|
+
"# a term in the repository_filter (case insensitive)\n",
|
|
33
|
+
"if len(repository_filter) > 0:\n",
|
|
34
|
+
" df = df[\n",
|
|
35
|
+
" df[\"repositoryWithBranch\"].str.contains(\"|\".join(repository_filter), case=False)\n",
|
|
36
|
+
" ]"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"cell_type": "code",
|
|
41
|
+
"execution_count": null,
|
|
42
|
+
"metadata": {},
|
|
43
|
+
"outputs": [],
|
|
44
|
+
"source": [
|
|
45
|
+
"df = df[[\"parentRecipe\", \"recipe\"]].assign(count=lambda r: 1)\n",
|
|
46
|
+
"recipe_counts = (\n",
|
|
47
|
+
" df[[\"parentRecipe\", \"recipe\", \"count\"]]\n",
|
|
48
|
+
" .groupby(by=[\"parentRecipe\", \"recipe\"])[\"count\"]\n",
|
|
49
|
+
" .count()\n",
|
|
50
|
+
" .sort_values(ascending=False)\n",
|
|
51
|
+
" .reset_index(name=\"count\")\n",
|
|
52
|
+
")\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
|
+
"\n",
|
|
58
|
+
"# sort recipe_counts by count\n",
|
|
59
|
+
"recipe_counts = recipe_counts.sort_values(by=[\"count\"], ascending=False)\n",
|
|
60
|
+
"\n",
|
|
61
|
+
"count_threshold_int = int(count_threshold)\n",
|
|
62
|
+
"\n",
|
|
63
|
+
"if count_threshold_int > 0:\n",
|
|
64
|
+
" recipe_counts = recipe_counts[recipe_counts[\"count\"] > count_threshold_int]"
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"cell_type": "code",
|
|
69
|
+
"execution_count": null,
|
|
70
|
+
"metadata": {},
|
|
71
|
+
"outputs": [],
|
|
72
|
+
"source": [
|
|
73
|
+
"import plotly.graph_objects as go\n",
|
|
74
|
+
"\n",
|
|
75
|
+
"# Extract all unique nodes (parent and child recipes)\n",
|
|
76
|
+
"all_nodes = list(set(recipe_counts[\"parentRecipe\"]).union(set(recipe_counts[\"recipe\"])))\n",
|
|
77
|
+
"\n",
|
|
78
|
+
"# Create node indices mapping for preparing for plotly\n",
|
|
79
|
+
"node_indices = {node: i for i, node in enumerate(all_nodes)}\n",
|
|
80
|
+
"\n",
|
|
81
|
+
"# iterates over each row in recipe_counts and find the index of the 'parentRecipe' in node_indices and adds it to the source list.\n",
|
|
82
|
+
"source = [node_indices[row[\"parentRecipe\"]] for _, row in recipe_counts.iterrows()]\n",
|
|
83
|
+
"\n",
|
|
84
|
+
"# iterates over each row in recipe_counts and find the index of the 'recipe' in node_indices and adds it to the target list.\n",
|
|
85
|
+
"target = [node_indices[row[\"recipe\"]] for _, row in recipe_counts.iterrows()]\n",
|
|
86
|
+
"\n",
|
|
87
|
+
"# convert the 'count' column to a list\n",
|
|
88
|
+
"value = list(recipe_counts[\"count\"])\n",
|
|
89
|
+
"\n",
|
|
90
|
+
"# Format labels with node names and counts\n",
|
|
91
|
+
"\n",
|
|
92
|
+
"\n",
|
|
93
|
+
"def getCount(node):\n",
|
|
94
|
+
" left = recipe_counts[recipe_counts[\"recipe\"] == node][\"count\"].sum()\n",
|
|
95
|
+
" if left == 0:\n",
|
|
96
|
+
" return recipe_counts[recipe_counts[\"parentRecipe\"] == node][\"count\"].sum()\n",
|
|
97
|
+
" else:\n",
|
|
98
|
+
" return left\n",
|
|
99
|
+
"\n",
|
|
100
|
+
"\n",
|
|
101
|
+
"formatted_labels = [f\"{node} - {getCount(node)}\" for node in all_nodes]\n",
|
|
102
|
+
"base_colors = [\n",
|
|
103
|
+
" \"#2f42ff\",\n",
|
|
104
|
+
" \"#7e9bd2\",\n",
|
|
105
|
+
" \"#27aa88\",\n",
|
|
106
|
+
" \"#dcefde\",\n",
|
|
107
|
+
" \"#84C9AA\",\n",
|
|
108
|
+
" \"#ECB81F\",\n",
|
|
109
|
+
" \"#F9A91B\",\n",
|
|
110
|
+
" \"#DB4197\",\n",
|
|
111
|
+
" \"#992FB9\",\n",
|
|
112
|
+
" \"#D9D8E8\",\n",
|
|
113
|
+
" \"#FF3232\",\n",
|
|
114
|
+
"]\n",
|
|
115
|
+
"\n",
|
|
116
|
+
"# create a color palette for the nodes\n",
|
|
117
|
+
"# important that the number of colors is equal to the number of nodes\n",
|
|
118
|
+
"\n",
|
|
119
|
+
"colors = []\n",
|
|
120
|
+
"for i in range(len(all_nodes)):\n",
|
|
121
|
+
" if i < len(base_colors):\n",
|
|
122
|
+
" colors.append(base_colors[i])\n",
|
|
123
|
+
" else:\n",
|
|
124
|
+
" colors.append(base_colors[i % len(base_colors)])\n",
|
|
125
|
+
"\n",
|
|
126
|
+
"\n",
|
|
127
|
+
"# Create the Sankey diagram\n",
|
|
128
|
+
"fig = go.Figure(\n",
|
|
129
|
+
" data=[\n",
|
|
130
|
+
" go.Sankey(\n",
|
|
131
|
+
" node=dict(\n",
|
|
132
|
+
" pad=15,\n",
|
|
133
|
+
" thickness=15,\n",
|
|
134
|
+
" line=dict(color=\"black\", width=0.5),\n",
|
|
135
|
+
" label=formatted_labels,\n",
|
|
136
|
+
" color=colors,\n",
|
|
137
|
+
" ),\n",
|
|
138
|
+
" link=dict(\n",
|
|
139
|
+
" source=source,\n",
|
|
140
|
+
" target=target,\n",
|
|
141
|
+
" value=value,\n",
|
|
142
|
+
" ),\n",
|
|
143
|
+
" )\n",
|
|
144
|
+
" ]\n",
|
|
145
|
+
")\n",
|
|
146
|
+
"\n",
|
|
147
|
+
"# Update layout\n",
|
|
148
|
+
"fig.update_layout(\n",
|
|
149
|
+
" title_text=\"Recipes that made changes\",\n",
|
|
150
|
+
" font_size=10,\n",
|
|
151
|
+
" height=max(len(all_nodes) * 15, 400),\n",
|
|
152
|
+
")\n",
|
|
153
|
+
"\n",
|
|
154
|
+
"fig.show()"
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
],
|
|
158
|
+
"metadata": {
|
|
159
|
+
"kernelspec": {
|
|
160
|
+
"display_name": "Python 3",
|
|
161
|
+
"language": "python",
|
|
162
|
+
"name": "python3"
|
|
163
|
+
},
|
|
164
|
+
"language_info": {
|
|
165
|
+
"codemirror_mode": {
|
|
166
|
+
"name": "ipython",
|
|
167
|
+
"version": 3
|
|
168
|
+
},
|
|
169
|
+
"file_extension": ".py",
|
|
170
|
+
"mimetype": "text/x-python",
|
|
171
|
+
"name": "python",
|
|
172
|
+
"nbconvert_exporter": "python",
|
|
173
|
+
"pygments_lexer": "ipython3",
|
|
174
|
+
"version": "3.11.4"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"nbformat": 4,
|
|
178
|
+
"nbformat_minor": 2
|
|
179
|
+
}
|
|
@@ -33490,7 +33490,7 @@
|
|
|
33490
33490
|
" log_x=False,\n",
|
|
33491
33491
|
" color=\"cluster id\",\n",
|
|
33492
33492
|
" hover_name=\"name\",\n",
|
|
33493
|
-
" color_discrete_sequence=colors
|
|
33493
|
+
" color_discrete_sequence=colors,\n",
|
|
33494
33494
|
")\n",
|
|
33495
33495
|
"fig.update_layout(showlegend=False)\n",
|
|
33496
33496
|
"\n",
|
|
@@ -5029,16 +5029,19 @@
|
|
|
5029
5029
|
" device=\"cpu\",\n",
|
|
5030
5030
|
" engine=\"optimum\",\n",
|
|
5031
5031
|
" compile=True,\n",
|
|
5032
|
-
" batch_size=2
|
|
5032
|
+
" batch_size=2,\n",
|
|
5033
5033
|
")\n",
|
|
5034
5034
|
"engine = AsyncEmbeddingEngine.from_args(engine_args)\n",
|
|
5035
5035
|
"\n",
|
|
5036
5036
|
"# Define a single function to get embeddings\n",
|
|
5037
|
+
"\n",
|
|
5038
|
+
"\n",
|
|
5037
5039
|
"async def get_embeddings(sentences: list[str]) -> list:\n",
|
|
5038
5040
|
" async with engine: # Ensure engine is properly started and stopped\n",
|
|
5039
5041
|
" embeddings, _ = await engine.embed(sentences=sentences)\n",
|
|
5040
5042
|
" return embeddings\n",
|
|
5041
5043
|
"\n",
|
|
5044
|
+
"\n",
|
|
5042
5045
|
"# Track time for embeddings\n",
|
|
5043
5046
|
"start_time_embeddings = time.time_ns()\n",
|
|
5044
5047
|
"loop = asyncio.get_running_loop()\n",
|
|
@@ -5058,14 +5061,16 @@
|
|
|
5058
5061
|
"\n",
|
|
5059
5062
|
"# Apply Gaussian Mixture Model\n",
|
|
5060
5063
|
"start_time_gmm = time.time_ns()\n",
|
|
5061
|
-
"gmm = GaussianMixture(n_components=6, covariance_type
|
|
5064
|
+
"gmm = GaussianMixture(n_components=6, covariance_type=\"full\", random_state=42)\n",
|
|
5062
5065
|
"labels = gmm.fit_predict(indices)\n",
|
|
5063
5066
|
"end_time_gmm = time.time_ns()\n",
|
|
5064
5067
|
"gmm_time_seconds = (end_time_gmm - start_time_gmm) / 1e9\n",
|
|
5065
5068
|
"\n",
|
|
5066
5069
|
"df[\"x\"] = x\n",
|
|
5067
5070
|
"df[\"y\"] = y\n",
|
|
5068
|
-
"df[\"cluster id\"] = labels.astype(\
|
|
5071
|
+
"df[\"cluster id\"] = labels.astype(\n",
|
|
5072
|
+
" \"str\"\n",
|
|
5073
|
+
") # As string so the colors and legend are discrete\n",
|
|
5069
5074
|
"df.sort_values(by=\"cluster id\", inplace=True)\n",
|
|
5070
5075
|
"\n",
|
|
5071
5076
|
"custom_palette = [\n",
|
|
@@ -5078,7 +5083,7 @@
|
|
|
5078
5083
|
" palette.__moderne_color_map[\"yellow\"][700],\n",
|
|
5079
5084
|
"]\n",
|
|
5080
5085
|
"\n",
|
|
5081
|
-
"colors = custom_palette[:gmm.n_components]\n",
|
|
5086
|
+
"colors = custom_palette[: gmm.n_components]\n",
|
|
5082
5087
|
"\n",
|
|
5083
5088
|
"# Create the figure with time metrics in the title\n",
|
|
5084
5089
|
"fig = px.scatter(\n",
|
|
@@ -5088,39 +5093,45 @@
|
|
|
5088
5093
|
" log_x=False,\n",
|
|
5089
5094
|
" color=\"cluster id\",\n",
|
|
5090
5095
|
" hover_name=\"method\",\n",
|
|
5091
|
-
" color_discrete_sequence=colors
|
|
5096
|
+
" color_discrete_sequence=colors,\n",
|
|
5092
5097
|
")\n",
|
|
5093
5098
|
"\n",
|
|
5099
|
+
"\n",
|
|
5094
5100
|
"def draw_ellipse_plotly(mean, covariance, fig, n_std=3, **kwargs):\n",
|
|
5095
5101
|
" \"\"\"Draw an ellipse with a given mean and covariance using Plotly.\"\"\"\n",
|
|
5096
5102
|
" # Convert covariance to principal axes\n",
|
|
5097
5103
|
" U, s, Vt = np.linalg.svd(covariance)\n",
|
|
5098
5104
|
" angle = np.degrees(np.arctan2(U[1, 0], U[0, 0]))\n",
|
|
5099
5105
|
" width, height = 2 * np.sqrt(s)\n",
|
|
5100
|
-
"
|
|
5106
|
+
"\n",
|
|
5101
5107
|
" # Plotly does not directly support ellipses, so we approximate with a scatter plot\n",
|
|
5102
5108
|
" theta = np.linspace(0, 2 * np.pi, 100)\n",
|
|
5103
5109
|
" ellipse_x = width / 2 * np.cos(theta)\n",
|
|
5104
5110
|
" ellipse_y = height / 2 * np.sin(theta)\n",
|
|
5105
5111
|
"\n",
|
|
5106
|
-
" R = np.array(
|
|
5107
|
-
"
|
|
5112
|
+
" R = np.array(\n",
|
|
5113
|
+
" [\n",
|
|
5114
|
+
" [np.cos(np.radians(angle)), -np.sin(np.radians(angle))],\n",
|
|
5115
|
+
" [np.sin(np.radians(angle)), np.cos(np.radians(angle))],\n",
|
|
5116
|
+
" ]\n",
|
|
5117
|
+
" )\n",
|
|
5108
5118
|
" ellipse_coords = np.dot(R, np.array([ellipse_x, ellipse_y]))\n",
|
|
5109
|
-
"
|
|
5119
|
+
"\n",
|
|
5110
5120
|
" # For each standard deviation, plot an ellipse\n",
|
|
5111
5121
|
" for nsig in range(1, n_std + 1):\n",
|
|
5112
5122
|
" fig.add_trace(\n",
|
|
5113
5123
|
" go.Scatter(\n",
|
|
5114
5124
|
" x=ellipse_coords[0] * nsig + mean[0],\n",
|
|
5115
5125
|
" y=ellipse_coords[1] * nsig + mean[1],\n",
|
|
5116
|
-
" mode
|
|
5117
|
-
" **kwargs
|
|
5126
|
+
" mode=\"lines\",\n",
|
|
5127
|
+
" **kwargs,\n",
|
|
5118
5128
|
" )\n",
|
|
5119
5129
|
" )\n",
|
|
5120
5130
|
"\n",
|
|
5131
|
+
"\n",
|
|
5121
5132
|
"# Draw ellipses around GMM clusters\n",
|
|
5122
5133
|
"for mean, covar in zip(gmm.means_, gmm.covariances_):\n",
|
|
5123
|
-
" draw_ellipse_plotly(mean, covar, fig, n_std=3, line=dict(color
|
|
5134
|
+
" draw_ellipse_plotly(mean, covar, fig, n_std=3, line=dict(color=\"red\"), opacity=0.2)\n",
|
|
5124
5135
|
"\n",
|
|
5125
5136
|
"fig.update_layout(\n",
|
|
5126
5137
|
" showlegend=False,\n",
|
|
@@ -5128,7 +5139,7 @@
|
|
|
5128
5139
|
" f\"Embedding Time: {embedding_time_seconds:.2f} sec | \"\n",
|
|
5129
5140
|
" f\"t-SNE Time: {tsne_time_seconds:.2f} sec | \"\n",
|
|
5130
5141
|
" f\"GMM Time: {gmm_time_seconds:.2f} sec\"\n",
|
|
5131
|
-
" )
|
|
5142
|
+
" ),\n",
|
|
5132
5143
|
")\n",
|
|
5133
5144
|
"\n",
|
|
5134
5145
|
"fig.show()"
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"metadata": {},
|
|
21
21
|
"outputs": [],
|
|
22
22
|
"source": [
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
")\n",
|
|
23
|
+
"columns_to_drop = [\n",
|
|
24
|
+
" \"repositoryOrigin\",\n",
|
|
25
|
+
" \"repositoryPath\",\n",
|
|
26
|
+
" \"repositoryBranch\",\n",
|
|
27
|
+
" \"projectName\",\n",
|
|
28
|
+
" \"sourceSetName\",\n",
|
|
29
|
+
" \"vmVendor\",\n",
|
|
30
|
+
" \"createdBy\",\n",
|
|
31
|
+
" \"sourceCompatibility\",\n",
|
|
32
|
+
" \"targetCompatibility\",\n",
|
|
33
|
+
"]\n",
|
|
34
|
+
"\n",
|
|
35
|
+
"data = df.drop(columns=[col for col in columns_to_drop if col in df.columns])\n",
|
|
36
36
|
"data"
|
|
37
37
|
]
|
|
38
38
|
},
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
],
|
|
70
70
|
"metadata": {
|
|
71
71
|
"kernelspec": {
|
|
72
|
-
"display_name": "Python 3
|
|
72
|
+
"display_name": "Python 3",
|
|
73
73
|
"language": "python",
|
|
74
74
|
"name": "python3"
|
|
75
75
|
},
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"name": "python",
|
|
84
84
|
"nbconvert_exporter": "python",
|
|
85
85
|
"pygments_lexer": "ipython3",
|
|
86
|
-
"version": "3.
|
|
86
|
+
"version": "3.10.14"
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
"nbformat": 4,
|
|
@@ -15,21 +15,21 @@
|
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"cell_type": "code",
|
|
18
|
-
"execution_count":
|
|
18
|
+
"execution_count": 2,
|
|
19
19
|
"id": "701147ab-62bd-490f-8a26-8ad1dd80f4d7",
|
|
20
20
|
"metadata": {},
|
|
21
21
|
"outputs": [],
|
|
22
22
|
"source": [
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
")\n",
|
|
23
|
+
"columns_to_drop = [\n",
|
|
24
|
+
" \"repositoryOrigin\",\n",
|
|
25
|
+
" \"repositoryPath\",\n",
|
|
26
|
+
" \"repositoryBranch\",\n",
|
|
27
|
+
" \"scmType\",\n",
|
|
28
|
+
" \"repositoryLink\",\n",
|
|
29
|
+
" \"targetVersion\",\n",
|
|
30
|
+
"]\n",
|
|
31
|
+
"\n",
|
|
32
|
+
"data = df.drop(columns=[col for col in columns_to_drop if col in df.columns])\n",
|
|
33
33
|
"data"
|
|
34
34
|
]
|
|
35
35
|
},
|
|
@@ -40,11 +40,7 @@
|
|
|
40
40
|
"metadata": {},
|
|
41
41
|
"outputs": [],
|
|
42
42
|
"source": [
|
|
43
|
-
"versions = (\n",
|
|
44
|
-
" data.groupby([\"sourceVersion\"], as_index=True)\n",
|
|
45
|
-
" .value_counts()\n",
|
|
46
|
-
" .fillna(0)\n",
|
|
47
|
-
")\n",
|
|
43
|
+
"versions = data.groupby([\"sourceVersion\"], as_index=True).value_counts().fillna(0)\n",
|
|
48
44
|
"versions"
|
|
49
45
|
]
|
|
50
46
|
},
|
|
@@ -66,7 +62,7 @@
|
|
|
66
62
|
],
|
|
67
63
|
"metadata": {
|
|
68
64
|
"kernelspec": {
|
|
69
|
-
"display_name": "Python 3
|
|
65
|
+
"display_name": "Python 3",
|
|
70
66
|
"language": "python",
|
|
71
67
|
"name": "python3"
|
|
72
68
|
},
|
|
@@ -80,7 +76,7 @@
|
|
|
80
76
|
"name": "python",
|
|
81
77
|
"nbconvert_exporter": "python",
|
|
82
78
|
"pygments_lexer": "ipython3",
|
|
83
|
-
"version": "3.
|
|
79
|
+
"version": "3.10.14"
|
|
84
80
|
}
|
|
85
81
|
},
|
|
86
82
|
"nbformat": 4,
|
|
@@ -4,7 +4,6 @@ name: io.moderne.GetEmbeddingsAndCluster
|
|
|
4
4
|
displayName: Generate embeddings to cluster search results
|
|
5
5
|
description: This is a tentative new way to generate embeddings and cluster search results, and displays the time it takes for each task.
|
|
6
6
|
recipe:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
dataTable: io.moderne.ai.table.SuggestedMethodPatterns
|
|
7
|
+
org.openrewrite.java.search.FindMethods:
|
|
8
|
+
methodPattern: "*"
|
|
9
|
+
dataTable: org.openrewrite.java.table.MethodCalls
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: moderne_visualizations_misc
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.69.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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @see https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
2
2
|
[project]
|
|
3
3
|
name = "moderne_visualizations_misc"
|
|
4
|
-
version = "0.
|
|
4
|
+
version = "0.69.0"
|
|
5
5
|
description = "Miscellaneous visualizations for the Moderne platform"
|
|
6
6
|
authors = [
|
|
7
7
|
{ name = "Jonathan Schneider", email = "jonathan@moderne.io" },
|
moderne_visualizations_misc-0.67.0/moderne_visualizations_misc/composite_recipe_results_sankey.ipynb
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"cells": [
|
|
3
|
-
{
|
|
4
|
-
"cell_type": "code",
|
|
5
|
-
"execution_count": null,
|
|
6
|
-
"metadata": {
|
|
7
|
-
"tags": [
|
|
8
|
-
"parameters"
|
|
9
|
-
]
|
|
10
|
-
},
|
|
11
|
-
"outputs": [],
|
|
12
|
-
"source": [
|
|
13
|
-
"repository_filter: list[str] = []\n",
|
|
14
|
-
"count_threshold = \"0\""
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"cell_type": "code",
|
|
19
|
-
"execution_count": null,
|
|
20
|
-
"metadata": {},
|
|
21
|
-
"outputs": [],
|
|
22
|
-
"source": [
|
|
23
|
-
"from code_data_science import data_table as dt\n",
|
|
24
|
-
"import warnings\n",
|
|
25
|
-
"\n",
|
|
26
|
-
"warnings.simplefilter(\"ignore\")\n",
|
|
27
|
-
"\n",
|
|
28
|
-
"df = dt.read_csv(\"../samples/composite_recipe_results_sankey.csv\")\n",
|
|
29
|
-
"\n",
|
|
30
|
-
"df[\"repositoryWithBranch\"] = df[\"repositoryPath\"] + \"/\" + df[\"repositoryBranch\"]\n",
|
|
31
|
-
"# Filter the data frame to only include rows where repositoryWithBranch contain\n",
|
|
32
|
-
"# a term in the repository_filter (case insensitive)\n",
|
|
33
|
-
"if len(repository_filter) > 0:\n",
|
|
34
|
-
" df = df[\n",
|
|
35
|
-
" df[\"repositoryWithBranch\"].str.contains(\"|\".join(repository_filter), case=False)\n",
|
|
36
|
-
" ]"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"cell_type": "code",
|
|
41
|
-
"execution_count": null,
|
|
42
|
-
"metadata": {},
|
|
43
|
-
"outputs": [],
|
|
44
|
-
"source": [
|
|
45
|
-
"df = df[[\"parentRecipe\", \"recipe\"]].assign(count=lambda r: 1)\n",
|
|
46
|
-
"recipe_counts = (\n",
|
|
47
|
-
" df[[\"parentRecipe\", \"recipe\", \"count\"]]\n",
|
|
48
|
-
" .groupby(by=[\"parentRecipe\", \"recipe\"])[\"count\"]\n",
|
|
49
|
-
" .count()\n",
|
|
50
|
-
" .sort_values(ascending=False)\n",
|
|
51
|
-
" .reset_index(name=\"count\")\n",
|
|
52
|
-
")\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
|
-
"\n",
|
|
58
|
-
"# sort recipe_counts by count\n",
|
|
59
|
-
"recipe_counts = recipe_counts.sort_values(by=[\"count\"], ascending=False)\n",
|
|
60
|
-
"\n",
|
|
61
|
-
"count_threshold_int = int(count_threshold)\n",
|
|
62
|
-
"\n",
|
|
63
|
-
"if count_threshold_int > 0:\n",
|
|
64
|
-
" recipe_counts = recipe_counts[recipe_counts[\"count\"] > count_threshold_int]"
|
|
65
|
-
]
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"cell_type": "code",
|
|
69
|
-
"execution_count": null,
|
|
70
|
-
"metadata": {},
|
|
71
|
-
"outputs": [],
|
|
72
|
-
"source": [
|
|
73
|
-
"import plotly.graph_objects as go\n",
|
|
74
|
-
"\n",
|
|
75
|
-
"# Extract all unique nodes (parent and child recipes)\n",
|
|
76
|
-
"all_nodes = list(set(recipe_counts[\"parentRecipe\"]).union(set(recipe_counts[\"recipe\"])))\n",
|
|
77
|
-
"\n",
|
|
78
|
-
"# Create node indices mapping for preparing for plotly\n",
|
|
79
|
-
"node_indices = {node: i for i, node in enumerate(all_nodes)}\n",
|
|
80
|
-
"\n",
|
|
81
|
-
"# iterates over each row in recipe_counts and find the index of the 'parentRecipe' in node_indices and adds it to the source list.\n",
|
|
82
|
-
"source = [node_indices[row[\"parentRecipe\"]] for _, row in recipe_counts.iterrows()]\n",
|
|
83
|
-
"\n",
|
|
84
|
-
"# iterates over each row in recipe_counts and find the index of the 'recipe' in node_indices and adds it to the target list.\n",
|
|
85
|
-
"target = [node_indices[row[\"recipe\"]] for _, row in recipe_counts.iterrows()]\n",
|
|
86
|
-
"\n",
|
|
87
|
-
"# convert the 'count' column to a list\n",
|
|
88
|
-
"value = list(recipe_counts[\"count\"])\n",
|
|
89
|
-
"\n",
|
|
90
|
-
"# Format labels with node names and counts\n",
|
|
91
|
-
"\n",
|
|
92
|
-
"\n",
|
|
93
|
-
"def getCount(node):\n",
|
|
94
|
-
" left = recipe_counts[recipe_counts[\"recipe\"] == node][\"count\"].sum()\n",
|
|
95
|
-
" if left == 0:\n",
|
|
96
|
-
" return recipe_counts[recipe_counts[\"parentRecipe\"] == node][\"count\"].sum()\n",
|
|
97
|
-
" else:\n",
|
|
98
|
-
" return left\n",
|
|
99
|
-
"\n",
|
|
100
|
-
"\n",
|
|
101
|
-
"formatted_labels = [f\"{node} - {getCount(node)}\" for node in all_nodes]\n",
|
|
102
|
-
"base_colors= [\"#2f42ff\", \"#7e9bd2\", \"#27aa88\", \"#dcefde\", \"#84C9AA\", \"#ECB81F\", \"#F9A91B\", \"#DB4197\", \"#992FB9\", \"#D9D8E8\", \"#FF3232\"]\n",
|
|
103
|
-
"\n",
|
|
104
|
-
"# create a color palette for the nodes\n",
|
|
105
|
-
"# important that the number of colors is equal to the number of nodes\n",
|
|
106
|
-
"\n",
|
|
107
|
-
"colors = []\n",
|
|
108
|
-
"for i in range(len(all_nodes)):\n",
|
|
109
|
-
" if i < len(base_colors):\n",
|
|
110
|
-
" colors.append(base_colors[i])\n",
|
|
111
|
-
" else:\n",
|
|
112
|
-
" colors.append(base_colors[i % len(base_colors)])\n",
|
|
113
|
-
"\n",
|
|
114
|
-
"\n",
|
|
115
|
-
"# Create the Sankey diagram\n",
|
|
116
|
-
"fig = go.Figure(\n",
|
|
117
|
-
" data=[\n",
|
|
118
|
-
" go.Sankey(\n",
|
|
119
|
-
" node=dict(\n",
|
|
120
|
-
" pad=15,\n",
|
|
121
|
-
" thickness=15,\n",
|
|
122
|
-
" line=dict(color=\"black\", width=0.5),\n",
|
|
123
|
-
" label=formatted_labels,\n",
|
|
124
|
-
" color=colors\n",
|
|
125
|
-
" ),\n",
|
|
126
|
-
" link=dict(\n",
|
|
127
|
-
" source=source,\n",
|
|
128
|
-
" target=target,\n",
|
|
129
|
-
" value=value,\n",
|
|
130
|
-
" ),\n",
|
|
131
|
-
" )\n",
|
|
132
|
-
" ]\n",
|
|
133
|
-
")\n",
|
|
134
|
-
"\n",
|
|
135
|
-
"# Update layout\n",
|
|
136
|
-
"fig.update_layout(\n",
|
|
137
|
-
" title_text=\"Recipes that made changes\",\n",
|
|
138
|
-
" font_size=10,\n",
|
|
139
|
-
" height=max(len(all_nodes) * 15, 400),\n",
|
|
140
|
-
")\n",
|
|
141
|
-
"\n",
|
|
142
|
-
"fig.show()"
|
|
143
|
-
]
|
|
144
|
-
}
|
|
145
|
-
],
|
|
146
|
-
"metadata": {
|
|
147
|
-
"kernelspec": {
|
|
148
|
-
"display_name": "Python 3",
|
|
149
|
-
"language": "python",
|
|
150
|
-
"name": "python3"
|
|
151
|
-
},
|
|
152
|
-
"language_info": {
|
|
153
|
-
"codemirror_mode": {
|
|
154
|
-
"name": "ipython",
|
|
155
|
-
"version": 3
|
|
156
|
-
},
|
|
157
|
-
"file_extension": ".py",
|
|
158
|
-
"mimetype": "text/x-python",
|
|
159
|
-
"name": "python",
|
|
160
|
-
"nbconvert_exporter": "python",
|
|
161
|
-
"pygments_lexer": "ipython3",
|
|
162
|
-
"version": "3.11.4"
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
"nbformat": 4,
|
|
166
|
-
"nbformat_minor": 2
|
|
167
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|