Skip to content

Commit f3600bb

Browse files
author
Daniel Reigada
committed
Fix exception when issues has no line
1 parent d74b478 commit f3600bb

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/main/scala/codacy/pylint/Pylint.scala

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,25 @@ object Pylint extends Tool {
5454
private implicit lazy val writer = Json.reads[Issue]
5555

5656
private def parseLine(line: String) = {
57-
val LineRegex = """(.*?)###(.*?)###(.*?)###(.*?)""".r
57+
val LineRegex = """(.*?)###(\d*?)###(.*?)###(.*?)""".r
58+
59+
def createIssue(filename: String, lineNumber: String, message: String, patternId: String) = {
60+
// If the pylint returns no line put the issue in the first line
61+
val issueLine = if (lineNumber.nonEmpty) lineNumber.toInt else 1
62+
Issue(SourcePath(filename),
63+
ResultMessage(message),
64+
PatternId(patternId),
65+
ResultLine(issueLine))
66+
}
67+
5868
line match {
5969
case LineRegex(filename, lineNumber, message, patternId) if message.contains("invalid syntax") =>
6070
val fileError = FileError(SourcePath(filename),
6171
Option(ErrorMessage(message)))
62-
val issue = Issue(SourcePath(filename),
63-
ResultMessage(message),
64-
PatternId(patternId),
65-
ResultLine(lineNumber.toInt))
72+
val issue = createIssue(filename, lineNumber, message, patternId)
6673
Option(List(fileError, issue))
6774
case LineRegex(filename, lineNumber, message, patternId) =>
68-
Option(List(Issue(SourcePath(filename),
69-
ResultMessage(message),
70-
PatternId(patternId),
71-
ResultLine(lineNumber.toInt))))
75+
Option(List(createIssue(filename, lineNumber, message, patternId)))
7276
case _ =>
7377
Option.empty
7478
}

0 commit comments

Comments
 (0)