├── .editorconfig ├── .github └── workflows │ ├── kotlin-build.yml │ └── python-build.yml ├── .gitignore ├── LICENSE ├── README.md ├── assets └── readme-pictures │ └── pipeline.png ├── build.gradle.kts ├── docs └── contributing.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kotlin-analysers ├── README.md ├── build.gradle.kts └── src │ ├── main │ └── kotlin │ │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ └── kotlinAnalysis │ │ ├── clones │ │ ├── README.md │ │ └── analysis │ │ │ ├── CloneDetectionAdapter.kt │ │ │ ├── FormattedMethodMiner.kt │ │ │ └── IndexBuilder.kt │ │ ├── declarations │ │ └── analysis │ │ │ ├── README.md │ │ │ ├── declarations │ │ │ ├── InternalDeclarationPsiAnalysisExecutor.kt │ │ │ └── InternalDeclarationPsiAnalyzer.kt │ │ │ └── usages │ │ │ ├── InternalUsagesAnalysisResult.kt │ │ │ ├── analyzer │ │ │ ├── InternalUsagesPsiAnalyzer.kt │ │ │ └── InternalUsagesWithResolvePsiAnalyzer.kt │ │ │ └── executor │ │ │ ├── InternalUsagesPsiAnalysisExecutor.kt │ │ │ ├── InternalUsagesPsiAnalysisExecutorBase.kt │ │ │ └── InternalUsagesWithResolvePsiAnalysisExecutor.kt │ │ ├── dependencies │ │ ├── README.md │ │ └── analysis │ │ │ ├── ImportDirectivePsiAnalyzer.kt │ │ │ ├── ImportDirectivesAnalysisExecutor.kt │ │ │ └── PackageDirectivePsiAnalyzer.kt │ │ ├── gradle │ │ ├── README.md │ │ └── analysis │ │ │ ├── gradle │ │ │ ├── GradleDependenciesAnalysisExecutor.kt │ │ │ ├── GradleFileManager.kt │ │ │ ├── GradlePluginsAnalysisExecutor.kt │ │ │ ├── GradlePropertiesAnalysisExecutor.kt │ │ │ ├── buildGradle │ │ │ │ ├── BuildGradlePsiFile.kt │ │ │ │ ├── context │ │ │ │ │ ├── GradleBlock.kt │ │ │ │ │ ├── GradleBlockContext.kt │ │ │ │ │ └── GradleBlockContextController.kt │ │ │ │ ├── depenencies │ │ │ │ │ ├── BuildGradleDependency.kt │ │ │ │ │ ├── BuildGradleDependencyFileUtil.kt │ │ │ │ │ └── analyzers │ │ │ │ │ │ ├── CommonBuildGradleDependenciesAnalyzers.kt │ │ │ │ │ │ ├── GroovyBuildGradleDependenciesAnalyzers.kt │ │ │ │ │ │ └── KtsBuildGradleDependenciesAnalyzers.kt │ │ │ │ └── plugins │ │ │ │ │ ├── BuildGradlePlugin.kt │ │ │ │ │ ├── GroovyBuildGradlePluginsAnalyzers.kt │ │ │ │ │ ├── KtsBuildGradlePluginsAnalyzers.kt │ │ │ │ │ └── Util.kt │ │ │ ├── gradleProperties │ │ │ │ ├── GradlePropertiesPsiFile.kt │ │ │ │ ├── GradleProperty.kt │ │ │ │ └── analyzers │ │ │ │ │ └── CommonGradlePropertiesAnalyzers.kt │ │ │ └── settingsGradle │ │ │ │ ├── SettingsGradleFileUtil.kt │ │ │ │ ├── SettingsGradlePsiFile.kt │ │ │ │ ├── analyzers │ │ │ │ ├── CommonSettingsGradleAnalyzers.kt │ │ │ │ ├── GroovyIncludedModulesAnalyzer.kt │ │ │ │ └── KtsIncludedModulesAnalyzer.kt │ │ │ │ └── modules │ │ │ │ ├── ModulesGraph.kt │ │ │ │ └── ModulesGraphVisitor.kt │ │ │ └── tagging │ │ │ ├── ProjectTag.kt │ │ │ ├── ProjectTagger.kt │ │ │ └── ProjectsTaggingExecutor.kt │ │ ├── statistic │ │ ├── README.md │ │ └── analysis │ │ │ ├── metrics │ │ │ └── ProjectMetricsAnalysisExecutor.kt │ │ │ ├── ranges │ │ │ ├── BinaryExpressionRangesFqPsiAnalyzer.kt │ │ │ ├── BinaryExpressionRangesPsiAnalyzer.kt │ │ │ ├── CallExpressionRangesFqPsiAnalyzer.kt │ │ │ ├── CallExpressionRangesPsiAnalyzer.kt │ │ │ ├── ContextType.kt │ │ │ ├── RangeType.kt │ │ │ ├── RangesAnalysisExecutor.kt │ │ │ └── RangesContextAnalyzer.kt │ │ │ └── reflection │ │ │ ├── JavaReflectionFunction.kt │ │ │ ├── ReferenceExpressionReflectionPsiAnalyzer.kt │ │ │ └── ReflectionAnalysisExecutor.kt │ │ └── stdlib │ │ ├── README.md │ │ └── analysis │ │ ├── StdlibInterfacesAnalysisExecutor.kt │ │ └── StdlibInterfacesAnalyzer.kt │ └── test │ ├── kotlin │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ └── kotlinAnalysis │ │ ├── clones │ │ └── analysis │ │ │ └── CloneDetectionAdapterTest.kt │ │ ├── declarations │ │ └── analysis │ │ │ └── psi │ │ │ ├── declarations │ │ │ └── InternalDeclarationExtractionTest.kt │ │ │ └── usages │ │ │ ├── InternalUsagesExtractionTestBase.kt │ │ │ ├── references │ │ │ └── InternalUsagesExtractionTest.kt │ │ │ └── resolve │ │ │ └── InternalUsagesWithResolveExtractionTest.kt │ │ ├── dependencies │ │ └── analysis │ │ │ ├── ImportDirectiveAnalysisExecutorTest.kt │ │ │ └── psi │ │ │ └── ImportDirectiveExtractionTest.kt │ │ ├── gradle │ │ └── analysis │ │ │ ├── gradle │ │ │ ├── buildGradle │ │ │ │ ├── dependencies │ │ │ │ │ └── ExtractGradleDependenciesTest.kt │ │ │ │ └── plugins │ │ │ │ │ └── ExtractGradlePluginsTest.kt │ │ │ └── gradleProperties │ │ │ │ └── ExtractGradlePropertiesTest.kt │ │ │ └── tagging │ │ │ └── AndroidProjectTaggingTest.kt │ │ └── statistic │ │ └── analysis │ │ ├── ranges │ │ └── RangesAnalysisExecutorTest.kt │ │ └── reflection │ │ └── ReflectionAnalysisExecutorTest.kt │ └── resources │ └── org │ └── jetbrains │ └── research │ └── lupa │ └── kotlinAnalysis │ ├── clones │ └── analysis │ │ └── data │ │ ├── in_1_without_args.kt │ │ ├── in_2_with_args.kt │ │ ├── in_3_extension.kt │ │ ├── out_1.txt │ │ ├── out_2.txt │ │ └── out_3.txt │ ├── declarations │ └── analysis │ │ └── psi │ │ ├── declarations │ │ └── data │ │ │ ├── in_0_empty.kt │ │ │ ├── in_1_internal_top_level_class.kt │ │ │ ├── in_2_internal_nested_class.kt │ │ │ ├── in_3_internal_top_level_object.kt │ │ │ ├── in_4_internal_nested_object.kt │ │ │ ├── in_5_other_modifiers.kt │ │ │ ├── in_6_internal_top_level_interface.kt │ │ │ ├── in_7_internal_nested_interface.kt │ │ │ ├── in_8_mixed.kt │ │ │ ├── out_0.txt │ │ │ ├── out_1.txt │ │ │ ├── out_2.txt │ │ │ ├── out_3.txt │ │ │ ├── out_4.txt │ │ │ ├── out_5.txt │ │ │ ├── out_6.txt │ │ │ ├── out_7.txt │ │ │ └── out_8.txt │ │ └── usages │ │ ├── references │ │ └── data │ │ │ ├── in_0_empty.kt │ │ │ ├── in_1_usage_in_function_arguments.kt │ │ │ ├── in_2_usage_as_types.kt │ │ │ ├── in_3_usage_in_calls.kt │ │ │ ├── out_0.txt │ │ │ ├── out_1.txt │ │ │ ├── out_2.txt │ │ │ └── out_3.txt │ │ └── resolve │ │ └── data │ │ ├── in_0_empty.kt │ │ ├── in_1_usage_in_function_arguments.kt │ │ ├── in_2_usage_as_types.kt │ │ ├── in_3_usage_in_calls.kt │ │ ├── out_0.txt │ │ ├── out_1.txt │ │ ├── out_2.txt │ │ └── out_3.txt │ ├── dependencies │ └── analysis │ │ ├── data │ │ ├── gradle_projects │ │ │ ├── in_0_dataset_gradle_groovy_one_module │ │ │ │ └── sample_project │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── settings.gradle │ │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── jetbrains │ │ │ │ │ └── kotlin │ │ │ │ │ └── analysis │ │ │ │ │ └── test │ │ │ │ │ └── project │ │ │ │ │ ├── inner │ │ │ │ │ └── InnerImportClass.kt │ │ │ │ │ ├── multi │ │ │ │ │ └── MultiImportClass.kt │ │ │ │ │ ├── one │ │ │ │ │ └── OneImportClass.kt │ │ │ │ │ └── star │ │ │ │ │ └── StarImportClass.kt │ │ │ ├── in_1_dataset_gradle_groovy_multi_module │ │ │ │ └── sample_project │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── inner-import-module │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ └── jetbrains │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── analysis │ │ │ │ │ │ └── test │ │ │ │ │ │ └── project │ │ │ │ │ │ └── inner │ │ │ │ │ │ └── InnerImportClass.kt │ │ │ │ │ ├── multi-import-module │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ └── jetbrains │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── analysis │ │ │ │ │ │ └── test │ │ │ │ │ │ └── project │ │ │ │ │ │ └── multi │ │ │ │ │ │ └── MultiImportClass.kt │ │ │ │ │ ├── one-import-module │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ └── jetbrains │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── analysis │ │ │ │ │ │ └── test │ │ │ │ │ │ └── project │ │ │ │ │ │ └── one │ │ │ │ │ │ └── OneImportClass.kt │ │ │ │ │ └── settings.gradle │ │ │ ├── in_2_dataset_gradle_kotlin_multi_module │ │ │ │ └── sample_project │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── inner-import-module │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ └── jetbrains │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── analysis │ │ │ │ │ │ └── test │ │ │ │ │ │ └── inner │ │ │ │ │ │ └── InnerImportClass.kt │ │ │ │ │ ├── multi-import-module │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ └── jetbrains │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── analysis │ │ │ │ │ │ └── test │ │ │ │ │ │ └── multi │ │ │ │ │ │ └── MultiImportClass.kt │ │ │ │ │ ├── one-import-module │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── com │ │ │ │ │ │ └── jetbrains │ │ │ │ │ │ └── kotlin │ │ │ │ │ │ └── analysis │ │ │ │ │ │ └── test │ │ │ │ │ │ └── one │ │ │ │ │ │ └── OneImportClass.kt │ │ │ │ │ └── settings.gradle.kts │ │ │ ├── out_0.txt │ │ │ ├── out_1.txt │ │ │ └── out_2.txt │ │ └── maven_projects │ │ │ ├── in_3_dataset_maven_multi_module │ │ │ └── sample_project │ │ │ │ ├── inner-import-module │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── jetbrains │ │ │ │ │ └── kotlin │ │ │ │ │ └── analysis │ │ │ │ │ └── test │ │ │ │ │ └── project │ │ │ │ │ └── inner │ │ │ │ │ └── InnerImportClass.kt │ │ │ │ ├── multi-import-module │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── jetbrains │ │ │ │ │ └── kotlin │ │ │ │ │ └── analysis │ │ │ │ │ └── test │ │ │ │ │ └── project │ │ │ │ │ └── multi │ │ │ │ │ └── MultiImportClass.kt │ │ │ │ ├── one-import-module │ │ │ │ ├── pom.xml │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ └── kotlin │ │ │ │ │ └── com │ │ │ │ │ └── jetbrains │ │ │ │ │ └── kotlin │ │ │ │ │ └── analysis │ │ │ │ │ └── test │ │ │ │ │ └── project │ │ │ │ │ └── one │ │ │ │ │ └── OneImportClass.kt │ │ │ │ └── pom.xml │ │ │ └── out_3.txt │ │ ├── psi │ │ └── data │ │ │ ├── in_0_empty.kt │ │ │ ├── in_1_without_imports.kt │ │ │ ├── in_2_standart_import.kt │ │ │ ├── in_3_kotlinx_import.kt │ │ │ ├── in_4_list_of_simple_imports.kt │ │ │ ├── in_5_star_import.kt │ │ │ ├── in_6_inner_project_import.kt │ │ │ ├── in_7_real_project_imports.kt │ │ │ ├── out_0.txt │ │ │ ├── out_1.txt │ │ │ ├── out_2.txt │ │ │ ├── out_3.txt │ │ │ ├── out_4.txt │ │ │ ├── out_5.txt │ │ │ ├── out_6.txt │ │ │ └── out_7.txt │ │ └── util │ │ └── log4j.properties │ ├── gradle │ └── analysis │ │ ├── gradle │ │ ├── buildGradle │ │ │ ├── dependencies │ │ │ │ └── data │ │ │ │ │ ├── in_1_groovy_multi_module_project │ │ │ │ │ └── sample_project │ │ │ │ │ │ ├── build.gradle │ │ │ │ │ │ ├── first_module │ │ │ │ │ │ └── build.gradle │ │ │ │ │ │ ├── gradle.properties │ │ │ │ │ │ ├── gradle │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ │ ├── gradlew │ │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ │ ├── second_module │ │ │ │ │ │ └── build.gradle │ │ │ │ │ │ └── settings.gradle │ │ │ │ │ ├── in_2_kotlin_multi_module_project │ │ │ │ │ └── sample_project │ │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ │ ├── first-module │ │ │ │ │ │ └── build.gradle.kts │ │ │ │ │ │ ├── gradle.properties │ │ │ │ │ │ ├── gradle │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ │ ├── gradlew │ │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ │ ├── second-module │ │ │ │ │ │ └── build.gradle.kts │ │ │ │ │ │ └── settings.gradle.kts │ │ │ │ │ ├── out_1.txt │ │ │ │ │ └── out_2.txt │ │ │ └── plugins │ │ │ │ └── data │ │ │ │ ├── in_1_groovy_multi_module_project │ │ │ │ └── sample_project │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── first_module │ │ │ │ │ └── build.gradle │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── second_module │ │ │ │ │ └── build.gradle │ │ │ │ │ └── settings.gradle │ │ │ │ ├── in_2_kotlin_multi_module_project │ │ │ │ └── sample_project │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ ├── first-module │ │ │ │ │ └── build.gradle.kts │ │ │ │ │ ├── gradle.properties │ │ │ │ │ ├── gradle │ │ │ │ │ └── wrapper │ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradlew │ │ │ │ │ ├── gradlew.bat │ │ │ │ │ ├── second-module │ │ │ │ │ └── build.gradle.kts │ │ │ │ │ └── settings.gradle.kts │ │ │ │ ├── out_1.txt │ │ │ │ └── out_2.txt │ │ └── gradleProperties │ │ │ └── data │ │ │ ├── in_1_groovy_multi_module_project │ │ │ └── sample_project │ │ │ │ ├── build.gradle │ │ │ │ ├── first_module │ │ │ │ └── build.gradle │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── second_module │ │ │ │ └── build.gradle │ │ │ │ └── settings.gradle │ │ │ ├── in_2_kotlin_multi_module_project │ │ │ └── sample_project │ │ │ │ ├── build.gradle.kts │ │ │ │ ├── first-module │ │ │ │ └── build.gradle.kts │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── second-module │ │ │ │ └── build.gradle.kts │ │ │ │ └── settings.gradle.kts │ │ │ ├── out_1.txt │ │ │ └── out_2.txt │ │ └── tagging │ │ └── data │ │ ├── in_1_not_android_project │ │ └── sample_project │ │ │ ├── build.gradle │ │ │ ├── first_module │ │ │ └── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── second_module │ │ │ └── build.gradle │ │ │ └── settings.gradle │ │ ├── in_2_android_project │ │ └── sample_project │ │ │ ├── build.gradle.kts │ │ │ ├── first-module │ │ │ └── build.gradle.kts │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── second-module │ │ │ └── build.gradle.kts │ │ │ └── settings.gradle.kts │ │ ├── out_1.txt │ │ └── out_2.txt │ ├── statistic │ └── analysis │ │ ├── ranges │ │ └── data │ │ │ ├── in_10_different_context.kt │ │ │ ├── in_1_for.kt │ │ │ ├── in_2_while.kt │ │ │ ├── in_3_if.kt │ │ │ ├── in_4_when.kt │ │ │ ├── in_5_property.kt │ │ │ ├── in_6_foreach.kt │ │ │ ├── in_7_map.kt │ │ │ ├── in_8_tolist.kt │ │ │ ├── in_9_require.kt │ │ │ ├── out_1.csv │ │ │ ├── out_10.csv │ │ │ ├── out_2.csv │ │ │ ├── out_3.csv │ │ │ ├── out_4.csv │ │ │ ├── out_5.csv │ │ │ ├── out_6.csv │ │ │ ├── out_7.csv │ │ │ ├── out_8.csv │ │ │ └── out_9.csv │ │ └── reflection │ │ └── data │ │ ├── in_10_mixed.kt │ │ ├── in_1_forclass.kt │ │ ├── in_2_empty.kt │ │ ├── in_3_declared_methods.kt │ │ ├── in_4_get_declared_method.kt │ │ ├── in_5_annotated_interfaces.kt │ │ ├── in_6_annotated_superclass.kt │ │ ├── in_7_constructors.kt │ │ ├── in_8_declared_constructors.kt │ │ ├── in_9_get_declared_constructor.kt │ │ ├── out_1.csv │ │ ├── out_10.csv │ │ ├── out_2.csv │ │ ├── out_3.csv │ │ ├── out_4.csv │ │ ├── out_5.csv │ │ ├── out_6.csv │ │ ├── out_7.csv │ │ ├── out_8.csv │ │ └── out_9.csv │ └── util │ └── log4j.properties ├── lupa-core ├── README.md ├── build.gradle.kts └── src │ ├── main │ └── kotlin │ │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ └── kotlinAnalysis │ │ ├── AnalysisExecutor.kt │ │ ├── AnalysisOrchestrator.kt │ │ ├── Analyzers.kt │ │ ├── Resource.kt │ │ ├── psi │ │ └── extentions │ │ │ ├── KtElementExt.kt │ │ │ ├── ModuleExt.kt │ │ │ ├── ProjectExt.kt │ │ │ ├── PsiElementExt.kt │ │ │ └── PyElementExt.kt │ │ └── util │ │ ├── DatabaseConnection.kt │ │ ├── GitRepository.kt │ │ ├── RepositoryOpenerUtil.kt │ │ ├── Utils.kt │ │ ├── kotlin │ │ ├── KotlinTeamDatabaseConnection.kt │ │ └── KotlinTeamExecutorHelper.kt │ │ └── python │ │ ├── PyPackageUtil.kt │ │ └── jupyter │ │ ├── JupyterDatasetTransformationRunner.kt │ │ ├── JupyterDatasetTransformer.kt │ │ ├── Notebook.kt │ │ └── Utils.kt │ └── test │ ├── kotlin │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ └── kotlinAnalysis │ │ ├── psi │ │ └── extensions │ │ │ └── element │ │ │ └── comments │ │ │ └── PsiDeleteCommentsTest.kt │ │ └── util │ │ └── python │ │ └── jupyter │ │ └── JupyterTransformationTest.kt │ └── resources │ └── org │ └── jetbrains │ └── research │ └── lupa │ └── kotlinAnalysis │ ├── psi │ └── extensions │ │ └── element │ │ └── comments │ │ └── data │ │ ├── in_1_empty.kt │ │ ├── in_2_single_line_comment.kt │ │ ├── in_3_multi_line_comment.kt │ │ ├── in_4_documentation_empty_comment.kt │ │ ├── in_5_documentation_comment.kt │ │ ├── in_6_all_types_of_comments.kt │ │ ├── in_7_several_types.kt │ │ ├── in_8_several_types.kt │ │ ├── in_9_real_data.kt │ │ ├── out_1.kt │ │ ├── out_2.kt │ │ ├── out_3.kt │ │ ├── out_4.kt │ │ ├── out_5.kt │ │ ├── out_6.kt │ │ ├── out_7.kt │ │ ├── out_8.kt │ │ └── out_9.kt │ └── util │ └── python │ └── jupyter │ └── data │ ├── in_1_empty.kt │ ├── in_2_one_code_cell.txt │ ├── in_3_one_markdown_cell.txt │ ├── in_4_one_code_one_markdown_cells.txt │ ├── in_5.txt │ ├── in_6.txt │ ├── out_1.kt │ ├── out_2_one_code_cell.py │ ├── out_3_one_markdown_cell.py │ ├── out_4_one_code_one_markdown_cells.py │ ├── out_5.py │ └── out_6.py ├── lupa-runner ├── README.md ├── build.gradle.kts └── src │ └── main │ ├── kotlin │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ ├── Parsers.kt │ │ ├── kotlinAnalysis │ │ ├── JavaReflectionsFunctionsAnalysisRunner.kt │ │ ├── KotlinClonesAnalysisRunner.kt │ │ ├── KotlinDependenciesAnalysisRunner.kt │ │ ├── KotlinGradleDependenciesAnalysisRunner.kt │ │ ├── KotlinGradleDependenciesByModulesAnalysisRunner.kt │ │ ├── KotlinGradlePluginsAnalysisRunner.kt │ │ ├── KotlinGradlePropertiesAnalysisRunner.kt │ │ ├── KotlinInternalDeclarationPsiAnalysisRunner.kt │ │ ├── KotlinMultipleAnalysisRunner.kt │ │ ├── KotlinProjectMetricsAnalysisAnalysisRunner.kt │ │ ├── KotlinRangesAnalysisRunner.kt │ │ ├── ProjectsTaggingRunner.kt │ │ └── StdlibInterfacesAnalysisRunner.kt │ │ └── pythonAnalysis │ │ ├── PythonCallExpressionsAnalysisRunner.kt │ │ └── PythonImportsAnalysisRunner.kt │ └── resources │ └── META-INF │ └── plugin.xml ├── lupa-test ├── README.md ├── build.gradle.kts └── src │ └── main │ ├── kotlin │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ └── kotlinAnalysis │ │ └── util │ │ └── ParametrizedGoldenFileTest.kt │ └── resources │ └── org │ └── jetbrains │ └── research │ └── lupa │ └── kotlinAnalysis │ └── util │ └── log4j.properties ├── python-analysers ├── README.md ├── build.gradle.kts └── src │ ├── main │ ├── kotlin │ │ └── org │ │ │ └── jetbrains │ │ │ └── research │ │ │ └── lupa │ │ │ └── pythonAnalysis │ │ │ ├── callExpressions │ │ │ ├── README.md │ │ │ └── analysis │ │ │ │ ├── CallExpressionAnalyzer.kt │ │ │ │ ├── CallExpressionAnalyzerContext.kt │ │ │ │ ├── CallExpressionsAnalysisExecutor.kt │ │ │ │ ├── PyCallExpressionAnalyzer.kt │ │ │ │ └── PyDecoratorAnalyzer.kt │ │ │ └── imports │ │ │ ├── README.md │ │ │ └── analysis │ │ │ ├── FromImportStatementPsiAnalyzer.kt │ │ │ ├── ImportStatementPsiAnalyzer.kt │ │ │ └── ImportStatementsAnalysisExecutor.kt │ └── resources │ │ └── log4j2.xml │ └── test │ ├── kotlin │ └── org │ │ └── jetbrains │ │ └── research │ │ └── lupa │ │ └── pythonAnalysis │ │ ├── callExpressions │ │ └── analysis │ │ │ └── psi │ │ │ ├── Common.kt │ │ │ ├── PyCallExpressionPsiAnalyzerTest.kt │ │ │ └── PyDecoratorPsiAnalyzerTest.kt │ │ └── imports │ │ └── analysis │ │ └── psi │ │ ├── FromImportStatementPsiAnalyzerTest.kt │ │ └── ImportStatementPsiAnalyzerTest.kt │ └── resources │ └── org │ └── jetbrains │ └── research │ └── lupa │ └── pythonAnalysis │ ├── callExpressions │ └── analysis │ │ └── psi │ │ ├── __init__.py │ │ ├── callExpressionPsiAnalyzerTestData │ │ ├── __init__.py │ │ ├── in_0_builtins.py │ │ ├── in_1_stdlib.py │ │ ├── out_0.txt │ │ └── out_1.txt │ │ └── decoratorPsiAnalyzerTestData │ │ ├── __init__.py │ │ ├── in_0_builtins.py │ │ ├── in_1_stdlib.py │ │ ├── out_0.txt │ │ └── out_1.txt │ └── imports │ └── analysis │ └── psi │ ├── fromImportStatementsData │ ├── in_0_empty.py │ ├── in_10_from_import_with_alias.py │ ├── in_11_several_inline_from_imports_with_alias.py │ ├── in_12_several_from_imports_with_alias.py │ ├── in_13_absolute_from_import.py │ ├── in_14_several_absolute_inline_from_imports.py │ ├── in_15_several_absolute_from_imports.py │ ├── in_16_absolute_from_import_with_alias.py │ ├── in_17_several_absolute_inline_from_imports_with_alias.py │ ├── in_18_several_absolute_from_imports_with_alias.py │ ├── in_19_relative_from_import.py │ ├── in_1_star_import.py │ ├── in_20_several_relative_inline_from_imports.py │ ├── in_21_several_relative_from_imports.py │ ├── in_22_relative_from_import_with_alias.py │ ├── in_23_several_relative_inline_from_imports_with_alias.py │ ├── in_24_several_relative_from_imports_with_alias.py │ ├── in_25_incorrect_imports.py │ ├── in_2_several_star_imports.py │ ├── in_3_absolute_star_import.py │ ├── in_4_several_absolute_star_imports.py │ ├── in_5_relative_star_import.py │ ├── in_6_several_relative_star_imports.py │ ├── in_7_from_import.py │ ├── in_8_several_inline_from_imports.py │ ├── in_9_several_from_imports.py │ ├── out_0.txt │ ├── out_1.txt │ ├── out_10.txt │ ├── out_11.txt │ ├── out_12.txt │ ├── out_13.txt │ ├── out_14.txt │ ├── out_15.txt │ ├── out_16.txt │ ├── out_17.txt │ ├── out_18.txt │ ├── out_19.txt │ ├── out_2.txt │ ├── out_20.txt │ ├── out_21.txt │ ├── out_22.txt │ ├── out_23.txt │ ├── out_24.txt │ ├── out_25.txt │ ├── out_3.txt │ ├── out_4.txt │ ├── out_5.txt │ ├── out_6.txt │ ├── out_7.txt │ ├── out_8.txt │ └── out_9.txt │ └── importStatementsData │ ├── in_0_empty.py │ ├── in_10_one_absolute_import_with_alias.py │ ├── in_11_several_absolute_inline_imports_with_alias.py │ ├── in_12_several_absolute_imports_with_alias.py │ ├── in_13_empty_import.py │ ├── in_14_incorrect_inline_import.py │ ├── in_15_incorrect_import.py │ ├── in_16_incorrect_imports_with_alias.py │ ├── in_17_incorrect_inline_import_with_alias.py │ ├── in_1_one_import.py │ ├── in_2_several_inline_imports.py │ ├── in_3_several_imports.py │ ├── in_4_one_import_with_alias.py │ ├── in_5_several_inline_imports_with_alias.py │ ├── in_6_several_imports_with_alias.py │ ├── in_7_one_absolute_import.py │ ├── in_8_several_absolute_inline_imports.py │ ├── in_9_several_absolute_imports.py │ ├── out_0.txt │ ├── out_1.txt │ ├── out_10.txt │ ├── out_11.txt │ ├── out_12.txt │ ├── out_13.txt │ ├── out_14.txt │ ├── out_15.txt │ ├── out_16.txt │ ├── out_17.txt │ ├── out_2.txt │ ├── out_3.txt │ ├── out_4.txt │ ├── out_5.txt │ ├── out_6.txt │ ├── out_7.txt │ ├── out_8.txt │ └── out_9.txt ├── scripts ├── .flake8 ├── README.md ├── analysis │ ├── README.md │ ├── __init__.py │ ├── call_expressions │ │ └── python │ │ │ ├── README.md │ │ │ ├── call_expressions_analysis.py │ │ │ └── call_expressions_column.py │ ├── clones │ │ ├── README.md │ │ ├── clones_analysis.ipynb │ │ ├── clones_features_builder.py │ │ ├── clones_graph_analysis.py │ │ ├── code_features_utils.py │ │ ├── column_names_utils.py │ │ ├── construct_dataframes.py │ │ ├── construct_large_clones_dataframes.py │ │ └── save_adjacency_list.py │ ├── dependencies │ │ ├── README.md │ │ ├── __init__.py │ │ ├── column_names_utils.py │ │ ├── fq_names_tree.py │ │ ├── fq_names_types.py │ │ ├── import_directives_analysis.py │ │ └── python │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── imports_analysis.py │ │ │ └── imports_column.py │ ├── gradle_dependencies │ │ ├── README.md │ │ ├── column_names_utils.py │ │ ├── gradle_dependencies_analysis.py │ │ └── gradle_dependencies_meta.py │ ├── gradle_plugins │ │ ├── README.md │ │ ├── column_names_utils.py │ │ └── gradle_plugins_analysis.py │ ├── gradle_properties │ │ ├── README.md │ │ ├── column_names_utils.py │ │ └── gradle_properties_analysis.py │ ├── ranges │ │ └── statistics_printer.py │ └── utils │ │ └── python_fq_names │ │ ├── README.md │ │ └── filter_unnecessary_fq_names.py ├── benchmark │ ├── __init__.py │ ├── batching │ │ ├── README.md │ │ ├── __init__.py │ │ ├── batcher_benchmark.py │ │ └── results_comparison.py │ ├── metrics_collection │ │ ├── README.md │ │ ├── __init__.py │ │ ├── collect_project_metrics.py │ │ ├── config.py │ │ └── metrics.py │ └── sampling │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.py │ │ ├── sampling_visualization.py │ │ └── stratified_sampling.py ├── data_collection │ ├── README.md │ ├── clean_duplicates.py │ ├── data_collection_utils.py │ ├── db_connect.py │ ├── filter_dataset.py │ ├── git_repo.py │ ├── github_data │ │ └── api.py │ ├── load_dataset.py │ ├── package_search │ │ ├── api.py │ │ └── model.py │ ├── preprocess_android_projects.py │ ├── repositories_table.py │ ├── save_github_daily.py │ ├── save_metrics.py │ └── update_dataset.py ├── plugin_runner │ ├── README.md │ ├── __init__.py │ ├── additional_arguments.py │ ├── analyzers.py │ ├── batch_processing.py │ ├── batcher.py │ ├── batching_config.py │ ├── merge_data.py │ ├── python_venv │ │ ├── README.md │ │ ├── __init__.py │ │ ├── common.py │ │ ├── create_shared_venv.py │ │ └── create_venv_for_each_project.py │ └── python_version │ │ ├── README.md │ │ ├── __init__.py │ │ ├── determine_python_version.py │ │ └── python_classifiers.py ├── requirements-code-style.txt ├── requirements-test.txt ├── requirements.txt ├── scripts.iml ├── test │ ├── __init__.py │ ├── benchmark │ │ ├── __init__.py │ │ ├── batching │ │ │ ├── __init__.py │ │ │ └── test_results_comparison.py │ │ ├── metrics_collection │ │ │ ├── __init__.py │ │ │ ├── test_collect_project_metrics.py │ │ │ └── test_metrics.py │ │ └── sampling │ │ │ ├── __init__.py │ │ │ └── test_stratified_sampling.py │ ├── conftest.py │ ├── plugin_runner │ │ ├── __init__.py │ │ ├── batch_processing │ │ │ ├── __init__.py │ │ │ ├── command_builder.py │ │ │ ├── runners │ │ │ │ ├── __init__.py │ │ │ │ └── python │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── test_call_expressions.py │ │ │ │ │ └── test_imports.py │ │ │ ├── test_batch_processing.py │ │ │ └── test_batcher.py │ │ ├── python_venv │ │ │ ├── __init__.py │ │ │ └── test_common.py │ │ └── python_version │ │ │ ├── __init__.py │ │ │ └── test_determine_python_version.py │ ├── resources │ │ ├── benchmark │ │ │ ├── batching │ │ │ │ └── results_comparison │ │ │ │ │ ├── one_results_file │ │ │ │ │ └── benchmark_data.csv │ │ │ │ │ ├── one_results_file_benchmark_runs_only │ │ │ │ │ └── benchmark_data.csv │ │ │ │ │ ├── one_results_file_warmup_runs_only │ │ │ │ │ └── benchmark_data.csv │ │ │ │ │ └── several_results_files │ │ │ │ │ ├── benchmark_data_benchmark_runs_only.csv │ │ │ │ │ ├── benchmark_data_one_batch.csv │ │ │ │ │ ├── benchmark_data_six_batches.csv │ │ │ │ │ └── benchmark_data_warmup_runs_only.csv │ │ │ ├── metrics_collection │ │ │ │ ├── collect_project_metrics │ │ │ │ │ ├── project_with_multiple_languages │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── kotlin │ │ │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ │ │ └── main.kt │ │ │ │ │ │ │ └── python │ │ │ │ │ │ │ ├── factorial.py │ │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ ├── project_with_one_language │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── factorial.py │ │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ └── project_with_unknown_language │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── kotlin │ │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ │ ├── main.kt │ │ │ │ │ │ └── readme.unk │ │ │ │ │ │ ├── python │ │ │ │ │ │ ├── factorial.py │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── requirements.txt │ │ │ │ │ │ └── readme.unk │ │ │ │ └── metrics │ │ │ │ │ ├── build.gradle.kts │ │ │ │ │ ├── empty_file.txt │ │ │ │ │ ├── empty_requirements.txt │ │ │ │ │ ├── file_with_non_utf8_encoding.txt │ │ │ │ │ ├── file_with_trailing_newline.txt │ │ │ │ │ ├── multi_line_file.txt │ │ │ │ │ ├── one_line_comments.kt │ │ │ │ │ ├── one_line_comments.py │ │ │ │ │ ├── one_line_file.txt │ │ │ │ │ └── requirements.txt │ │ │ └── sampling │ │ │ │ └── stratified_sampling │ │ │ │ ├── datasets │ │ │ │ ├── dataset_with_python │ │ │ │ │ ├── project_A │ │ │ │ │ │ ├── project_metrics.yaml │ │ │ │ │ │ └── some_file.txt │ │ │ │ │ └── project_B │ │ │ │ │ │ ├── project_metrics.yaml │ │ │ │ │ │ └── some_file.txt │ │ │ │ ├── dataset_with_several_languages │ │ │ │ │ ├── project_A │ │ │ │ │ │ ├── project_metrics.yaml │ │ │ │ │ │ └── some_file.txt │ │ │ │ │ └── project_B │ │ │ │ │ │ ├── project_metrics.yaml │ │ │ │ │ │ └── some_file.txt │ │ │ │ └── dataset_without_metrics │ │ │ │ │ ├── project_A │ │ │ │ │ └── some_file.txt │ │ │ │ │ └── project_B │ │ │ │ │ └── some_file.txt │ │ │ │ └── projects │ │ │ │ ├── project_with_several_languages │ │ │ │ └── project_metrics.yaml │ │ │ │ ├── project_with_single_language │ │ │ │ └── project_metrics.yaml │ │ │ │ └── project_without_metric_file │ │ │ │ └── README.md │ │ ├── plugin_runner │ │ │ ├── batch_processing │ │ │ │ ├── common_dataset │ │ │ │ │ ├── project_1 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ ├── project_2 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ ├── project_3 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ ├── project_4 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ ├── project_5 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ ├── project_6 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ ├── project_7 │ │ │ │ │ │ ├── main.py │ │ │ │ │ │ └── project_metrics.yaml │ │ │ │ │ └── project_without_metric_file │ │ │ │ │ │ └── main.py │ │ │ │ ├── dummy_config.yaml │ │ │ │ └── runners │ │ │ │ │ └── python │ │ │ │ │ ├── call_expressions_dataset │ │ │ │ │ ├── empty_project │ │ │ │ │ │ └── sample_project │ │ │ │ │ │ │ └── empty_file.py │ │ │ │ │ ├── project_only_builtins │ │ │ │ │ │ └── sample_project │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── some_file.py │ │ │ │ │ └── project_with_stdlib_and_thirdparty_libs │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── simple_calculator.py │ │ │ │ │ │ ├── simple_visual_calculator.py │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── option.py │ │ │ │ │ ├── call_expressions_output.csv │ │ │ │ │ ├── imports_dataset │ │ │ │ │ ├── project_with_imports │ │ │ │ │ │ └── sample_project │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── common │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── common.py │ │ │ │ │ │ │ └── tasks │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── task1 │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── main.py │ │ │ │ │ │ │ ├── task2 │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── main.py │ │ │ │ │ │ │ └── task3 │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── main.py │ │ │ │ │ ├── project_with_non_root_packages │ │ │ │ │ │ └── sample_project │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── first_package │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── main.py │ │ │ │ │ │ │ └── second_package │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ └── main.py │ │ │ │ │ └── project_without_imports │ │ │ │ │ │ └── sample_project │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── tasks │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── task1 │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── main.py │ │ │ │ │ │ ├── task2 │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── main.py │ │ │ │ │ │ └── task3 │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── main.py │ │ │ │ │ └── imports_output.csv │ │ │ └── python_version │ │ │ │ └── setup_files │ │ │ │ ├── empty_file.py │ │ │ │ ├── python_2_classifiers_1.py │ │ │ │ ├── python_2_classifiers_2.py │ │ │ │ ├── python_2_only_classifier_1.py │ │ │ │ ├── python_2_only_classifier_2.py │ │ │ │ ├── python_3_classifiers_1.py │ │ │ │ ├── python_3_classifiers_2.py │ │ │ │ ├── python_3_only_classifier_1.py │ │ │ │ ├── python_3_only_classifier_2.py │ │ │ │ └── without_python_classifiers.py │ │ └── utils │ │ │ └── python │ │ │ └── requirements_utils │ │ │ └── projects_with_requirements_files │ │ │ ├── project_with_empty_requirements_file │ │ │ ├── requirements.txt │ │ │ ├── some_other_file.py │ │ │ └── some_other_file.txt │ │ │ ├── project_with_incorrect_requirement_file │ │ │ ├── requirements.txt │ │ │ ├── some_other_file.py │ │ │ └── some_other_file.txt │ │ │ ├── project_with_nested_requirements_files │ │ │ ├── requirements.txt │ │ │ ├── requirements │ │ │ │ ├── main.txt │ │ │ │ └── test.txt │ │ │ └── src │ │ │ │ ├── __init__.py │ │ │ │ ├── some_file.py │ │ │ │ └── some_other_file.py │ │ │ ├── project_with_nested_structure │ │ │ ├── folder_with_requirements_file │ │ │ │ ├── requirements-2.txt │ │ │ │ ├── some_other_file.py │ │ │ │ └── some_other_file.txt │ │ │ ├── requirements-1.txt │ │ │ ├── some_folder_without_requirements │ │ │ │ ├── some_other_file.py │ │ │ │ └── some_other_file.txt │ │ │ ├── some_other_file.py │ │ │ └── some_other_file.txt │ │ │ ├── project_with_several_requirements_files │ │ │ ├── 1-requirements.txt │ │ │ ├── 2-requirements.txt │ │ │ ├── some_other_file.py │ │ │ └── some_other_file.txt │ │ │ └── project_without_requirements_files │ │ │ ├── some_other_file.py │ │ │ └── some_other_file.txt │ └── utils │ │ ├── __init__.py │ │ └── python │ │ ├── __init__.py │ │ ├── test_pypi_utils.py │ │ └── test_requirements_utils.py ├── utils │ ├── __init__.py │ ├── config_utils.py │ ├── df_utils.py │ ├── file_utils.py │ ├── language.py │ ├── python │ │ ├── __init__.py │ │ ├── pypi_utils.py │ │ └── requirements_utils.py │ └── run_process_utils.py └── visualization │ ├── README.md │ └── diagram.py └── settings.gradle.kts /.editorconfig: -------------------------------------------------------------------------------- 1 | [{*.gradle.kts,*.kt,*.kts,*.main.kts}] 2 | charset = utf-8 3 | end_of_line = lf 4 | indent_size = unset 5 | indent_style = space 6 | insert_final_newline=true 7 | max_line_length = 120 8 | tab_width = 4 9 | ij_kotlin_allow_trailing_comma = true 10 | ij_kotlin_allow_trailing_comma_on_call_site = true 11 | disabled_rules=no-wildcard-imports,experimental:spacing-between-declarations-with-comments,trailing-comma-on-call-site,trailing-comma-on-declaration-site -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | build 3 | .gradle 4 | venv 5 | database.ini -------------------------------------------------------------------------------- /assets/readme-pictures/pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/assets/readme-pictures/pipeline.png -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m 3 | 4 | platformType = IC 5 | platformVersion = 223.7571.182 6 | platformDownloadSources = true 7 | # Use Groovy instaed of org.intellij.groovy according to this issue 8 | # https://intellij-support.jetbrains.com/hc/en-us/community/posts/205968464-using-plugin-classes-with-gradle-build 9 | platformPlugins = com.intellij.java, org.jetbrains.kotlin, Groovy, org.jetbrains.plugins.gradle, maven, PythonCore:223.7571.182 -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | plugins { 5 | groovy 6 | } 7 | 8 | dependencies { 9 | implementation(project(":lupa-core")) 10 | implementation(project(":lupa-test")) 11 | } 12 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/README.md: -------------------------------------------------------------------------------- 1 | # Kotlin's analysers: internal declarations and usages 2 | 3 | Functionality related to internal declarations and usages analysis in Kotlin projects. 4 | This analyzer allows extracting all internal declarations and their usages from the Kotlin files 5 | 6 | #### Running usage 7 | 8 | Run the analyzer directly: 9 | 10 | ``` 11 | ./gradlew :lupa-runner:cli -Prunner=kotlin-internal-declaration-psi-analysis -Pinput=/path/to/dataset/dir -Poutput=path/to/results/dir 12 | ``` 13 | 14 | In the result you will get two files: `internal_declarations.csv` and `internal_usages.csv`. 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/usages/InternalUsagesAnalysisResult.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.declarations.analysis.usages 2 | 3 | data class InternalUsagesAnalysisResult( 4 | val declarationFqName: String, 5 | val usageFqName: String, 6 | val moduleName: String?, 7 | val sourceSet: String?, 8 | ) 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/ImportDirectivePsiAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.dependencies.analysis 2 | 3 | import org.jetbrains.kotlin.psi.KtImportDirective 4 | import org.jetbrains.research.lupa.kotlinAnalysis.PsiAnalyzer 5 | 6 | /** 7 | * Analyzer for [import directive][KtImportDirective]. 8 | * Analysis consists of fully qualified name extraction. 9 | */ 10 | object ImportDirectivePsiAnalyzer : PsiAnalyzer { 11 | 12 | /** Get fully qualified name of given [import directive][KtImportDirective]. */ 13 | override fun analyze(psiElement: KtImportDirective): String { 14 | return psiElement.importedFqName.toString() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/PackageDirectivePsiAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.dependencies.analysis 2 | 3 | import org.jetbrains.kotlin.psi.KtPackageDirective 4 | import org.jetbrains.research.lupa.kotlinAnalysis.PsiAnalyzer 5 | 6 | /** 7 | * Analyzer for [package directive][KtPackageDirective]. 8 | * Analysis consists of fully-qualified name extraction. 9 | */ 10 | object PackageDirectivePsiAnalyzer : PsiAnalyzer { 11 | 12 | /** Get fully-qualified name of given [package directive][KtPackageDirective]. */ 13 | override fun analyze(psiElement: KtPackageDirective): String { 14 | return psiElement.qualifiedName 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/context/GradleBlock.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.analysis.gradle.buildGradle.context 2 | 3 | /** Scope block in gradle file. */ 4 | enum class GradleBlock(val simpleName: String) { 5 | DEPENDENCIES("dependencies"), 6 | PLUGINS("plugins"), 7 | ALL_PROJECTS("allprojects"), 8 | REPOSITORIES("repositories"); 9 | 10 | companion object { 11 | fun fromSimpleName(simpleName: String) = values() 12 | .firstOrNull { it.simpleName.equals(simpleName, ignoreCase = true) } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/GradleProperty.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.analysis.gradle.gradleProperties 2 | 3 | /** Gradle property in gradle.properties file in [key]=[value] format (ex. org.gradle.caching=true). **/ 4 | data class GradleProperty(val key: String?, val value: String?) 5 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/settingsGradle/analyzers/GroovyIncludedModulesAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.analysis.gradle.settingsGradle.analyzers 2 | 3 | import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.GrApplicationStatementImpl 4 | import org.jetbrains.research.lupa.kotlinAnalysis.PsiMainAnalyzer 5 | 6 | /** Groovy settings.gradle file analyzer for included modules. */ 7 | object GroovyIncludedModulesAnalyzer : PsiMainAnalyzer, List>( 8 | listOf(SettingsGradleIncludedModulesAnalyzer(GrApplicationStatementImpl::class.java)), 9 | SettingsGradleIncludedModulesAggregator 10 | ) 11 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/settingsGradle/analyzers/KtsIncludedModulesAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.analysis.gradle.settingsGradle.analyzers 2 | 3 | import org.jetbrains.kotlin.psi.KtCallExpression 4 | import org.jetbrains.research.lupa.kotlinAnalysis.PsiMainAnalyzer 5 | 6 | /** Kotlin settings.gradle.kts file analyzer for included modules. */ 7 | object KtsIncludedModulesAnalyzer : PsiMainAnalyzer, List>( 8 | listOf(SettingsGradleIncludedModulesAnalyzer(KtCallExpression::class.java)), 9 | SettingsGradleIncludedModulesAggregator 10 | ) 11 | -------------------------------------------------------------------------------- /kotlin-analysers/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/ProjectTag.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.analysis.tagging 2 | 3 | /** Tag for project which describes it's content of theme. */ 4 | enum class ProjectTag(val value: String) { 5 | ANDROID("android"), 6 | OTHER("other"); 7 | } 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/clones/analysis/data/in_1_without_args.kt: -------------------------------------------------------------------------------- 1 | public fun withoutArguments() { 2 | val a = 5 3 | val b = 3 4 | 5 | if (a == b) { 6 | print(a) 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/clones/analysis/data/in_2_with_args.kt: -------------------------------------------------------------------------------- 1 | private fun add(a: Int, b: Int) : Int { 2 | return a + b 3 | } 4 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/clones/analysis/data/in_3_extension.kt: -------------------------------------------------------------------------------- 1 | fun String.isEvenLength(): Boolean { 2 | return this.length % 2 == 0 3 | } 4 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/clones/analysis/data/out_1.txt: -------------------------------------------------------------------------------- 1 | 0,0,14,10,36aa7e9dded66381bf741b8f7248a216@#@public@@::@@1,fun@@::@@1,withoutArguments@@::@@1,val@@::@@2,a@@::@@3,b@@::@@2,print@@::@@1,if@@::@@1,3@@::@@1,5@@::@@1 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/clones/analysis/data/out_2.txt: -------------------------------------------------------------------------------- 1 | 0,0,11,7,7632aaaaeefc0d511a375f5b0ae42e94@#@private@@::@@1,fun@@::@@1,add@@::@@1,a@@::@@2,b@@::@@2,return@@::@@1,Int@@::@@3 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/clones/analysis/data/out_3.txt: -------------------------------------------------------------------------------- 1 | 0,0,9,9,308efe0a92b23b459a02027fc52eb892@#@fun@@::@@1,String@@::@@1,isEvenLength@@::@@1,Boolean@@::@@1,return@@::@@1,this@@::@@1,length@@::@@1,2@@::@@1,0@@::@@1 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_0_empty.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_1_internal_top_level_class.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | internal open class InternalClass1 4 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_2_internal_nested_class.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | open class Class2 { 4 | internal class InternalClass2 5 | } 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_3_internal_top_level_object.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | internal object InternalObject3 4 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_4_internal_nested_object.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | open class Class4 { 4 | internal object InternalObject4 5 | } 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_5_other_modifiers.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | open class Class5 { 4 | protected object A 5 | 6 | private object B 7 | } 8 | 9 | class C: Class5() 10 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_6_internal_top_level_interface.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | internal interface InternalInterface6 4 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/in_7_internal_nested_interface.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | open class Interface7 { 4 | internal class InternalInterface7 5 | } 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_0.txt -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_1.txt: -------------------------------------------------------------------------------- 1 | InternalDeclarationAnalysisResult(fqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.InternalClass1, isExpect=false, isActual=false, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_2.txt: -------------------------------------------------------------------------------- 1 | InternalDeclarationAnalysisResult(fqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.Class2.InternalClass2, isExpect=false, isActual=false, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_3.txt: -------------------------------------------------------------------------------- 1 | InternalDeclarationAnalysisResult(fqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.InternalObject3, isExpect=false, isActual=false, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_4.txt: -------------------------------------------------------------------------------- 1 | InternalDeclarationAnalysisResult(fqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.Class4.InternalObject4, isExpect=false, isActual=false, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_5.txt -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_6.txt: -------------------------------------------------------------------------------- 1 | InternalDeclarationAnalysisResult(fqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.InternalInterface6, isExpect=false, isActual=false, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/declarations/data/out_7.txt: -------------------------------------------------------------------------------- 1 | InternalDeclarationAnalysisResult(fqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.Interface7.InternalInterface7, isExpect=false, isActual=false, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/in_0_empty.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/in_1_usage_in_function_arguments.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | class A1 4 | internal class B1 5 | 6 | fun test1(instance: A1) { 7 | } 8 | 9 | internal fun test2(instance: B1) { 10 | } 11 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/in_2_usage_as_types.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | class A2 4 | internal open class B2 { 5 | internal interface Nested 6 | } 7 | 8 | val topLevel: Any = B2() 9 | 10 | private class TestClass : B2() 11 | 12 | class TestNestedClass : B2.Nested 13 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/in_3_usage_in_calls.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | class A3 4 | internal open class B3 { 5 | internal fun internalFun() {} 6 | fun publicFun() {} 7 | } 8 | 9 | internal expect fun internalExpectFun() 10 | 11 | internal fun internalFun(): B3 = B3() 12 | 13 | internal fun test2(instance: B3) { 14 | internalExpectFun() 15 | instance.internalFun() 16 | } 17 | 18 | internal fun test3() { 19 | internalFun().publicFun() 20 | } 21 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/out_0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/out_0.txt -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/references/data/out_1.txt: -------------------------------------------------------------------------------- 1 | InternalUsagesAnalysisResult(declarationFqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.B1, usageFqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.test2, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/in_0_empty.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/in_1_usage_in_function_arguments.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | class A1 4 | internal class B1 5 | 6 | fun test1(instance: A1) { 7 | } 8 | 9 | internal fun test2(instance: B1) { 10 | } 11 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/in_2_usage_as_types.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | class A2 4 | internal open class B2 { 5 | internal interface Nested 6 | } 7 | 8 | val topLevel: Any = B2() 9 | 10 | private class TestClass : B2() 11 | 12 | class TestNestedClass : B2.Nested 13 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/in_3_usage_in_calls.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.declarations.analysis.psi.usages.resolve.data 2 | 3 | class A3 4 | internal open class B3 { 5 | internal fun internalFun() {} 6 | fun publicFun() {} 7 | } 8 | 9 | internal expect fun internalExpectFun() 10 | 11 | internal fun internalFun(): B3 = B3() 12 | 13 | internal fun test2(instance: B3) { 14 | internalExpectFun() 15 | instance.internalFun() 16 | } 17 | 18 | internal fun test3() { 19 | internalFun().publicFun() 20 | } 21 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/out_0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/out_0.txt -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/declarations/analysis/psi/usages/resolve/data/out_1.txt: -------------------------------------------------------------------------------- 1 | InternalUsagesAnalysisResult(declarationFqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.B1, usageFqName=org.jetbrains.research.lupa.kotlinAnalysis.psi.data.test2, moduleName=light_idea_test_case, sourceSet=null) -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/settings.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.data.gradle_projects.in_0_dataset_gradle_groovy_one_module.sample_project 2 | 3 | rootProject.name = 'gradle-one-module' 4 | 5 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/inner/InnerImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.inner 2 | 3 | import com.jetbrains.kotlin.analysis.test.project.multi.MultiImportClass 4 | import kotlinx.coroutines.delay 5 | 6 | class InnerImportClass { 7 | 8 | suspend fun importUsage(): Int { 9 | val c = MultiImportClass() 10 | delay(c.importUsage().toLong()) 11 | return 29 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/multi/MultiImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.multi 2 | 3 | import kotlinx.coroutines.delay 4 | import org.apache.commons.math3.random.JDKRandomGenerator 5 | 6 | class MultiImportClass { 7 | 8 | private val generator = JDKRandomGenerator(); 9 | 10 | suspend fun importUsage(): Int { 11 | delay(generator.nextLong()) 12 | return 29 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/one/OneImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.one 2 | 3 | import kotlinx.coroutines.delay 4 | 5 | class OneImportClass { 6 | 7 | suspend fun importUsage(): Int { 8 | delay(1000L) 9 | return 29 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_0_dataset_gradle_groovy_one_module/sample_project/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/star/StarImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.star 2 | 3 | import kotlinx.coroutines.* 4 | 5 | class StarImportClass { 6 | 7 | suspend fun importUsage(): Int { 8 | delay(1000L) 9 | return 29 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/inner-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/inner/InnerImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.inner 2 | 3 | import com.jetbrains.kotlin.analysis.test.project.multi.MultiImportClass 4 | import kotlinx.coroutines.delay 5 | 6 | class InnerImportClass { 7 | 8 | suspend fun importUsage(): Int { 9 | val c = MultiImportClass() 10 | delay(c.importUsage().toLong()) 11 | return 29 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/multi-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/multi/MultiImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.multi 2 | 3 | import kotlinx.coroutines.delay 4 | import org.apache.commons.math3.random.JDKRandomGenerator 5 | 6 | class MultiImportClass { 7 | 8 | private val generator = JDKRandomGenerator(); 9 | 10 | suspend fun importUsage(): Int { 11 | delay(generator.nextLong()) 12 | return 29 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/one-import-module/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java' 3 | id 'org.jetbrains.kotlin.jvm' 4 | } 5 | 6 | group 'com.jetbrains.kotlin.analysis.test.project' 7 | version '1.0-SNAPSHOT' 8 | 9 | repositories { 10 | mavenCentral() 11 | } 12 | 13 | dependencies { 14 | implementation "org.jetbrains.kotlin:kotlin-stdlib" 15 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' 16 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' 17 | implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0' 18 | } 19 | 20 | test { 21 | useJUnitPlatform() 22 | } -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/one-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/one/OneImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.one 2 | 3 | import kotlinx.coroutines.delay 4 | 5 | class OneImportClass { 6 | 7 | suspend fun importUsage(): Int { 8 | delay(1000L) 9 | return 29 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_1_dataset_gradle_groovy_multi_module/sample_project/settings.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.data.gradle_projects.in_1_dataset_gradle_groovy_multi_module.sample_project 2 | 3 | rootProject.name = 'gradle-multi-module' 4 | 5 | include 'one-import-module' 6 | include 'multi-import-module' 7 | include 'inner-import-module' -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = "com.jetbrains.kotlin.analysis.test" 2 | version = "1.0-SNAPSHOT" 3 | 4 | plugins { 5 | java 6 | kotlin("jvm") version "1.5.21" apply true 7 | } 8 | 9 | repositories { 10 | mavenCentral() 11 | } 12 | 13 | allprojects { 14 | apply { 15 | plugin("java") 16 | plugin("kotlin") 17 | } 18 | 19 | repositories { 20 | mavenCentral() 21 | jcenter() 22 | } 23 | 24 | dependencies { 25 | implementation(kotlin("stdlib-jdk8")) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/inner-import-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | dependencies { 5 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0") 6 | implementation(project(":multi-import-module")) 7 | } 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/inner-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/inner/InnerImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.inner 2 | 3 | import com.jetbrains.kotlin.analysis.test.multi.MultiImportClass 4 | import kotlinx.coroutines.delay 5 | 6 | class InnerImportClass { 7 | 8 | suspend fun importUsage(): Int { 9 | val c = MultiImportClass() 10 | delay(c.importUsage().toLong()) 11 | return 29 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/multi-import-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | dependencies { 5 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0") 6 | implementation("org.apache.commons:commons-math3:3.6.1") 7 | } 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/multi-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/multi/MultiImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.multi 2 | 3 | import kotlinx.coroutines.delay 4 | import org.apache.commons.math3.random.JDKRandomGenerator 5 | 6 | class MultiImportClass { 7 | 8 | private val generator = JDKRandomGenerator(); 9 | 10 | suspend fun importUsage(): Int { 11 | delay(generator.nextLong()) 12 | return 29 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/one-import-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | dependencies { 5 | implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0") 6 | } 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/one-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/one/OneImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.one 2 | 3 | import kotlinx.coroutines.delay 4 | 5 | class OneImportClass { 6 | 7 | suspend fun importUsage(): Int { 8 | delay(1000L) 9 | return 29 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/in_2_dataset_gradle_kotlin_multi_module/sample_project/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "gradle-kotlin-multi-module" 2 | 3 | include( 4 | "one-import-module", 5 | "multi-import-module", 6 | "inner-import-module" 7 | ) 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/out_0.txt: -------------------------------------------------------------------------------- 1 | project_name,import 2 | in_0_dataset_gradle_groovy_one_module,kotlinx.coroutines 3 | in_0_dataset_gradle_groovy_one_module,kotlinx.coroutines.delay 4 | in_0_dataset_gradle_groovy_one_module,kotlinx.coroutines.delay 5 | in_0_dataset_gradle_groovy_one_module,kotlinx.coroutines.delay 6 | in_0_dataset_gradle_groovy_one_module,org.apache.commons.math3.random.JDKRandomGenerator -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/out_1.txt: -------------------------------------------------------------------------------- 1 | project_name,import 2 | in_1_dataset_gradle_groovy_multi_module,kotlinx.coroutines.delay 3 | in_1_dataset_gradle_groovy_multi_module,kotlinx.coroutines.delay 4 | in_1_dataset_gradle_groovy_multi_module,kotlinx.coroutines.delay 5 | in_1_dataset_gradle_groovy_multi_module,org.apache.commons.math3.random.JDKRandomGenerator -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/gradle_projects/out_2.txt: -------------------------------------------------------------------------------- 1 | project_name,import 2 | in_2_dataset_gradle_kotlin_multi_module,kotlinx.coroutines.delay 3 | in_2_dataset_gradle_kotlin_multi_module,kotlinx.coroutines.delay 4 | in_2_dataset_gradle_kotlin_multi_module,kotlinx.coroutines.delay 5 | in_2_dataset_gradle_kotlin_multi_module,org.apache.commons.math3.random.JDKRandomGenerator -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/maven_projects/in_3_dataset_maven_multi_module/sample_project/inner-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/inner/InnerImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.inner 2 | 3 | import com.jetbrains.kotlin.analysis.test.project.multi.MultiImportClass 4 | import kotlinx.coroutines.delay 5 | 6 | class InnerImportClass { 7 | 8 | suspend fun importUsage(): Int { 9 | delay(MultiImportClass().importUsage().toLong()) 10 | return 29 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/maven_projects/in_3_dataset_maven_multi_module/sample_project/multi-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/multi/MultiImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.multi 2 | 3 | import kotlinx.coroutines.delay 4 | import org.apache.commons.math3.random.JDKRandomGenerator 5 | 6 | class MultiImportClass { 7 | 8 | private val generator = JDKRandomGenerator(); 9 | 10 | suspend fun importUsage(): Int { 11 | delay(generator.nextLong()) 12 | return 29 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/maven_projects/in_3_dataset_maven_multi_module/sample_project/one-import-module/src/main/kotlin/com/jetbrains/kotlin/analysis/test/project/one/OneImportClass.kt: -------------------------------------------------------------------------------- 1 | package com.jetbrains.kotlin.analysis.test.project.one 2 | 3 | import kotlinx.coroutines.delay 4 | 5 | class OneImportClass { 6 | 7 | suspend fun importUsage(): Int { 8 | delay(1000L) 9 | return 29 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/data/maven_projects/out_3.txt: -------------------------------------------------------------------------------- 1 | project_name,import 2 | in_3_dataset_maven_multi_module,kotlinx.coroutines.delay 3 | in_3_dataset_maven_multi_module,kotlinx.coroutines.delay 4 | in_3_dataset_maven_multi_module,kotlinx.coroutines.delay 5 | in_3_dataset_maven_multi_module,org.apache.commons.math3.random.JDKRandomGenerator -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_0_empty.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_1_without_imports.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | fun main() { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_2_standart_import.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | import java.lang.Math.max 4 | import kotlin.Char 5 | 6 | fun main() { 7 | print(max(2, 3)) 8 | print(Char.SIZE_BITS) 9 | } 10 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_3_kotlinx_import.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | import kotlinx.collections.immutable.toImmutableList 4 | import javax.print.Doc 5 | 6 | fun main() { 7 | print(listOf(1..5).toImmutableList()) 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_4_list_of_simple_imports.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | import junit.framework.Test 4 | import java.lang.Math.max 5 | import kotlin.Char 6 | import kotlinx.collections.immutable.toImmutableList 7 | 8 | fun main(){ 9 | 10 | } 11 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_5_star_import.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | //expected without star 4 | import java.util.concurrent.* 5 | 6 | fun main(){ 7 | 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/in_6_inner_project_import.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.data 2 | 3 | import org.jetbrains.research.ml.kotlinAnalysis.PsiMainAnalyzer 4 | 5 | fun main() { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_0.txt -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_1.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_1.txt -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_2.txt: -------------------------------------------------------------------------------- 1 | java.lang.Math.max 2 | kotlin.Char -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_3.txt: -------------------------------------------------------------------------------- 1 | kotlinx.collections.immutable.toImmutableList 2 | javax.print.Doc -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_4.txt: -------------------------------------------------------------------------------- 1 | junit.framework.Test 2 | java.lang.Math.max 3 | kotlin.Char 4 | kotlinx.collections.immutable.toImmutableList -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_5.txt: -------------------------------------------------------------------------------- 1 | java.util.concurrent -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_6.txt: -------------------------------------------------------------------------------- 1 | org.jetbrains.research.ml.kotlinAnalysis.PsiMainAnalyzer -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/psi/data/out_7.txt: -------------------------------------------------------------------------------- 1 | android.content.Context 2 | android.os.Bundle 3 | android.view.LayoutInflater 4 | android.view.View 5 | android.view.ViewGroup 6 | androidx.fragment.app.Fragment 7 | androidx.lifecycle.ViewModelProvider 8 | androidx.recyclerview.widget 9 | com.drakeet.multitype.ItemViewDelegate 10 | com.drakeet.multitype.MultiTypeAdapter 11 | com.swensun.potato.R 12 | kotlinx.android.synthetic.main.item_recycler_view.view 13 | kotlinx.android.synthetic.main.load_more.view 14 | kotlinx.android.synthetic.main.recycler_view_fragment -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/dependencies/analysis/util/log4j.properties: -------------------------------------------------------------------------------- 1 | # Set root logger level to INFO and its only appender to A1. 2 | log4j.rootLogger=INFO, A1 3 | 4 | # A1 is set to be a ConsoleAppender. 5 | log4j.appender.A1=org.apache.log4j.ConsoleAppender 6 | 7 | # A1 uses PatternLayout. 8 | log4j.appender.A1.layout=org.apache.log4j.PatternLayout 9 | log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_1_groovy_multi_module_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_1_groovy_multi_module_project/sample_project/settings.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.buildGradle.dependencies.data.in_1_groovy_multi_module_project.sample_project 2 | 3 | rootProject.name = 'in_0_groovy_multi_module_project' 4 | include 'first_module' 5 | include 'second_module' 6 | 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/first-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/second-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/dependencies/data/in_2_kotlin_multi_module_project/sample_project/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "in_2_kotlin_multi_module_project" 2 | 3 | include( 4 | "first-module", 5 | "second-module" 6 | ) 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_1_groovy_multi_module_project/sample_project/first_module/build.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.buildGradle.plugins.data.in_1_groovy_multi_module_project.sample_project.first_module 2 | 3 | plugins { 4 | id 'java' 5 | id 'org.jetbrains.kotlin.jvm' 6 | } 7 | 8 | group 'org.example' 9 | version '1.0-SNAPSHOT' 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | implementation "org.jetbrains.kotlin:kotlin-stdlib" 17 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' 18 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' 19 | } 20 | 21 | test { 22 | useJUnitPlatform() 23 | } -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_1_groovy_multi_module_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_1_groovy_multi_module_project/sample_project/settings.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.buildGradle.plugins.data.in_1_groovy_multi_module_project.sample_project 2 | 3 | rootProject.name = 'in_0_groovy_multi_module_project' 4 | include 'first_module' 5 | include 'second_module' 6 | 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/first-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/second-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/in_2_kotlin_multi_module_project/sample_project/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "in_2_kotlin_multi_module_project" 2 | 3 | include( 4 | "first-module", 5 | "second-module" 6 | ) 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/out_1.txt: -------------------------------------------------------------------------------- 1 | project_name,plugin_id,plugin_version,plugin_args,applied,allProjects 2 | in_1_groovy_multi_module_project,java,,,true,true 3 | in_1_groovy_multi_module_project,java,,,true,false 4 | in_1_groovy_multi_module_project,java,,,true,false 5 | in_1_groovy_multi_module_project,org.jetbrains.kotlin.jvm,1.5.21,,true,false 6 | in_1_groovy_multi_module_project,org.jetbrains.kotlin.jvm,,,true,false 7 | in_1_groovy_multi_module_project,org.jetbrains.kotlin.jvm,,,true,false 8 | in_1_groovy_multi_module_project,org.jetbrains.kotlin.jvm,1.5.21,,false,false 9 | in_1_groovy_multi_module_project,maven-publish,,,true,false 10 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/buildGradle/plugins/data/out_2.txt: -------------------------------------------------------------------------------- 1 | project_name,plugin_id,plugin_version,plugin_args,applied,allProjects 2 | in_2_kotlin_multi_module_project,java,,,true,true 3 | in_2_kotlin_multi_module_project,maven-publish,,,true,false 4 | in_2_kotlin_multi_module_project,java-gradle-plugin,,,true,false 5 | in_2_kotlin_multi_module_project,org.jetbrains.intellij,1.1.3,,true,false 6 | in_2_kotlin_multi_module_project,kotlin,kotlinVersion,jvm,true,true 7 | in_2_kotlin_multi_module_project,kotlin,1.5.21,jvm,true,true 8 | in_2_kotlin_multi_module_project,kotlin,1.5.21,jvm,false,true 9 | in_2_kotlin_multi_module_project,org.jetbrains.groovy,,,true,true -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/first_module/build.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.gradleProperties.data.in_1_groovy_multi_module_project.sample_project.first_module 2 | 3 | plugins { 4 | id 'java' 5 | id 'org.jetbrains.kotlin.jvm' 6 | } 7 | 8 | group 'org.example' 9 | version '1.0-SNAPSHOT' 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | implementation "org.jetbrains.kotlin:kotlin-stdlib" 17 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' 18 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' 19 | } 20 | 21 | test { 22 | useJUnitPlatform() 23 | } -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.parallel=true 3 | #android.useAndroidX=true 4 | org.gradle.jvmargs=-Xmx1536m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/second_module/build.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.gradleProperties.data.in_1_groovy_multi_module_project.sample_project.second_module 2 | 3 | plugins { 4 | id 'java' 5 | id 'org.jetbrains.kotlin.jvm' 6 | } 7 | 8 | group 'org.example' 9 | version '1.0-SNAPSHOT' 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | implementation "org.jetbrains.kotlin:kotlin-stdlib" 17 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' 18 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' 19 | } 20 | 21 | test { 22 | useJUnitPlatform() 23 | } -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_1_groovy_multi_module_project/sample_project/settings.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.gradle.gradleProperties.data.in_1_groovy_multi_module_project.sample_project 2 | 3 | rootProject.name = 'in_0_groovy_multi_module_project' 4 | include 'first_module' 5 | include 'second_module' 6 | 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/first-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/second-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/in_2_kotlin_multi_module_project/sample_project/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "in_2_kotlin_multi_module_project" 2 | 3 | include( 4 | "first-module", 5 | "second-module" 6 | ) 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/out_1.txt: -------------------------------------------------------------------------------- 1 | project_name,property_key,property_value 2 | in_1_groovy_multi_module_project,kotlin.code.style,official 3 | in_1_groovy_multi_module_project,org.gradle.jvmargs,-Xmx1536m 4 | in_1_groovy_multi_module_project,org.gradle.parallel,true -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/gradle/gradleProperties/data/out_2.txt: -------------------------------------------------------------------------------- 1 | project_name,property_key,property_value 2 | in_2_kotlin_multi_module_project,kotlin.code.style,official 3 | in_2_kotlin_multi_module_project,org.gradle.jvmargs,-XX:MaxMetaspaceSize=512m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/first_module/build.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.tagging.data.in_1_not_android_project.sample_project.first_module 2 | 3 | plugins { 4 | id 'java' 5 | id 'org.jetbrains.kotlin.jvm' 6 | } 7 | 8 | group 'org.example' 9 | version '1.0-SNAPSHOT' 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | implementation "org.jetbrains.kotlin:kotlin-stdlib" 17 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' 18 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' 19 | } 20 | 21 | test { 22 | useJUnitPlatform() 23 | } -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/second_module/build.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.tagging.data.in_1_not_android_project.sample_project.second_module 2 | 3 | plugins { 4 | id 'java' 5 | id 'org.jetbrains.kotlin.jvm' 6 | } 7 | 8 | group 'org.example' 9 | version '1.0-SNAPSHOT' 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | implementation "org.jetbrains.kotlin:kotlin-stdlib" 17 | testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' 18 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' 19 | } 20 | 21 | test { 22 | useJUnitPlatform() 23 | } -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_1_not_android_project/sample_project/settings.gradle: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.tagging.data.in_1_not_android_project.sample_project 2 | 3 | rootProject.name = 'in_0_groovy_multi_module_project' 4 | include 'first_module' 5 | include 'second_module' 6 | 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/first-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official 2 | org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/second-module/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/in_2_android_project/sample_project/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "in_2_kotlin_multi_module_project" 2 | 3 | include( 4 | "first-module", 5 | "second-module" 6 | ) 7 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/out_1.txt: -------------------------------------------------------------------------------- 1 | project_name,tag 2 | in_1_not_android_project,other -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/gradle/analysis/tagging/data/out_2.txt: -------------------------------------------------------------------------------- 1 | project_name,tag 2 | in_2_android_project,android -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_1_for.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | class in_1_for { 4 | 5 | private fun test() { 6 | for (i in 1..5) { 7 | for (j in 2 until 10) { 8 | for (k in 4 until 20) { 9 | println() 10 | } 11 | } 12 | } 13 | 14 | for (ch in 1.rangeTo(4)) { 15 | 16 | } 17 | 18 | for (i in 3 downTo 1) { 19 | 20 | } 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_2_while.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | class in_2_while { 4 | private fun test() { 5 | var i = 1 6 | while (i in 1..5) { 7 | i++ 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_3_if.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | class in_3_if { 4 | 5 | fun test(a: Int, b: Int) { 6 | if ("c" in "m".."r") { 7 | 8 | } else if (5 in b downTo a) { 9 | 10 | } else { 11 | 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_4_when.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | class in_4_when { 4 | 5 | fun test(i: Int, j: Int) { 6 | var b = when (i) { 7 | in 3..5 -> 1 8 | in 8..9 -> 2 9 | else -> 9 10 | } 11 | 12 | 13 | var c = when (j) { 14 | in 5.rangeTo( 10) -> 3 15 | in 15 until 20 -> 4 16 | else -> 9 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_5_property.kt: -------------------------------------------------------------------------------- 1 | public fun a() { 2 | val rangeDotsInt = 1..10 3 | 4 | val rangeUntilInt = 7 until 16 5 | 6 | val rangeUntilLong = 3000000000 until 4000000000 7 | 8 | val rangeDotsChar = "a".."c" 9 | 10 | val rangeDownTo = 13 downTo 1 11 | 12 | val booleanExpression = (5 in 2 until 100) && (8 in 1..10) && (1 in -1..1) 13 | 14 | var rangeToExpression = "b".rangeTo("d") 15 | } 16 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_6_foreach.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | class in_6_foreach { 4 | 5 | fun a(c: Int, d: Int) { 6 | (1..10).forEach { 7 | println(it) 8 | } 9 | 10 | c.rangeTo(d).forEach { 11 | (d downTo c).forEach { 12 | 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_7_map.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | class in_7_map { 4 | 5 | val r = (2 until 10).map { doSomething(it) }.toList() 6 | 7 | private fun doSomething(it: Int): Int { 8 | return it 9 | } 10 | 11 | fun a(): List { 12 | return (1L .. 2L).map { it + 1 } 13 | } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_8_tolist.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | fun a() { 4 | (1..10).toList() 5 | 6 | val r = (1L until 10L).toList() 7 | } 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/in_9_require.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.ml.kotlinAnalysis.data 2 | 3 | fun a(value: Int, charValue: String) { 4 | require(value in 1 until 10) 5 | 6 | require(charValue in "b".rangeTo("e")) 7 | } 8 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_1.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_10.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 2 0 0 0 1 1 1 0 1 2 2 1 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_2.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_3.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_4.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_5.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_6.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_7.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_8.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/ranges/data/out_9.csv: -------------------------------------------------------------------------------- 1 | until,for until,while until,if until,when until,property until,foreach until,map until,tolist until,require until,other down_to,for down_to,while down_to,if down_to,when down_to,property down_to,foreach down_to,map down_to,tolist down_to,require down_to,other dots,for dots,while dots,if dots,when dots,property dots,foreach dots,map dots,tolist dots,require dots,other range_to,for range_to,while range_to,if range_to,when range_to,property range_to,foreach range_to,map range_to,tolist range_to,require range_to,other 2 | 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_10_mixed.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_10_mixed { 4 | 5 | private fun test() { 6 | Class.forName("") 7 | in_10_mixed::class.java.constructors 8 | in_10_mixed::class.java.declaredConstructors 9 | in_10_mixed::class.java.getDeclaredConstructor() 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_1_forclass.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_1_forclass { 4 | 5 | private fun test() { 6 | Class.forName("") 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_2_empty.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_2_empty { 4 | 5 | private fun test() { 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_3_declared_methods.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_3_declared_methods { 4 | 5 | private fun test() { 6 | in_3_declared_methods::class.java.declaredMethods 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_4_get_declared_method.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_4_get_declared_method { 4 | 5 | private fun test() { 6 | in_4_get_declared_method::class.java.getDeclaredMethod("") 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_5_annotated_interfaces.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_5_annotated_interfaces { 4 | 5 | private fun test() { 6 | in_5_annotated_interfaces::class.java.annotatedInterfaces 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_6_annotated_superclass.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_6_annotated_superclass { 4 | 5 | private fun test() { 6 | in_6_annotated_superclass::class.java.annotatedSuperclass 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_7_constructors.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_7_constructors { 4 | 5 | private fun test() { 6 | in_7_constructors::class.java.constructors 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_8_declared_constructors.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_8_declared_constructors { 4 | 5 | private fun test() { 6 | in_8_declared_constructors::class.java.declaredConstructors 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/in_9_get_declared_constructor.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.reflections.data 2 | 3 | class in_9_get_declared_constructor { 4 | 5 | private fun test() { 6 | in_9_get_declared_constructor::class.java.getDeclaredConstructor() 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_1.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_10.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_2.csv: -------------------------------------------------------------------------------- 1 | project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_3.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_4.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_5.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_6.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_7.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_8.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/statistic/analysis/reflection/data/out_9.csv: -------------------------------------------------------------------------------- 1 | project 2 | valid project -------------------------------------------------------------------------------- /kotlin-analysers/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/log4j.properties: -------------------------------------------------------------------------------- 1 | # Set root logger level to INFO and its only appender to A1. 2 | log4j.rootLogger=INFO, A1 3 | 4 | # A1 is set to be a ConsoleAppender. 5 | log4j.appender.A1=org.apache.log4j.ConsoleAppender 6 | 7 | # A1 uses PatternLayout. 8 | log4j.appender.A1.layout=org.apache.log4j.PatternLayout 9 | log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n -------------------------------------------------------------------------------- /lupa-core/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | dependencies { 5 | implementation("org.postgresql:postgresql:42.5.1") 6 | implementation("com.google.code.gson:gson:2.10") 7 | implementation("com.github.ajalt.clikt:clikt:3.5.0") 8 | } 9 | -------------------------------------------------------------------------------- /lupa-core/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/psi/extentions/KtElementExt.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.extentions 2 | 3 | import org.jetbrains.kotlin.lexer.KtTokens 4 | import org.jetbrains.kotlin.psi.KtElement 5 | import org.jetbrains.kotlin.psi.KtNamedDeclaration 6 | import org.jetbrains.research.lupa.kotlinAnalysis.util.getRelativePath 7 | 8 | /** 9 | * Returns the path to the file, containing given ktElement. 10 | * Path is relative from the ktElement's project directory. ) 11 | */ 12 | fun KtElement.getRelativePathToKtElement() = this.containingKtFile.virtualFilePath.getRelativePath(this.project) 13 | 14 | fun KtNamedDeclaration.isInternal() = hasModifier(KtTokens.INTERNAL_KEYWORD) 15 | -------------------------------------------------------------------------------- /lupa-core/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/psi/extentions/PyElementExt.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.psi.extentions 2 | 3 | import com.jetbrains.python.psi.PyFromImportStatement 4 | 5 | private const val RELATIVE_LEVEL_OF_ABSOLUTE_IMPORT = 0 6 | 7 | /** 8 | * Checks if the import is absolute. 9 | * 10 | * For example, `from some_package import some_function` is absolute 11 | * and `from .some_other_package import some_other_function` is not absolute. 12 | */ 13 | fun PyFromImportStatement.isAbsoluteImport(): Boolean = this.relativeLevel == RELATIVE_LEVEL_OF_ABSOLUTE_IMPORT 14 | -------------------------------------------------------------------------------- /lupa-core/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/util/kotlin/KotlinTeamExecutorHelper.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.util.kotlin 2 | 3 | import org.jetbrains.research.lupa.kotlinAnalysis.ExecutorHelper 4 | import org.jetbrains.research.lupa.kotlinAnalysis.util.GitRepository 5 | 6 | data class KotlinTeamExecutorHelper(val connection: KotlinTeamDatabaseConnection? = null) : ExecutorHelper { 7 | override fun postExecuteAction(repo: GitRepository) { 8 | connection?.updateRepoDate(repo) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /lupa-core/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/JupyterDatasetTransformationRunner.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.util.python.jupyter 2 | 3 | import org.jetbrains.research.pluginUtilities.runners.BaseRunner 4 | import org.jetbrains.research.pluginUtilities.runners.IORunnerArgs 5 | import org.jetbrains.research.pluginUtilities.runners.IORunnerArgsParser 6 | 7 | object JupyterDatasetTransformationRunner : BaseRunner 8 | ("preprocessJupyterDataset", IORunnerArgsParser) { 9 | override fun run(args: IORunnerArgs) { 10 | val transformer = JupyterDatasetTransformer(args.inputDir, args.outputDir) 11 | transformer.transformDataset() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lupa-core/src/main/kotlin/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/Utils.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.kotlinAnalysis.util.python.jupyter 2 | 3 | import java.io.File 4 | import java.io.IOException 5 | import java.nio.file.Files 6 | import java.nio.file.Path 7 | 8 | fun copyDataset(datasetDir: Path, targetDir: Path) { 9 | try { 10 | Files.createDirectory(targetDir) 11 | } catch (e: IOException) { 12 | System.err.println("Directory $targetDir already exists.") 13 | } finally { 14 | File(datasetDir.toString()).copyRecursively(File(targetDir.toString()), overwrite = true) 15 | } 16 | } 17 | 18 | fun readFileAsText(filename: String) = File(filename).readText() 19 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_1_empty.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_1_empty.kt -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_2_single_line_comment.kt: -------------------------------------------------------------------------------- 1 | // Single line comment 2 | // Single line comment 3 | fun main() { 4 | // Single line comment 5 | // Single line comment 6 | // Single line comment 7 | } 8 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_3_multi_line_comment.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | /* 3 | This is a comment 4 | written in 5 | more than just one line 6 | * */ 7 | /* 8 | This is a comment 9 | written in 10 | more than just one line 11 | * */ 12 | /* 13 | This is a comment 14 | written in 15 | more than just one line 16 | * */ 17 | } 18 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_4_documentation_empty_comment.kt: -------------------------------------------------------------------------------- 1 | /** 2 | */ 3 | fun main(){ 4 | 5 | } 6 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_5_documentation_comment.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * This 3 | is 4 | documentation 5 | comment 6 | */ 7 | fun main(){ 8 | 9 | } 10 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_6_all_types_of_comments.kt: -------------------------------------------------------------------------------- 1 | /** 2 | * class kdoc 3 | */ 4 | class SimpleClass { 5 | /** 6 | * kdoc 7 | * 8 | * @author author 9 | */ 10 | fun method1() { 11 | val a = 5 12 | /* 13 | multiline comment 14 | another line 15 | */ 16 | } 17 | 18 | fun method2() { 19 | // comment inside method 20 | val b = 6 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_7_several_types.kt: -------------------------------------------------------------------------------- 1 | import java.util.* 2 | 3 | /** 4 | * Some KDoc 5 | */ 6 | //Some comment 7 | //Some comment 8 | // Some comment 9 | //Some comment 10 | // 11 | //Some comment 12 | // Some comment 13 | //Some comment 14 | 15 | fun main(args: Array) { 16 | val list = ArrayList() 17 | list.add("Hello") 18 | list.add(0) 19 | list.map(::println) 20 | } 21 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/in_8_several_types.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | val c = 5 // some comment 3 | outer@ while (true) { 4 | var count1 = 0 // some comment 5 | var count2 = 0 // some comment 6 | /* 7 | * some kdoc 8 | * some kdoc 9 | */ 10 | do { 11 | TODO() 12 | } while (true) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_1.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_1.kt -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_2.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | } 3 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_3.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | } 3 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_4.kt: -------------------------------------------------------------------------------- 1 | fun main(){ 2 | 3 | } 4 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_5.kt: -------------------------------------------------------------------------------- 1 | fun main(){ 2 | 3 | } 4 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_6.kt: -------------------------------------------------------------------------------- 1 | class SimpleClass { 2 | fun method1() { 3 | val a = 5 4 | } 5 | 6 | fun method2() { 7 | val b = 6 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_7.kt: -------------------------------------------------------------------------------- 1 | import java.util.* 2 | 3 | fun main(args: Array) { 4 | val list = ArrayList() 5 | list.add("Hello") 6 | list.add(0) 7 | list.map(::println) 8 | } 9 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/psi/extensions/element/comments/data/out_8.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | val c = 5 3 | outer@ while (true) { 4 | var count1 = 0 5 | var count2 = 0 6 | do { 7 | TODO() 8 | } while (true) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_1.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_1.kt -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_2_one_code_cell.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import matplotlib.pyplot as plt 3 | 4 | x = np.linspace(-1, 1, 100) 5 | y = np.exp(-x**2) 6 | 7 | print(x, y) -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_3_one_markdown_cell.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_3_one_markdown_cell.py -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_4_one_code_one_markdown_cells.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | print('hello') 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | np.random.rand(10, 10) -------------------------------------------------------------------------------- /lupa-core/src/test/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/python/jupyter/data/out_5.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | 5 | import plt.pyplot as plt 6 | 7 | 8 | x = np.linspace(-2, 2, 9).reshape((3,3)) 9 | print(x / 2) 10 | print('hello') 11 | def foo(x: int = 1): 12 | assert(isinstance(x, np.ndarray)) 13 | return x * x / 2 14 | 15 | print(foo(x)) 16 | class A: 17 | def __init__(self): 18 | self.string = "It's class A" 19 | 20 | 21 | def create_a(): 22 | a = A() 23 | return a 24 | 25 | lots_of_A = [create_a().string for _ in range(100)] 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | print(lots_of_A[3:5]) -------------------------------------------------------------------------------- /lupa-test/README.md: -------------------------------------------------------------------------------- 1 | # Lupa 🔍: common tests architecture 2 | 3 | This module contains common tests architecture to test PSI analysis. 4 | For base tests we use base functions from the [plugin-utilities](https://github.com/JetBrains-Research/plugin-utilities) project. 5 | All classes and functions should be documented. 6 | -------------------------------------------------------------------------------- /lupa-test/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | dependencies { 5 | implementation(project(":lupa-core")) 6 | } 7 | -------------------------------------------------------------------------------- /lupa-test/src/main/resources/org/jetbrains/research/lupa/kotlinAnalysis/util/log4j.properties: -------------------------------------------------------------------------------- 1 | # Set root logger level to INFO and its only appender to A1. 2 | log4j.rootLogger=INFO, A1 3 | 4 | # A1 is set to be a ConsoleAppender. 5 | log4j.appender.A1=org.apache.log4j.ConsoleAppender 6 | 7 | # A1 uses PatternLayout. 8 | log4j.appender.A1.layout=org.apache.log4j.PatternLayout 9 | log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n -------------------------------------------------------------------------------- /python-analysers/README.md: -------------------------------------------------------------------------------- 1 | # Lupa 🔍: Python's analysers 2 | 3 | This module contains examples of the using the Lupa 🔍 platform to analyze Python projects. 4 | Each analyzer has a README file with detailed description how it can be used. 5 | 6 | The list of available analyzers: 7 | - [`callExpressions`](./src/main/kotlin/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/README.md) - functionality related to call expressions (functions, classes, decorators) analysis in Python projects; 8 | - [`imports`](./src/main/kotlin/org/jetbrains/research/lupa/pythonAnalysis/imports/README.md) - functionality related to imports analysis in Python projects. 9 | 10 | Please, see each of them to get more detailed information. 11 | -------------------------------------------------------------------------------- /python-analysers/build.gradle.kts: -------------------------------------------------------------------------------- 1 | group = rootProject.group 2 | version = rootProject.version 3 | 4 | dependencies { 5 | implementation(project(":lupa-core")) 6 | implementation(project(":lupa-test")) 7 | } 8 | -------------------------------------------------------------------------------- /python-analysers/src/main/kotlin/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/CallExpressionAnalyzerContext.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.pythonAnalysis.callExpressions.analysis 2 | 3 | import com.jetbrains.python.actions.PyQualifiedNameProvider 4 | import com.jetbrains.python.psi.resolve.PyResolveContext 5 | import org.jetbrains.research.lupa.kotlinAnalysis.AnalyzerContext 6 | 7 | /** 8 | * Context for [CallExpressionAnalyzer]. 9 | * Contains [resolveContext][PyResolveContext] and [fqNamesProvider][PyQualifiedNameProvider]. 10 | */ 11 | data class CallExpressionAnalyzerContext( 12 | val resolveContext: PyResolveContext, 13 | val fqNamesProvider: PyQualifiedNameProvider 14 | ) : AnalyzerContext 15 | -------------------------------------------------------------------------------- /python-analysers/src/main/kotlin/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/PyCallExpressionAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.pythonAnalysis.callExpressions.analysis 2 | 3 | import com.jetbrains.python.psi.impl.PyCallExpressionImpl 4 | 5 | /** 6 | * Analyzer for [call expression][PyCallExpressionImpl]. 7 | * Analysis consists of fully qualified name extraction. 8 | */ 9 | object PyCallExpressionAnalyzer : CallExpressionAnalyzer(PyCallExpressionImpl::class.java) 10 | -------------------------------------------------------------------------------- /python-analysers/src/main/kotlin/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/PyDecoratorAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package org.jetbrains.research.lupa.pythonAnalysis.callExpressions.analysis 2 | 3 | import com.jetbrains.python.psi.impl.PyDecoratorImpl 4 | 5 | /** 6 | * Analyzer for [decorator][PyDecoratorImpl]. 7 | * Analysis consists of fully qualified name extraction. 8 | */ 9 | object PyDecoratorAnalyzer : CallExpressionAnalyzer(PyDecoratorImpl::class.java) 10 | -------------------------------------------------------------------------------- /python-analysers/src/main/resources/log4j2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/__init__.py -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/callExpressionPsiAnalyzerTestData/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/callExpressionPsiAnalyzerTestData/__init__.py -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/callExpressionPsiAnalyzerTestData/in_1_stdlib.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from math import sin 3 | from pathlib import Path 4 | from json import JSONDecoder 5 | from string import capwords 6 | from logging import Logger 7 | from email import message_from_bytes 8 | 9 | date() 10 | sin() 11 | Path() 12 | JSONDecoder() 13 | capwords() 14 | Logger() 15 | message_from_bytes() 16 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/callExpressionPsiAnalyzerTestData/out_1.txt: -------------------------------------------------------------------------------- 1 | datetime.date.__new__ 2 | email.message_from_bytes 3 | json.decoder.JSONDecoder.__init__ 4 | logging.Logger.__init__ 5 | math.sin 6 | pathlib.Path.__new__ 7 | string.capwords 8 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/decoratorPsiAnalyzerTestData/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/decoratorPsiAnalyzerTestData/__init__.py -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/decoratorPsiAnalyzerTestData/in_0_builtins.py: -------------------------------------------------------------------------------- 1 | # https://docs.python.org/3.8/library/functions.html 2 | 3 | class SomeClass: 4 | @classmethod 5 | def some_class_method(cls): 6 | pass 7 | 8 | @staticmethod 9 | def some_static_method(self): 10 | pass 11 | 12 | @property 13 | def some_property(self): 14 | pass 15 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/decoratorPsiAnalyzerTestData/out_0.txt: -------------------------------------------------------------------------------- 1 | classmethod.__init__ 2 | staticmethod.__init__ 3 | property.__init__ 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/callExpressions/analysis/psi/decoratorPsiAnalyzerTestData/out_1.txt: -------------------------------------------------------------------------------- 1 | functools.cached_property.__init__ 2 | functools.lru_cache 3 | functools.singledispatch 4 | functools.total_ordering 5 | functools.wraps 6 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_0_empty.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_0_empty.py -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_10_from_import_with_alias.py: -------------------------------------------------------------------------------- 1 | from math import sin as s 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_11_several_inline_from_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | from math import sin as s, cos as c, log as l 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_12_several_from_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | from math import sin as s 2 | from math import cos as c 3 | from math import log as l 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_13_absolute_from_import.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_14_several_absolute_inline_from_imports.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import utils, common, other 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_15_several_absolute_from_imports.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import utils 2 | from src.tasks.task1 import common 3 | from src.tasks.task1 import other 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_16_absolute_from_import_with_alias.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import utils as u 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_17_several_absolute_inline_from_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import utils as u, common as c, other as o 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_18_several_absolute_from_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import utils as u 2 | from src.tasks.task1 import common as c 3 | from src.tasks.task1 import other as o 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_19_relative_from_import.py: -------------------------------------------------------------------------------- 1 | from . import utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_1_star_import.py: -------------------------------------------------------------------------------- 1 | from math import * 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_20_several_relative_inline_from_imports.py: -------------------------------------------------------------------------------- 1 | from .some_package import utils, common, other 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_21_several_relative_from_imports.py: -------------------------------------------------------------------------------- 1 | from .some_package import utils 2 | from ..some_other_package import common 3 | from ...some_other_other_package import other 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_22_relative_from_import_with_alias.py: -------------------------------------------------------------------------------- 1 | from . import utils as u 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_23_several_relative_inline_from_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | from .some_package import utils as u, common as c, other as o 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_24_several_relative_from_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | from .some_package import utils as u 2 | from ..some_other_package import common as c 3 | from ...some_other_other_package import other as o 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_25_incorrect_imports.py: -------------------------------------------------------------------------------- 1 | from math import 2 | from import math 3 | from import * 4 | from math, cmath import * 5 | from math, import * 6 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_2_several_star_imports.py: -------------------------------------------------------------------------------- 1 | from math import * 2 | from cmath import * 3 | from plotly.express import * 4 | from pandas import * 5 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_3_absolute_star_import.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import * 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_4_several_absolute_star_imports.py: -------------------------------------------------------------------------------- 1 | from src.tasks.task1 import * 2 | from src.tasks.task2 import * 3 | from src.tasks.task3 import * 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_5_relative_star_import.py: -------------------------------------------------------------------------------- 1 | from . import * 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_6_several_relative_star_imports.py: -------------------------------------------------------------------------------- 1 | from . import * 2 | from .. import * 3 | from ... import * 4 | from .some_package import * 5 | from ..some_other_package import * 6 | from ...some_other_other_package import * 7 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_7_from_import.py: -------------------------------------------------------------------------------- 1 | from math import sin 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_8_several_inline_from_imports.py: -------------------------------------------------------------------------------- 1 | from math import sin, cos, log 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/in_9_several_from_imports.py: -------------------------------------------------------------------------------- 1 | from math import sin 2 | from math import cos 3 | from math import log 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_0.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_1.txt: -------------------------------------------------------------------------------- 1 | math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_10.txt: -------------------------------------------------------------------------------- 1 | math.sin -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_11.txt: -------------------------------------------------------------------------------- 1 | math.sin 2 | math.cos 3 | math.log 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_12.txt: -------------------------------------------------------------------------------- 1 | math.sin 2 | math.cos 3 | math.log 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_13.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_14.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task1.common 3 | src.tasks.task1.other 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_15.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task1.common 3 | src.tasks.task1.other 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_16.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_17.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task1.common 3 | src.tasks.task1.other 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_18.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task1.common 3 | src.tasks.task1.other 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_19.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_19.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_2.txt: -------------------------------------------------------------------------------- 1 | math 2 | cmath 3 | plotly.express 4 | pandas 5 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_20.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_20.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_21.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_21.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_22.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_22.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_23.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_23.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_24.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_24.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_25.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_25.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_3.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_4.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1 2 | src.tasks.task2 3 | src.tasks.task3 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_5.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_6.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_6.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_7.txt: -------------------------------------------------------------------------------- 1 | math.sin -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_8.txt: -------------------------------------------------------------------------------- 1 | math.sin 2 | math.cos 3 | math.log 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/fromImportStatementsData/out_9.txt: -------------------------------------------------------------------------------- 1 | math.sin 2 | math.cos 3 | math.log 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_0_empty.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_0_empty.py -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_10_one_absolute_import_with_alias.py: -------------------------------------------------------------------------------- 1 | import src.tasks.task1.utils as u1 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_11_several_absolute_inline_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | import src.tasks.task1.utils as u1, src.tasks.task2.utils as u2, src.tasks.task3.utils as u3 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_12_several_absolute_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | import src.tasks.task1.utils as u1 2 | import src.tasks.task2.utils as u2 3 | import src.tasks.task3.utils as u3 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_13_empty_import.py: -------------------------------------------------------------------------------- 1 | import 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_14_incorrect_inline_import.py: -------------------------------------------------------------------------------- 1 | import math, 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_15_incorrect_import.py: -------------------------------------------------------------------------------- 1 | import math 2 | import 3 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_16_incorrect_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | import as empty 2 | import math as 3 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_17_incorrect_inline_import_with_alias.py: -------------------------------------------------------------------------------- 1 | import math as m, cmath as, as empty 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_1_one_import.py: -------------------------------------------------------------------------------- 1 | import math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_2_several_inline_imports.py: -------------------------------------------------------------------------------- 1 | import cmath, math, logging, random, plotly, pandas 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_3_several_imports.py: -------------------------------------------------------------------------------- 1 | import cmath 2 | import math 3 | import logging 4 | import random 5 | import plotly 6 | import pandas 7 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_4_one_import_with_alias.py: -------------------------------------------------------------------------------- 1 | import math as m 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_5_several_inline_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | import math as m, cmath as cm, pandas as pd, plotly.express as px 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_6_several_imports_with_alias.py: -------------------------------------------------------------------------------- 1 | import math as m 2 | import cmath as cm 3 | import pandas as pd 4 | import plotly.express as px 5 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_7_one_absolute_import.py: -------------------------------------------------------------------------------- 1 | import src.tasks.task1.utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_8_several_absolute_inline_imports.py: -------------------------------------------------------------------------------- 1 | import src.tasks.task1.utils, src.tasks.task2.utils, src.tasks.task3.utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/in_9_several_absolute_imports.py: -------------------------------------------------------------------------------- 1 | import src.tasks.task1.utils 2 | import src.tasks.task2.utils 3 | import src.tasks.task3.utils 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_0.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_0.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_1.txt: -------------------------------------------------------------------------------- 1 | math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_10.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_11.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task2.utils 3 | src.tasks.task3.utils 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_12.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task2.utils 3 | src.tasks.task3.utils 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_13.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_13.txt -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_14.txt: -------------------------------------------------------------------------------- 1 | math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_15.txt: -------------------------------------------------------------------------------- 1 | math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_16.txt: -------------------------------------------------------------------------------- 1 | math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_17.txt: -------------------------------------------------------------------------------- 1 | math 2 | cmath 3 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_2.txt: -------------------------------------------------------------------------------- 1 | cmath 2 | math 3 | logging 4 | random 5 | plotly 6 | pandas 7 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_3.txt: -------------------------------------------------------------------------------- 1 | cmath 2 | math 3 | logging 4 | random 5 | plotly 6 | pandas 7 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_4.txt: -------------------------------------------------------------------------------- 1 | math 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_5.txt: -------------------------------------------------------------------------------- 1 | math 2 | cmath 3 | pandas 4 | plotly.express 5 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_6.txt: -------------------------------------------------------------------------------- 1 | math 2 | cmath 3 | pandas 4 | plotly.express 5 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_7.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_8.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task2.utils 3 | src.tasks.task3.utils 4 | -------------------------------------------------------------------------------- /python-analysers/src/test/resources/org/jetbrains/research/lupa/pythonAnalysis/imports/analysis/psi/importStatementsData/out_9.txt: -------------------------------------------------------------------------------- 1 | src.tasks.task1.utils 2 | src.tasks.task2.utils 3 | src.tasks.task3.utils 4 | -------------------------------------------------------------------------------- /scripts/README.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | The module contains scripts for collecting repositories from GitHub, running Intellij Idea Plugin on them, and analyzing the results. 4 | There is a submodule for each task. 5 | -------------------------------------------------------------------------------- /scripts/analysis/README.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | 3 | This module contains scripts for the analysis of different data extracted from Kotlin projects. -------------------------------------------------------------------------------- /scripts/analysis/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/analysis/__init__.py -------------------------------------------------------------------------------- /scripts/analysis/call_expressions/python/call_expressions_column.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class CallExpressionsColumn(Enum): 5 | PROJECT_NAME = 'project_name' 6 | FQ_NAME = 'fq_name' 7 | COUNT = 'count' 8 | CATEGORY = 'category' 9 | TOTAL = 'total' 10 | PYTHON_VERSION = 'python_version' 11 | -------------------------------------------------------------------------------- /scripts/analysis/dependencies/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/analysis/dependencies/__init__.py -------------------------------------------------------------------------------- /scripts/analysis/dependencies/column_names_utils.py: -------------------------------------------------------------------------------- 1 | import enum 2 | 3 | 4 | class ImportDirectivesColumn(str, enum.Enum): 5 | FQ_NAME = 'fq_name' 6 | COUNT = 'count' 7 | -------------------------------------------------------------------------------- /scripts/analysis/dependencies/fq_names_types.py: -------------------------------------------------------------------------------- 1 | from typing import Dict, List, Union 2 | 3 | FqNamesDict = Dict[str, Union['FqNamesDict', int]] 4 | FqNamesStats = Dict[str, int] 5 | FqNamesGroups = Dict[str, List[str]] 6 | -------------------------------------------------------------------------------- /scripts/analysis/dependencies/python/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/analysis/dependencies/python/__init__.py -------------------------------------------------------------------------------- /scripts/analysis/dependencies/python/imports_column.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ImportsColumn(Enum): 5 | PROJECT_NAME = 'project_name' 6 | IMPORT = 'import' 7 | FQ_NAME = 'fq_name' 8 | COUNT = 'count' 9 | PYTHON_VERSION = 'python_version' 10 | -------------------------------------------------------------------------------- /scripts/analysis/gradle_plugins/column_names_utils.py: -------------------------------------------------------------------------------- 1 | import enum 2 | 3 | 4 | class GradlePluginsColumn(str, enum.Enum): 5 | PROJECT_NAME = 'project_name' 6 | PLUGIN_ID = 'plugin_id' 7 | 8 | 9 | class GradlePluginsStatsColumn(str, enum.Enum): 10 | PLUGIN_ID = 'plugin_id' 11 | COUNT = 'count' 12 | -------------------------------------------------------------------------------- /scripts/analysis/gradle_properties/column_names_utils.py: -------------------------------------------------------------------------------- 1 | import enum 2 | 3 | 4 | class GradlePropertiesColumn(str, enum.Enum): 5 | PROJECT_NAME = 'project_name' 6 | PROPERTY_KEY = 'property_key' 7 | PROPERTY_VALUE = 'property_value' 8 | 9 | 10 | class GradlePropertiesKeyStatsColumn(str, enum.Enum): 11 | PROPERTY_KEY = 'property_key' 12 | COUNT = 'count' 13 | -------------------------------------------------------------------------------- /scripts/benchmark/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/benchmark/__init__.py -------------------------------------------------------------------------------- /scripts/benchmark/batching/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/benchmark/batching/__init__.py -------------------------------------------------------------------------------- /scripts/benchmark/metrics_collection/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/benchmark/metrics_collection/__init__.py -------------------------------------------------------------------------------- /scripts/benchmark/sampling/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/benchmark/sampling/__init__.py -------------------------------------------------------------------------------- /scripts/data_collection/github_data/api.py: -------------------------------------------------------------------------------- 1 | import os 2 | from typing import Optional 3 | 4 | from github import Github 5 | from github.Repository import Repository 6 | 7 | from urllib3.util.retry import Retry 8 | 9 | 10 | def get_github_token() -> str: 11 | os.environ['GIT_TERMINAL_PROMPT'] = '0' 12 | token = os.getenv('GITHUB_TOKEN') 13 | return token 14 | 15 | 16 | def get_repo(repo_name: str) -> Optional[Repository]: 17 | token = get_github_token() 18 | github = Github(token, retry=Retry(total=50, backoff_factor=10, status_forcelist=[403])) 19 | repo = github.get_repo(repo_name) 20 | return repo 21 | -------------------------------------------------------------------------------- /scripts/data_collection/package_search/model.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import List, Optional 3 | 4 | 5 | @dataclass 6 | class SourceCodeManagement: 7 | url: Optional[str] 8 | 9 | 10 | @dataclass 11 | class Package: 12 | group_id: str 13 | artifact_id: str 14 | name: Optional[str] 15 | url: Optional[str] 16 | scm: Optional[SourceCodeManagement] 17 | 18 | 19 | @dataclass 20 | class PackageSearchResponse: 21 | packages: List[Package] 22 | -------------------------------------------------------------------------------- /scripts/plugin_runner/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/plugin_runner/__init__.py -------------------------------------------------------------------------------- /scripts/plugin_runner/additional_arguments.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from typing import Dict, List, Optional 3 | 4 | 5 | class AdditionalArguments(argparse.Action): 6 | def __call__(self, parser, namespace, values, option_string=None): 7 | setattr(namespace, self.dest, {}) 8 | 9 | for value in values: 10 | key, value = value.split('=') 11 | getattr(namespace, self.dest)[key] = value 12 | 13 | @staticmethod 14 | def parse_additional_arguments(additional_arguments: Optional[Dict[str, str]]) -> List[str]: 15 | arguments = [] 16 | if additional_arguments is None: 17 | return arguments 18 | for key, value in additional_arguments.items(): 19 | arguments.append(f'-P{key}={value}') 20 | return arguments 21 | -------------------------------------------------------------------------------- /scripts/plugin_runner/python_venv/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/plugin_runner/python_venv/__init__.py -------------------------------------------------------------------------------- /scripts/plugin_runner/python_version/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/plugin_runner/python_version/__init__.py -------------------------------------------------------------------------------- /scripts/requirements-code-style.txt: -------------------------------------------------------------------------------- 1 | flake8==4.0.1 2 | flake8-import-order==0.18.1 3 | wemake_python_styleguide==0.16.1 4 | -------------------------------------------------------------------------------- /scripts/requirements-test.txt: -------------------------------------------------------------------------------- 1 | httpretty==1.1.4 2 | pytest==6.2.5 3 | selenium==4.8.3 4 | webdriver-manager==3.8.5 5 | -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- 1 | pandas==1.2.3 2 | requests==2.25.1 3 | urllib3==1.26.12 4 | Pygments==2.9.0 5 | networkx==2.5 6 | argparse==1.4.0 7 | schedule==1.1.0 8 | PyGithub==1.55 9 | plotly==5.1.0 10 | anytree==2.8.0 11 | typing==3.7.4.3 12 | dacite==1.6.0 13 | psycopg2==2.9.3 14 | cerberus==1.3.4 15 | streamlit==1.23.1 16 | pyyaml==6.0 17 | bin-packing-problem==1.0.0 18 | -------------------------------------------------------------------------------- /scripts/scripts.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /scripts/test/__init__.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | TEST_DATA_FOLDER = Path(__file__).parent / 'resources' 4 | -------------------------------------------------------------------------------- /scripts/test/benchmark/__init__.py: -------------------------------------------------------------------------------- 1 | from test import TEST_DATA_FOLDER 2 | 3 | BENCHMARK_TEST_DATA_FOLDER = TEST_DATA_FOLDER / 'benchmark' 4 | -------------------------------------------------------------------------------- /scripts/test/benchmark/batching/__init__.py: -------------------------------------------------------------------------------- 1 | from test.benchmark import BENCHMARK_TEST_DATA_FOLDER 2 | 3 | CURRENT_TEST_DATA_FOLDER = BENCHMARK_TEST_DATA_FOLDER / 'batching' 4 | 5 | RESULTS_COMPARISON_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'results_comparison' 6 | -------------------------------------------------------------------------------- /scripts/test/benchmark/metrics_collection/__init__.py: -------------------------------------------------------------------------------- 1 | from test.benchmark import BENCHMARK_TEST_DATA_FOLDER 2 | 3 | CURRENT_TEST_DATA_FOLDER = BENCHMARK_TEST_DATA_FOLDER / 'metrics_collection' 4 | 5 | METRICS_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'metrics' 6 | COLLECT_PROJECT_METRICS_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'collect_project_metrics' 7 | -------------------------------------------------------------------------------- /scripts/test/benchmark/sampling/__init__.py: -------------------------------------------------------------------------------- 1 | from test.benchmark import BENCHMARK_TEST_DATA_FOLDER 2 | 3 | CURRENT_TEST_DATA_FOLDER = BENCHMARK_TEST_DATA_FOLDER / 'sampling' 4 | 5 | STRATIFIED_SAMPLING_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'stratified_sampling' 6 | 7 | DATASETS_DATA_FOLDER = STRATIFIED_SAMPLING_TEST_DATA_FOLDER / 'datasets' 8 | 9 | PROJECTS_DATA_FOLDER = STRATIFIED_SAMPLING_TEST_DATA_FOLDER / 'projects' 10 | -------------------------------------------------------------------------------- /scripts/test/plugin_runner/__init__.py: -------------------------------------------------------------------------------- 1 | from test import TEST_DATA_FOLDER 2 | 3 | CURRENT_TEST_DATA_FOLDER = TEST_DATA_FOLDER / 'plugin_runner' 4 | 5 | CREATE_VENV_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'create_venv' 6 | PYTHON_VERSION_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'python_version' 7 | BATCH_PROCESSING_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'batch_processing' 8 | -------------------------------------------------------------------------------- /scripts/test/plugin_runner/batch_processing/__init__.py: -------------------------------------------------------------------------------- 1 | from test.plugin_runner import BATCH_PROCESSING_TEST_DATA_FOLDER 2 | 3 | RUNNERS_TEST_DATA_FOLDER = BATCH_PROCESSING_TEST_DATA_FOLDER / 'runners' 4 | 5 | COMMON_DATASET = BATCH_PROCESSING_TEST_DATA_FOLDER / 'common_dataset' 6 | DUMMY_CONFIG = BATCH_PROCESSING_TEST_DATA_FOLDER / 'dummy_config.yaml' 7 | -------------------------------------------------------------------------------- /scripts/test/plugin_runner/batch_processing/runners/__init__.py: -------------------------------------------------------------------------------- 1 | from test.plugin_runner.batch_processing import RUNNERS_TEST_DATA_FOLDER 2 | 3 | PYTHON_DATA_FOLDER = RUNNERS_TEST_DATA_FOLDER / 'python' 4 | -------------------------------------------------------------------------------- /scripts/test/plugin_runner/batch_processing/runners/python/__init__.py: -------------------------------------------------------------------------------- 1 | from test.plugin_runner.batch_processing.runners import PYTHON_DATA_FOLDER 2 | 3 | IMPORTS_DATASET = PYTHON_DATA_FOLDER / 'imports_dataset' 4 | IMPORTS_DATASET_OUTPUT = PYTHON_DATA_FOLDER / 'imports_output.csv' 5 | 6 | CALL_EXPRESSIONS_DATASET = PYTHON_DATA_FOLDER / 'call_expressions_dataset' 7 | CALL_EXPRESSIONS_OUTPUT = PYTHON_DATA_FOLDER / 'call_expressions_output.csv' 8 | -------------------------------------------------------------------------------- /scripts/test/plugin_runner/python_venv/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/plugin_runner/python_venv/__init__.py -------------------------------------------------------------------------------- /scripts/test/plugin_runner/python_version/__init__.py: -------------------------------------------------------------------------------- 1 | from test.plugin_runner import PYTHON_VERSION_TEST_DATA_FOLDER 2 | 3 | SETUP_FILES_TEST_DATA_FOLDER = PYTHON_VERSION_TEST_DATA_FOLDER / 'setup_files' 4 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/batching/results_comparison/one_results_file/benchmark_data.csv: -------------------------------------------------------------------------------- 1 | time,rss,batch,type 2 | 306.82,106660,1,warmup 3 | 293.59,103420,1,benchmark 4 | 290.94,106172,1,benchmark 5 | 295.18,104784,1,benchmark 6 | 144.69,97788,2,warmup 7 | 135.08,98552,2,benchmark 8 | 135.79,95760,2,benchmark 9 | 134.34,95824,2,benchmark 10 | 1028.75,117136,5,warmup 11 | 1008.94,115820,5,benchmark 12 | 992.5,119336,5,benchmark 13 | 995.51,116492,5,benchmark 14 | 170.25,95956,4,warmup 15 | 160.62,97444,4,benchmark 16 | 163.93,86940,4,benchmark 17 | 163.16,95968,4,benchmark 18 | 229.77,104900,0,warmup 19 | 205.35,98236,0,benchmark 20 | 205.84,97208,0,benchmark 21 | 202.86,97372,0,benchmark 22 | 144.76,96520,3,warmup 23 | 134.19,95380,3,benchmark 24 | 134.5,95028,3,benchmark 25 | 133.29,95384,3,benchmark 26 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/batching/results_comparison/one_results_file_benchmark_runs_only/benchmark_data.csv: -------------------------------------------------------------------------------- 1 | time,rss,batch,type 2 | 293.59,103420,1,benchmark 3 | 290.94,106172,1,benchmark 4 | 295.18,104784,1,benchmark 5 | 135.08,98552,2,benchmark 6 | 135.79,95760,2,benchmark 7 | 134.34,95824,2,benchmark 8 | 1008.94,115820,5,benchmark 9 | 992.5,119336,5,benchmark 10 | 995.51,116492,5,benchmark 11 | 160.62,97444,4,benchmark 12 | 163.93,86940,4,benchmark 13 | 163.16,95968,4,benchmark 14 | 205.35,98236,0,benchmark 15 | 205.84,97208,0,benchmark 16 | 202.86,97372,0,benchmark 17 | 134.19,95380,3,benchmark 18 | 134.5,95028,3,benchmark 19 | 133.29,95384,3,benchmark 20 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/batching/results_comparison/one_results_file_warmup_runs_only/benchmark_data.csv: -------------------------------------------------------------------------------- 1 | time,rss,batch,type 2 | 306.82,106660,1,warmup 3 | 144.69,97788,2,warmup 4 | 1028.75,117136,5,warmup 5 | 170.25,95956,4,warmup 6 | 229.77,104900,0,warmup 7 | 144.76,96520,3,warmup 8 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/batching/results_comparison/several_results_files/benchmark_data_benchmark_runs_only.csv: -------------------------------------------------------------------------------- 1 | time,rss,batch,type 2 | 293.59,103420,1,benchmark 3 | 290.94,106172,1,benchmark 4 | 295.18,104784,1,benchmark 5 | 135.08,98552,2,benchmark 6 | 135.79,95760,2,benchmark 7 | 134.34,95824,2,benchmark 8 | 1008.94,115820,5,benchmark 9 | 992.5,119336,5,benchmark 10 | 995.51,116492,5,benchmark 11 | 160.62,97444,4,benchmark 12 | 163.93,86940,4,benchmark 13 | 163.16,95968,4,benchmark 14 | 205.35,98236,0,benchmark 15 | 205.84,97208,0,benchmark 16 | 202.86,97372,0,benchmark 17 | 134.19,95380,3,benchmark 18 | 134.5,95028,3,benchmark 19 | 133.29,95384,3,benchmark 20 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/batching/results_comparison/several_results_files/benchmark_data_one_batch.csv: -------------------------------------------------------------------------------- 1 | time,rss,batch,type 2 | 229.77,104900,0,warmup 3 | 205.35,98236,0,benchmark 4 | 205.84,97208,0,benchmark 5 | 202.86,97372,0,benchmark 6 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/batching/results_comparison/several_results_files/benchmark_data_warmup_runs_only.csv: -------------------------------------------------------------------------------- 1 | time,rss,batch,type 2 | 306.82,106660,1,warmup 3 | 144.69,97788,2,warmup 4 | 1028.75,117136,5,warmup 5 | 170.25,95956,4,warmup 6 | 229.77,104900,0,warmup 7 | 144.76,96520,3,warmup 8 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_multiple_languages/src/kotlin/build.gradle.kts: -------------------------------------------------------------------------------- 1 | import org.jetbrains.kotlin.gradle.tasks.KotlinCompile 2 | 3 | plugins { 4 | kotlin("jvm") version "1.7.10" 5 | application 6 | } 7 | 8 | group = "org.example" 9 | version = "1.0-SNAPSHOT" 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | testImplementation(kotlin("test")) 17 | } 18 | 19 | tasks.test { 20 | useJUnitPlatform() 21 | } 22 | 23 | tasks.withType { 24 | kotlinOptions.jvmTarget = "1.8" 25 | } 26 | 27 | application { 28 | mainClass.set("MainKt") 29 | } 30 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_multiple_languages/src/kotlin/main.kt: -------------------------------------------------------------------------------- 1 | fun factorial(n: Int): Int { 2 | if (n == 0) { 3 | return 1 4 | } 5 | return n * factorial(n - 1) 6 | } 7 | 8 | fun main() { 9 | val n = readlnOrNull()?.toIntOrNull() 10 | n?.let { println(factorial(it)) } ?: println("Not a number.") 11 | } 12 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_multiple_languages/src/python/factorial.py: -------------------------------------------------------------------------------- 1 | def factorial(n: int) -> int: 2 | if n == 0: 3 | return 1 4 | 5 | return n * factorial(n - 1) -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_multiple_languages/src/python/main.py: -------------------------------------------------------------------------------- 1 | from factorial import factorial 2 | 3 | 4 | def main() -> None: 5 | n = int(input()) 6 | print(factorial(n)) 7 | 8 | 9 | if __name__ == '__main__': 10 | main() 11 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_multiple_languages/src/python/requirements.txt: -------------------------------------------------------------------------------- 1 | pandas==1.2.3 2 | plotly==4.5.6 3 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_one_language/src/factorial.py: -------------------------------------------------------------------------------- 1 | def factorial(n: int) -> int: 2 | if n == 0: 3 | return 1 4 | 5 | return n * factorial(n - 1) -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_one_language/src/main.py: -------------------------------------------------------------------------------- 1 | from factorial import factorial 2 | 3 | 4 | def main() -> None: 5 | n = int(input()) 6 | print(factorial(n)) 7 | 8 | 9 | if __name__ == '__main__': 10 | main() 11 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_one_language/src/requirements.txt: -------------------------------------------------------------------------------- 1 | pandas==1.2.3 2 | plotly==4.5.6 3 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/kotlin/build.gradle.kts: -------------------------------------------------------------------------------- 1 | import org.jetbrains.kotlin.gradle.tasks.KotlinCompile 2 | 3 | plugins { 4 | kotlin("jvm") version "1.7.10" 5 | application 6 | } 7 | 8 | group = "org.example" 9 | version = "1.0-SNAPSHOT" 10 | 11 | repositories { 12 | mavenCentral() 13 | } 14 | 15 | dependencies { 16 | testImplementation(kotlin("test")) 17 | } 18 | 19 | tasks.test { 20 | useJUnitPlatform() 21 | } 22 | 23 | tasks.withType { 24 | kotlinOptions.jvmTarget = "1.8" 25 | } 26 | 27 | application { 28 | mainClass.set("MainKt") 29 | } 30 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/kotlin/main.kt: -------------------------------------------------------------------------------- 1 | fun factorial(n: Int): Int { 2 | if (n == 0) { 3 | return 1 4 | } 5 | return n * factorial(n - 1) 6 | } 7 | 8 | fun main() { 9 | val n = readlnOrNull()?.toIntOrNull() 10 | n?.let { println(factorial(it)) } ?: println("Not a number.") 11 | } 12 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/kotlin/readme.unk: -------------------------------------------------------------------------------- 1 | This is the README file with an unknown extension. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/python/factorial.py: -------------------------------------------------------------------------------- 1 | def factorial(n: int) -> int: 2 | if n == 0: 3 | return 1 4 | 5 | return n * factorial(n - 1) -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/python/main.py: -------------------------------------------------------------------------------- 1 | from factorial import factorial 2 | 3 | 4 | def main() -> None: 5 | n = int(input()) 6 | print(factorial(n)) 7 | 8 | 9 | if __name__ == '__main__': 10 | main() 11 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/python/requirements.txt: -------------------------------------------------------------------------------- 1 | pandas==1.2.3 2 | plotly==4.5.6 3 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/collect_project_metrics/project_with_unknown_language/src/readme.unk: -------------------------------------------------------------------------------- 1 | This is a project with unknown extensions. 2 | 3 | This README file has an unknown extension. 4 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/empty_file.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/benchmark/metrics_collection/metrics/empty_file.txt -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/empty_requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/benchmark/metrics_collection/metrics/empty_requirements.txt -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/file_with_non_utf8_encoding.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/benchmark/metrics_collection/metrics/file_with_non_utf8_encoding.txt -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/file_with_trailing_newline.txt: -------------------------------------------------------------------------------- 1 | Hello, 2 | world! 3 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/multi_line_file.txt: -------------------------------------------------------------------------------- 1 | H 2 | E 3 | L 4 | L 5 | O 6 | , 7 | W 8 | O 9 | R 10 | L 11 | D 12 | ! -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/one_line_comments.kt: -------------------------------------------------------------------------------- 1 | // This is a factorial 2 | fun factorial(n: Int): Int { 3 | /* 0! = 1 */ 4 | if (n == 0) { 5 | return 1 6 | } 7 | return n * factorial(n - 1) // n! = n * (n - 1)! 8 | } 9 | 10 | fun main() { 11 | // /* o_0 */ 12 | val n = readlnOrNull()?.toIntOrNull() 13 | println(n?.let { factorial(it) } ?: "Not a number.") 14 | } 15 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/one_line_comments.py: -------------------------------------------------------------------------------- 1 | # This is a factorial 2 | def factorial(n: int) -> int: 3 | """Calculate factorial: n!""" 4 | if n == 0: 5 | return 1 # Return 1 because 0! = 1 6 | """ n! = n * (n - 1)! """ 7 | return n * factorial(n - 1) 8 | 9 | 10 | if __name__ == '__main__': 11 | n = int(input()) # convert string to int 12 | '''This is a very strange comment''' 13 | print(factorial(n)) 14 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/one_line_file.txt: -------------------------------------------------------------------------------- 1 | Hello, world! -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/metrics_collection/metrics/requirements.txt: -------------------------------------------------------------------------------- 1 | pandas==1.2.3 2 | numpy==4.5.6 3 | 4 | # Others 5 | plotly==7.8.9 6 | invalid=-0.5 7 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_python/project_A/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | number_of_lines: 2 | python: 42 3 | total: 42 4 | number_of_files: 5 | python: 10 6 | total: 10 7 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_python/project_A/some_file.txt: -------------------------------------------------------------------------------- 1 | Some text 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_python/project_B/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | number_of_dependencies: 2 | python: 3 3 | total: 3 4 | file_size: 5 | python: 93 6 | total: 93 7 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_python/project_B/some_file.txt: -------------------------------------------------------------------------------- 1 | Some text 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_several_languages/project_A/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | number_of_lines: 2 | python: 42 3 | kotlin: 24 4 | total: 66 5 | number_of_files: 6 | python: 10 7 | total: 10 8 | file_size: 9 | kotlin: 24 10 | total: 24 11 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_several_languages/project_A/some_file.txt: -------------------------------------------------------------------------------- 1 | Some text 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_several_languages/project_B/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | number_of_dependencies: 2 | kotlin: 10 3 | python: 3 4 | total: 13 5 | file_size: 6 | python: 93 7 | total: 93 8 | number_of_files: 9 | kotlin: 12 10 | total: 12 11 | 12 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_with_several_languages/project_B/some_file.txt: -------------------------------------------------------------------------------- 1 | Some text 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_without_metrics/project_A/some_file.txt: -------------------------------------------------------------------------------- 1 | Some text 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/datasets/dataset_without_metrics/project_B/some_file.txt: -------------------------------------------------------------------------------- 1 | Some text 2 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/projects/project_with_several_languages/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | number_of_lines: 2 | python: 42 3 | kotlin: 20 4 | total: 62 5 | number_of_files: 6 | python: 10 7 | kotlin: 53 8 | total: 63 9 | file_size: 10 | python: 24 11 | kotlin: 74 12 | total: 98 13 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/projects/project_with_single_language/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | number_of_lines: 2 | python: 42 3 | total: 42 4 | number_of_files: 5 | python: 10 6 | total: 10 7 | file_size: 8 | python: 24 9 | total: 24 10 | -------------------------------------------------------------------------------- /scripts/test/resources/benchmark/sampling/stratified_sampling/projects/project_without_metric_file/README.md: -------------------------------------------------------------------------------- 1 | This is a README file. -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_1/main.py: -------------------------------------------------------------------------------- 1 | from project_1 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_1/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 1 3 | total: 1 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_2/main.py: -------------------------------------------------------------------------------- 1 | from project_2 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_2/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 3 3 | total: 3 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_3/main.py: -------------------------------------------------------------------------------- 1 | from project_3 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_3/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 5 3 | total: 5 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_4/main.py: -------------------------------------------------------------------------------- 1 | from project_4 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_4/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 13 3 | total: 13 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_5/main.py: -------------------------------------------------------------------------------- 1 | from project_5 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_5/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 5 3 | total: 5 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_6/main.py: -------------------------------------------------------------------------------- 1 | from project_6 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_6/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 7 3 | total: 7 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_7/main.py: -------------------------------------------------------------------------------- 1 | from project_7 import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_7/project_metrics.yaml: -------------------------------------------------------------------------------- 1 | file_size: 2 | python: 8 3 | total: 8 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/common_dataset/project_without_metric_file/main.py: -------------------------------------------------------------------------------- 1 | from project_without_metric_file import some_package 2 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/dummy_config.yaml: -------------------------------------------------------------------------------- 1 | batcher_config: 2 | name: dummy_batcher 3 | batch_size: 1 4 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/empty_project/sample_project/empty_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/empty_project/sample_project/empty_file.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_only_builtins/sample_project/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_only_builtins/sample_project/src/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_only_builtins/sample_project/src/some_file.py: -------------------------------------------------------------------------------- 1 | if __name__ == '__main__': 2 | start = int(input('Start: ')) 3 | stop = int(input('Stop: ')) 4 | step = int(input('Step: ')) 5 | print(sum(list(range(start, stop + 1, step)))) 6 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_with_stdlib_and_thirdparty_libs/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_with_stdlib_and_thirdparty_libs/src/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_with_stdlib_and_thirdparty_libs/src/simple_visual_calculator.py: -------------------------------------------------------------------------------- 1 | from math import cos, sin 2 | 3 | import streamlit as st 4 | 5 | from utils.option import Option 6 | 7 | if __name__ == '__main__': 8 | st.header('Simple calculator') 9 | 10 | option = Option(st.selectbox('Command:', options=Option.values())) 11 | 12 | number = st.number_input('Number:') 13 | 14 | if option == Option.SIN: 15 | st.write(f'sin({number}) = {sin(number)}') 16 | elif option == Option.COS: 17 | st.write(f'cos({number}) = {cos(number)}') 18 | elif option == Option.ABS: 19 | st.write(f'abs({number}) = {abs(number)}') 20 | else: 21 | st.error(f'Unknown option: {option}.') 22 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_with_stdlib_and_thirdparty_libs/src/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_with_stdlib_and_thirdparty_libs/src/utils/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/call_expressions_dataset/project_with_stdlib_and_thirdparty_libs/src/utils/option.py: -------------------------------------------------------------------------------- 1 | from enum import Enum, unique 2 | from typing import List 3 | 4 | 5 | @unique 6 | class Option(Enum): 7 | SIN = 'sin' 8 | COS = 'cos' 9 | ABS = 'abs' 10 | 11 | @classmethod 12 | def values(cls) -> List[str]: 13 | return [option.value for option in cls] 14 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/common/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/common/common.py: -------------------------------------------------------------------------------- 1 | def common_function(): 2 | print('I am a common function') 3 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task1/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task1/main.py: -------------------------------------------------------------------------------- 1 | from math import sin, cos, pow 2 | 3 | from src.common.common import common_function 4 | 5 | 6 | def quick_math() -> float: 7 | common_function() 8 | return pow(sin(1), 2) + pow(cos(1), 2) 9 | 10 | 11 | if __name__ == '__main__': 12 | print(quick_math()) 13 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task2/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task2/main.py: -------------------------------------------------------------------------------- 1 | import itertools 2 | 3 | import plotly.express as px 4 | 5 | from src.tasks.task1.main import quick_math 6 | 7 | 8 | def show_plot(): 9 | qm = quick_math() 10 | fig = px.line(x=range(0, 10), y=list(itertools.repeat(qm, 10))) 11 | fig.show() 12 | 13 | 14 | if __name__ == '__main__': 15 | show_plot() 16 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task3/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_imports/sample_project/src/tasks/task3/main.py: -------------------------------------------------------------------------------- 1 | from ...common.common import common_function 2 | from .non_existent_package import SomeClass 3 | 4 | if __name__ == '__main__': 5 | common_function() 6 | some_instance = SomeClass() 7 | print(some_instance) 8 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_non_root_packages/sample_project/src/first_package/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_non_root_packages/sample_project/src/first_package/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_non_root_packages/sample_project/src/first_package/main.py: -------------------------------------------------------------------------------- 1 | from math import sin, cos 2 | 3 | 4 | def some_function(x: float) -> float: 5 | return sin(x) + cos(x) 6 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_non_root_packages/sample_project/src/second_package/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_non_root_packages/sample_project/src/second_package/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_with_non_root_packages/sample_project/src/second_package/main.py: -------------------------------------------------------------------------------- 1 | from first_package.main import some_function 2 | 3 | 4 | def another_function(): 5 | for x in range(0, 10): 6 | if some_function(x): 7 | print('True!') 8 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task1/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task1/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task1/main.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, World!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task2/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task2/main.py: -------------------------------------------------------------------------------- 1 | def factorial(number: int) -> int: 2 | if number == 0 or number == 1: 3 | return 1 4 | 5 | return number * factorial(number - 1) 6 | 7 | 8 | def fibonacci(number: int) -> int: 9 | if number == 0 or number == 1: 10 | return number 11 | 12 | return fibonacci(number - 1) + fibonacci(number - 2) 13 | 14 | 15 | if __name__ == '__main__': 16 | print(factorial(10)) 17 | print(fibonacci(10)) 18 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task3/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_dataset/project_without_imports/sample_project/src/tasks/task3/main.py: -------------------------------------------------------------------------------- 1 | def is_palindrome(line: str) -> bool: 2 | return line == line[::-1] 3 | 4 | 5 | if __name__ == '__main__': 6 | print(is_palindrome('tenet')) 7 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/batch_processing/runners/python/imports_output.csv: -------------------------------------------------------------------------------- 1 | project_name,import 2 | project_with_imports,itertools 3 | project_with_imports,plotly.express 4 | project_with_imports,math.sin 5 | project_with_imports,math.cos 6 | project_with_imports,math.pow 7 | project_with_non_root_packages,math.sin 8 | project_with_non_root_packages,math.cos 9 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/python_version/setup_files/empty_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/plugin_runner/python_version/setup_files/empty_file.py -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/python_version/setup_files/python_2_classifiers_1.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name='Some name', 5 | version='0.0.1', 6 | description='It is a setup example.', 7 | url='https://pypi.org/project/setuptools/', 8 | author='A very cool person', 9 | author_email='verycool@person.com', 10 | license='MIT', 11 | packages=['setup_example'], 12 | classifiers=[ 13 | 'License :: OSI Approved :: MIT License', 14 | 'Programming Language :: Python :: 2', 15 | 'Programming Language :: Python :: 2.5', 16 | 'Programming Language :: Python :: 2.6', 17 | 'Programming Language :: Python :: 2.7', 18 | 'Operating System :: OS Independent', 19 | ], 20 | ) 21 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/python_version/setup_files/python_2_only_classifier_1.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name='Some name', 5 | version='0.0.1', 6 | description='It is a setup example.', 7 | url='https://pypi.org/project/setuptools/', 8 | author='A very cool person', 9 | author_email='verycool@person.com', 10 | license='MIT', 11 | packages=['setup_example'], 12 | classifiers=[ 13 | 'License :: OSI Approved :: MIT License', 14 | 'Programming Language :: Python :: 2 :: Only', 15 | 'Operating System :: OS Independent', 16 | ], 17 | ) 18 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/python_version/setup_files/python_3_classifiers_1.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name='Some name', 5 | version='0.0.1', 6 | description='It is a setup example.', 7 | url='https://pypi.org/project/setuptools/', 8 | author='A very cool person', 9 | author_email='verycool@person.com', 10 | license='MIT', 11 | packages=['setup_example'], 12 | classifiers=[ 13 | 'License :: OSI Approved :: MIT License', 14 | 'Programming Language :: Python :: 3', 15 | 'Programming Language :: Python :: 3.7', 16 | 'Programming Language :: Python :: 3.8', 17 | 'Programming Language :: Python :: 3.9', 18 | 'Operating System :: OS Independent', 19 | ], 20 | ) 21 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/python_version/setup_files/python_3_only_classifier_1.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name='Some name', 5 | version='0.0.1', 6 | description='It is a setup example.', 7 | url='https://pypi.org/project/setuptools/', 8 | author='A very cool person', 9 | author_email='verycool@person.com', 10 | license='MIT', 11 | packages=['setup_example'], 12 | classifiers=[ 13 | 'License :: OSI Approved :: MIT License', 14 | 'Programming Language :: Python :: 3 :: Only', 15 | 'Operating System :: OS Independent', 16 | ], 17 | ) 18 | -------------------------------------------------------------------------------- /scripts/test/resources/plugin_runner/python_version/setup_files/without_python_classifiers.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | 3 | setup( 4 | name='Some name', 5 | version='0.0.1', 6 | description='It is a setup example.', 7 | url='https://pypi.org/project/setuptools/', 8 | author='A very cool person', 9 | author_email='verycool@person.com', 10 | license='MIT', 11 | packages=['setup_example'], 12 | classifiers=[ 13 | 'License :: OSI Approved :: MIT License', 14 | 'Operating System :: OS Independent', 15 | ], 16 | ) 17 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_empty_requirements_file/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_empty_requirements_file/requirements.txt -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_empty_requirements_file/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_empty_requirements_file/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_incorrect_requirement_file/requirements.txt: -------------------------------------------------------------------------------- 1 | This is an invalid requirements file. -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_incorrect_requirement_file/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_incorrect_requirement_file/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/requirements.txt: -------------------------------------------------------------------------------- 1 | -r ./requirements/main.txt 2 | -r ./requirements/test.txt 3 | -i https://pypi.python.org/simple/ 4 | -e git+git@github.com:user/repo 5 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/requirements/main.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | pandas==1.2.3 3 | sphinxcontrib.napoleon==0.0.1 4 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/requirements/test.txt: -------------------------------------------------------------------------------- 1 | py_test==1.2.3 2 | py.mock==4.5.6 3 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/src/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/src/__init__.py -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/src/some_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_requirements_files/src/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/folder_with_requirements_file/requirements-2.txt: -------------------------------------------------------------------------------- 1 | numpy==3.2.1 2 | pandas==6.5.4 3 | plotly 4 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/folder_with_requirements_file/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/folder_with_requirements_file/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/requirements-1.txt: -------------------------------------------------------------------------------- 1 | numpy==1.2.3 2 | pandas==4.5.6 3 | plotly 4 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/some_folder_without_requirements/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/some_folder_without_requirements/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_nested_structure/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_several_requirements_files/1-requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.2.3 2 | pandas==4.5.6 3 | plotly 4 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_several_requirements_files/2-requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==3.2.1 2 | pandas==6.5.4 3 | plotly 4 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_several_requirements_files/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_with_several_requirements_files/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_without_requirements_files/some_other_file.py: -------------------------------------------------------------------------------- 1 | def hello_world(): 2 | print('Hello, world!') 3 | 4 | 5 | if __name__ == '__main__': 6 | hello_world() 7 | -------------------------------------------------------------------------------- /scripts/test/resources/utils/python/requirements_utils/projects_with_requirements_files/project_without_requirements_files/some_other_file.txt: -------------------------------------------------------------------------------- 1 | This is not a requirements file. 2 | -------------------------------------------------------------------------------- /scripts/test/utils/__init__.py: -------------------------------------------------------------------------------- 1 | from test import TEST_DATA_FOLDER 2 | 3 | UTILS_TEST_DATA_FOLDER = TEST_DATA_FOLDER / 'utils' 4 | -------------------------------------------------------------------------------- /scripts/test/utils/python/__init__.py: -------------------------------------------------------------------------------- 1 | from test.utils import UTILS_TEST_DATA_FOLDER 2 | 3 | CURRENT_TEST_DATA_FOLDER = UTILS_TEST_DATA_FOLDER / 'python' 4 | 5 | PYPI_UTILS_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'pypi_utils' 6 | REQUIREMENTS_UTILS_TEST_DATA_FOLDER = CURRENT_TEST_DATA_FOLDER / 'requirements_utils' 7 | -------------------------------------------------------------------------------- /scripts/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/utils/__init__.py -------------------------------------------------------------------------------- /scripts/utils/config_utils.py: -------------------------------------------------------------------------------- 1 | from typing import Dict 2 | 3 | from cerberus import Validator 4 | from cerberus.errors import ErrorList 5 | 6 | 7 | def check_config(config: Dict, schema: Dict) -> ErrorList: 8 | v = Validator(schema) 9 | v.validate(config) 10 | return v.errors 11 | -------------------------------------------------------------------------------- /scripts/utils/python/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JetBrains-Research/Lupa/976c7635565afe8db9ddcf574742b2a6116b8bfe/scripts/utils/python/__init__.py -------------------------------------------------------------------------------- /scripts/visualization/README.md: -------------------------------------------------------------------------------- 1 | ### Visualization 2 | 3 | This module contains scripts for the data visualization. -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | @file:Suppress("trailing-comma-on-call-site", "trailing-comma-on-declaration-site") 2 | 3 | rootProject.name = "lupa" 4 | 5 | include( 6 | "lupa-core", 7 | "lupa-test", 8 | "lupa-runner", 9 | 10 | "kotlin-analysers", 11 | "python-analysers" 12 | ) 13 | 14 | pluginManagement { 15 | repositories { 16 | gradlePluginPortal() 17 | mavenCentral() 18 | maven(url = "https://nexus.gluonhq.com/nexus/content/repositories/releases") 19 | } 20 | } 21 | --------------------------------------------------------------------------------