Fix missing syntax file error

This commit is contained in:
alstr
2021-03-30 12:28:04 +01:00
parent 48b6982095
commit be9518bf21

20
main.py
View File

@@ -11,8 +11,6 @@ from ruamel.yaml import YAML
import hashlib import hashlib
from enum import Enum from enum import Enum
import fallback_parser
class LineStatus(Enum): class LineStatus(Enum):
"""Represents the status of a line in a diff file.""" """Represents the status of a line in a diff file."""
@@ -185,11 +183,16 @@ class TodoParser(object):
languages_data = languages_request.text languages_data = languages_request.text
yaml = YAML(typ='safe') yaml = YAML(typ='safe')
self.languages_dict = yaml.load(languages_data) self.languages_dict = yaml.load(languages_data)
else:
raise Exception('Cannot retrieve languages data. Operation will abort.')
# Load the comment syntax data for identifying comments. # Load the comment syntax data for identifying comments.
with open('syntax.json', mode='r') as syntax_file: syntax_url = 'https://raw.githubusercontent.com/alstr/todo-to-issue-action/master/syntax.json'
syntax_dict = json.loads(syntax_file.read()) syntax_request = requests.get(url=syntax_url)
self.syntax_dict = syntax_dict if syntax_request.status_code == 200:
self.syntax_dict = syntax_request.json()
else:
raise Exception('Cannot retrieve syntax data. Operation will abort.')
# noinspection PyTypeChecker # noinspection PyTypeChecker
def parse(self, diff_file): def parse(self, diff_file):
@@ -207,6 +210,7 @@ class TodoParser(object):
last_end = file_hunk.end() last_end = file_hunk.end()
diff_file.seek(0) diff_file.seek(0)
extracted_file_hunks.append(diff_file.read()[last_end:]) extracted_file_hunks.append(diff_file.read()[last_end:])
diff_file.close()
code_blocks = [] code_blocks = []
prev_block = None prev_block = None
@@ -311,7 +315,6 @@ class TodoParser(object):
def _get_file_details(self, file): def _get_file_details(self, file):
"""Try and get the markdown language and comment syntax data for the given file.""" """Try and get the markdown language and comment syntax data for the given file."""
file_name, extension = os.path.splitext(os.path.basename(file)) file_name, extension = os.path.splitext(os.path.basename(file))
if self.languages_dict:
for language_name in self.languages_dict: for language_name in self.languages_dict:
if ('extensions' in self.languages_dict[language_name] if ('extensions' in self.languages_dict[language_name]
and extension in self.languages_dict[language_name]['extensions']): and extension in self.languages_dict[language_name]['extensions']):
@@ -444,10 +447,7 @@ class TodoParser(object):
if __name__ == "__main__": if __name__ == "__main__":
if os.getenv('INPUT_COMMENT_MARKER') and os.getenv('INPUT_LABEL'): if os.getenv('INPUT_BEFORE') != '0000000000000000000000000000000000000000':
# The user doesn't want to use the v3.x parser for whatever reason.
fallback_parser.main()
elif os.getenv('INPUT_BEFORE') != '0000000000000000000000000000000000000000':
# Create a basic client for communicating with GitHub, automatically initialised with environment variables. # Create a basic client for communicating with GitHub, automatically initialised with environment variables.
client = GitHubClient() client = GitHubClient()
# Get the diff from the last pushed commit. # Get the diff from the last pushed commit.