Hello Lehua,

On Wed, Jul 12 2023, Lehua Ding wrote:
> Hi,
>
> This tiny patch add --append option to mklog.py that support add generated
> ChangeLog to the corresponding patch file. With this option there is no need
> to manually copy the generated ChangeLog to the patch file. e.g.:
>
> Run `mklog.py -a /path/to/this/patch` will add the generated ChangeLog
>
> ```
> contrib/ChangeLog:
>
>       * mklog.py:
> ```

this patch caused flake8 to complain about contrib/mklog.py:

$ flake8 contrib/mklog.py
contrib/mklog.py:377:80: E501 line too long (85 > 79 characters)
contrib/mklog.py:388:26: E127 continuation line over-indented for visual indent
contrib/mklog.py:388:36: W605 invalid escape sequence '\s'
contrib/mklog.py:388:40: W605 invalid escape sequence '\s'
contrib/mklog.py:388:44: W605 invalid escape sequence '\s'
contrib/mklog.py:388:47: W605 invalid escape sequence '\|'
contrib/mklog.py:388:49: W605 invalid escape sequence '\s'
contrib/mklog.py:388:51: W605 invalid escape sequence '\d'
contrib/mklog.py:388:54: W605 invalid escape sequence '\s'
contrib/mklog.py:388:58: W605 invalid escape sequence '\-'

Can you please have a look and ideally fix the issues?

Thanks,

Martin


>
> to the right place of the /path/to/this/patch file.
>
> Best,
> Lehua
>
> contrib/ChangeLog:
>
>       * mklog.py: Add --append option.
>
> ---
>  contrib/mklog.py | 27 ++++++++++++++++++++++++++-
>  1 file changed, 26 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/mklog.py b/contrib/mklog.py
> index 777212c98d7..26230b9b4f2 100755
> --- a/contrib/mklog.py
> +++ b/contrib/mklog.py
> @@ -358,6 +358,8 @@ if __name__ == '__main__':
>                               'file')
>      parser.add_argument('--update-copyright', action='store_true',
>                          help='Update copyright in ChangeLog files')
> +    parser.add_argument('-a', '--append', action='store_true',
> +                        help='Append the generate ChangeLog to the patch 
> file')
>      args = parser.parse_args()
>      if args.input == '-':
>          args.input = None
> @@ -370,7 +372,30 @@ if __name__ == '__main__':
>      else:
>          output = generate_changelog(data, args.no_functions,
>                                      args.fill_up_bug_titles, args.pr_numbers)
> -        if args.changelog:
> +        if args.append:
> +            if (not args.input):
> +                raise Exception("`-a or --append` option not support 
> standard input")
> +            lines = []
> +            with open(args.input, 'r', newline='\n') as f:
> +                # 1 -> not find the possible start of diff log
> +                # 2 -> find the possible start of diff log
> +                # 3 -> finish add ChangeLog to the patch file
> +                maybe_diff_log = 1
> +                for line in f:
> +                    if maybe_diff_log == 1 and line == "---\n":
> +                        maybe_diff_log = 2
> +                    elif maybe_diff_log == 2 and \
> +                         re.match("\s[^\s]+\s+\|\s\d+\s[+\-]+\n", line):
> +                        lines += [output, "---\n", line]
> +                        maybe_diff_log = 3
> +                    else:
> +                        # the possible start is not the true start.
> +                        if maybe_diff_log == 2:
> +                            maybe_diff_log = 1
> +                        lines.append(line)
> +            with open(args.input, "w") as f:
> +                f.writelines(lines)
> +        elif args.changelog:
>              lines = open(args.changelog).read().split('\n')
>              start = list(takewhile(skip_line_in_changelog, lines))
>              end = lines[len(start):]
> -- 
> 2.36.1

Reply via email to