diff --git a/its/plugin/pom.xml b/its/plugin/pom.xml index 5a7c0908b..a29697e62 100644 --- a/its/plugin/pom.xml +++ b/its/plugin/pom.xml @@ -10,7 +10,7 @@ it-python-plugin - + pom Python :: ITs :: Plugin 2012 @@ -20,7 +20,6 @@ -server - org.sonarsource.orchestrator diff --git a/its/plugin/profiles/profile-python-custom-rules.xml b/its/plugin/profiles/profile-python-custom-rules.xml new file mode 100644 index 000000000..4e3557045 --- /dev/null +++ b/its/plugin/profiles/profile-python-custom-rules.xml @@ -0,0 +1,17 @@ + + + python-custom-rules-profile + py + + + python-custom-rules + visitor + MAJOR + + + python-custom-rules + subscription + MAJOR + + + diff --git a/its/plugin/projects/custom_rules/src/simple.py b/its/plugin/projects/custom_rules/src/simple.py new file mode 100644 index 000000000..88f72dda5 --- /dev/null +++ b/its/plugin/projects/custom_rules/src/simple.py @@ -0,0 +1,10 @@ +# simple check for custom rules + +class A: + def fun(): # NOK - function definition + pass + + for foo in bar: # NOK - for statement + pass + else: + pass diff --git a/its/plugin/python-custom-rules-plugin/pom.xml b/its/plugin/python-custom-rules-plugin/pom.xml new file mode 100644 index 000000000..3a1f2cc0d --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/pom.xml @@ -0,0 +1,71 @@ + + + 4.0.0 + + + org.sonarsource.python + it-python-plugin + 2.0-SNAPSHOT + + + python-custom-rules-plugin + sonar-plugin + + Python Custom Rules Plugin + Python Custom Rules + + + + org.sonarsource.sonarqube + sonar-plugin-api + + + org.sonarsource.python + sonar-python-plugin + sonar-plugin + ${project.version} + provided + + + org.sonarsource.python + python-checks-testkit + ${project.version} + test + + + junit + junit + test + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + false + + + + org.sonarsource.sonar-packaging-maven-plugin + sonar-packaging-maven-plugin + true + + org.sonar.samples.python.CustomPythonRulesPlugin + + + + + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + diff --git a/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonRuleRepository.java b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonRuleRepository.java new file mode 100644 index 000000000..6e6cfd387 --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonRuleRepository.java @@ -0,0 +1,53 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.sonar.api.server.rule.RulesDefinition; +import org.sonar.api.server.rule.RulesDefinitionAnnotationLoader; +import org.sonar.plugins.python.api.PythonCustomRuleRepository; + +public class CustomPythonRuleRepository implements RulesDefinition, PythonCustomRuleRepository { + + @Override + public void define(Context context) { + NewRepository repository = context.createRepository(repositoryKey(), "py").setName("My custom repo"); + new RulesDefinitionAnnotationLoader().load(repository, checkClasses().toArray(new Class[] {})); + Map remediationCosts = new HashMap<>(); + remediationCosts.put("visitor", "5min"); + remediationCosts.put("subscription", "10min"); + repository.rules().forEach(rule -> rule.setDebtRemediationFunction( + rule.debtRemediationFunctions().constantPerIssue(remediationCosts.get(rule.key())))); + repository.done(); + } + + @Override + public String repositoryKey() { + return "python-custom-rules"; + } + + @Override + public List checkClasses() { + return Arrays.asList(CustomPythonVisitorCheck.class, CustomPythonSubscriptionCheck.class); + } +} diff --git a/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonRulesPlugin.java b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonRulesPlugin.java new file mode 100644 index 000000000..ba43f23fa --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonRulesPlugin.java @@ -0,0 +1,31 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import org.sonar.api.Plugin; + +public class CustomPythonRulesPlugin implements Plugin { + + @Override + public void define(Context context) { + context.addExtension(CustomPythonRuleRepository.class); + } + +} diff --git a/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonSubscriptionCheck.java b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonSubscriptionCheck.java new file mode 100644 index 000000000..639cc2084 --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonSubscriptionCheck.java @@ -0,0 +1,39 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import org.sonar.check.Priority; +import org.sonar.check.Rule; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.Tree; + +@Rule( + key = "subscription", + priority = Priority.MINOR, + name = "Python subscription visitor check", + description = "desc") +public class CustomPythonSubscriptionCheck extends PythonSubscriptionCheck { + + @Override + public void initialize(Context context) { + context.registerSyntaxNodeConsumer(Tree.Kind.FOR_STMT, ctx -> ctx.addIssue(((ForStatement) ctx.syntaxNode()).forKeyword(), "For statement.")); + } +} diff --git a/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonVisitorCheck.java b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonVisitorCheck.java new file mode 100644 index 000000000..d620c772b --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/CustomPythonVisitorCheck.java @@ -0,0 +1,40 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import org.sonar.check.Priority; +import org.sonar.check.Rule; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.tree.FunctionDef; + +@Rule( + key = "visitor", + priority = Priority.MINOR, + name = "Python visitor check", + description = "desc") +public class CustomPythonVisitorCheck extends PythonCheckTree { + + @Override + public void visitFunctionDef(FunctionDef pyFunctionDefTree) { + addIssue(pyFunctionDefTree.name(), "Function def."); + super.visitFunctionDef(pyFunctionDefTree); + } + +} diff --git a/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/package-info.java b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/package-info.java new file mode 100644 index 000000000..17befc5d7 --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/main/java/org/sonar/samples/python/package-info.java @@ -0,0 +1,24 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonar.samples.python; + +import javax.annotation.ParametersAreNonnullByDefault; + diff --git a/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonRuleRepositoryTest.java b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonRuleRepositoryTest.java new file mode 100644 index 000000000..0c5668759 --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonRuleRepositoryTest.java @@ -0,0 +1,39 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import org.junit.Test; +import org.sonar.api.server.rule.RulesDefinition; + +import static org.assertj.core.api.Assertions.assertThat; + +public class CustomPythonRuleRepositoryTest { + + @Test + public void test_rule_repository() { + CustomPythonRuleRepository customPythonRuleRepository = new CustomPythonRuleRepository(); + RulesDefinition.Context context = new RulesDefinition.Context(); + customPythonRuleRepository.define(context); + assertThat(customPythonRuleRepository.repositoryKey()).isEqualTo("python-custom-rules"); + assertThat(context.repositories()).hasSize(1).extracting("key").containsExactly(customPythonRuleRepository.repositoryKey()); + assertThat(context.repositories().get(0).rules()).hasSize(2); + assertThat(customPythonRuleRepository.checkClasses()).hasSize(2); + } +} diff --git a/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonRulesPluginTest.java b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonRulesPluginTest.java new file mode 100644 index 000000000..052863fdd --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonRulesPluginTest.java @@ -0,0 +1,41 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import org.junit.Test; +import org.sonar.api.Plugin; +import org.sonar.api.SonarEdition; +import org.sonar.api.SonarQubeSide; +import org.sonar.api.SonarRuntime; +import org.sonar.api.internal.PluginContextImpl; +import org.sonar.api.internal.SonarRuntimeImpl; +import org.sonar.api.utils.Version; + +import static org.assertj.core.api.Assertions.assertThat; + +public class CustomPythonRulesPluginTest { + @Test + public void test() { + SonarRuntime sonarRuntime = SonarRuntimeImpl.forSonarQube(Version.create(7, 9), SonarQubeSide.SCANNER, SonarEdition.DEVELOPER); + Plugin.Context context = new PluginContextImpl.Builder().setSonarRuntime(sonarRuntime).build(); + new CustomPythonRulesPlugin().define(context); + assertThat(context.getExtensions()).hasSize(1); + } +} diff --git a/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonSubscriptionCheckTest.java b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonSubscriptionCheckTest.java new file mode 100644 index 000000000..145e33166 --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonSubscriptionCheckTest.java @@ -0,0 +1,30 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + +import org.junit.Test; +import org.sonar.python.checks.utils.PythonCheckVerifier; + +public class CustomPythonSubscriptionCheckTest { + @Test + public void test() { + PythonCheckVerifier.verify("src/test/resources/checks/customPythonSubscriptionCheck.py", new CustomPythonSubscriptionCheck()); + } +} diff --git a/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonVisitorCheckTest.java b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonVisitorCheckTest.java new file mode 100644 index 000000000..6b6fba37e --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/test/java/org/sonar/samples/python/CustomPythonVisitorCheckTest.java @@ -0,0 +1,31 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.samples.python; + + +import org.junit.Test; +import org.sonar.python.checks.utils.PythonCheckVerifier; + +public class CustomPythonVisitorCheckTest { + @Test + public void test() { + PythonCheckVerifier.verify("src/test/resources/checks/customPythonVisitorCheck.py", new CustomPythonVisitorCheck()); + } +} diff --git a/its/plugin/python-custom-rules-plugin/src/test/resources/checks/customPythonSubscriptionCheck.py b/its/plugin/python-custom-rules-plugin/src/test/resources/checks/customPythonSubscriptionCheck.py new file mode 100644 index 000000000..0dbd62c4f --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/test/resources/checks/customPythonSubscriptionCheck.py @@ -0,0 +1,4 @@ +class A: + for i in foo: # Noncompliant {{For statement.}} +# ^^^ + pass diff --git a/its/plugin/python-custom-rules-plugin/src/test/resources/checks/customPythonVisitorCheck.py b/its/plugin/python-custom-rules-plugin/src/test/resources/checks/customPythonVisitorCheck.py new file mode 100644 index 000000000..aeda8ea08 --- /dev/null +++ b/its/plugin/python-custom-rules-plugin/src/test/resources/checks/customPythonVisitorCheck.py @@ -0,0 +1,4 @@ +class A: + def fun(): # Noncompliant {{Function def.}} +# ^^^ + pass diff --git a/its/plugin/src/test/java/com/sonar/python/it/plugin/CustomRulesTest.java b/its/plugin/src/test/java/com/sonar/python/it/plugin/CustomRulesTest.java new file mode 100644 index 000000000..52f492bbb --- /dev/null +++ b/its/plugin/src/test/java/com/sonar/python/it/plugin/CustomRulesTest.java @@ -0,0 +1,79 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2012-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package com.sonar.python.it.plugin; + +import com.sonar.orchestrator.Orchestrator; +import com.sonar.orchestrator.build.SonarScanner; +import java.io.File; +import java.util.List; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; +import org.sonarqube.ws.Issues; +import org.sonarqube.ws.client.issues.SearchRequest; + +import static com.sonar.python.it.plugin.Tests.newWsClient; +import static java.util.Collections.singletonList; +import static org.assertj.core.api.Assertions.assertThat; + +public class CustomRulesTest { + + @ClassRule + public static Orchestrator orchestrator = Tests.ORCHESTRATOR; + private static final String PROJECT_KEY = "custom-rules"; + private static final String PROJECT_NAME = "Custom Rules"; + + @BeforeClass + public static void prepare() { + orchestrator.getServer().provisionProject(PROJECT_KEY, PROJECT_NAME); + orchestrator.getServer().associateProjectToQualityProfile(PROJECT_KEY, "py", "python-custom-rules-profile"); + SonarScanner build = SonarScanner.create() + .setProjectDir(new File("projects/custom_rules")) + .setProjectKey(PROJECT_KEY) + .setProjectName(PROJECT_NAME) + .setProjectVersion("1.0") + .setSourceDirs("src"); + orchestrator.executeBuild(build); + } + + @Test + public void base_tree_visitor_check() { + List issues = issues("python-custom-rules:visitor"); + assertSingleIssue(issues, 4, "Function def.", "5min"); + } + + @Test + public void subscription_base_visitor_check() { + List issues = issues("python-custom-rules:subscription"); + assertSingleIssue(issues, 7, "For statement.", "10min"); + } + + private void assertSingleIssue(List issues, int expectedLine, String expectedMessage, String expectedDebt) { + assertThat(issues).hasSize(1); + Issues.Issue issue = issues.get(0); + assertThat(issue.getLine()).isEqualTo(expectedLine); + assertThat(issue.getMessage()).isEqualTo(expectedMessage); + assertThat(issue.getDebt()).isEqualTo(expectedDebt); + } + + private static List issues(String rulekey) { + return newWsClient().issues().search(new SearchRequest().setRules(singletonList(rulekey))).getIssuesList(); + } +} diff --git a/its/plugin/src/test/java/com/sonar/python/it/plugin/Tests.java b/its/plugin/src/test/java/com/sonar/python/it/plugin/Tests.java index b3d8ccddd..94b3c9414 100644 --- a/its/plugin/src/test/java/com/sonar/python/it/plugin/Tests.java +++ b/its/plugin/src/test/java/com/sonar/python/it/plugin/Tests.java @@ -67,6 +67,9 @@ public final class Tests { public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() .setSonarVersion(System.getProperty(SQ_VERSION_PROPERTY, DEFAULT_SQ_VERSION)) .addPlugin(PLUGIN_LOCATION) + // Custom rules plugin + .addPlugin(FileLocation.byWildcardMavenFilename(new File("python-custom-rules-plugin/target"), "python-custom-rules-plugin-*.jar")) + .restoreProfileAtStartup(FileLocation.of("profiles/profile-python-custom-rules.xml")) .restoreProfileAtStartup(FileLocation.of("profiles/no_rule.xml")) .restoreProfileAtStartup(FileLocation.of("profiles/pylint.xml")) .restoreProfileAtStartup(FileLocation.of("profiles/nosonar.xml")) diff --git a/pom.xml b/pom.xml index b59944cb5..8e2af5caa 100644 --- a/pom.xml +++ b/pom.xml @@ -51,6 +51,7 @@ sonar-python-plugin sslr-python-toolkit its + python-checks-testkit diff --git a/python-checks-testkit/pom.xml b/python-checks-testkit/pom.xml new file mode 100644 index 000000000..246605b45 --- /dev/null +++ b/python-checks-testkit/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + python + org.sonarsource.python + 2.0-SNAPSHOT + + + python-checks-testkit + + + ${project.groupId} + python-squid + ${project.version} + + + org.sonarsource.sonarqube + sonar-plugin-api + + + com.google.guava + guava + + + junit + junit + compile + + + org.assertj + assertj-core + compile + + + + + diff --git a/python-checks/src/test/java/org/sonar/python/checks/utils/PythonCheckVerifier.java b/python-checks-testkit/src/main/java/org/sonar/python/checks/utils/PythonCheckVerifier.java similarity index 94% rename from python-checks/src/test/java/org/sonar/python/checks/utils/PythonCheckVerifier.java rename to python-checks-testkit/src/main/java/org/sonar/python/checks/utils/PythonCheckVerifier.java index 7e76b07fc..7e7376260 100644 --- a/python-checks/src/test/java/org/sonar/python/checks/utils/PythonCheckVerifier.java +++ b/python-checks-testkit/src/main/java/org/sonar/python/checks/utils/PythonCheckVerifier.java @@ -28,14 +28,14 @@ import java.util.Iterator; import java.util.List; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonCheck; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.SubscriptionVisitor; import org.sonar.python.TestPythonVisitorRunner; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; @@ -68,7 +68,7 @@ public static void verify(String path, PythonCheck check) { File file = new File(path); PythonVisitorContext pythonVisitorContext = TestPythonVisitorRunner.scanFile(file, verifier); - Iterator actualIssues = getActualIssues(file, check, pythonVisitorContext); + Iterator actualIssues = getActualIssues(check, pythonVisitorContext); List expectedIssues = verifier.expectedIssues; for (TestIssue expected : expectedIssues) { @@ -127,7 +127,7 @@ private static List secondary(PreciseIssue issue) { return Ordering.natural().sortedCopy(result); } - private static Iterator getActualIssues(File file, PythonCheck check, PythonVisitorContext pythonVisitorContext) { + private static Iterator getActualIssues(PythonCheck check, PythonVisitorContext pythonVisitorContext) { List issues = scanFileForIssues(check, pythonVisitorContext); List sortedIssues = Ordering.natural().onResultOf(new IssueToLine()).sortedCopy(issues); return sortedIssues.iterator(); diff --git a/python-checks/src/test/java/org/sonar/python/checks/utils/TestIssue.java b/python-checks-testkit/src/main/java/org/sonar/python/checks/utils/TestIssue.java similarity index 90% rename from python-checks/src/test/java/org/sonar/python/checks/utils/TestIssue.java rename to python-checks-testkit/src/main/java/org/sonar/python/checks/utils/TestIssue.java index 010c2f2a1..e2062acb8 100644 --- a/python-checks/src/test/java/org/sonar/python/checks/utils/TestIssue.java +++ b/python-checks-testkit/src/main/java/org/sonar/python/checks/utils/TestIssue.java @@ -19,7 +19,6 @@ */ package org.sonar.python.checks.utils; -import com.google.common.primitives.Ints; import java.util.List; import javax.annotation.Nullable; @@ -47,12 +46,6 @@ public TestIssue message(String message) { return this; } - public TestIssue columns(int startColumn, int endColumn) { - startColumn(startColumn); - endColumn(endColumn); - return this; - } - public TestIssue startColumn(int startColumn) { this.startColumn = startColumn; return this; @@ -73,10 +66,6 @@ public TestIssue endLine(int endLine) { return this; } - public TestIssue secondary(int... lines) { - return secondary(Ints.asList(lines)); - } - public TestIssue secondary(List secondaryLines) { this.secondaryLines = secondaryLines; return this; diff --git a/python-checks-testkit/src/test/java/org/sonar/python/checks/utils/PythonCheckVerifierTest.java b/python-checks-testkit/src/test/java/org/sonar/python/checks/utils/PythonCheckVerifierTest.java new file mode 100644 index 000000000..59be6d91b --- /dev/null +++ b/python-checks-testkit/src/test/java/org/sonar/python/checks/utils/PythonCheckVerifierTest.java @@ -0,0 +1,121 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2011-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.python.checks.utils; + + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; + +@RunWith(Parameterized.class) +public class PythonCheckVerifierTest { + + private static final String BASE_DIR = "src/test/resources/"; + private final String file; + private final String expectedMessage; + private static final FuncdefVisitor baseTreeCheck = new FuncdefVisitor(); + private static final FunctiondefSubscription subscriptionCheck = new FunctiondefSubscription(); + + private static class FuncdefVisitor extends PythonCheckTree { + @Override + public void visitFunctionDef(FunctionDef pyFunctionDefTree) { + addIssue(pyFunctionDefTree.name(), "the message.").secondary(pyFunctionDefTree.colon(), "second").withCost(42); + super.visitFunctionDef(pyFunctionDefTree); + } + } + + private static class FunctiondefSubscription extends PythonSubscriptionCheck { + @Override + public void initialize(Context context) { + context.registerSyntaxNodeConsumer(Tree.Kind.FUNCDEF, ctx -> { + FunctionDef pyFunctionDefTree = (FunctionDef) ctx.syntaxNode(); + ctx.addIssue(pyFunctionDefTree.name(), "the message.").secondary(pyFunctionDefTree.colon(), "second").withCost(42); + }); + } + } + + @Parameters(name = "{0}") + public static Object[][] data() { + return new Object[][]{ + {"compliant", ""}, + {"compliant_notation", ""}, + {"compliant_notation_with_minus", ""}, + {"invalid_param", "Invalid param at line 1: someInvalidParam"}, + {"invalid_param_separator", "Invalid param at line 1: someInvalidParam!!!!!42"}, + {"missing_assertion", "Invalid test file: a precise location is provided at line 2 but no issue is asserted at line 1"}, + {"missing_assertion_with_issue", "Invalid test file: a precise location is provided at line 4 but no issue is asserted at line 3"}, + {"missing_issue", "Missing issue at line 1"}, + {"missing_issue_multiple", "Missing issue at line 1"}, + {"unexpected_issue", "Unexpected issue at line 1: \"the message.\""}, + {"unexpected_issue_multiple", "Unexpected issue at line 1: \"the message.\""}, + {"wrong_cost", "[Bad effortToFix at line 1] expected:<[23]> but was:<[42]>"}, + {"wrong_precise_comment", "Line 2: comments asserting a precise location should start at column 1"}, + }; + } + + public PythonCheckVerifierTest(String file, String expectedMessage) { + this.file = BASE_DIR+file+".py"; + this.expectedMessage = expectedMessage; + } + + @Test + public void basetree_test() { + if(expectedMessage.isEmpty()) { + assertNoFailureOfVerifier(file, baseTreeCheck); + } else { + assertFailOfVerifier(file, expectedMessage, baseTreeCheck); + } + } + + @Test + public void subscription_test() { + if(expectedMessage.isEmpty()) { + assertNoFailureOfVerifier(file, subscriptionCheck); + } else { + assertFailOfVerifier(file, expectedMessage, subscriptionCheck); + } + } + + private void assertNoFailureOfVerifier(String filePath, PythonCheck check) { + try { + PythonCheckVerifier.verify(filePath, check); + } catch (AssertionError e) { + fail("should not fail", e); + } + } + + private static void assertFailOfVerifier(String filepath, String expectedFailureMessage, PythonCheck check) { + try { + PythonCheckVerifier.verify(filepath, check); + fail("should have failed"); + } catch (AssertionError | IllegalStateException e) { + assertThat(e.getMessage()).isEqualTo(expectedFailureMessage); + } + } +} diff --git a/python-checks-testkit/src/test/resources/compliant.py b/python-checks-testkit/src/test/resources/compliant.py new file mode 100644 index 000000000..a27af870c --- /dev/null +++ b/python-checks-testkit/src/test/resources/compliant.py @@ -0,0 +1,3 @@ +def fun(): # Noncompliant [[effortToFix=42;secondary=+0;el=1]] {{the message.}} +# ^^^ + pass diff --git a/python-checks-testkit/src/test/resources/compliant_notation.py b/python-checks-testkit/src/test/resources/compliant_notation.py new file mode 100644 index 000000000..39996b975 --- /dev/null +++ b/python-checks-testkit/src/test/resources/compliant_notation.py @@ -0,0 +1,4 @@ +# Noncompliant@+1 [[secondary=2]] {{the message.}} +def fun(): +# ^^^ + pass diff --git a/python-checks-testkit/src/test/resources/compliant_notation_with_minus.py b/python-checks-testkit/src/test/resources/compliant_notation_with_minus.py new file mode 100644 index 000000000..b634d6e91 --- /dev/null +++ b/python-checks-testkit/src/test/resources/compliant_notation_with_minus.py @@ -0,0 +1,3 @@ +def fun(): +# Noncompliant@-1 [[sc=5;ec=8;secondary=-0]] {{the message.}} + pass diff --git a/python-checks-testkit/src/test/resources/invalid_param.py b/python-checks-testkit/src/test/resources/invalid_param.py new file mode 100644 index 000000000..98c8181b1 --- /dev/null +++ b/python-checks-testkit/src/test/resources/invalid_param.py @@ -0,0 +1,3 @@ +def fun(): # Noncompliant [[someInvalidParam=42;secondary=+0]] {{the message.}} +# ^^^ + pass diff --git a/python-checks-testkit/src/test/resources/invalid_param_separator.py b/python-checks-testkit/src/test/resources/invalid_param_separator.py new file mode 100644 index 000000000..18189e8bb --- /dev/null +++ b/python-checks-testkit/src/test/resources/invalid_param_separator.py @@ -0,0 +1,3 @@ +def fun(): # Noncompliant [[someInvalidParam!!!!!42]] {{the message.}} +# ^^^ + pass diff --git a/python-checks-testkit/src/test/resources/missing_assertion.py b/python-checks-testkit/src/test/resources/missing_assertion.py new file mode 100644 index 000000000..ffd8f4c36 --- /dev/null +++ b/python-checks-testkit/src/test/resources/missing_assertion.py @@ -0,0 +1,3 @@ +class a: +# ^ + pass diff --git a/python-checks-testkit/src/test/resources/missing_assertion_with_issue.py b/python-checks-testkit/src/test/resources/missing_assertion_with_issue.py new file mode 100644 index 000000000..d538c2c40 --- /dev/null +++ b/python-checks-testkit/src/test/resources/missing_assertion_with_issue.py @@ -0,0 +1,5 @@ +def fun(): # Noncompliant + pass +class a: +# ^ + pass diff --git a/python-checks-testkit/src/test/resources/missing_issue.py b/python-checks-testkit/src/test/resources/missing_issue.py new file mode 100644 index 000000000..7ef27d847 --- /dev/null +++ b/python-checks-testkit/src/test/resources/missing_issue.py @@ -0,0 +1,2 @@ +class a: # Noncompliant + pass diff --git a/python-checks-testkit/src/test/resources/missing_issue_multiple.py b/python-checks-testkit/src/test/resources/missing_issue_multiple.py new file mode 100644 index 000000000..6a6b515f6 --- /dev/null +++ b/python-checks-testkit/src/test/resources/missing_issue_multiple.py @@ -0,0 +1,4 @@ +class a: # Noncompliant + pass +def fun(): # Noncompliant + pass diff --git a/python-checks-testkit/src/test/resources/unexpected_issue.py b/python-checks-testkit/src/test/resources/unexpected_issue.py new file mode 100644 index 000000000..7dd785dd5 --- /dev/null +++ b/python-checks-testkit/src/test/resources/unexpected_issue.py @@ -0,0 +1,2 @@ +def fun(): + pass diff --git a/python-checks-testkit/src/test/resources/unexpected_issue_multiple.py b/python-checks-testkit/src/test/resources/unexpected_issue_multiple.py new file mode 100644 index 000000000..a4d1560dd --- /dev/null +++ b/python-checks-testkit/src/test/resources/unexpected_issue_multiple.py @@ -0,0 +1,4 @@ +def fun(): + pass +def fun2(): # Noncompliant + pass diff --git a/python-checks-testkit/src/test/resources/wrong_cost.py b/python-checks-testkit/src/test/resources/wrong_cost.py new file mode 100644 index 000000000..46ee14f70 --- /dev/null +++ b/python-checks-testkit/src/test/resources/wrong_cost.py @@ -0,0 +1,3 @@ +def fun(): # Noncompliant [[effortToFix=23;secondary=+0]] {{the message.}} +# ^^^ + pass diff --git a/python-checks-testkit/src/test/resources/wrong_precise_comment.py b/python-checks-testkit/src/test/resources/wrong_precise_comment.py new file mode 100644 index 000000000..701a121a6 --- /dev/null +++ b/python-checks-testkit/src/test/resources/wrong_precise_comment.py @@ -0,0 +1,3 @@ +def fun(): # Noncompliant [[secondary=+0]] {{the message.}} + # ^^^ + pass diff --git a/python-checks/pom.xml b/python-checks/pom.xml index 411ba5ebc..67e6e8b51 100644 --- a/python-checks/pom.xml +++ b/python-checks/pom.xml @@ -36,6 +36,12 @@ org.assertj assertj-core + + org.sonarsource.python + python-checks-testkit + ${project.version} + test + ch.qos.logback logback-classic diff --git a/python-checks/src/main/java/org/sonar/python/checks/AbstractCallExpressionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/AbstractCallExpressionCheck.java index 608955c27..b787f1379 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/AbstractCallExpressionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/AbstractCallExpressionCheck.java @@ -23,10 +23,10 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; public abstract class AbstractCallExpressionCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/AbstractFunctionNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/AbstractFunctionNameCheck.java index 372a2b4a0..62421a4e3 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/AbstractFunctionNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/AbstractFunctionNameCheck.java @@ -20,9 +20,9 @@ package org.sonar.python.checks; import org.sonar.check.RuleProperty; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; public abstract class AbstractFunctionNameCheck extends AbstractNameCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/AbstractNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/AbstractNameCheck.java index 4a08c302d..8d14aa3c1 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/AbstractNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/AbstractNameCheck.java @@ -20,7 +20,7 @@ package org.sonar.python.checks; import java.util.regex.Pattern; -import org.sonar.python.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; public abstract class AbstractNameCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/AfterJumpStatementCheck.java b/python-checks/src/main/java/org/sonar/python/checks/AfterJumpStatementCheck.java index 8e065254d..f6b5f572d 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/AfterJumpStatementCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/AfterJumpStatementCheck.java @@ -23,15 +23,15 @@ import org.sonar.check.Rule; import org.sonar.plugins.python.api.cfg.CfgBlock; import org.sonar.plugins.python.api.cfg.ControlFlowGraph; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.TryStatement; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.tree.TreeUtils; @Rule(key = "S1763") diff --git a/python-checks/src/main/java/org/sonar/python/checks/BackslashInStringCheck.java b/python-checks/src/main/java/org/sonar/python/checks/BackslashInStringCheck.java index b5146be0e..75dd3bbe2 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/BackslashInStringCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/BackslashInStringCheck.java @@ -20,9 +20,9 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S1717") public class BackslashInStringCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/BackticksUsageCheck.java b/python-checks/src/main/java/org/sonar/python/checks/BackticksUsageCheck.java index 35b8d22f0..e95ffcb89 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/BackticksUsageCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/BackticksUsageCheck.java @@ -20,8 +20,8 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = BackticksUsageCheck.CHECK_KEY) public class BackticksUsageCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/BreakContinueOutsideLoopCheck.java b/python-checks/src/main/java/org/sonar/python/checks/BreakContinueOutsideLoopCheck.java index deca3e1c2..8316ee8f2 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/BreakContinueOutsideLoopCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/BreakContinueOutsideLoopCheck.java @@ -21,10 +21,10 @@ import java.util.function.Consumer; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = BreakContinueOutsideLoopCheck.CHECK_KEY) public class BreakContinueOutsideLoopCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/CheckUtils.java b/python-checks/src/main/java/org/sonar/python/checks/CheckUtils.java index 29ad13f1f..1ff1275e9 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/CheckUtils.java +++ b/python-checks/src/main/java/org/sonar/python/checks/CheckUtils.java @@ -22,10 +22,10 @@ import java.util.List; import javax.annotation.Nullable; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Tree; public class CheckUtils { diff --git a/python-checks/src/main/java/org/sonar/python/checks/ClassComplexityCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ClassComplexityCheck.java index 6682d7fb0..df411ddc9 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ClassComplexityCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ClassComplexityCheck.java @@ -21,9 +21,9 @@ import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.metrics.ComplexityVisitor; @Rule(key = "ClassComplexity") diff --git a/python-checks/src/main/java/org/sonar/python/checks/ClassNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ClassNameCheck.java index e97543957..ca527cc9f 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ClassNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ClassNameCheck.java @@ -21,9 +21,9 @@ import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = ClassNameCheck.CHECK_KEY) public class ClassNameCheck extends AbstractNameCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/CognitiveComplexityFunctionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/CognitiveComplexityFunctionCheck.java index 5c99a2cb2..cc1f397c3 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/CognitiveComplexityFunctionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/CognitiveComplexityFunctionCheck.java @@ -24,9 +24,9 @@ import org.sonar.check.Rule; import org.sonar.check.RuleProperty; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.metrics.CognitiveComplexityVisitor; @Rule(key = CognitiveComplexityFunctionCheck.CHECK_KEY) diff --git a/python-checks/src/main/java/org/sonar/python/checks/CollapsibleIfStatementsCheck.java b/python-checks/src/main/java/org/sonar/python/checks/CollapsibleIfStatementsCheck.java index 7f104a3a9..ae21372fa 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/CollapsibleIfStatementsCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/CollapsibleIfStatementsCheck.java @@ -23,11 +23,11 @@ import java.util.List; import java.util.Set; import org.sonar.check.Rule; -import org.sonar.python.PythonCheckTree; -import org.sonar.python.PythonVisitorContext; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = CollapsibleIfStatementsCheck.CHECK_KEY) public class CollapsibleIfStatementsCheck extends PythonCheckTree { diff --git a/python-checks/src/main/java/org/sonar/python/checks/CommentRegularExpressionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/CommentRegularExpressionCheck.java index 979e76463..7ccd8e20e 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/CommentRegularExpressionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/CommentRegularExpressionCheck.java @@ -22,10 +22,10 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; @Rule(key = "CommentRegularExpression") public class CommentRegularExpressionCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/CommentedCodeCheck.java b/python-checks/src/main/java/org/sonar/python/checks/CommentedCodeCheck.java index d458b1b05..9427f4ef4 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/CommentedCodeCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/CommentedCodeCheck.java @@ -28,15 +28,15 @@ import javax.annotation.Nullable; import org.sonar.check.Rule; import org.sonar.python.PythonConfiguration; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; import org.sonar.python.parser.PythonParser; import org.sonar.python.tree.PythonTreeMaker; diff --git a/python-checks/src/main/java/org/sonar/python/checks/DuplicatedMethodFieldNamesCheck.java b/python-checks/src/main/java/org/sonar/python/checks/DuplicatedMethodFieldNamesCheck.java index ed78b394e..f2ed29073 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/DuplicatedMethodFieldNamesCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/DuplicatedMethodFieldNamesCheck.java @@ -28,13 +28,13 @@ import java.util.Set; import java.util.stream.Collectors; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; @Rule(key = "S1845") public class DuplicatedMethodFieldNamesCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/EmptyNestedBlockCheck.java b/python-checks/src/main/java/org/sonar/python/checks/EmptyNestedBlockCheck.java index 485217d84..c1337fad2 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/EmptyNestedBlockCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/EmptyNestedBlockCheck.java @@ -21,12 +21,12 @@ import java.util.List; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.tree.TreeUtils; @Rule(key = EmptyNestedBlockCheck.CHECK_KEY) diff --git a/python-checks/src/main/java/org/sonar/python/checks/ExecStatementUsageCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ExecStatementUsageCheck.java index 98715c5a0..c0779fcd2 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ExecStatementUsageCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ExecStatementUsageCheck.java @@ -20,9 +20,9 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ExecStatement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ExecStatement; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = ExecStatementUsageCheck.CHECK_KEY) public class ExecStatementUsageCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/ExitHasBadArgumentsCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ExitHasBadArgumentsCheck.java index b9a1ad249..4d67fed30 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ExitHasBadArgumentsCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ExitHasBadArgumentsCheck.java @@ -20,13 +20,13 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.Parameter; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S2733") public class ExitHasBadArgumentsCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/Expressions.java b/python-checks/src/main/java/org/sonar/python/checks/Expressions.java index d52a97d70..a1c47ddd2 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/Expressions.java +++ b/python-checks/src/main/java/org/sonar/python/checks/Expressions.java @@ -23,16 +23,16 @@ import java.util.HashSet; import java.util.Set; import javax.annotation.Nullable; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.DictionaryLiteral; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ListLiteral; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tuple; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.DictionaryLiteral; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ListLiteral; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tuple; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.semantic.Symbol; import org.sonar.python.semantic.Usage; diff --git a/python-checks/src/main/java/org/sonar/python/checks/FieldDuplicatesClassNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/FieldDuplicatesClassNameCheck.java index 2cb2ad7e2..5abfff6e9 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/FieldDuplicatesClassNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/FieldDuplicatesClassNameCheck.java @@ -22,9 +22,9 @@ import java.util.HashSet; import java.util.Set; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S1700") diff --git a/python-checks/src/main/java/org/sonar/python/checks/FieldNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/FieldNameCheck.java index 541e96c8e..33ca8e680 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/FieldNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/FieldNameCheck.java @@ -26,9 +26,9 @@ import java.util.stream.Collectors; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; import org.sonar.python.semantic.Usage; diff --git a/python-checks/src/main/java/org/sonar/python/checks/FileComplexityCheck.java b/python-checks/src/main/java/org/sonar/python/checks/FileComplexityCheck.java index af13ff910..acc9bf442 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/FileComplexityCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/FileComplexityCheck.java @@ -22,8 +22,8 @@ import java.text.MessageFormat; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.metrics.ComplexityVisitor; @Rule(key = "FileComplexity") diff --git a/python-checks/src/main/java/org/sonar/python/checks/FixmeCommentCheck.java b/python-checks/src/main/java/org/sonar/python/checks/FixmeCommentCheck.java index 1619f6ed4..7c0616c70 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/FixmeCommentCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/FixmeCommentCheck.java @@ -21,10 +21,10 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; @Rule(key = "S1134") public class FixmeCommentCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/FunctionComplexityCheck.java b/python-checks/src/main/java/org/sonar/python/checks/FunctionComplexityCheck.java index 6ad22f179..0fd8e1f3b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/FunctionComplexityCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/FunctionComplexityCheck.java @@ -21,9 +21,9 @@ import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.metrics.ComplexityVisitor; @Rule(key = "FunctionComplexity") diff --git a/python-checks/src/main/java/org/sonar/python/checks/FunctionNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/FunctionNameCheck.java index ccebf4df7..9984b6e92 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/FunctionNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/FunctionNameCheck.java @@ -20,7 +20,7 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.FunctionDef; @Rule(key = FunctionNameCheck.CHECK_KEY) public class FunctionNameCheck extends AbstractFunctionNameCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/HardcodedIPCheck.java b/python-checks/src/main/java/org/sonar/python/checks/HardcodedIPCheck.java index d030ac637..e46bef04e 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/HardcodedIPCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/HardcodedIPCheck.java @@ -25,9 +25,9 @@ import java.util.regex.Pattern; import javax.annotation.Nullable; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = HardcodedIPCheck.CHECK_KEY) public class HardcodedIPCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/IdenticalExpressionOnBinaryOperatorCheck.java b/python-checks/src/main/java/org/sonar/python/checks/IdenticalExpressionOnBinaryOperatorCheck.java index 282080ec8..023ade66f 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/IdenticalExpressionOnBinaryOperatorCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/IdenticalExpressionOnBinaryOperatorCheck.java @@ -22,13 +22,13 @@ import java.util.Arrays; import java.util.List; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S1764") public class IdenticalExpressionOnBinaryOperatorCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/InequalityUsageCheck.java b/python-checks/src/main/java/org/sonar/python/checks/InequalityUsageCheck.java index d08dd3a8f..5eefbda4b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/InequalityUsageCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/InequalityUsageCheck.java @@ -20,11 +20,11 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; import org.sonar.python.api.PythonPunctuator; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "InequalityUsage") public class InequalityUsageCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/InitReturnsValueCheck.java b/python-checks/src/main/java/org/sonar/python/checks/InitReturnsValueCheck.java index 32c5f0dc0..f8e5c134a 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/InitReturnsValueCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/InitReturnsValueCheck.java @@ -22,12 +22,12 @@ import java.util.ArrayList; import java.util.List; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.YieldStatement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.YieldStatement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; @Rule(key = InitReturnsValueCheck.CHECK_KEY) public class InitReturnsValueCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/LineLengthCheck.java b/python-checks/src/main/java/org/sonar/python/checks/LineLengthCheck.java index a9ef27b04..4c886fa60 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/LineLengthCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/LineLengthCheck.java @@ -22,8 +22,8 @@ import java.text.MessageFormat; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = LineLengthCheck.CHECK_KEY) public class LineLengthCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/LocalVariableAndParameterNameConventionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/LocalVariableAndParameterNameConventionCheck.java index ea2ce9513..6aa24f1e8 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/LocalVariableAndParameterNameConventionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/LocalVariableAndParameterNameConventionCheck.java @@ -24,10 +24,10 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; import org.sonar.python.semantic.Usage; diff --git a/python-checks/src/main/java/org/sonar/python/checks/LongIntegerWithLowercaseSuffixUsageCheck.java b/python-checks/src/main/java/org/sonar/python/checks/LongIntegerWithLowercaseSuffixUsageCheck.java index bb63ad224..c7993183b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/LongIntegerWithLowercaseSuffixUsageCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/LongIntegerWithLowercaseSuffixUsageCheck.java @@ -20,9 +20,9 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = LongIntegerWithLowercaseSuffixUsageCheck.CHECK_KEY) public class LongIntegerWithLowercaseSuffixUsageCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/LoopExecutingAtMostOnceCheck.java b/python-checks/src/main/java/org/sonar/python/checks/LoopExecutingAtMostOnceCheck.java index 8cac1337c..e9b5ead54 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/LoopExecutingAtMostOnceCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/LoopExecutingAtMostOnceCheck.java @@ -30,14 +30,14 @@ import org.sonar.plugins.python.api.cfg.CfgBlock; import org.sonar.plugins.python.api.cfg.CfgBranchingBlock; import org.sonar.plugins.python.api.cfg.ControlFlowGraph; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; -import org.sonar.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.WhileStatement; import org.sonar.python.tree.TreeUtils; @Rule(key = "S1751") diff --git a/python-checks/src/main/java/org/sonar/python/checks/MethodNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/MethodNameCheck.java index 11872a6e1..c128d4d53 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/MethodNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/MethodNameCheck.java @@ -20,7 +20,7 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.FunctionDef; import static org.sonar.python.checks.CheckUtils.classHasInheritance; import static org.sonar.python.checks.CheckUtils.getParentClassDef; diff --git a/python-checks/src/main/java/org/sonar/python/checks/MethodShouldBeStaticCheck.java b/python-checks/src/main/java/org/sonar/python/checks/MethodShouldBeStaticCheck.java index 2a62f4d84..24ccb26be 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/MethodShouldBeStaticCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/MethodShouldBeStaticCheck.java @@ -21,16 +21,16 @@ import java.util.List; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.Parameter; +import org.sonar.plugins.python.api.tree.RaiseStatement; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import static org.sonar.python.checks.CheckUtils.classHasInheritance; import static org.sonar.python.checks.CheckUtils.getParentClassDef; diff --git a/python-checks/src/main/java/org/sonar/python/checks/MissingDocstringCheck.java b/python-checks/src/main/java/org/sonar/python/checks/MissingDocstringCheck.java index 57f1fd9a8..2b8f5c939 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/MissingDocstringCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/MissingDocstringCheck.java @@ -21,15 +21,15 @@ import javax.annotation.CheckForNull; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; @Rule(key = MissingDocstringCheck.CHECK_KEY) public class MissingDocstringCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/MissingNewlineAtEndOfFileCheck.java b/python-checks/src/main/java/org/sonar/python/checks/MissingNewlineAtEndOfFileCheck.java index d7a094605..cebc9a31c 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/MissingNewlineAtEndOfFileCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/MissingNewlineAtEndOfFileCheck.java @@ -20,8 +20,8 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S113") public class MissingNewlineAtEndOfFileCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/ModuleNameCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ModuleNameCheck.java index 841f995e7..8c400587b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ModuleNameCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ModuleNameCheck.java @@ -22,9 +22,9 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionCheck; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionCheck; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S1578") public class ModuleNameCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/NeedlessPassCheck.java b/python-checks/src/main/java/org/sonar/python/checks/NeedlessPassCheck.java index 90a1b179a..917839f7d 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/NeedlessPassCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/NeedlessPassCheck.java @@ -22,15 +22,15 @@ import java.util.List; import java.util.stream.Collectors; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Statement; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Statement; -import static org.sonar.python.api.tree.Tree.Kind.EXPRESSION_STMT; -import static org.sonar.python.api.tree.Tree.Kind.PASS_STMT; -import static org.sonar.python.api.tree.Tree.Kind.STATEMENT_LIST; -import static org.sonar.python.api.tree.Tree.Kind.STRING_LITERAL; +import static org.sonar.plugins.python.api.tree.Tree.Kind.EXPRESSION_STMT; +import static org.sonar.plugins.python.api.tree.Tree.Kind.PASS_STMT; +import static org.sonar.plugins.python.api.tree.Tree.Kind.STATEMENT_LIST; +import static org.sonar.plugins.python.api.tree.Tree.Kind.STRING_LITERAL; @Rule(key = "S2772") public class NeedlessPassCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/NestedControlFlowDepthCheck.java b/python-checks/src/main/java/org/sonar/python/checks/NestedControlFlowDepthCheck.java index b54313ba9..8a856a474 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/NestedControlFlowDepthCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/NestedControlFlowDepthCheck.java @@ -24,15 +24,15 @@ import java.util.Iterator; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonCheckTree; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.api.PythonKeyword; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.WithStatement; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TryStatement; +import org.sonar.plugins.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.WithStatement; @Rule(key = "S134") public class NestedControlFlowDepthCheck extends PythonCheckTree { diff --git a/python-checks/src/main/java/org/sonar/python/checks/NewStyleClassCheck.java b/python-checks/src/main/java/org/sonar/python/checks/NewStyleClassCheck.java index cf2b98195..af9504178 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/NewStyleClassCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/NewStyleClassCheck.java @@ -20,9 +20,9 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = NewStyleClassCheck.CHECK_KEY) public class NewStyleClassCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/NoPersonReferenceInTodoCheck.java b/python-checks/src/main/java/org/sonar/python/checks/NoPersonReferenceInTodoCheck.java index 3ffa0e95d..4d1ea6fd3 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/NoPersonReferenceInTodoCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/NoPersonReferenceInTodoCheck.java @@ -23,11 +23,11 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; @Rule(key = "S1707") public class NoPersonReferenceInTodoCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/OneStatementPerLineCheck.java b/python-checks/src/main/java/org/sonar/python/checks/OneStatementPerLineCheck.java index 12e5c8643..71ef0e372 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/OneStatementPerLineCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/OneStatementPerLineCheck.java @@ -24,9 +24,9 @@ import java.util.List; import java.util.Map; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Tree; /** * Note that implementation differs from AbstractOneStatementPerLineCheck due to Python specifics diff --git a/python-checks/src/main/java/org/sonar/python/checks/ParsingErrorCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ParsingErrorCheck.java index 99469324c..3b5883c25 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ParsingErrorCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ParsingErrorCheck.java @@ -22,8 +22,8 @@ import com.sonar.sslr.api.RecognitionException; import org.sonar.check.Rule; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; @Rule(key = "ParsingError") public class ParsingErrorCheck implements PythonCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/PreIncrementDecrementCheck.java b/python-checks/src/main/java/org/sonar/python/checks/PreIncrementDecrementCheck.java index 9a10cecd5..7a12d2290 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/PreIncrementDecrementCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/PreIncrementDecrementCheck.java @@ -20,10 +20,10 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.UnaryExpression; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.UnaryExpression; +import org.sonar.plugins.python.api.tree.Tree.Kind; @Rule(key = PreIncrementDecrementCheck.CHECK_KEY) public class PreIncrementDecrementCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/PrintStatementUsageCheck.java b/python-checks/src/main/java/org/sonar/python/checks/PrintStatementUsageCheck.java index 5313c55ea..b7efbcab1 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/PrintStatementUsageCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/PrintStatementUsageCheck.java @@ -20,10 +20,10 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.PrintStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.PrintStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = PrintStatementUsageCheck.CHECK_KEY) public class PrintStatementUsageCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/RedundantJumpCheck.java b/python-checks/src/main/java/org/sonar/python/checks/RedundantJumpCheck.java index d3d3c3edb..6c45c1a90 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/RedundantJumpCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/RedundantJumpCheck.java @@ -24,14 +24,14 @@ import org.sonar.check.Rule; import org.sonar.plugins.python.api.cfg.CfgBlock; import org.sonar.plugins.python.api.cfg.ControlFlowGraph; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.cfg.PythonCfgBranchingBlock; import org.sonar.python.tree.TreeUtils; diff --git a/python-checks/src/main/java/org/sonar/python/checks/ReturnAndYieldInOneFunctionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ReturnAndYieldInOneFunctionCheck.java index e55bafd1a..a5e655126 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ReturnAndYieldInOneFunctionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ReturnAndYieldInOneFunctionCheck.java @@ -20,12 +20,12 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.YieldStatement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.YieldStatement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; @Rule(key = ReturnAndYieldInOneFunctionCheck.CHECK_KEY) public class ReturnAndYieldInOneFunctionCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/ReturnYieldOutsideFunctionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/ReturnYieldOutsideFunctionCheck.java index d9759d614..00aee78f9 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/ReturnYieldOutsideFunctionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/ReturnYieldOutsideFunctionCheck.java @@ -21,10 +21,10 @@ import java.util.function.Consumer; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = ReturnYieldOutsideFunctionCheck.CHECK_KEY) public class ReturnYieldOutsideFunctionCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/SameBranchCheck.java b/python-checks/src/main/java/org/sonar/python/checks/SameBranchCheck.java index 44b9ab140..7ee8e9bd4 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/SameBranchCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/SameBranchCheck.java @@ -23,17 +23,17 @@ import java.util.List; import java.util.stream.Collectors; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.ConditionalExpression; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.ParenthesizedExpression; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S1871") public class SameBranchCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/SameConditionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/SameConditionCheck.java index ae41c82d5..6d8f831dd 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/SameConditionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/SameConditionCheck.java @@ -23,14 +23,14 @@ import java.util.List; import java.util.stream.Collectors; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = SameConditionCheck.CHECK_KEY) public class SameConditionCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/SelfAssignmentCheck.java b/python-checks/src/main/java/org/sonar/python/checks/SelfAssignmentCheck.java index 014c46b22..4452e5ca5 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/SelfAssignmentCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/SelfAssignmentCheck.java @@ -24,19 +24,19 @@ import java.util.Set; import org.sonar.check.Rule; import org.sonar.python.PythonBuiltinFunctions; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.AnnotatedAssignment; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ImportFrom; +import org.sonar.plugins.python.api.tree.ImportName; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; @Rule(key = SelfAssignmentCheck.CHECK_KEY) public class SelfAssignmentCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/TempFileCreationCheck.java b/python-checks/src/main/java/org/sonar/python/checks/TempFileCreationCheck.java index 097c63ce5..f61cd60bf 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/TempFileCreationCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/TempFileCreationCheck.java @@ -24,9 +24,9 @@ import java.util.Optional; import javax.annotation.Nullable; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S5445") diff --git a/python-checks/src/main/java/org/sonar/python/checks/TooManyLinesInFileCheck.java b/python-checks/src/main/java/org/sonar/python/checks/TooManyLinesInFileCheck.java index 459c4bf2c..2a23ad3b3 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/TooManyLinesInFileCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/TooManyLinesInFileCheck.java @@ -22,8 +22,8 @@ import java.text.MessageFormat; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = TooManyLinesInFileCheck.CHECK_KEY) public class TooManyLinesInFileCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/TooManyParametersCheck.java b/python-checks/src/main/java/org/sonar/python/checks/TooManyParametersCheck.java index 6a6535b8e..560b9e229 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/TooManyParametersCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/TooManyParametersCheck.java @@ -21,10 +21,10 @@ import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.Tree.Kind; @Rule(key = TooManyParametersCheck.CHECK_KEY) public class TooManyParametersCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/TooManyReturnsCheck.java b/python-checks/src/main/java/org/sonar/python/checks/TooManyReturnsCheck.java index 3e080c598..bdf91711d 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/TooManyReturnsCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/TooManyReturnsCheck.java @@ -23,13 +23,13 @@ import java.util.List; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.YieldStatement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.YieldStatement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; @Rule(key = TooManyReturnsCheck.CHECK_KEY) public class TooManyReturnsCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/TrailingCommentCheck.java b/python-checks/src/main/java/org/sonar/python/checks/TrailingCommentCheck.java index 2db7b4469..a8aaa2f28 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/TrailingCommentCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/TrailingCommentCheck.java @@ -22,10 +22,10 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; import org.sonar.check.RuleProperty; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; @Rule(key = "S139") public class TrailingCommentCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/TrailingWhitespaceCheck.java b/python-checks/src/main/java/org/sonar/python/checks/TrailingWhitespaceCheck.java index a60efe251..bcb4cf934 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/TrailingWhitespaceCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/TrailingWhitespaceCheck.java @@ -22,8 +22,8 @@ import java.util.regex.Pattern; import org.sonar.check.Rule; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; @Rule(key = "S1131") public class TrailingWhitespaceCheck implements PythonCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/UnusedLocalVariableCheck.java b/python-checks/src/main/java/org/sonar/python/checks/UnusedLocalVariableCheck.java index 0ac047a3f..d47c5a972 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/UnusedLocalVariableCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/UnusedLocalVariableCheck.java @@ -25,19 +25,19 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.semantic.Symbol; import org.sonar.python.semantic.Usage; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import org.sonar.python.tree.TreeUtils; @Rule(key = "S1481") diff --git a/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisAfterKeywordCheck.java b/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisAfterKeywordCheck.java index b9913af29..b8366132b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisAfterKeywordCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisAfterKeywordCheck.java @@ -20,23 +20,23 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.AssertStatement; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.DelStatement; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.Tuple; -import org.sonar.python.api.tree.UnaryExpression; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.YieldExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.AssertStatement; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.DelStatement; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.ParenthesizedExpression; +import org.sonar.plugins.python.api.tree.RaiseStatement; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.Tuple; +import org.sonar.plugins.python.api.tree.UnaryExpression; +import org.sonar.plugins.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.YieldExpression; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S1721") public class UselessParenthesisAfterKeywordCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisCheck.java b/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisCheck.java index 9cf03bba2..13c4fc9f6 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/UselessParenthesisCheck.java @@ -20,10 +20,10 @@ package org.sonar.python.checks; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ParenthesizedExpression; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = UselessParenthesisCheck.CHECK_KEY) public class UselessParenthesisCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/WeakSSLProtocolCheck.java b/python-checks/src/main/java/org/sonar/python/checks/WeakSSLProtocolCheck.java index 943fb2b19..8756a20f4 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/WeakSSLProtocolCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/WeakSSLProtocolCheck.java @@ -23,9 +23,9 @@ import java.util.List; import javax.annotation.Nullable; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S4423") diff --git a/python-checks/src/main/java/org/sonar/python/checks/XPathCheck.java b/python-checks/src/main/java/org/sonar/python/checks/XPathCheck.java index 545088dc9..07de4e48d 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/XPathCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/XPathCheck.java @@ -25,8 +25,8 @@ import org.sonar.check.Rule; import org.sonar.check.RuleProperty; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; @Rule(key = XPathCheck.CHECK_KEY) public class XPathCheck implements PythonCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/ClearTextProtocolsCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/ClearTextProtocolsCheck.java index ef441f14a..70ce64247 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/ClearTextProtocolsCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/ClearTextProtocolsCheck.java @@ -29,10 +29,10 @@ import java.util.regex.Pattern; import javax.annotation.Nullable; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S5332") diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/CommandLineArgsCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/CommandLineArgsCheck.java index 772b0dd10..0eadf2a0c 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/CommandLineArgsCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/CommandLineArgsCheck.java @@ -21,9 +21,9 @@ import java.util.Set; import org.sonar.check.Rule; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.checks.AbstractCallExpressionCheck; import org.sonar.python.semantic.Symbol; diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DataEncryptionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DataEncryptionCheck.java index 7749f6141..71a5392f8 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DataEncryptionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DataEncryptionCheck.java @@ -22,9 +22,9 @@ import java.util.Arrays; import java.util.List; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S4787") diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DebugModeCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DebugModeCheck.java index 1158492d7..9109b01ca 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DebugModeCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DebugModeCheck.java @@ -23,15 +23,15 @@ import java.util.List; import javax.annotation.CheckForNull; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.semantic.Symbol; @Rule(key = DebugModeCheck.CHECK_KEY) diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DisabledHtmlAutoEscapeCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DisabledHtmlAutoEscapeCheck.java index 6eb0e1987..f4a804210 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DisabledHtmlAutoEscapeCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DisabledHtmlAutoEscapeCheck.java @@ -24,16 +24,16 @@ import java.util.stream.Stream; import javax.annotation.Nullable; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.DictionaryLiteral; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.KeyValuePair; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.DictionaryLiteral; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.KeyValuePair; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.checks.Expressions; import org.sonar.python.semantic.Symbol; diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DynamicCodeExecutionCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DynamicCodeExecutionCheck.java index 9bd55e2ec..3821a8448 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/DynamicCodeExecutionCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/DynamicCodeExecutionCheck.java @@ -20,11 +20,11 @@ package org.sonar.python.checks.hotspots; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; @Rule(key = "S1523") public class DynamicCodeExecutionCheck extends PythonSubscriptionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/HashingDataCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/HashingDataCheck.java index b70807605..30575d450 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/HashingDataCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/HashingDataCheck.java @@ -24,18 +24,18 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.sonar.check.Rule; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.HasSymbol; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.HasSymbol; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.ParenthesizedExpression; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.checks.AbstractCallExpressionCheck; import org.sonar.python.semantic.Symbol; diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/LoggersConfigurationCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/LoggersConfigurationCheck.java index 0805906ce..deb8e3c8b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/LoggersConfigurationCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/LoggersConfigurationCheck.java @@ -22,15 +22,15 @@ import java.util.Arrays; import java.util.List; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.HasSymbol; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.HasSymbol; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S4792") diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/PseudoRandomCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/PseudoRandomCheck.java index 3b0d5c6bb..90bc2700b 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/PseudoRandomCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/PseudoRandomCheck.java @@ -23,9 +23,9 @@ import java.util.HashSet; import java.util.Set; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; @Rule(key = "S2245") diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/PubliclyWritableDirectoriesCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/PubliclyWritableDirectoriesCheck.java index f5420975f..5d93ac194 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/PubliclyWritableDirectoriesCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/PubliclyWritableDirectoriesCheck.java @@ -24,15 +24,15 @@ import java.util.Locale; import java.util.regex.Pattern; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.api.tree.HasSymbol; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.SubscriptionExpression; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.tree.HasSymbol; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.SubscriptionExpression; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.semantic.Symbol; @Rule(key = "S5443") diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/RegexCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/RegexCheck.java index bbcb2fbea..d447bc5b8 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/RegexCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/RegexCheck.java @@ -25,15 +25,15 @@ import javax.annotation.Nullable; import org.sonar.check.Rule; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.checks.Expressions; import org.sonar.python.semantic.Symbol; diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/SQLQueriesCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/SQLQueriesCheck.java index 7a96ffcad..67262c4c3 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/SQLQueriesCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/SQLQueriesCheck.java @@ -25,20 +25,20 @@ import java.util.Objects; import java.util.Set; import org.sonar.check.Rule; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.checks.AbstractCallExpressionCheck; import org.sonar.python.semantic.Symbol; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; @Rule(key = SQLQueriesCheck.CHECK_KEY) public class SQLQueriesCheck extends AbstractCallExpressionCheck { diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/StandardInputCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/StandardInputCheck.java index d0642579a..5a73eb0da 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/StandardInputCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/StandardInputCheck.java @@ -23,10 +23,10 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.sonar.check.Rule; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.checks.AbstractCallExpressionCheck; import org.sonar.python.semantic.Symbol; diff --git a/python-checks/src/main/java/org/sonar/python/checks/hotspots/StrongCryptographicKeysCheck.java b/python-checks/src/main/java/org/sonar/python/checks/hotspots/StrongCryptographicKeysCheck.java index f5d765a80..72fcc27e9 100644 --- a/python-checks/src/main/java/org/sonar/python/checks/hotspots/StrongCryptographicKeysCheck.java +++ b/python-checks/src/main/java/org/sonar/python/checks/hotspots/StrongCryptographicKeysCheck.java @@ -22,16 +22,16 @@ import java.util.List; import java.util.regex.Pattern; import org.sonar.check.Rule; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.SubscriptionContext; -import org.sonar.python.api.tree.HasSymbol; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.HasSymbol; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.semantic.Symbol; @Rule(key = "S4426") diff --git a/python-checks/src/test/java/org/sonar/python/checks/CheckUtilsTest.java b/python-checks/src/test/java/org/sonar/python/checks/CheckUtilsTest.java index 89bdb6aa5..3076c0186 100644 --- a/python-checks/src/test/java/org/sonar/python/checks/CheckUtilsTest.java +++ b/python-checks/src/test/java/org/sonar/python/checks/CheckUtilsTest.java @@ -27,8 +27,8 @@ import java.util.Collections; import org.junit.Test; import org.sonar.python.PythonConfiguration; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.parser.PythonParser; import org.sonar.python.tree.ArgListImpl; import org.sonar.python.tree.PythonTreeMaker; diff --git a/python-checks/src/test/java/org/sonar/python/checks/ExpressionsTest.java b/python-checks/src/test/java/org/sonar/python/checks/ExpressionsTest.java index 17fbdfd02..25648e719 100644 --- a/python-checks/src/test/java/org/sonar/python/checks/ExpressionsTest.java +++ b/python-checks/src/test/java/org/sonar/python/checks/ExpressionsTest.java @@ -25,14 +25,14 @@ import java.util.List; import org.junit.Test; import org.sonar.python.PythonConfiguration; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.parser.PythonParser; import org.sonar.python.semantic.SymbolTableBuilder; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import org.sonar.python.tree.PythonTreeMaker; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-checks/src/test/java/org/sonar/python/checks/ParsingErrorCheckTest.java b/python-checks/src/test/java/org/sonar/python/checks/ParsingErrorCheckTest.java index 2c5fbcaa0..2d46b8741 100644 --- a/python-checks/src/test/java/org/sonar/python/checks/ParsingErrorCheckTest.java +++ b/python-checks/src/test/java/org/sonar/python/checks/ParsingErrorCheckTest.java @@ -26,9 +26,9 @@ import java.nio.charset.StandardCharsets; import java.util.List; import org.junit.Test; -import org.sonar.python.PythonCheck.PreciseIssue; +import org.sonar.plugins.python.api.PythonCheck.PreciseIssue; import org.sonar.python.PythonConfiguration; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.parser.PythonParser; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-checks/src/test/java/org/sonar/python/checks/utils/package-info.java b/python-checks/src/test/java/org/sonar/python/checks/utils/package-info.java new file mode 100644 index 000000000..70ad77dcc --- /dev/null +++ b/python-checks/src/test/java/org/sonar/python/checks/utils/package-info.java @@ -0,0 +1,24 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2011-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonar.python.checks.utils; + +import javax.annotation.ParametersAreNonnullByDefault; + diff --git a/python-squid/src/main/java/org/sonar/python/PythonCheck.java b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCheck.java similarity index 93% rename from python-squid/src/main/java/org/sonar/python/PythonCheck.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/PythonCheck.java index 966a5e514..ba8832c9e 100644 --- a/python-squid/src/main/java/org/sonar/python/PythonCheck.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCheck.java @@ -17,13 +17,14 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python; +package org.sonar.plugins.python.api; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.python.IssueLocation; public interface PythonCheck { diff --git a/python-squid/src/main/java/org/sonar/python/PythonCheckTree.java b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCheckTree.java similarity index 88% rename from python-squid/src/main/java/org/sonar/python/PythonCheckTree.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/PythonCheckTree.java index 1dd655a2d..5b8884727 100644 --- a/python-squid/src/main/java/org/sonar/python/PythonCheckTree.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCheckTree.java @@ -17,12 +17,13 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python; +package org.sonar.plugins.python.api; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.python.IssueLocation; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; public abstract class PythonCheckTree extends BaseTreeVisitor implements PythonCheck { diff --git a/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCustomRuleRepository.java b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCustomRuleRepository.java new file mode 100644 index 000000000..29c658221 --- /dev/null +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonCustomRuleRepository.java @@ -0,0 +1,43 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2011-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.plugins.python.api; + +import java.util.List; +import org.sonar.api.ExtensionPoint; +import org.sonar.api.scanner.ScannerSide; + +/** + * Extension point to create a custom rule repository for Python. + */ +@ScannerSide +@ExtensionPoint +public interface PythonCustomRuleRepository { + + /** + * Key of the custom rule repository. + */ + String repositoryKey(); + + /** + * List of the custom rules classes. + */ + List checkClasses(); + +} diff --git a/python-squid/src/main/java/org/sonar/python/PythonSubscriptionCheck.java b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonSubscriptionCheck.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/PythonSubscriptionCheck.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/PythonSubscriptionCheck.java index 737eccc86..70229d207 100644 --- a/python-squid/src/main/java/org/sonar/python/PythonSubscriptionCheck.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonSubscriptionCheck.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python; +package org.sonar.plugins.python.api; public abstract class PythonSubscriptionCheck implements SubscriptionCheck, PythonCheck { @Override diff --git a/python-squid/src/main/java/org/sonar/python/PythonVisitorContext.java b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonVisitorContext.java similarity index 92% rename from python-squid/src/main/java/org/sonar/python/PythonVisitorContext.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/PythonVisitorContext.java index c0914fb96..9360ec020 100644 --- a/python-squid/src/main/java/org/sonar/python/PythonVisitorContext.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/PythonVisitorContext.java @@ -17,14 +17,15 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python; +package org.sonar.plugins.python.api; import com.sonar.sslr.api.AstNode; import com.sonar.sslr.api.RecognitionException; import java.util.ArrayList; import java.util.List; -import org.sonar.python.PythonCheck.PreciseIssue; -import org.sonar.python.api.tree.FileInput; +import org.sonar.plugins.python.api.PythonCheck.PreciseIssue; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.python.PythonFile; import org.sonar.python.semantic.SymbolTableBuilder; public class PythonVisitorContext { diff --git a/python-squid/src/main/java/org/sonar/python/SubscriptionCheck.java b/python-squid/src/main/java/org/sonar/plugins/python/api/SubscriptionCheck.java similarity index 92% rename from python-squid/src/main/java/org/sonar/python/SubscriptionCheck.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/SubscriptionCheck.java index 3107c4b34..a74cdc255 100644 --- a/python-squid/src/main/java/org/sonar/python/SubscriptionCheck.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/SubscriptionCheck.java @@ -17,10 +17,10 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python; +package org.sonar.plugins.python.api; import java.util.function.Consumer; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public interface SubscriptionCheck { void initialize(Context context); diff --git a/python-squid/src/main/java/org/sonar/python/SubscriptionContext.java b/python-squid/src/main/java/org/sonar/plugins/python/api/SubscriptionContext.java similarity index 88% rename from python-squid/src/main/java/org/sonar/python/SubscriptionContext.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/SubscriptionContext.java index 73d72b30b..644947993 100644 --- a/python-squid/src/main/java/org/sonar/python/SubscriptionContext.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/SubscriptionContext.java @@ -17,11 +17,12 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python; +package org.sonar.plugins.python.api; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.python.PythonFile; public interface SubscriptionContext { Tree syntaxNode(); diff --git a/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBlock.java b/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBlock.java index 5cca7337e..52e7070be 100644 --- a/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBlock.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBlock.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Set; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public interface CfgBlock { diff --git a/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBranchingBlock.java b/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBranchingBlock.java index 0d13e8075..3b827762a 100644 --- a/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBranchingBlock.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/CfgBranchingBlock.java @@ -19,7 +19,7 @@ */ package org.sonar.plugins.python.api.cfg; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; /** * A {@link CfgBlock} with 2 successors: represents a block ending diff --git a/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/ControlFlowGraph.java b/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/ControlFlowGraph.java index a552bffea..9143c3f39 100644 --- a/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/ControlFlowGraph.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/cfg/ControlFlowGraph.java @@ -27,10 +27,10 @@ import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import org.sonar.python.PythonFile; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.cfg.ControlFlowGraphBuilder; public class ControlFlowGraph { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/package-info.java b/python-squid/src/main/java/org/sonar/plugins/python/api/package-info.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/package-info.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/package-info.java index 5d992c424..287284cae 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/package-info.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/package-info.java @@ -18,7 +18,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ @ParametersAreNonnullByDefault -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/AliasedName.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AliasedName.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/AliasedName.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/AliasedName.java index 4b6d46bab..685cff00c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/AliasedName.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AliasedName.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/AnnotatedAssignment.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AnnotatedAssignment.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/AnnotatedAssignment.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/AnnotatedAssignment.java index 912370e98..11197a678 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/AnnotatedAssignment.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AnnotatedAssignment.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/AnyParameter.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AnyParameter.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/AnyParameter.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/AnyParameter.java index 529e88692..c20ad033e 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/AnyParameter.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AnyParameter.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface AnyParameter extends Tree { } diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ArgList.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ArgList.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ArgList.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ArgList.java index 61990be0c..28c511482 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ArgList.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ArgList.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Argument.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Argument.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/Argument.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Argument.java index 944473e4d..019779ad7 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Argument.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Argument.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/AssertStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AssertStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/AssertStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/AssertStatement.java index 361ae50f3..a8ab9942d 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/AssertStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AssertStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.Nullable; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/AssignmentStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AssignmentStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/AssignmentStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/AssignmentStatement.java index 82bc16094..ea6658382 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/AssignmentStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AssignmentStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/AwaitExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AwaitExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/AwaitExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/AwaitExpression.java index 69aeef8be..730378b0c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/AwaitExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/AwaitExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface AwaitExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/BaseTreeVisitor.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/BaseTreeVisitor.java similarity index 77% rename from python-squid/src/main/java/org/sonar/python/tree/BaseTreeVisitor.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/BaseTreeVisitor.java index 7344221df..b2a8abea6 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/BaseTreeVisitor.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/BaseTreeVisitor.java @@ -17,83 +17,11 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.Nullable; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.AssertStatement; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.AwaitExpression; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.BreakStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.CompoundAssignmentStatement; -import org.sonar.python.api.tree.ComprehensionExpression; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.ComprehensionIf; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.ContinueStatement; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.DelStatement; -import org.sonar.python.api.tree.DictionaryLiteral; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.EllipsisExpression; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.ExecStatement; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FinallyClause; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.GlobalStatement; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.KeyValuePair; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.ListLiteral; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NoneExpression; -import org.sonar.python.api.tree.NonlocalStatement; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.PassStatement; -import org.sonar.python.api.tree.PrintStatement; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.ReprExpression; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.SetLiteral; -import org.sonar.python.api.tree.SliceExpression; -import org.sonar.python.api.tree.SliceItem; -import org.sonar.python.api.tree.SliceList; -import org.sonar.python.api.tree.StarredExpression; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.SubscriptionExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.api.tree.TupleParameter; -import org.sonar.python.api.tree.Tuple; -import org.sonar.python.api.tree.TypeAnnotation; -import org.sonar.python.api.tree.UnaryExpression; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.WithItem; -import org.sonar.python.api.tree.WithStatement; -import org.sonar.python.api.tree.YieldExpression; -import org.sonar.python.api.tree.YieldStatement; -import org.sonar.python.api.tree.Tree; +import org.sonar.python.tree.DictCompExpressionImpl; /** * Default implementation of {@link TreeVisitor}. diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/BinaryExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/BinaryExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/BinaryExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/BinaryExpression.java index 2c6115702..4a5aae823 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/BinaryExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/BinaryExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface BinaryExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/BreakStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/BreakStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/BreakStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/BreakStatement.java index c70184e06..fbdb8d17c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/BreakStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/BreakStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface BreakStatement extends Statement { Token breakKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/CallExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/CallExpression.java similarity index 97% rename from python-squid/src/main/java/org/sonar/python/api/tree/CallExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/CallExpression.java index f2092294a..19d819a0b 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/CallExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/CallExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ClassDef.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ClassDef.java similarity index 97% rename from python-squid/src/main/java/org/sonar/python/api/tree/ClassDef.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ClassDef.java index 4e598bc2e..2626927a7 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ClassDef.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ClassDef.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import java.util.Set; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/CompoundAssignmentStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/CompoundAssignmentStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/CompoundAssignmentStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/CompoundAssignmentStatement.java index fac179a54..6e568d1df 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/CompoundAssignmentStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/CompoundAssignmentStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface CompoundAssignmentStatement extends Statement { Expression rhsExpression(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionClause.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionClause.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionClause.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionClause.java index dd2a06a99..66f77c907 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionClause.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionClause.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionExpression.java index 4c6074203..7f73e70b1 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ComprehensionExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionFor.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionFor.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionFor.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionFor.java index a7d1d0c16..a55243fe0 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionFor.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionFor.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ComprehensionFor extends ComprehensionClause { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionIf.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionIf.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionIf.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionIf.java index 440b8b626..5bb1a73b4 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ComprehensionIf.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ComprehensionIf.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ComprehensionIf extends ComprehensionClause { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ConditionalExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ConditionalExpression.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/ConditionalExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ConditionalExpression.java index ad4452c9f..6aa897fb9 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ConditionalExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ConditionalExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ConditionalExpression extends Expression { Token ifKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ContinueStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ContinueStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ContinueStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ContinueStatement.java index e07e6f9ba..7567a84dc 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ContinueStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ContinueStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ContinueStatement extends Statement { Token continueKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Decorator.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Decorator.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/Decorator.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Decorator.java index d9589f444..c0dcd9103 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Decorator.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Decorator.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/DelStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DelStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/DelStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/DelStatement.java index c2d2527ca..4b27328ea 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/DelStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DelStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/DictCompExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DictCompExpression.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/DictCompExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/DictCompExpression.java index 7881e00c1..7aec737dd 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/DictCompExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DictCompExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface DictCompExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/DictionaryLiteral.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DictionaryLiteral.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/DictionaryLiteral.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/DictionaryLiteral.java index 405f9462f..47a0ecb4b 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/DictionaryLiteral.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DictionaryLiteral.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/DottedName.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DottedName.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/DottedName.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/DottedName.java index 532cc3dc0..315dace31 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/DottedName.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/DottedName.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/EllipsisExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/EllipsisExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/EllipsisExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/EllipsisExpression.java index 132ee05d5..3a725a4b9 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/EllipsisExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/EllipsisExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ElseClause.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ElseClause.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ElseClause.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ElseClause.java index c3ea33ad9..4e9300ed0 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ElseClause.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ElseClause.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ElseClause extends Tree { Token elseKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ExceptClause.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExceptClause.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/ExceptClause.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExceptClause.java index 0e281dede..6337ec7da 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ExceptClause.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExceptClause.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ExecStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExecStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/ExecStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExecStatement.java index bed4a8bb0..8d2f1e262 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ExecStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExecStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Expression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Expression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/Expression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Expression.java index a1aef6c7a..f27b9cc32 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Expression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Expression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface Expression extends Tree { } diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ExpressionList.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExpressionList.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ExpressionList.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExpressionList.java index 98d971448..cef282c6f 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ExpressionList.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExpressionList.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ExpressionStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExpressionStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ExpressionStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExpressionStatement.java index 0e69a3815..87f19d426 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ExpressionStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ExpressionStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/FileInput.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FileInput.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/FileInput.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/FileInput.java index 312c2b49a..c2bd21480 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/FileInput.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FileInput.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.Set; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/FinallyClause.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FinallyClause.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/FinallyClause.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/FinallyClause.java index 549492660..fbc749adf 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/FinallyClause.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FinallyClause.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface FinallyClause extends Tree { Token finallyKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ForStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ForStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/ForStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ForStatement.java index 84b99fbad..5b233f922 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ForStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ForStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/FunctionDef.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FunctionDef.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/FunctionDef.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/FunctionDef.java index db85f0675..da35b020a 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/FunctionDef.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FunctionDef.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/FunctionLike.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FunctionLike.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/FunctionLike.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/FunctionLike.java index dfc668269..f33bcd10c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/FunctionLike.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/FunctionLike.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.Set; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/GlobalStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/GlobalStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/GlobalStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/GlobalStatement.java index 7dc2d6e7a..db16d1de1 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/GlobalStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/GlobalStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/HasSymbol.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/HasSymbol.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/HasSymbol.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/HasSymbol.java index 6d32d4de1..04dcdb77f 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/HasSymbol.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/HasSymbol.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; import org.sonar.python.semantic.Symbol; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/IfStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/IfStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/IfStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/IfStatement.java index 2bbe25007..eddf86b42 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/IfStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/IfStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ImportFrom.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportFrom.java similarity index 97% rename from python-squid/src/main/java/org/sonar/python/api/tree/ImportFrom.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportFrom.java index c1294c8b1..90ee53ccc 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ImportFrom.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportFrom.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ImportName.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportName.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/ImportName.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportName.java index e4bea4309..ce94af7c8 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ImportName.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportName.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ImportStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ImportStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportStatement.java index 4d91a8b41..0a912596c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ImportStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ImportStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; /** * Import statement diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/InExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/InExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/InExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/InExpression.java index 6c7c2dd56..167c42bd2 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/InExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/InExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/IsExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/IsExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/IsExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/IsExpression.java index 581e9c079..a05be81ff 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/IsExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/IsExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/KeyValuePair.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/KeyValuePair.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/KeyValuePair.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/KeyValuePair.java index 6009ce5f6..2032fafd1 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/KeyValuePair.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/KeyValuePair.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/LambdaExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/LambdaExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/LambdaExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/LambdaExpression.java index 1f7555372..37ff39e48 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/LambdaExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/LambdaExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface LambdaExpression extends Expression, FunctionLike { Token lambdaKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ListLiteral.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ListLiteral.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ListLiteral.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ListLiteral.java index dc64c05ca..3483de35b 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ListLiteral.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ListLiteral.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ListLiteral extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Name.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Name.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/Name.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Name.java index b41197594..54de2a27f 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Name.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Name.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface Name extends Expression, HasSymbol { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/NoneExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/NoneExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/NoneExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/NoneExpression.java index 3f5a9045d..c90c8911f 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/NoneExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/NoneExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface NoneExpression extends Expression { Token none(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/NonlocalStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/NonlocalStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/NonlocalStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/NonlocalStatement.java index 70b8538e7..d2c8231f1 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/NonlocalStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/NonlocalStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/NumericLiteral.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/NumericLiteral.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/NumericLiteral.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/NumericLiteral.java index 4cf246282..b88d37f3b 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/NumericLiteral.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/NumericLiteral.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface NumericLiteral extends Expression { /** diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Parameter.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Parameter.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/Parameter.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Parameter.java index a297c5acc..4e44d19b1 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Parameter.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Parameter.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ParameterList.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ParameterList.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ParameterList.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ParameterList.java index ada0b07c6..2f1d62f47 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ParameterList.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ParameterList.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ParenthesizedExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ParenthesizedExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ParenthesizedExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ParenthesizedExpression.java index 5bfdb538a..b02bbe865 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ParenthesizedExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ParenthesizedExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface ParenthesizedExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/PassStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/PassStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/PassStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/PassStatement.java index b8d3a3a95..ee3d6f076 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/PassStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/PassStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface PassStatement extends Statement { Token passKeyword(); diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/PrintStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/PrintStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/PrintStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/PrintStatement.java index 9c6d6e41e..107a54544 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/PrintStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/PrintStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/QualifiedExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/QualifiedExpression.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/QualifiedExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/QualifiedExpression.java index 98c13f631..5dc32964c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/QualifiedExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/QualifiedExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; import org.sonar.python.semantic.Symbol; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/RaiseStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/RaiseStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/RaiseStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/RaiseStatement.java index a5d3bc4cd..5e0b964ea 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/RaiseStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/RaiseStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ReprExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ReprExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ReprExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ReprExpression.java index fd77d4f8d..8cfa6a19d 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ReprExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ReprExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; /** * Python 2 only. diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/ReturnStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ReturnStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/ReturnStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/ReturnStatement.java index 77520a309..127646885 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/ReturnStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/ReturnStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/SetLiteral.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SetLiteral.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/SetLiteral.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/SetLiteral.java index a0741b5bd..fb5dd1d76 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/SetLiteral.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SetLiteral.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/SliceExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/SliceExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceExpression.java index ded6ba333..f7f77793c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/SliceExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface SliceExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/SliceItem.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceItem.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/SliceItem.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceItem.java index 4b9132bdf..112cb5d0c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/SliceItem.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceItem.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/SliceList.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceList.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/SliceList.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceList.java index af4e4968e..94a32089f 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/SliceList.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SliceList.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/StarredExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StarredExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/StarredExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/StarredExpression.java index 6e49b20ec..10df7d7e2 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/StarredExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StarredExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface StarredExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Statement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Statement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/Statement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Statement.java index f2e181093..cf22d8228 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Statement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Statement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface Statement extends Tree { default Token separator() { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/StatementList.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StatementList.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/StatementList.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/StatementList.java index 81888b2c2..06f7988dd 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/StatementList.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StatementList.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/StringElement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StringElement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/StringElement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/StringElement.java index 9a99c2d3b..7035cf8a7 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/StringElement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StringElement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface StringElement extends Tree { /** diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/StringLiteral.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StringLiteral.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/StringLiteral.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/StringLiteral.java index 18531c159..0b51053a5 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/StringLiteral.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/StringLiteral.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/SubscriptionExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SubscriptionExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/SubscriptionExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/SubscriptionExpression.java index b1cac38cd..1847b24d2 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/SubscriptionExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/SubscriptionExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface SubscriptionExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Token.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Token.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/Token.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Token.java index dd8e05596..6bf2926fa 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Token.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Token.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import com.sonar.sslr.api.TokenType; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Tree.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Tree.java similarity index 99% rename from python-squid/src/main/java/org/sonar/python/api/tree/Tree.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Tree.java index 7d03c812a..6cf29f5ff 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Tree.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Tree.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/TreeVisitor.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TreeVisitor.java similarity index 99% rename from python-squid/src/main/java/org/sonar/python/api/tree/TreeVisitor.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/TreeVisitor.java index ca3f5d00e..edd837f0c 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/TreeVisitor.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TreeVisitor.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import org.sonar.python.tree.DictCompExpressionImpl; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Trivia.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Trivia.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/Trivia.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Trivia.java index cd1cdb86e..8a87050cf 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Trivia.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Trivia.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface Trivia { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/TryStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TryStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/TryStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/TryStatement.java index bca597f46..95c6ba3db 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/TryStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TryStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/Tuple.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Tuple.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/Tuple.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/Tuple.java index 7f609ce2f..276364166 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/Tuple.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/Tuple.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/TupleParameter.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TupleParameter.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/TupleParameter.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/TupleParameter.java index 73f8a9303..52d352fbc 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/TupleParameter.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TupleParameter.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/TypeAnnotation.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TypeAnnotation.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/TypeAnnotation.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/TypeAnnotation.java index 81e30a1c5..8f2b1f798 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/TypeAnnotation.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/TypeAnnotation.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/UnaryExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/UnaryExpression.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/UnaryExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/UnaryExpression.java index 695a1155c..b38e767d0 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/UnaryExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/UnaryExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface UnaryExpression extends Expression { diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/WhileStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/WhileStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/WhileStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/WhileStatement.java index 6f42346d1..62ad2a0f2 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/WhileStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/WhileStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/WithItem.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/WithItem.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/WithItem.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/WithItem.java index 961c28fe7..7541818a8 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/WithItem.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/WithItem.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/WithStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/WithStatement.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/WithStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/WithStatement.java index f78f75f37..2fd399860 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/WithStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/WithStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/YieldExpression.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/YieldExpression.java similarity index 96% rename from python-squid/src/main/java/org/sonar/python/api/tree/YieldExpression.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/YieldExpression.java index 9a0e420d4..5372e6939 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/YieldExpression.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/YieldExpression.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; import java.util.List; import javax.annotation.CheckForNull; diff --git a/python-squid/src/main/java/org/sonar/python/api/tree/YieldStatement.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/YieldStatement.java similarity index 95% rename from python-squid/src/main/java/org/sonar/python/api/tree/YieldStatement.java rename to python-squid/src/main/java/org/sonar/plugins/python/api/tree/YieldStatement.java index a556a62c4..3bb766545 100644 --- a/python-squid/src/main/java/org/sonar/python/api/tree/YieldStatement.java +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/YieldStatement.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.api.tree; +package org.sonar.plugins.python.api.tree; public interface YieldStatement extends Statement { YieldExpression yieldExpression(); diff --git a/python-squid/src/main/java/org/sonar/plugins/python/api/tree/package-info.java b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/package-info.java new file mode 100644 index 000000000..86a6a227c --- /dev/null +++ b/python-squid/src/main/java/org/sonar/plugins/python/api/tree/package-info.java @@ -0,0 +1,24 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2011-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonar.plugins.python.api.tree; + +import javax.annotation.ParametersAreNonnullByDefault; + diff --git a/python-squid/src/main/java/org/sonar/python/DocstringExtractor.java b/python-squid/src/main/java/org/sonar/python/DocstringExtractor.java index d407bfa35..2e24af7ef 100644 --- a/python-squid/src/main/java/org/sonar/python/DocstringExtractor.java +++ b/python-squid/src/main/java/org/sonar/python/DocstringExtractor.java @@ -20,11 +20,11 @@ package org.sonar.python; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree; /** * Extractor of docstring tokens. diff --git a/python-squid/src/main/java/org/sonar/python/IssueLocation.java b/python-squid/src/main/java/org/sonar/python/IssueLocation.java index c8b27e1b8..3fc9c89ed 100644 --- a/python-squid/src/main/java/org/sonar/python/IssueLocation.java +++ b/python-squid/src/main/java/org/sonar/python/IssueLocation.java @@ -22,8 +22,8 @@ import com.sonar.sslr.api.AstNode; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.tree.TokenImpl; public abstract class IssueLocation { diff --git a/python-squid/src/main/java/org/sonar/python/SubscriptionVisitor.java b/python-squid/src/main/java/org/sonar/python/SubscriptionVisitor.java index 78f662b5f..c599f330c 100644 --- a/python-squid/src/main/java/org/sonar/python/SubscriptionVisitor.java +++ b/python-squid/src/main/java/org/sonar/python/SubscriptionVisitor.java @@ -28,10 +28,14 @@ import java.util.List; import java.util.function.Consumer; import javax.annotation.Nullable; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.SubscriptionContext; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; public class SubscriptionVisitor { diff --git a/python-squid/src/main/java/org/sonar/python/TestPythonVisitorRunner.java b/python-squid/src/main/java/org/sonar/python/TestPythonVisitorRunner.java index 04b0679f5..6e671b7e9 100644 --- a/python-squid/src/main/java/org/sonar/python/TestPythonVisitorRunner.java +++ b/python-squid/src/main/java/org/sonar/python/TestPythonVisitorRunner.java @@ -26,7 +26,9 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import org.sonar.python.api.tree.FileInput; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.tree.FileInput; import org.sonar.python.tree.PythonTreeMaker; import org.sonar.python.parser.PythonParser; diff --git a/python-squid/src/main/java/org/sonar/python/TokenLocation.java b/python-squid/src/main/java/org/sonar/python/TokenLocation.java index b54ab27fd..de16d27ba 100644 --- a/python-squid/src/main/java/org/sonar/python/TokenLocation.java +++ b/python-squid/src/main/java/org/sonar/python/TokenLocation.java @@ -19,7 +19,7 @@ */ package org.sonar.python; -import org.sonar.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Token; public class TokenLocation { diff --git a/python-squid/src/main/java/org/sonar/python/cfg/ControlFlowGraphBuilder.java b/python-squid/src/main/java/org/sonar/python/cfg/ControlFlowGraphBuilder.java index 5f53b508c..8fcb10fe5 100644 --- a/python-squid/src/main/java/org/sonar/python/cfg/ControlFlowGraphBuilder.java +++ b/python-squid/src/main/java/org/sonar/python/cfg/ControlFlowGraphBuilder.java @@ -30,23 +30,23 @@ import javax.annotation.Nullable; import org.sonar.plugins.python.api.cfg.CfgBlock; import org.sonar.plugins.python.api.cfg.ControlFlowGraph; -import org.sonar.python.api.tree.BreakStatement; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.ContinueStatement; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.FinallyClause; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.WithStatement; +import org.sonar.plugins.python.api.tree.BreakStatement; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.ContinueStatement; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.FinallyClause; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.RaiseStatement; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TryStatement; +import org.sonar.plugins.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.WithStatement; import org.sonar.python.tree.TreeUtils; public class ControlFlowGraphBuilder { diff --git a/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBlock.java b/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBlock.java index cfd63cafc..dc020d244 100644 --- a/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBlock.java +++ b/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBlock.java @@ -26,7 +26,7 @@ import java.util.Set; import java.util.stream.Collectors; import org.sonar.plugins.python.api.cfg.CfgBlock; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public abstract class PythonCfgBlock implements CfgBlock { diff --git a/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBranchingBlock.java b/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBranchingBlock.java index 9714f88eb..a479f9ad4 100644 --- a/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBranchingBlock.java +++ b/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgBranchingBlock.java @@ -27,7 +27,7 @@ import javax.annotation.Nullable; import org.sonar.plugins.python.api.cfg.CfgBlock; import org.sonar.plugins.python.api.cfg.CfgBranchingBlock; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public class PythonCfgBranchingBlock extends PythonCfgBlock implements CfgBranchingBlock { diff --git a/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgEndBlock.java b/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgEndBlock.java index 4fbb2cd2a..f7918733b 100644 --- a/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgEndBlock.java +++ b/python-squid/src/main/java/org/sonar/python/cfg/PythonCfgEndBlock.java @@ -25,7 +25,7 @@ import java.util.Set; import javax.annotation.CheckForNull; import org.sonar.plugins.python.api.cfg.CfgBlock; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public class PythonCfgEndBlock extends PythonCfgBlock { diff --git a/python-squid/src/main/java/org/sonar/python/metrics/CognitiveComplexityVisitor.java b/python-squid/src/main/java/org/sonar/python/metrics/CognitiveComplexityVisitor.java index b94088698..13dadc05f 100644 --- a/python-squid/src/main/java/org/sonar/python/metrics/CognitiveComplexityVisitor.java +++ b/python-squid/src/main/java/org/sonar/python/metrics/CognitiveComplexityVisitor.java @@ -27,23 +27,23 @@ import java.util.List; import java.util.Set; import javax.annotation.Nullable; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.ConditionalExpression; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; public class CognitiveComplexityVisitor extends BaseTreeVisitor { diff --git a/python-squid/src/main/java/org/sonar/python/metrics/ComplexityVisitor.java b/python-squid/src/main/java/org/sonar/python/metrics/ComplexityVisitor.java index 5ffebe2e8..d764421ae 100644 --- a/python-squid/src/main/java/org/sonar/python/metrics/ComplexityVisitor.java +++ b/python-squid/src/main/java/org/sonar/python/metrics/ComplexityVisitor.java @@ -21,15 +21,15 @@ import com.sonar.sslr.api.TokenType; import org.sonar.python.api.PythonKeyword; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.ComprehensionIf; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.ComprehensionIf; +import org.sonar.plugins.python.api.tree.ConditionalExpression; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; public class ComplexityVisitor extends BaseTreeVisitor { diff --git a/python-squid/src/main/java/org/sonar/python/metrics/FileLinesVisitor.java b/python-squid/src/main/java/org/sonar/python/metrics/FileLinesVisitor.java index efa44a58d..27542785b 100644 --- a/python-squid/src/main/java/org/sonar/python/metrics/FileLinesVisitor.java +++ b/python-squid/src/main/java/org/sonar/python/metrics/FileLinesVisitor.java @@ -27,19 +27,19 @@ import java.util.Set; import javax.annotation.Nullable; import org.sonar.api.measures.CoreMetrics; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.PythonVisitorContext; -import org.sonar.python.SubscriptionContext; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.SubscriptionContext; import org.sonar.python.SubscriptionVisitor; import org.sonar.python.TokenLocation; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; /** * Visitor that computes {@link CoreMetrics#NCLOC_DATA_KEY} and {@link CoreMetrics#COMMENT_LINES} metrics used by the DevCockpit. diff --git a/python-squid/src/main/java/org/sonar/python/metrics/FileMetrics.java b/python-squid/src/main/java/org/sonar/python/metrics/FileMetrics.java index bbc758aad..90bdea566 100644 --- a/python-squid/src/main/java/org/sonar/python/metrics/FileMetrics.java +++ b/python-squid/src/main/java/org/sonar/python/metrics/FileMetrics.java @@ -21,10 +21,10 @@ import java.util.ArrayList; import java.util.List; -import org.sonar.python.PythonVisitorContext; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; public class FileMetrics { diff --git a/python-squid/src/main/java/org/sonar/python/semantic/SymbolTableBuilder.java b/python-squid/src/main/java/org/sonar/python/semantic/SymbolTableBuilder.java index 82f85d361..b443709e7 100644 --- a/python-squid/src/main/java/org/sonar/python/semantic/SymbolTableBuilder.java +++ b/python-squid/src/main/java/org/sonar/python/semantic/SymbolTableBuilder.java @@ -33,35 +33,35 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.AnyParameter; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.CompoundAssignmentStatement; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.FunctionLike; -import org.sonar.python.api.tree.GlobalStatement; -import org.sonar.python.api.tree.HasSymbol; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NonlocalStatement; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; -import org.sonar.python.api.tree.Tuple; -import org.sonar.python.api.tree.TupleParameter; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.HasSymbol; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.AnnotatedAssignment; +import org.sonar.plugins.python.api.tree.AnyParameter; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.CompoundAssignmentStatement; +import org.sonar.plugins.python.api.tree.ComprehensionFor; +import org.sonar.plugins.python.api.tree.Decorator; +import org.sonar.plugins.python.api.tree.DottedName; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.FunctionLike; +import org.sonar.plugins.python.api.tree.GlobalStatement; +import org.sonar.plugins.python.api.tree.ImportFrom; +import org.sonar.plugins.python.api.tree.ImportName; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NonlocalStatement; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.Parameter; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.Tuple; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.TupleParameter; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import org.sonar.python.tree.ClassDefImpl; import org.sonar.python.tree.FileInputImpl; import org.sonar.python.tree.FunctionDefImpl; diff --git a/python-squid/src/main/java/org/sonar/python/semantic/Usage.java b/python-squid/src/main/java/org/sonar/python/semantic/Usage.java index 2d43f4807..1b17f3e10 100644 --- a/python-squid/src/main/java/org/sonar/python/semantic/Usage.java +++ b/python-squid/src/main/java/org/sonar/python/semantic/Usage.java @@ -19,7 +19,7 @@ */ package org.sonar.python.semantic; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public interface Usage { diff --git a/python-squid/src/main/java/org/sonar/python/semantic/UsageImpl.java b/python-squid/src/main/java/org/sonar/python/semantic/UsageImpl.java index 28f3fbbe1..ba8f5093f 100644 --- a/python-squid/src/main/java/org/sonar/python/semantic/UsageImpl.java +++ b/python-squid/src/main/java/org/sonar/python/semantic/UsageImpl.java @@ -19,7 +19,7 @@ */ package org.sonar.python.semantic; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; public class UsageImpl implements Usage { diff --git a/python-squid/src/main/java/org/sonar/python/tree/AliasedNameImpl.java b/python-squid/src/main/java/org/sonar/python/tree/AliasedNameImpl.java index c8cb0c262..d8b33c65e 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/AliasedNameImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/AliasedNameImpl.java @@ -24,12 +24,12 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.DottedName; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class AliasedNameImpl extends PyTree implements AliasedName { diff --git a/python-squid/src/main/java/org/sonar/python/tree/AnnotatedAssignmentImpl.java b/python-squid/src/main/java/org/sonar/python/tree/AnnotatedAssignmentImpl.java index 1b18e1561..5bc1e3067 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/AnnotatedAssignmentImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/AnnotatedAssignmentImpl.java @@ -26,11 +26,11 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.AnnotatedAssignment; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class AnnotatedAssignmentImpl extends SimpleStatement implements AnnotatedAssignment { private final Expression variable; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ArgListImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ArgListImpl.java index ad2c93467..79f0005a2 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ArgListImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ArgListImpl.java @@ -21,11 +21,11 @@ import java.util.ArrayList; import java.util.List; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ArgListImpl extends PyTree implements ArgList { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ArgumentImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ArgumentImpl.java index fecd4f5ad..d94b83bf1 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ArgumentImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ArgumentImpl.java @@ -25,12 +25,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ArgumentImpl extends PyTree implements Argument { private final Name keywordArgument; diff --git a/python-squid/src/main/java/org/sonar/python/tree/AssertStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/AssertStatementImpl.java index ec8f6e1f4..65c18340e 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/AssertStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/AssertStatementImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.AssertStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AssertStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class AssertStatementImpl extends SimpleStatement implements AssertStatement { private final Token assertKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/AssignmentStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/AssignmentStatementImpl.java index c4c332757..baa7bab71 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/AssignmentStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/AssignmentStatementImpl.java @@ -22,12 +22,12 @@ import java.util.ArrayList; import java.util.List; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class AssignmentStatementImpl extends SimpleStatement implements AssignmentStatement { private final List assignTokens; diff --git a/python-squid/src/main/java/org/sonar/python/tree/AwaitExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/AwaitExpressionImpl.java index 70ceb3a3d..145562eb4 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/AwaitExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/AwaitExpressionImpl.java @@ -23,11 +23,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.AwaitExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AwaitExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class AwaitExpressionImpl extends PyTree implements AwaitExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/BinaryExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/BinaryExpressionImpl.java index ff1e8d4e1..b76da4488 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/BinaryExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/BinaryExpressionImpl.java @@ -25,11 +25,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class BinaryExpressionImpl extends PyTree implements BinaryExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/BreakStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/BreakStatementImpl.java index 1662840a1..16f4f5edc 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/BreakStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/BreakStatementImpl.java @@ -25,10 +25,10 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.BreakStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.BreakStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class BreakStatementImpl extends SimpleStatement implements BreakStatement { private final Token breakKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/CallExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/CallExpressionImpl.java index 6bd558165..f0a9aeb70 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/CallExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/CallExpressionImpl.java @@ -25,13 +25,13 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class CallExpressionImpl extends PyTree implements CallExpression { private final Expression callee; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ClassDefImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ClassDefImpl.java index a0627304f..ed334727a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ClassDefImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ClassDefImpl.java @@ -28,15 +28,15 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.Decorator; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; import org.sonar.python.semantic.Symbol; public class ClassDefImpl extends PyTree implements ClassDef { diff --git a/python-squid/src/main/java/org/sonar/python/tree/CompoundAssignmentStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/CompoundAssignmentStatementImpl.java index a4dceb79c..4e69d2c15 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/CompoundAssignmentStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/CompoundAssignmentStatementImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.CompoundAssignmentStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.CompoundAssignmentStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class CompoundAssignmentStatementImpl extends SimpleStatement implements CompoundAssignmentStatement { private final Expression lhsExpression; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ComprehensionExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ComprehensionExpressionImpl.java index 953e7ceb9..a0ca6014b 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ComprehensionExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ComprehensionExpressionImpl.java @@ -24,12 +24,12 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ComprehensionExpression; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ComprehensionExpression; +import org.sonar.plugins.python.api.tree.ComprehensionFor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class ComprehensionExpressionImpl extends PyTree implements ComprehensionExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ComprehensionForImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ComprehensionForImpl.java index 512635b02..45008294f 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ComprehensionForImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ComprehensionForImpl.java @@ -25,12 +25,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ComprehensionClause; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ComprehensionClause; +import org.sonar.plugins.python.api.tree.ComprehensionFor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ComprehensionForImpl extends PyTree implements ComprehensionFor { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ComprehensionIfImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ComprehensionIfImpl.java index 41463bd16..ae4006882 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ComprehensionIfImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ComprehensionIfImpl.java @@ -25,12 +25,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ComprehensionClause; -import org.sonar.python.api.tree.ComprehensionIf; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ComprehensionClause; +import org.sonar.plugins.python.api.tree.ComprehensionIf; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ComprehensionIfImpl extends PyTree implements ComprehensionIf { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ConditionalExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ConditionalExpressionImpl.java index 905f5f64b..1cc3e63df 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ConditionalExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ConditionalExpressionImpl.java @@ -23,11 +23,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ConditionalExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ConditionalExpressionImpl extends PyTree implements ConditionalExpression { private final Expression trueExpression; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ContinueStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ContinueStatementImpl.java index 56be309d6..040f82439 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ContinueStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ContinueStatementImpl.java @@ -25,10 +25,10 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.ContinueStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ContinueStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ContinueStatementImpl extends SimpleStatement implements ContinueStatement { private final Token continueKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/DecoratorImpl.java b/python-squid/src/main/java/org/sonar/python/tree/DecoratorImpl.java index feca0d558..faa75f9a8 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/DecoratorImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/DecoratorImpl.java @@ -25,12 +25,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Decorator; +import org.sonar.plugins.python.api.tree.DottedName; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class DecoratorImpl extends PyTree implements Decorator { private final Token atToken; diff --git a/python-squid/src/main/java/org/sonar/python/tree/DelStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/DelStatementImpl.java index 34ca69629..7ef319fac 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/DelStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/DelStatementImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.DelStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.DelStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class DelStatementImpl extends SimpleStatement implements DelStatement { private final Token delKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/DictCompExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/DictCompExpressionImpl.java index dc25d9f58..f9f527574 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/DictCompExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/DictCompExpressionImpl.java @@ -23,12 +23,12 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.DictCompExpression; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ComprehensionFor; +import org.sonar.plugins.python.api.tree.DictCompExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class DictCompExpressionImpl extends PyTree implements DictCompExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/DictOrSetLiteralImpl.java b/python-squid/src/main/java/org/sonar/python/tree/DictOrSetLiteralImpl.java index 8be75e81c..039d13f8a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/DictOrSetLiteralImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/DictOrSetLiteralImpl.java @@ -21,8 +21,8 @@ import java.util.ArrayList; import java.util.List; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; public abstract class DictOrSetLiteralImpl extends PyTree { private final Token lCurlyBrace; diff --git a/python-squid/src/main/java/org/sonar/python/tree/DictionaryLiteralImpl.java b/python-squid/src/main/java/org/sonar/python/tree/DictionaryLiteralImpl.java index 730beeb76..660d91750 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/DictionaryLiteralImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/DictionaryLiteralImpl.java @@ -20,10 +20,10 @@ package org.sonar.python.tree; import java.util.List; -import org.sonar.python.api.tree.DictionaryLiteral; -import org.sonar.python.api.tree.KeyValuePair; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.DictionaryLiteral; +import org.sonar.plugins.python.api.tree.KeyValuePair; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class DictionaryLiteralImpl extends DictOrSetLiteralImpl implements DictionaryLiteral { diff --git a/python-squid/src/main/java/org/sonar/python/tree/DottedNameImpl.java b/python-squid/src/main/java/org/sonar/python/tree/DottedNameImpl.java index 5144c6733..03afeb2ac 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/DottedNameImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/DottedNameImpl.java @@ -21,10 +21,10 @@ import java.util.Collections; import java.util.List; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.DottedName; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class DottedNameImpl extends PyTree implements DottedName { private final List names; diff --git a/python-squid/src/main/java/org/sonar/python/tree/EllipsisExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/EllipsisExpressionImpl.java index c3ee5a85d..9145ebd05 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/EllipsisExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/EllipsisExpressionImpl.java @@ -21,10 +21,10 @@ import java.util.Collections; import java.util.List; -import org.sonar.python.api.tree.EllipsisExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.EllipsisExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class EllipsisExpressionImpl extends PyTree implements EllipsisExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ElseClauseImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ElseClauseImpl.java index e4f8098f0..dc1df22df 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ElseClauseImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ElseClauseImpl.java @@ -24,11 +24,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ElseClauseImpl extends PyTree implements ElseClause { private final Token elseKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ExceptClauseImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ExceptClauseImpl.java index d8168a1d9..224407574 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ExceptClauseImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ExceptClauseImpl.java @@ -25,12 +25,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class ExceptClauseImpl extends PyTree implements ExceptClause { private final Token exceptKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ExecStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ExecStatementImpl.java index 993013521..443fca245 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ExecStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ExecStatementImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ExecStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ExecStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ExecStatementImpl extends SimpleStatement implements ExecStatement { private final Token execKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ExpressionListImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ExpressionListImpl.java index 26f20ed68..c1b16d4a7 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ExpressionListImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ExpressionListImpl.java @@ -21,11 +21,11 @@ import java.util.ArrayList; import java.util.List; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ExpressionListImpl extends PyTree implements ExpressionList { private final List expressions; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ExpressionStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ExpressionStatementImpl.java index e6ed32328..139e03459 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ExpressionStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ExpressionStatementImpl.java @@ -23,11 +23,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ExpressionStatementImpl extends SimpleStatement implements ExpressionStatement { private final List expressions; diff --git a/python-squid/src/main/java/org/sonar/python/tree/FileInputImpl.java b/python-squid/src/main/java/org/sonar/python/tree/FileInputImpl.java index d38b4b2b1..74d16028c 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/FileInputImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/FileInputImpl.java @@ -27,12 +27,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; import org.sonar.python.semantic.Symbol; public class FileInputImpl extends PyTree implements FileInput { diff --git a/python-squid/src/main/java/org/sonar/python/tree/FinallyClauseImpl.java b/python-squid/src/main/java/org/sonar/python/tree/FinallyClauseImpl.java index 7b2138bf7..2b0998327 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/FinallyClauseImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/FinallyClauseImpl.java @@ -24,11 +24,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.FinallyClause; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.FinallyClause; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class FinallyClauseImpl extends PyTree implements FinallyClause { private final Token finallyKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ForStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ForStatementImpl.java index 8b8bf3ebf..ac7100d77 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ForStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ForStatementImpl.java @@ -27,13 +27,13 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ForStatementImpl extends PyTree implements ForStatement { diff --git a/python-squid/src/main/java/org/sonar/python/tree/FunctionDefImpl.java b/python-squid/src/main/java/org/sonar/python/tree/FunctionDefImpl.java index 696c8c607..70da8c6fb 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/FunctionDefImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/FunctionDefImpl.java @@ -28,16 +28,16 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.TypeAnnotation; +import org.sonar.plugins.python.api.tree.Decorator; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.TypeAnnotation; import org.sonar.python.semantic.Symbol; public class FunctionDefImpl extends PyTree implements FunctionDef { diff --git a/python-squid/src/main/java/org/sonar/python/tree/GlobalStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/GlobalStatementImpl.java index 3573f625f..0a7be7af1 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/GlobalStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/GlobalStatementImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.GlobalStatement; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.GlobalStatement; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class GlobalStatementImpl extends SimpleStatement implements GlobalStatement { private final Token globalKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/IfStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/IfStatementImpl.java index 4a8122391..e85a31a53 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/IfStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/IfStatementImpl.java @@ -20,19 +20,19 @@ package org.sonar.python.tree; import java.util.Objects; -import org.sonar.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Token; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class IfStatementImpl extends PyTree implements IfStatement { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ImportFromImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ImportFromImpl.java index eee5bb11a..c1de9602f 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ImportFromImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ImportFromImpl.java @@ -27,12 +27,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.DottedName; +import org.sonar.plugins.python.api.tree.ImportFrom; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ImportFromImpl extends SimpleStatement implements ImportFrom { private final Token fromKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ImportNameImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ImportNameImpl.java index 905355849..815645204 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ImportNameImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ImportNameImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.ImportName; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ImportNameImpl extends SimpleStatement implements ImportName { diff --git a/python-squid/src/main/java/org/sonar/python/tree/InExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/InExpressionImpl.java index 7ee3af2e9..01762b1e7 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/InExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/InExpressionImpl.java @@ -25,10 +25,10 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.InExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.InExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; public class InExpressionImpl extends BinaryExpressionImpl implements InExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/IsExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/IsExpressionImpl.java index 333df2ea6..d325119de 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/IsExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/IsExpressionImpl.java @@ -25,10 +25,10 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.IsExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.IsExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; public class IsExpressionImpl extends BinaryExpressionImpl implements IsExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/KeyValuePairImpl.java b/python-squid/src/main/java/org/sonar/python/tree/KeyValuePairImpl.java index 311d21ce3..f4c22b551 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/KeyValuePairImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/KeyValuePairImpl.java @@ -24,11 +24,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.KeyValuePair; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.KeyValuePair; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class KeyValuePairImpl extends PyTree implements KeyValuePair { diff --git a/python-squid/src/main/java/org/sonar/python/tree/LambdaExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/LambdaExpressionImpl.java index a13a996c9..ab5381666 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/LambdaExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/LambdaExpressionImpl.java @@ -27,12 +27,12 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; import org.sonar.python.semantic.Symbol; public class LambdaExpressionImpl extends PyTree implements LambdaExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ListLiteralImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ListLiteralImpl.java index 79e43fb9a..34c9ce76a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ListLiteralImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ListLiteralImpl.java @@ -22,11 +22,11 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.ListLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.ListLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ListLiteralImpl extends PyTree implements ListLiteral { diff --git a/python-squid/src/main/java/org/sonar/python/tree/NameImpl.java b/python-squid/src/main/java/org/sonar/python/tree/NameImpl.java index 96de30b0f..b8cfbed85 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/NameImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/NameImpl.java @@ -22,10 +22,10 @@ import java.util.Collections; import java.util.List; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; import org.sonar.python.semantic.Symbol; public class NameImpl extends PyTree implements Name { diff --git a/python-squid/src/main/java/org/sonar/python/tree/NoneExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/NoneExpressionImpl.java index 61239b092..4ede091c2 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/NoneExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/NoneExpressionImpl.java @@ -21,10 +21,10 @@ import java.util.Collections; import java.util.List; -import org.sonar.python.api.tree.NoneExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.NoneExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class NoneExpressionImpl extends PyTree implements NoneExpression { private final Token none; diff --git a/python-squid/src/main/java/org/sonar/python/tree/NonlocalStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/NonlocalStatementImpl.java index feacce4e2..5768401af 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/NonlocalStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/NonlocalStatementImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NonlocalStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NonlocalStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class NonlocalStatementImpl extends SimpleStatement implements NonlocalStatement { private final Token nonlocalKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/NumericLiteralImpl.java b/python-squid/src/main/java/org/sonar/python/tree/NumericLiteralImpl.java index 20f180161..bb37ee92c 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/NumericLiteralImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/NumericLiteralImpl.java @@ -21,10 +21,10 @@ import java.util.Collections; import java.util.List; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class NumericLiteralImpl extends PyTree implements NumericLiteral { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ParameterImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ParameterImpl.java index 972fba69e..41292092f 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ParameterImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ParameterImpl.java @@ -25,13 +25,13 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.TypeAnnotation; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Parameter; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.TypeAnnotation; public class ParameterImpl extends PyTree implements Parameter { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ParameterListImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ParameterListImpl.java index 38da7b8fc..0ec89fecb 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ParameterListImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ParameterListImpl.java @@ -23,12 +23,12 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import org.sonar.python.api.tree.AnyParameter; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.AnyParameter; +import org.sonar.plugins.python.api.tree.Parameter; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ParameterListImpl extends PyTree implements ParameterList { diff --git a/python-squid/src/main/java/org/sonar/python/tree/ParenthesizedExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ParenthesizedExpressionImpl.java index e51c20dea..9ff8fd4b4 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ParenthesizedExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ParenthesizedExpressionImpl.java @@ -22,11 +22,11 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ParenthesizedExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class ParenthesizedExpressionImpl extends PyTree implements ParenthesizedExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/PassStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/PassStatementImpl.java index 184ea1063..1df3a711e 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/PassStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/PassStatementImpl.java @@ -25,10 +25,10 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; -import org.sonar.python.api.tree.PassStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.PassStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class PassStatementImpl extends SimpleStatement implements PassStatement { private final Token passKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/PrintStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/PrintStatementImpl.java index cc918e96d..4745f4ab7 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/PrintStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/PrintStatementImpl.java @@ -24,11 +24,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.PrintStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.PrintStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class PrintStatementImpl extends SimpleStatement implements PrintStatement { private final Token printKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/PyTree.java b/python-squid/src/main/java/org/sonar/python/tree/PyTree.java index 4c4d1ec12..cf0d16499 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/PyTree.java +++ b/python-squid/src/main/java/org/sonar/python/tree/PyTree.java @@ -20,8 +20,8 @@ package org.sonar.python.tree; import java.util.List; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; public abstract class PyTree implements Tree { protected Token firstToken; diff --git a/python-squid/src/main/java/org/sonar/python/tree/PythonTreeMaker.java b/python-squid/src/main/java/org/sonar/python/tree/PythonTreeMaker.java index e767c6394..74e6d63e6 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/PythonTreeMaker.java +++ b/python-squid/src/main/java/org/sonar/python/tree/PythonTreeMaker.java @@ -34,63 +34,63 @@ import org.sonar.python.api.PythonKeyword; import org.sonar.python.api.PythonPunctuator; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.AnyParameter; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.AssertStatement; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.BreakStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.CompoundAssignmentStatement; -import org.sonar.python.api.tree.ComprehensionClause; -import org.sonar.python.api.tree.ComprehensionExpression; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.ContinueStatement; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.DelStatement; -import org.sonar.python.api.tree.DottedName; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.ExecStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FinallyClause; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.GlobalStatement; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.ImportStatement; -import org.sonar.python.api.tree.KeyValuePair; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NonlocalStatement; -import org.sonar.python.api.tree.ParameterList; -import org.sonar.python.api.tree.PassStatement; -import org.sonar.python.api.tree.PrintStatement; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.SliceItem; -import org.sonar.python.api.tree.SliceList; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.api.tree.TypeAnnotation; -import org.sonar.python.api.tree.WithItem; -import org.sonar.python.api.tree.WithStatement; -import org.sonar.python.api.tree.YieldExpression; -import org.sonar.python.api.tree.YieldStatement; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.AnnotatedAssignment; +import org.sonar.plugins.python.api.tree.AnyParameter; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.AssertStatement; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.BreakStatement; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.CompoundAssignmentStatement; +import org.sonar.plugins.python.api.tree.ComprehensionClause; +import org.sonar.plugins.python.api.tree.ComprehensionExpression; +import org.sonar.plugins.python.api.tree.ComprehensionFor; +import org.sonar.plugins.python.api.tree.ConditionalExpression; +import org.sonar.plugins.python.api.tree.ContinueStatement; +import org.sonar.plugins.python.api.tree.Decorator; +import org.sonar.plugins.python.api.tree.DelStatement; +import org.sonar.plugins.python.api.tree.DottedName; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.ExecStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FinallyClause; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.GlobalStatement; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.ImportFrom; +import org.sonar.plugins.python.api.tree.ImportName; +import org.sonar.plugins.python.api.tree.ImportStatement; +import org.sonar.plugins.python.api.tree.KeyValuePair; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NonlocalStatement; +import org.sonar.plugins.python.api.tree.ParameterList; +import org.sonar.plugins.python.api.tree.PassStatement; +import org.sonar.plugins.python.api.tree.PrintStatement; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.RaiseStatement; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.SliceItem; +import org.sonar.plugins.python.api.tree.SliceList; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TryStatement; +import org.sonar.plugins.python.api.tree.TypeAnnotation; +import org.sonar.plugins.python.api.tree.WithItem; +import org.sonar.plugins.python.api.tree.WithStatement; +import org.sonar.plugins.python.api.tree.YieldExpression; +import org.sonar.plugins.python.api.tree.YieldStatement; public class PythonTreeMaker { @@ -785,7 +785,7 @@ private Expression exprListOrTestList(AstNode exprListOrTestList) { return new TupleImpl(null, expressions, commaTokens, null); } - Expression expression(AstNode astNode) { + public Expression expression(AstNode astNode) { if (astNode.is(PythonGrammar.ATOM) && astNode.getFirstChild().is(PythonPunctuator.LBRACKET)) { return listLiteral(astNode); } diff --git a/python-squid/src/main/java/org/sonar/python/tree/QualifiedExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/QualifiedExpressionImpl.java index 120f0f7f5..2dacfde56 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/QualifiedExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/QualifiedExpressionImpl.java @@ -22,12 +22,12 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class QualifiedExpressionImpl extends PyTree implements QualifiedExpression { private final Name name; diff --git a/python-squid/src/main/java/org/sonar/python/tree/RaiseStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/RaiseStatementImpl.java index 72e5f8e7d..891cfdda8 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/RaiseStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/RaiseStatementImpl.java @@ -27,11 +27,11 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.RaiseStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class RaiseStatementImpl extends SimpleStatement implements RaiseStatement { private final Token raiseKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ReprExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ReprExpressionImpl.java index 4ba18cbb7..8fc607c4b 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ReprExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ReprExpressionImpl.java @@ -22,11 +22,11 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.ReprExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.ReprExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ReprExpressionImpl extends PyTree implements ReprExpression { private final Token openingBacktick; diff --git a/python-squid/src/main/java/org/sonar/python/tree/ReturnStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/ReturnStatementImpl.java index d5c6ff35b..8215f568c 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/ReturnStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/ReturnStatementImpl.java @@ -24,11 +24,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class ReturnStatementImpl extends SimpleStatement implements ReturnStatement { private final Token returnKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/Separators.java b/python-squid/src/main/java/org/sonar/python/tree/Separators.java index 05e54aaf9..e347dc603 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/Separators.java +++ b/python-squid/src/main/java/org/sonar/python/tree/Separators.java @@ -26,7 +26,7 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Token; public class Separators { public static final Separators EMPTY = new Separators(null, null); diff --git a/python-squid/src/main/java/org/sonar/python/tree/SetLiteralImpl.java b/python-squid/src/main/java/org/sonar/python/tree/SetLiteralImpl.java index b1e7b6f61..a0ed07fef 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/SetLiteralImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/SetLiteralImpl.java @@ -20,10 +20,10 @@ package org.sonar.python.tree; import java.util.List; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.SetLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.SetLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class SetLiteralImpl extends DictOrSetLiteralImpl implements SetLiteral { diff --git a/python-squid/src/main/java/org/sonar/python/tree/SimpleStatement.java b/python-squid/src/main/java/org/sonar/python/tree/SimpleStatement.java index 2bbb04edf..4d06a75c8 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/SimpleStatement.java +++ b/python-squid/src/main/java/org/sonar/python/tree/SimpleStatement.java @@ -23,8 +23,8 @@ import java.util.List; import org.sonar.python.api.PythonPunctuator; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; public abstract class SimpleStatement extends PyTree { diff --git a/python-squid/src/main/java/org/sonar/python/tree/SliceExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/SliceExpressionImpl.java index f47dfcf50..9c34f1214 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/SliceExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/SliceExpressionImpl.java @@ -23,12 +23,12 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.SliceExpression; -import org.sonar.python.api.tree.SliceList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.SliceExpression; +import org.sonar.plugins.python.api.tree.SliceList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class SliceExpressionImpl extends PyTree implements SliceExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/SliceItemImpl.java b/python-squid/src/main/java/org/sonar/python/tree/SliceItemImpl.java index 2457f43a8..c80f8d59d 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/SliceItemImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/SliceItemImpl.java @@ -25,11 +25,11 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.SliceItem; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.SliceItem; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class SliceItemImpl extends PyTree implements SliceItem { diff --git a/python-squid/src/main/java/org/sonar/python/tree/SliceListImpl.java b/python-squid/src/main/java/org/sonar/python/tree/SliceListImpl.java index 41677ba16..cc285d11a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/SliceListImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/SliceListImpl.java @@ -21,10 +21,10 @@ import java.util.ArrayList; import java.util.List; -import org.sonar.python.api.tree.SliceList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.SliceList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class SliceListImpl extends PyTree implements SliceList { diff --git a/python-squid/src/main/java/org/sonar/python/tree/StarredExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/StarredExpressionImpl.java index d788f40fe..d0b315f41 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/StarredExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/StarredExpressionImpl.java @@ -23,11 +23,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.StarredExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.StarredExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class StarredExpressionImpl extends PyTree implements StarredExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/StatementListImpl.java b/python-squid/src/main/java/org/sonar/python/tree/StatementListImpl.java index 83571266f..502234a0a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/StatementListImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/StatementListImpl.java @@ -23,10 +23,10 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; public class StatementListImpl extends PyTree implements StatementList { diff --git a/python-squid/src/main/java/org/sonar/python/tree/StatementWithSeparator.java b/python-squid/src/main/java/org/sonar/python/tree/StatementWithSeparator.java index 4040539dc..f2a31e7d1 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/StatementWithSeparator.java +++ b/python-squid/src/main/java/org/sonar/python/tree/StatementWithSeparator.java @@ -26,7 +26,7 @@ public class StatementWithSeparator { private AstNode statement; private Separators separators; - StatementWithSeparator(AstNode statement, @Nullable Separators separators) { + public StatementWithSeparator(AstNode statement, @Nullable Separators separators) { this.statement = statement; this.separators = separators == null ? Separators.EMPTY : separators; } diff --git a/python-squid/src/main/java/org/sonar/python/tree/StringElementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/StringElementImpl.java index 5a87fe51a..438edd7f6 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/StringElementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/StringElementImpl.java @@ -21,10 +21,10 @@ import java.util.Collections; import java.util.List; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class StringElementImpl extends PyTree implements StringElement { diff --git a/python-squid/src/main/java/org/sonar/python/tree/StringLiteralImpl.java b/python-squid/src/main/java/org/sonar/python/tree/StringLiteralImpl.java index 92b9cbfb1..9b631763c 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/StringLiteralImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/StringLiteralImpl.java @@ -22,10 +22,10 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class StringLiteralImpl extends PyTree implements StringLiteral { diff --git a/python-squid/src/main/java/org/sonar/python/tree/SubscriptionExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/SubscriptionExpressionImpl.java index 391c8a07b..16d02edc6 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/SubscriptionExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/SubscriptionExpressionImpl.java @@ -23,12 +23,12 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.SubscriptionExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.SubscriptionExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tree; public class SubscriptionExpressionImpl extends PyTree implements SubscriptionExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/TokenImpl.java b/python-squid/src/main/java/org/sonar/python/tree/TokenImpl.java index 5a8f47bbb..0e16aaaa3 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TokenImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TokenImpl.java @@ -23,10 +23,10 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Trivia; public class TokenImpl extends PyTree implements Token { diff --git a/python-squid/src/main/java/org/sonar/python/tree/TreeUtils.java b/python-squid/src/main/java/org/sonar/python/tree/TreeUtils.java index 4df22b6a3..4163cf958 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TreeUtils.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TreeUtils.java @@ -24,9 +24,9 @@ import java.util.List; import java.util.function.Predicate; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; public class TreeUtils { private TreeUtils() { diff --git a/python-squid/src/main/java/org/sonar/python/tree/TriviaImpl.java b/python-squid/src/main/java/org/sonar/python/tree/TriviaImpl.java index fe4900ded..6a6b1193e 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TriviaImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TriviaImpl.java @@ -19,8 +19,8 @@ */ package org.sonar.python.tree; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Trivia; public class TriviaImpl implements Trivia { diff --git a/python-squid/src/main/java/org/sonar/python/tree/TryStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/TryStatementImpl.java index a7f6dab11..4ac273687 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TryStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TryStatementImpl.java @@ -26,14 +26,14 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.FinallyClause; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.TryStatement; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.FinallyClause; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.TryStatement; public class TryStatementImpl extends PyTree implements TryStatement { private final Token tryKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/TupleImpl.java b/python-squid/src/main/java/org/sonar/python/tree/TupleImpl.java index 270006617..18a54f0b2 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TupleImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TupleImpl.java @@ -23,11 +23,11 @@ import java.util.List; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.Tuple; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.Tuple; public class TupleImpl extends PyTree implements Tuple { diff --git a/python-squid/src/main/java/org/sonar/python/tree/TupleParameterImpl.java b/python-squid/src/main/java/org/sonar/python/tree/TupleParameterImpl.java index 3791d9a07..05425df3f 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TupleParameterImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TupleParameterImpl.java @@ -21,11 +21,11 @@ import java.util.ArrayList; import java.util.List; -import org.sonar.python.api.tree.AnyParameter; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.TupleParameter; +import org.sonar.plugins.python.api.tree.AnyParameter; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.TupleParameter; public class TupleParameterImpl extends PyTree implements TupleParameter { diff --git a/python-squid/src/main/java/org/sonar/python/tree/TypeAnnotationImpl.java b/python-squid/src/main/java/org/sonar/python/tree/TypeAnnotationImpl.java index 439fbd992..6f8347e36 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/TypeAnnotationImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/TypeAnnotationImpl.java @@ -24,11 +24,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.TypeAnnotation; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.TypeAnnotation; +import org.sonar.plugins.python.api.tree.Tree; public class TypeAnnotationImpl extends PyTree implements TypeAnnotation { diff --git a/python-squid/src/main/java/org/sonar/python/tree/UnaryExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/UnaryExpressionImpl.java index 89e96c008..b1198f359 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/UnaryExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/UnaryExpressionImpl.java @@ -25,11 +25,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.UnaryExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.UnaryExpression; public class UnaryExpressionImpl extends PyTree implements UnaryExpression { diff --git a/python-squid/src/main/java/org/sonar/python/tree/WhileStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/WhileStatementImpl.java index caaa5c908..a07d68b8f 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/WhileStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/WhileStatementImpl.java @@ -25,13 +25,13 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.WhileStatement; public class WhileStatementImpl extends PyTree implements WhileStatement { diff --git a/python-squid/src/main/java/org/sonar/python/tree/WithStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/WithStatementImpl.java index 18234eba2..22cf16f4a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/WithStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/WithStatementImpl.java @@ -27,13 +27,13 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.WithItem; -import org.sonar.python.api.tree.WithStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.WithItem; +import org.sonar.plugins.python.api.tree.WithStatement; public class WithStatementImpl extends PyTree implements WithStatement { diff --git a/python-squid/src/main/java/org/sonar/python/tree/YieldExpressionImpl.java b/python-squid/src/main/java/org/sonar/python/tree/YieldExpressionImpl.java index 25b6e6e30..ae573412a 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/YieldExpressionImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/YieldExpressionImpl.java @@ -26,11 +26,11 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.YieldExpression; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.YieldExpression; public class YieldExpressionImpl extends PyTree implements YieldExpression { private final Token yieldKeyword; diff --git a/python-squid/src/main/java/org/sonar/python/tree/YieldStatementImpl.java b/python-squid/src/main/java/org/sonar/python/tree/YieldStatementImpl.java index 356ec99d5..fbac77444 100644 --- a/python-squid/src/main/java/org/sonar/python/tree/YieldStatementImpl.java +++ b/python-squid/src/main/java/org/sonar/python/tree/YieldStatementImpl.java @@ -24,11 +24,11 @@ import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.TreeVisitor; -import org.sonar.python.api.tree.YieldExpression; -import org.sonar.python.api.tree.YieldStatement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.TreeVisitor; +import org.sonar.plugins.python.api.tree.YieldExpression; +import org.sonar.plugins.python.api.tree.YieldStatement; public class YieldStatementImpl extends SimpleStatement implements YieldStatement { private final YieldExpression yieldExpression; diff --git a/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ControlFlowGraphTest.java b/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ControlFlowGraphTest.java index 4a8a722a3..cdb6ac554 100644 --- a/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ControlFlowGraphTest.java +++ b/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ControlFlowGraphTest.java @@ -25,10 +25,10 @@ import org.mockito.Mockito; import org.sonar.python.PythonFile; import org.sonar.python.PythonTestUtils; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; import org.sonar.python.cfg.PythonCfgBlock; import org.sonar.python.cfg.PythonCfgEndBlock; import org.sonar.python.cfg.PythonCfgSimpleBlock; diff --git a/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ExpectedCfgStructure.java b/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ExpectedCfgStructure.java index 2ccd759ee..074c80f53 100644 --- a/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ExpectedCfgStructure.java +++ b/python-squid/src/test/java/org/sonar/plugins/python/api/cfg/ExpectedCfgStructure.java @@ -34,16 +34,16 @@ import java.util.stream.Stream; import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.ListLiteral; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.ListLiteral; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.cfg.PythonCfgEndBlock; public class ExpectedCfgStructure { diff --git a/python-squid/src/test/java/org/sonar/python/tree/BaseTreeVisitorTest.java b/python-squid/src/test/java/org/sonar/plugins/python/api/tree/BaseTreeVisitorTest.java similarity index 88% rename from python-squid/src/test/java/org/sonar/python/tree/BaseTreeVisitorTest.java rename to python-squid/src/test/java/org/sonar/plugins/python/api/tree/BaseTreeVisitorTest.java index dcf1034d6..6e6c6d539 100644 --- a/python-squid/src/test/java/org/sonar/python/tree/BaseTreeVisitorTest.java +++ b/python-squid/src/test/java/org/sonar/plugins/python/api/tree/BaseTreeVisitorTest.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonar.python.tree; +package org.sonar.plugins.python.api.tree; import com.sonar.sslr.api.AstNode; import java.util.List; @@ -25,48 +25,10 @@ import javax.annotation.Nullable; import org.junit.Test; import org.sonar.python.api.PythonGrammar; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.AnyParameter; -import org.sonar.python.api.tree.AssertStatement; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.AwaitExpression; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.ComprehensionIf; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.DelStatement; -import org.sonar.python.api.tree.DictCompExpression; -import org.sonar.python.api.tree.ExecStatement; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.ListLiteral; -import org.sonar.python.api.tree.ComprehensionExpression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.PassStatement; -import org.sonar.python.api.tree.PrintStatement; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.ReprExpression; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.SliceExpression; -import org.sonar.python.api.tree.SliceItem; -import org.sonar.python.api.tree.StarredExpression; -import org.sonar.python.api.tree.SubscriptionExpression; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.api.tree.TupleParameter; -import org.sonar.python.api.tree.Tuple; -import org.sonar.python.api.tree.WithStatement; -import org.sonar.python.api.tree.YieldStatement; -import org.sonar.python.api.tree.Tree; import org.sonar.python.parser.RuleTest; +import org.sonar.python.tree.PythonTreeMaker; +import org.sonar.python.tree.StatementWithSeparator; +import org.sonar.python.tree.WhileStatementImpl; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.spy; diff --git a/python-squid/src/test/java/org/sonar/python/DocstringExtractorTest.java b/python-squid/src/test/java/org/sonar/python/DocstringExtractorTest.java index 21824e0bf..708337c7b 100644 --- a/python-squid/src/test/java/org/sonar/python/DocstringExtractorTest.java +++ b/python-squid/src/test/java/org/sonar/python/DocstringExtractorTest.java @@ -24,11 +24,12 @@ import java.util.Map; import java.util.Objects; import org.junit.Test; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Tree; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/PythonCheckTest.java b/python-squid/src/test/java/org/sonar/python/PythonCheckTest.java index 4fd18a5fd..443718921 100644 --- a/python-squid/src/test/java/org/sonar/python/PythonCheckTest.java +++ b/python-squid/src/test/java/org/sonar/python/PythonCheckTest.java @@ -22,9 +22,12 @@ import java.io.File; import java.util.List; import org.junit.Test; -import org.sonar.python.PythonCheck.PreciseIssue; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck.PreciseIssue; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.ReturnStatement; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/PythonCheckTreeTest.java b/python-squid/src/test/java/org/sonar/python/PythonCheckTreeTest.java index 1fc6e1939..ddfe94735 100644 --- a/python-squid/src/test/java/org/sonar/python/PythonCheckTreeTest.java +++ b/python-squid/src/test/java/org/sonar/python/PythonCheckTreeTest.java @@ -22,9 +22,12 @@ import java.io.File; import java.util.List; import org.junit.Test; -import org.sonar.python.PythonCheck.PreciseIssue; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonCheckTree; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck.PreciseIssue; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/PythonSubscriptionCheckTest.java b/python-squid/src/test/java/org/sonar/python/PythonSubscriptionCheckTest.java index 1e999dc64..751495d63 100644 --- a/python-squid/src/test/java/org/sonar/python/PythonSubscriptionCheckTest.java +++ b/python-squid/src/test/java/org/sonar/python/PythonSubscriptionCheckTest.java @@ -23,12 +23,15 @@ import java.util.Collections; import java.util.List; import org.junit.Test; -import org.sonar.python.PythonCheck.PreciseIssue; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonCheck.PreciseIssue; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/PythonTestUtils.java b/python-squid/src/test/java/org/sonar/python/PythonTestUtils.java index cb74c3f06..396aec78b 100644 --- a/python-squid/src/test/java/org/sonar/python/PythonTestUtils.java +++ b/python-squid/src/test/java/org/sonar/python/PythonTestUtils.java @@ -26,8 +26,8 @@ import java.util.List; import java.util.function.Predicate; import javax.annotation.CheckForNull; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.parser.PythonParser; import org.sonar.python.semantic.SymbolTableBuilder; import org.sonar.python.tree.PythonTreeMaker; diff --git a/python-squid/src/test/java/org/sonar/python/TokenLocationTest.java b/python-squid/src/test/java/org/sonar/python/TokenLocationTest.java index 7578b3ffb..4fb1f692c 100644 --- a/python-squid/src/test/java/org/sonar/python/TokenLocationTest.java +++ b/python-squid/src/test/java/org/sonar/python/TokenLocationTest.java @@ -24,7 +24,7 @@ import java.util.List; import java.util.stream.Collectors; import org.junit.Test; -import org.sonar.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Token; import org.sonar.python.lexer.PythonLexer; import org.sonar.python.tree.TokenImpl; diff --git a/python-squid/src/test/java/org/sonar/python/metrics/CognitiveComplexityVisitorTest.java b/python-squid/src/test/java/org/sonar/python/metrics/CognitiveComplexityVisitorTest.java index 72050224b..7d5f43717 100644 --- a/python-squid/src/test/java/org/sonar/python/metrics/CognitiveComplexityVisitorTest.java +++ b/python-squid/src/test/java/org/sonar/python/metrics/CognitiveComplexityVisitorTest.java @@ -24,15 +24,15 @@ import java.util.Map; import java.util.TreeMap; import org.junit.Test; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.SubscriptionVisitor; import org.sonar.python.TestPythonVisitorRunner; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import static org.fest.assertions.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/metrics/ComplexityVisitorTest.java b/python-squid/src/test/java/org/sonar/python/metrics/ComplexityVisitorTest.java index 364108f3d..e71b994b1 100644 --- a/python-squid/src/test/java/org/sonar/python/metrics/ComplexityVisitorTest.java +++ b/python-squid/src/test/java/org/sonar/python/metrics/ComplexityVisitorTest.java @@ -25,7 +25,7 @@ import java.nio.charset.StandardCharsets; import org.junit.Test; import org.sonar.python.PythonConfiguration; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.TestPythonVisitorRunner; import org.sonar.python.parser.PythonParser; import org.sonar.python.tree.PythonTreeMaker; diff --git a/python-squid/src/test/java/org/sonar/python/semantic/ClassSymbolTest.java b/python-squid/src/test/java/org/sonar/python/semantic/ClassSymbolTest.java index aa56a0967..f446f0b70 100644 --- a/python-squid/src/test/java/org/sonar/python/semantic/ClassSymbolTest.java +++ b/python-squid/src/test/java/org/sonar/python/semantic/ClassSymbolTest.java @@ -20,9 +20,9 @@ package org.sonar.python.semantic; import org.junit.Test; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.PythonTestUtils; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/semantic/FullyQualifiedNameTest.java b/python-squid/src/test/java/org/sonar/python/semantic/FullyQualifiedNameTest.java index 738469d42..771c94359 100644 --- a/python-squid/src/test/java/org/sonar/python/semantic/FullyQualifiedNameTest.java +++ b/python-squid/src/test/java/org/sonar/python/semantic/FullyQualifiedNameTest.java @@ -21,12 +21,12 @@ import javax.annotation.Nullable; import org.junit.Test; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.Tree; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.python.PythonTestUtils.getFirstChild; diff --git a/python-squid/src/test/java/org/sonar/python/semantic/SymbolTableBuilderTest.java b/python-squid/src/test/java/org/sonar/python/semantic/SymbolTableBuilderTest.java index 0c9f91ed0..fcbd71545 100644 --- a/python-squid/src/test/java/org/sonar/python/semantic/SymbolTableBuilderTest.java +++ b/python-squid/src/test/java/org/sonar/python/semantic/SymbolTableBuilderTest.java @@ -29,14 +29,14 @@ import org.junit.BeforeClass; import org.junit.Test; import org.sonar.python.PythonTestUtils; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.TestPythonVisitorRunner; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/semantic/UsageImplTest.java b/python-squid/src/test/java/org/sonar/python/semantic/UsageImplTest.java index cc24ee007..aabb841e6 100644 --- a/python-squid/src/test/java/org/sonar/python/semantic/UsageImplTest.java +++ b/python-squid/src/test/java/org/sonar/python/semantic/UsageImplTest.java @@ -21,7 +21,7 @@ import org.junit.Test; import org.mockito.Mockito; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/tree/PythonTreeMakerTest.java b/python-squid/src/test/java/org/sonar/python/tree/PythonTreeMakerTest.java index 81d3c2e63..b572b84d6 100644 --- a/python-squid/src/test/java/org/sonar/python/tree/PythonTreeMakerTest.java +++ b/python-squid/src/test/java/org/sonar/python/tree/PythonTreeMakerTest.java @@ -34,84 +34,85 @@ import java.util.function.Function; import java.util.stream.Collectors; import org.junit.Test; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; import org.sonar.python.api.PythonGrammar; import org.sonar.python.api.PythonPunctuator; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.AliasedName; -import org.sonar.python.api.tree.AnnotatedAssignment; -import org.sonar.python.api.tree.ArgList; -import org.sonar.python.api.tree.Argument; -import org.sonar.python.api.tree.AssertStatement; -import org.sonar.python.api.tree.AssignmentStatement; -import org.sonar.python.api.tree.AwaitExpression; -import org.sonar.python.api.tree.BinaryExpression; -import org.sonar.python.api.tree.BreakStatement; -import org.sonar.python.api.tree.CallExpression; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.CompoundAssignmentStatement; -import org.sonar.python.api.tree.ComprehensionExpression; -import org.sonar.python.api.tree.ComprehensionFor; -import org.sonar.python.api.tree.ComprehensionIf; -import org.sonar.python.api.tree.ConditionalExpression; -import org.sonar.python.api.tree.ContinueStatement; -import org.sonar.python.api.tree.Decorator; -import org.sonar.python.api.tree.DelStatement; -import org.sonar.python.api.tree.DictCompExpression; -import org.sonar.python.api.tree.DictionaryLiteral; -import org.sonar.python.api.tree.EllipsisExpression; -import org.sonar.python.api.tree.ElseClause; -import org.sonar.python.api.tree.ExceptClause; -import org.sonar.python.api.tree.ExecStatement; -import org.sonar.python.api.tree.Expression; -import org.sonar.python.api.tree.ExpressionList; -import org.sonar.python.api.tree.ExpressionStatement; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.ForStatement; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.GlobalStatement; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.ImportFrom; -import org.sonar.python.api.tree.ImportName; -import org.sonar.python.api.tree.ImportStatement; -import org.sonar.python.api.tree.InExpression; -import org.sonar.python.api.tree.IsExpression; -import org.sonar.python.api.tree.KeyValuePair; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.ListLiteral; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.NoneExpression; -import org.sonar.python.api.tree.NonlocalStatement; -import org.sonar.python.api.tree.NumericLiteral; -import org.sonar.python.api.tree.Parameter; -import org.sonar.python.api.tree.ParenthesizedExpression; -import org.sonar.python.api.tree.PassStatement; -import org.sonar.python.api.tree.PrintStatement; -import org.sonar.python.api.tree.QualifiedExpression; -import org.sonar.python.api.tree.RaiseStatement; -import org.sonar.python.api.tree.ReprExpression; -import org.sonar.python.api.tree.ReturnStatement; -import org.sonar.python.api.tree.SetLiteral; -import org.sonar.python.api.tree.SliceExpression; -import org.sonar.python.api.tree.SliceItem; -import org.sonar.python.api.tree.StarredExpression; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.StatementList; -import org.sonar.python.api.tree.StringElement; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.SubscriptionExpression; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; -import org.sonar.python.api.tree.TryStatement; -import org.sonar.python.api.tree.Tuple; -import org.sonar.python.api.tree.TupleParameter; -import org.sonar.python.api.tree.TypeAnnotation; -import org.sonar.python.api.tree.UnaryExpression; -import org.sonar.python.api.tree.WhileStatement; -import org.sonar.python.api.tree.WithItem; -import org.sonar.python.api.tree.WithStatement; -import org.sonar.python.api.tree.YieldExpression; -import org.sonar.python.api.tree.YieldStatement; +import org.sonar.plugins.python.api.tree.AliasedName; +import org.sonar.plugins.python.api.tree.AnnotatedAssignment; +import org.sonar.plugins.python.api.tree.ArgList; +import org.sonar.plugins.python.api.tree.Argument; +import org.sonar.plugins.python.api.tree.AssertStatement; +import org.sonar.plugins.python.api.tree.AssignmentStatement; +import org.sonar.plugins.python.api.tree.AwaitExpression; +import org.sonar.plugins.python.api.tree.BinaryExpression; +import org.sonar.plugins.python.api.tree.BreakStatement; +import org.sonar.plugins.python.api.tree.CallExpression; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.CompoundAssignmentStatement; +import org.sonar.plugins.python.api.tree.ComprehensionExpression; +import org.sonar.plugins.python.api.tree.ComprehensionFor; +import org.sonar.plugins.python.api.tree.ComprehensionIf; +import org.sonar.plugins.python.api.tree.ConditionalExpression; +import org.sonar.plugins.python.api.tree.ContinueStatement; +import org.sonar.plugins.python.api.tree.Decorator; +import org.sonar.plugins.python.api.tree.DelStatement; +import org.sonar.plugins.python.api.tree.DictCompExpression; +import org.sonar.plugins.python.api.tree.DictionaryLiteral; +import org.sonar.plugins.python.api.tree.EllipsisExpression; +import org.sonar.plugins.python.api.tree.ElseClause; +import org.sonar.plugins.python.api.tree.ExceptClause; +import org.sonar.plugins.python.api.tree.ExecStatement; +import org.sonar.plugins.python.api.tree.Expression; +import org.sonar.plugins.python.api.tree.ExpressionList; +import org.sonar.plugins.python.api.tree.ExpressionStatement; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.ForStatement; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.GlobalStatement; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.ImportFrom; +import org.sonar.plugins.python.api.tree.ImportName; +import org.sonar.plugins.python.api.tree.ImportStatement; +import org.sonar.plugins.python.api.tree.InExpression; +import org.sonar.plugins.python.api.tree.IsExpression; +import org.sonar.plugins.python.api.tree.KeyValuePair; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.ListLiteral; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.NoneExpression; +import org.sonar.plugins.python.api.tree.NonlocalStatement; +import org.sonar.plugins.python.api.tree.NumericLiteral; +import org.sonar.plugins.python.api.tree.Parameter; +import org.sonar.plugins.python.api.tree.ParenthesizedExpression; +import org.sonar.plugins.python.api.tree.PassStatement; +import org.sonar.plugins.python.api.tree.PrintStatement; +import org.sonar.plugins.python.api.tree.QualifiedExpression; +import org.sonar.plugins.python.api.tree.RaiseStatement; +import org.sonar.plugins.python.api.tree.ReprExpression; +import org.sonar.plugins.python.api.tree.ReturnStatement; +import org.sonar.plugins.python.api.tree.SetLiteral; +import org.sonar.plugins.python.api.tree.SliceExpression; +import org.sonar.plugins.python.api.tree.SliceItem; +import org.sonar.plugins.python.api.tree.StarredExpression; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.StatementList; +import org.sonar.plugins.python.api.tree.StringElement; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.SubscriptionExpression; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.TryStatement; +import org.sonar.plugins.python.api.tree.Tuple; +import org.sonar.plugins.python.api.tree.TupleParameter; +import org.sonar.plugins.python.api.tree.TypeAnnotation; +import org.sonar.plugins.python.api.tree.UnaryExpression; +import org.sonar.plugins.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.WithItem; +import org.sonar.plugins.python.api.tree.WithStatement; +import org.sonar.plugins.python.api.tree.YieldExpression; +import org.sonar.plugins.python.api.tree.YieldStatement; import org.sonar.python.parser.RuleTest; import static org.assertj.core.api.Assertions.assertThat; diff --git a/python-squid/src/test/java/org/sonar/python/tree/TreeUtilsTest.java b/python-squid/src/test/java/org/sonar/python/tree/TreeUtilsTest.java index c2510cbad..852681e02 100644 --- a/python-squid/src/test/java/org/sonar/python/tree/TreeUtilsTest.java +++ b/python-squid/src/test/java/org/sonar/python/tree/TreeUtilsTest.java @@ -28,17 +28,17 @@ import java.util.stream.Collectors; import org.junit.Test; import org.sonar.python.PythonConfiguration; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.IfStatement; -import org.sonar.python.api.tree.Name; -import org.sonar.python.api.tree.PassStatement; -import org.sonar.python.api.tree.Statement; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Tree.Kind; -import org.sonar.python.api.tree.WhileStatement; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.IfStatement; +import org.sonar.plugins.python.api.tree.Name; +import org.sonar.plugins.python.api.tree.PassStatement; +import org.sonar.plugins.python.api.tree.Statement; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Tree.Kind; +import org.sonar.plugins.python.api.tree.WhileStatement; import org.sonar.python.parser.PythonParser; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonChecks.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonChecks.java new file mode 100644 index 000000000..9f7b1607d --- /dev/null +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonChecks.java @@ -0,0 +1,65 @@ +/* + * SonarQube Python Plugin + * Copyright (C) 2011-2019 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.plugins.python; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.annotation.Nullable; +import org.sonar.api.batch.rule.CheckFactory; +import org.sonar.api.batch.rule.Checks; +import org.sonar.api.rule.RuleKey; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonCustomRuleRepository; + +public class PythonChecks { + private final CheckFactory checkFactory; + private List> checksByRepository = new ArrayList<>(); + + PythonChecks(CheckFactory checkFactory) { + this.checkFactory = checkFactory; + } + public PythonChecks addChecks(String repositoryKey, Iterable checkClass) { + checksByRepository.add(checkFactory.create(repositoryKey).addAnnotatedChecks(checkClass)); + + return this; + } + + public PythonChecks addCustomChecks(@Nullable PythonCustomRuleRepository[] customRuleRepositories) { + if (customRuleRepositories != null) { + for (PythonCustomRuleRepository ruleRepository : customRuleRepositories) { + addChecks(ruleRepository.repositoryKey(), ruleRepository.checkClasses()); + } + } + + return this; + } + + public List all() { + return checksByRepository.stream().flatMap(c -> c.all().stream()).collect(Collectors.toList()); + } + + @Nullable + public RuleKey ruleKey(PythonCheck check) { + return checksByRepository.stream().map(c -> c.ruleKey(check)).filter(Objects::nonNull).findFirst().orElse(null); + } + +} diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonHighlighter.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonHighlighter.java index 42e533885..5a6c5710e 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonHighlighter.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonHighlighter.java @@ -27,19 +27,19 @@ import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.highlighting.NewHighlighting; import org.sonar.api.batch.sensor.highlighting.TypeOfText; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.SubscriptionVisitor; import org.sonar.python.TokenLocation; import org.sonar.python.api.PythonKeyword; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.StringLiteral; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; -import org.sonar.python.api.tree.Trivia; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.StringLiteral; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Trivia; import static com.sonar.sslr.api.GenericTokenType.IDENTIFIER; diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java index 4b3b61d30..bd2f46c70 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonScanner.java @@ -28,7 +28,6 @@ import java.util.Set; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.TextRange; -import org.sonar.api.batch.rule.Checks; import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.issue.NewIssue; import org.sonar.api.batch.sensor.issue.NewIssueLocation; @@ -42,14 +41,14 @@ import org.sonar.api.utils.log.Loggers; import org.sonar.plugins.python.cpd.PythonCpdAnalyzer; import org.sonar.python.IssueLocation; -import org.sonar.python.PythonCheck; -import org.sonar.python.PythonCheck.PreciseIssue; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonCheck.PreciseIssue; import org.sonar.python.PythonConfiguration; import org.sonar.python.PythonFile; -import org.sonar.python.PythonSubscriptionCheck; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonSubscriptionCheck; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.SubscriptionVisitor; -import org.sonar.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FileInput; import org.sonar.python.metrics.FileLinesVisitor; import org.sonar.python.metrics.FileMetrics; import org.sonar.python.parser.PythonParser; @@ -62,12 +61,12 @@ public class PythonScanner { private final SensorContext context; private final Parser parser; private final List inputFiles; - private final Checks checks; + private final PythonChecks checks; private final FileLinesContextFactory fileLinesContextFactory; private final NoSonarFilter noSonarFilter; private final PythonCpdAnalyzer cpdAnalyzer; - public PythonScanner(SensorContext context, Checks checks, + public PythonScanner(SensorContext context, PythonChecks checks, FileLinesContextFactory fileLinesContextFactory, NoSonarFilter noSonarFilter, List inputFiles) { this.context = context; this.checks = checks; diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonSquidSensor.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonSquidSensor.java index 98481845a..1ed084e3f 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonSquidSensor.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/PythonSquidSensor.java @@ -22,29 +22,37 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import javax.annotation.Nullable; import org.sonar.api.batch.fs.FilePredicates; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.InputFile.Type; import org.sonar.api.batch.rule.CheckFactory; -import org.sonar.api.batch.rule.Checks; import org.sonar.api.batch.sensor.Sensor; import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.SensorDescriptor; import org.sonar.api.issue.NoSonarFilter; import org.sonar.api.measures.FileLinesContextFactory; -import org.sonar.python.PythonCheck; +import org.sonar.plugins.python.api.PythonCustomRuleRepository; import org.sonar.python.checks.CheckList; public final class PythonSquidSensor implements Sensor { - private final Checks checks; + private final PythonChecks checks; private final FileLinesContextFactory fileLinesContextFactory; private final NoSonarFilter noSonarFilter; + /** + * Constructor to be used by pico if no PythonCustomRuleRepository are to be found and injected. + */ public PythonSquidSensor(FileLinesContextFactory fileLinesContextFactory, CheckFactory checkFactory, NoSonarFilter noSonarFilter) { - this.checks = checkFactory - .create(CheckList.REPOSITORY_KEY) - .addAnnotatedChecks(CheckList.getChecks()); + this(fileLinesContextFactory, checkFactory, noSonarFilter, null); + } + + public PythonSquidSensor(FileLinesContextFactory fileLinesContextFactory, CheckFactory checkFactory, NoSonarFilter noSonarFilter, + @Nullable PythonCustomRuleRepository[] customRuleRepositories) { + this.checks = new PythonChecks(checkFactory) + .addChecks(CheckList.REPOSITORY_KEY, CheckList.getChecks()) + .addCustomChecks(customRuleRepositories); this.fileLinesContextFactory = fileLinesContextFactory; this.noSonarFilter = noSonarFilter; } diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SymbolVisitor.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SymbolVisitor.java index 86abb8d4e..ca78045b0 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SymbolVisitor.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/SymbolVisitor.java @@ -24,14 +24,14 @@ import java.util.List; import org.sonar.api.batch.sensor.symbol.NewSymbol; import org.sonar.api.batch.sensor.symbol.NewSymbolTable; -import org.sonar.python.api.tree.ClassDef; -import org.sonar.python.api.tree.FileInput; -import org.sonar.python.api.tree.FunctionDef; -import org.sonar.python.api.tree.LambdaExpression; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.ClassDef; +import org.sonar.plugins.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FunctionDef; +import org.sonar.plugins.python.api.tree.LambdaExpression; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.semantic.Symbol; import org.sonar.python.semantic.Usage; -import org.sonar.python.tree.BaseTreeVisitor; +import org.sonar.plugins.python.api.tree.BaseTreeVisitor; public class SymbolVisitor extends BaseTreeVisitor { diff --git a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzer.java b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzer.java index 6d5747378..cf1ea559c 100644 --- a/sonar-python-plugin/src/main/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzer.java +++ b/sonar-python-plugin/src/main/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzer.java @@ -25,11 +25,11 @@ import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.sensor.SensorContext; import org.sonar.api.batch.sensor.cpd.NewCpdTokens; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.TokenLocation; import org.sonar.python.api.PythonTokenType; -import org.sonar.python.api.tree.Token; -import org.sonar.python.api.tree.Tree; +import org.sonar.plugins.python.api.tree.Token; +import org.sonar.plugins.python.api.tree.Tree; import org.sonar.python.tree.TreeUtils; public class PythonCpdAnalyzer { diff --git a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/PythonSquidSensorTest.java b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/PythonSquidSensorTest.java index 05d59fcbf..c515da29f 100644 --- a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/PythonSquidSensorTest.java +++ b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/PythonSquidSensorTest.java @@ -23,7 +23,10 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Collection; +import java.util.Collections; import java.util.Iterator; +import java.util.List; +import javax.annotation.Nullable; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; @@ -53,6 +56,11 @@ import org.sonar.api.rule.RuleKey; import org.sonar.api.utils.Version; import org.sonar.api.utils.log.LogTester; +import org.sonar.check.Rule; +import org.sonar.check.RuleProperty; +import org.sonar.plugins.python.api.PythonCheck; +import org.sonar.plugins.python.api.PythonCustomRuleRepository; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.plugins.python.coverage.PythonCoverageSensor; import org.sonar.python.checks.CheckList; @@ -72,6 +80,36 @@ public class PythonSquidSensorTest { private static final SonarRuntime SONARLINT_RUNTIME = SonarRuntimeImpl.forSonarLint(SONARLINT_DETECTABLE_VERSION); + private static final PythonCustomRuleRepository[] CUSTOM_RULES = {new PythonCustomRuleRepository() { + @Override + public String repositoryKey() { + return "customKey"; + } + + @Override + public List checkClasses() { + return Collections.singletonList(MyCustomRule.class); + } + }}; + + @Rule( + key = "key", + name = "name", + description = "desc", + tags = {"bug"}) + public static class MyCustomRule implements PythonCheck { + @RuleProperty( + key = "customParam", + description = "Custom parameter", + defaultValue = "value") + public String customParam = "value"; + + @Override + public void scanFile(PythonVisitorContext visitorContext) { + // do nothing + } + } + private final File baseDir = new File("src/test/resources/org/sonar/plugins/python/squid-sensor").getAbsoluteFile(); private SensorContextTester context; @@ -179,26 +217,30 @@ public void test_issues() { IssueLocation issueLocation = issue.primaryLocation(); assertThat(issueLocation.inputComponent()).isEqualTo(inputFile); - if (issue.ruleKey().rule().equals("S134")) { - assertThat(issueLocation.message()).isEqualTo("Refactor this code to not nest more than 4 \"if\", \"for\", \"while\", \"try\" and \"with\" statements."); - assertThat(issueLocation.textRange()).isEqualTo(inputFile.newRange(7, 16, 7, 18)); - assertThat(issue.flows()).hasSize(4); - assertThat(issue.gap()).isNull(); - checkedIssues++; - } else if (issue.ruleKey().rule().equals(ONE_STATEMENT_PER_LINE_RULE_KEY)) { - assertThat(issueLocation.message()).isEqualTo("At most one statement is allowed per line, but 2 statements were found on this line."); - assertThat(issueLocation.textRange()).isEqualTo(inputFile.newRange(1, 0, 1, 50)); - assertThat(issue.flows()).isEmpty(); - assertThat(issue.gap()).isNull(); - checkedIssues++; - } else if (issue.ruleKey().rule().equals(FILE_COMPLEXITY_RULE_KEY)) { - assertThat(issueLocation.message()).isEqualTo("File has a complexity of 5 which is greater than 2 authorized."); - assertThat(issueLocation.textRange()).isNull(); - assertThat(issue.flows()).isEmpty(); - assertThat(issue.gap()).isEqualTo(3.0); - checkedIssues++; - } else { - throw new IllegalStateException(); + switch (issue.ruleKey().rule()) { + case "S134": + assertThat(issueLocation.message()).isEqualTo("Refactor this code to not nest more than 4 \"if\", \"for\", \"while\", \"try\" and \"with\" statements."); + assertThat(issueLocation.textRange()).isEqualTo(inputFile.newRange(7, 16, 7, 18)); + assertThat(issue.flows()).hasSize(4); + assertThat(issue.gap()).isNull(); + checkedIssues++; + break; + case ONE_STATEMENT_PER_LINE_RULE_KEY: + assertThat(issueLocation.message()).isEqualTo("At most one statement is allowed per line, but 2 statements were found on this line."); + assertThat(issueLocation.textRange()).isEqualTo(inputFile.newRange(1, 0, 1, 50)); + assertThat(issue.flows()).isEmpty(); + assertThat(issue.gap()).isNull(); + checkedIssues++; + break; + case FILE_COMPLEXITY_RULE_KEY: + assertThat(issueLocation.message()).isEqualTo("File has a complexity of 5 which is greater than 2 authorized."); + assertThat(issueLocation.textRange()).isNull(); + assertThat(issue.flows()).isEmpty(); + assertThat(issue.gap()).isEqualTo(3.0); + checkedIssues++; + break; + default: + throw new IllegalStateException(); } } @@ -259,17 +301,24 @@ public void cancelled_analysis() { InputFile inputFile = inputFile(FILE_1); activeRules = (new ActiveRulesBuilder()).build(); context.setCancelled(true); - sensor().execute(context); + sensor(null).execute(context); assertThat(context.measure(inputFile.key(), CoreMetrics.NCLOC)).isNull(); assertThat(context.allAnalysisErrors()).isEmpty(); } private PythonSquidSensor sensor() { + return sensor(CUSTOM_RULES); + } + + private PythonSquidSensor sensor(@Nullable PythonCustomRuleRepository[] customRuleRepositories) { FileLinesContextFactory fileLinesContextFactory = mock(FileLinesContextFactory.class); FileLinesContext fileLinesContext = mock(FileLinesContext.class); when(fileLinesContextFactory.createFor(Mockito.any(InputFile.class))).thenReturn(fileLinesContext); CheckFactory checkFactory = new CheckFactory(activeRules); - return new PythonSquidSensor(fileLinesContextFactory, checkFactory, new NoSonarFilter()); + if(customRuleRepositories == null) { + return new PythonSquidSensor(fileLinesContextFactory, checkFactory, new NoSonarFilter()); + } + return new PythonSquidSensor(fileLinesContextFactory, checkFactory, new NoSonarFilter(), customRuleRepositories); } private InputFile inputFile(String name) { diff --git a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/SymbolVisitorTest.java b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/SymbolVisitorTest.java index bf38d8b78..9b1c83ea7 100644 --- a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/SymbolVisitorTest.java +++ b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/SymbolVisitorTest.java @@ -30,9 +30,9 @@ import org.sonar.api.batch.fs.internal.DefaultTextRange; import org.sonar.api.batch.fs.internal.TestInputFileBuilder; import org.sonar.api.batch.sensor.internal.SensorContextTester; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.TestPythonVisitorRunner; -import org.sonar.python.api.tree.FileInput; +import org.sonar.plugins.python.api.tree.FileInput; import static org.assertj.core.api.Assertions.assertThat; diff --git a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzerTest.java b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzerTest.java index 03eed32c3..3a591fcc4 100644 --- a/sonar-python-plugin/src/test/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzerTest.java +++ b/sonar-python-plugin/src/test/java/org/sonar/plugins/python/cpd/PythonCpdAnalyzerTest.java @@ -32,7 +32,7 @@ import org.sonar.api.batch.sensor.internal.SensorContextTester; import org.sonar.plugins.python.Python; import org.sonar.plugins.python.TestUtils; -import org.sonar.python.PythonVisitorContext; +import org.sonar.plugins.python.api.PythonVisitorContext; import org.sonar.python.TestPythonVisitorRunner; import static java.nio.charset.StandardCharsets.UTF_8;