You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by ke...@apache.org on 2021/09/08 07:14:01 UTC

[skywalking-eyes] branch main updated: Honor Python's coding directive (#68)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git


The following commit(s) were added to refs/heads/main by this push:
     new 785bb7f  Honor Python's coding directive (#68)
785bb7f is described below

commit 785bb7f3810572d6912666b4f64bad28e4360799
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Wed Sep 8 15:13:56 2021 +0800

    Honor Python's coding directive (#68)
---
 assets/languages.yaml       |  4 ++--
 assets/styles.yaml          |  7 +++++++
 pkg/comments/config_test.go |  2 +-
 pkg/header/fix_test.go      | 34 +++++++++++++++++++++++++++++++++-
 4 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/assets/languages.yaml b/assets/languages.yaml
index 44222a4..00e710b 100644
--- a/assets/languages.yaml
+++ b/assets/languages.yaml
@@ -1097,7 +1097,7 @@ Cython:
   codemirror_mode: python
   codemirror_mime_type: text/x-cython
   language_id: 79
-  comment_style_id: Hashtag
+  comment_style_id: PythonStyle
 D:
   type: programming
   color: "#ba595e"
@@ -4441,7 +4441,7 @@ Python:
     - python3
     - rusthon
   language_id: 303
-  comment_style_id: Hashtag
+  comment_style_id: PythonStyle
 Python console:
   type: programming
   group: Python
diff --git a/assets/styles.yaml b/assets/styles.yaml
index 6d971f2..5a784c8 100644
--- a/assets/styles.yaml
+++ b/assets/styles.yaml
@@ -102,3 +102,10 @@
   start: "'"
   middle: "'"
   end: "'"
+
+- id: PythonStyle
+  # (interpreter binary and encoding comment) | (only interpreter binary) | (only encoding comment)
+  after: '(?m)(^*#!.+$\n^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+).*$)|(^*#!.+$)|(^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+).*$)'
+  start: '#'
+  middle: '#'
+  end: '#'
diff --git a/pkg/comments/config_test.go b/pkg/comments/config_test.go
index ae3367f..b967fd5 100644
--- a/pkg/comments/config_test.go
+++ b/pkg/comments/config_test.go
@@ -52,7 +52,7 @@ func TestCommentStyle(t *testing.T) {
 		commentStyleID string
 	}{
 		{filename: "Test.java", commentStyleID: "SlashAsterisk"},
-		{filename: "Test.py", commentStyleID: "Hashtag"},
+		{filename: "Test.py", commentStyleID: "PythonStyle"},
 	}
 	for _, test := range tests {
 		t.Run(test.filename, func(t *testing.T) {
diff --git a/pkg/header/fix_test.go b/pkg/header/fix_test.go
index e8dce75..d98f36e 100644
--- a/pkg/header/fix_test.go
+++ b/pkg/header/fix_test.go
@@ -89,7 +89,7 @@ func TestRewriteContent(t *testing.T) {
 print_string "hello worlds!\n";;
 `},
 		{
-			name:  "Python with Shebang",
+			name:  "Python with interpreter binary",
 			style: comments.FileCommentStyle("test.py"),
 			content: `#!/usr/bin/env python3
 if __name__ == '__main__':
@@ -104,6 +104,38 @@ if __name__ == '__main__':
     print('Hello World')
 `},
 		{
+			name:  "Python with interpreter binary and encoding",
+			style: comments.FileCommentStyle("test.py"),
+			content: `#!/usr/bin/env python3
+# -*- coding: latin-1 -*-
+if __name__ == '__main__':
+    print('Hello World')
+`,
+			licenseHeader: getLicenseHeader("test.py", t.Error),
+			expectedContent: `#!/usr/bin/env python3
+# -*- coding: latin-1 -*-
+# Apache License 2.0
+#   http://www.apache.org/licenses/LICENSE-2.0
+# Apache License 2.0
+if __name__ == '__main__':
+    print('Hello World')
+`},
+		{
+			name:  "Python with encoding",
+			style: comments.FileCommentStyle("test.py"),
+			content: `# -*- coding: latin-1 -*-
+if __name__ == '__main__':
+    print('Hello World')
+`,
+			licenseHeader: getLicenseHeader("test.py", t.Error),
+			expectedContent: `# -*- coding: latin-1 -*-
+# Apache License 2.0
+#   http://www.apache.org/licenses/LICENSE-2.0
+# Apache License 2.0
+if __name__ == '__main__':
+    print('Hello World')
+`},
+		{
 			name:  "Python",
 			style: comments.FileCommentStyle("test.py"),
 			content: `if __name__ == '__main__':