Loading generateChangemarks/changemarks.py +33 −13 Original line number Diff line number Diff line Loading @@ -362,14 +362,13 @@ https://forge.etsi.org/rep/cdm/pipeline-scripts/-/blob/main/common/Dockerfile.st logging.debug(f"Looking at changes in {patched_file.source_file}") lines_added = 0 lines_removed = 0 previous_change_lines_added = 0 for change in patched_file: logging.debug(f'Change from patch details: source_start: {change.source_start} - target_start: {change.target_start}') while index_source < change.source_start: if mdLines[index_source-1].startswith("#"): spec_with_changes.append((mdLines[index_source-1]+"\n\n", False)) spec_with_changes.append((mdLines[index_source-1].strip()+"\n\n", False)) else: spec_with_changes.append((mdLines[index_source - 1]+"\n", False)) spec_with_changes.append((mdLines[index_source-1].strip()+"\n", False)) index_source += 1 # Sanity check Loading @@ -393,15 +392,22 @@ https://forge.etsi.org/rep/cdm/pipeline-scripts/-/blob/main/common/Dockerfile.st change_lines_removed += 1 else: if line.value.startswith("#"): spec_with_changes.append((line.value+"\n\n", False)) spec_with_changes.append((line.value.strip()+"\n\n", False)) else: spec_with_changes.append((line.value + "\n", False)) spec_with_changes.append((line.value.strip() + "\n", False)) #spec_with_changes.append((mdLines[index_source-1], False)) index_source += 1 lines_added += change_lines_added lines_removed += change_lines_removed while index_source < len(mdLines): if mdLines[index_source - 1].startswith("#"): spec_with_changes.append((mdLines[index_source - 1].strip() + "\n\n", False)) else: spec_with_changes.append((mdLines[index_source - 1].strip() + "\n", False)) index_source += 1 logging.debug(f'Applied changes. Total added lines: {lines_added}.Total removed lines {lines_removed}') return spec_with_changes Loading Loading @@ -458,9 +464,9 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st _taskID = progress.add_task('[blue]Find clauses with changes', start=False, total=0) clauseregex = re.compile('^#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w*(\.\d+)*).*') removedclauseregex = re.compile('^\~\~#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+\s\w*(\.\d+)*).*') addedclauseregex = re.compile('^\<span\sclass\=\"underline\"\>#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+\s\w*(\.\d+)*).*') clauseregex = re.compile('^#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+(\s\w*)*(\.\d+)*).*') removedclauseregex = re.compile('^\~\~#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+(\s\w*)*(\.\d+)*).*') addedclauseregex = re.compile('^\<span\sclass\=\"underline\"\>#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+(\s\w*)*(\.\d+)*).*') clauses: list[Clause] = [] changed_clauses: list[Clause] = [] Loading @@ -479,6 +485,7 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st def checkClause(_matches): nonlocal clause nonlocal changeInClause nonlocal change if index - 2 == clause.from_id: # It is a subclause clause.from_id = index Loading @@ -490,13 +497,18 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st if changeInClause: changed_clauses.append(clause) clause = Clause(line, index, index, _matches[0][0]) changeInClause = False changeInClause = change index = 1 ignoreRemovedmatches = False ignoreAddedmatches = False inCode = False for line, change in mdLines_changes: if change: changeInClause = True if line.startswith('#') or line.startswith("~~#") or line.startswith("<span class=\"underline\">#"): if line.startswith(("```", "<span class=\"underline\">```")): inCode = not inCode if line.startswith(('#', "~~#", "<span class=\"underline\">#"), 0) and not inCode: matches = re.findall(clauseregex, line) # Match heading removedmatches = re.findall(removedclauseregex, line) # Match removed heading addedmatches = re.findall(addedclauseregex, line) # Match removed heading Loading @@ -504,16 +516,24 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st if matches: # It may be the end of the clause or the start of a subclause checkClause(matches) elif removedmatches: if not ignoreRemovedmatches: checkClause(removedmatches) ignoreAddedmatches = True else: ignoreRemovedmatches = False elif addedmatches: if not ignoreAddedmatches: checkClause(addedmatches) ignoreRemovedmatches = True else: ignoreAddedmatches = False else: # it is last clause print("Unknown heading") index = index + 1 # Append last clause (usually History) clause.to_id = index - 1 clause.to_id = len(mdLines_changes) - 1 clauses.append(clause) if changeInClause: changed_clauses.append(clause) Loading Loading
generateChangemarks/changemarks.py +33 −13 Original line number Diff line number Diff line Loading @@ -362,14 +362,13 @@ https://forge.etsi.org/rep/cdm/pipeline-scripts/-/blob/main/common/Dockerfile.st logging.debug(f"Looking at changes in {patched_file.source_file}") lines_added = 0 lines_removed = 0 previous_change_lines_added = 0 for change in patched_file: logging.debug(f'Change from patch details: source_start: {change.source_start} - target_start: {change.target_start}') while index_source < change.source_start: if mdLines[index_source-1].startswith("#"): spec_with_changes.append((mdLines[index_source-1]+"\n\n", False)) spec_with_changes.append((mdLines[index_source-1].strip()+"\n\n", False)) else: spec_with_changes.append((mdLines[index_source - 1]+"\n", False)) spec_with_changes.append((mdLines[index_source-1].strip()+"\n", False)) index_source += 1 # Sanity check Loading @@ -393,15 +392,22 @@ https://forge.etsi.org/rep/cdm/pipeline-scripts/-/blob/main/common/Dockerfile.st change_lines_removed += 1 else: if line.value.startswith("#"): spec_with_changes.append((line.value+"\n\n", False)) spec_with_changes.append((line.value.strip()+"\n\n", False)) else: spec_with_changes.append((line.value + "\n", False)) spec_with_changes.append((line.value.strip() + "\n", False)) #spec_with_changes.append((mdLines[index_source-1], False)) index_source += 1 lines_added += change_lines_added lines_removed += change_lines_removed while index_source < len(mdLines): if mdLines[index_source - 1].startswith("#"): spec_with_changes.append((mdLines[index_source - 1].strip() + "\n\n", False)) else: spec_with_changes.append((mdLines[index_source - 1].strip() + "\n", False)) index_source += 1 logging.debug(f'Applied changes. Total added lines: {lines_added}.Total removed lines {lines_removed}') return spec_with_changes Loading Loading @@ -458,9 +464,9 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st _taskID = progress.add_task('[blue]Find clauses with changes', start=False, total=0) clauseregex = re.compile('^#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w*(\.\d+)*).*') removedclauseregex = re.compile('^\~\~#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+\s\w*(\.\d+)*).*') addedclauseregex = re.compile('^\<span\sclass\=\"underline\"\>#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+\s\w*(\.\d+)*).*') clauseregex = re.compile('^#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+(\s\w*)*(\.\d+)*).*') removedclauseregex = re.compile('^\~\~#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+(\s\w*)*(\.\d+)*).*') addedclauseregex = re.compile('^\<span\sclass\=\"underline\"\>#+\s(\d+(\.\d+)*|Annex \w(\.\d+)*|\w+(\s\w*)*(\.\d+)*).*') clauses: list[Clause] = [] changed_clauses: list[Clause] = [] Loading @@ -479,6 +485,7 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st def checkClause(_matches): nonlocal clause nonlocal changeInClause nonlocal change if index - 2 == clause.from_id: # It is a subclause clause.from_id = index Loading @@ -490,13 +497,18 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st if changeInClause: changed_clauses.append(clause) clause = Clause(line, index, index, _matches[0][0]) changeInClause = False changeInClause = change index = 1 ignoreRemovedmatches = False ignoreAddedmatches = False inCode = False for line, change in mdLines_changes: if change: changeInClause = True if line.startswith('#') or line.startswith("~~#") or line.startswith("<span class=\"underline\">#"): if line.startswith(("```", "<span class=\"underline\">```")): inCode = not inCode if line.startswith(('#', "~~#", "<span class=\"underline\">#"), 0) and not inCode: matches = re.findall(clauseregex, line) # Match heading removedmatches = re.findall(removedclauseregex, line) # Match removed heading addedmatches = re.findall(addedclauseregex, line) # Match removed heading Loading @@ -504,16 +516,24 @@ def find_clauses_with_changes(progress: Progress, mdLines_changes: list[Tuple[st if matches: # It may be the end of the clause or the start of a subclause checkClause(matches) elif removedmatches: if not ignoreRemovedmatches: checkClause(removedmatches) ignoreAddedmatches = True else: ignoreRemovedmatches = False elif addedmatches: if not ignoreAddedmatches: checkClause(addedmatches) ignoreRemovedmatches = True else: ignoreAddedmatches = False else: # it is last clause print("Unknown heading") index = index + 1 # Append last clause (usually History) clause.to_id = index - 1 clause.to_id = len(mdLines_changes) - 1 clauses.append(clause) if changeInClause: changed_clauses.append(clause) Loading