478 @param report reference to the report object |
478 @param report reference to the report object |
479 @type BlackReport |
479 @type BlackReport |
480 @param relSrc name of the file relative to the project (defaults to "") |
480 @param relSrc name of the file relative to the project (defaults to "") |
481 @type str (optional) |
481 @type str (optional) |
482 """ |
482 """ |
483 then = datetime.datetime.utcfromtimestamp(src.stat().st_mtime) |
483 then = datetime.datetime.fromtimestamp( |
|
484 src.stat().st_mtime, tz=datetime.timezone.utc |
|
485 ) |
484 with open(src, "rb") as buf: |
486 with open(src, "rb") as buf: |
485 srcContents, _, _ = black.decode_bytes(buf.read()) |
487 srcContents, _, _ = black.decode_bytes(buf.read()) |
486 try: |
488 try: |
487 dstContents = black.format_file_contents(srcContents, fast=fast, mode=mode) |
489 dstContents = black.format_file_contents(srcContents, fast=fast, mode=mode) |
488 except black.NothingChanged: |
490 except black.NothingChanged: |
489 report.done(src, black.Changed.NO) |
491 report.done(src, black.Changed.NO) |
490 return |
492 return |
491 |
493 |
492 fileName = relSrc if bool(relSrc) else str(src) |
494 fileName = relSrc if bool(relSrc) else str(src) |
493 |
495 |
494 now = datetime.datetime.utcnow() |
496 now = datetime.datetime.now(tz=datetime.timezone.utc) |
495 srcName = f"{fileName}\t{then} +0000" |
497 srcName = f"{fileName}\t{then} +0000" |
496 dstName = f"{fileName}\t{now} +0000" |
498 dstName = f"{fileName}\t{now} +0000" |
497 diffContents = black.diff(srcContents, dstContents, srcName, dstName) |
499 diffContents = black.diff(srcContents, dstContents, srcName, dstName) |
498 report.done(src, black.Changed.YES, diff=diffContents) |
500 report.done(src, black.Changed.YES, diff=diffContents) |
499 |
501 |