From 3d66b318eca739ffd25ddd7675cb5d55d18121d3 Mon Sep 17 00:00:00 2001 From: Marc-Philip Date: Mon, 10 Jun 2024 22:31:15 +0200 Subject: [PATCH] avoid using pkg_resources This is deprecated in python 3.12. Also, improve file handling --- pio-scripts/auto_firmware_version.py | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/pio-scripts/auto_firmware_version.py b/pio-scripts/auto_firmware_version.py index f169f61..26e1bd6 100644 --- a/pio-scripts/auto_firmware_version.py +++ b/pio-scripts/auto_firmware_version.py @@ -3,33 +3,27 @@ # Copyright (C) 2022 Thomas Basler and others # import os -import pkg_resources Import("env") -required_pkgs = {'dulwich'} -installed_pkgs = {pkg.key for pkg in pkg_resources.working_set} -missing_pkgs = required_pkgs - installed_pkgs - -if missing_pkgs: +try: + from dulwich import porcelain +except ModuleNotFoundError: env.Execute('"$PYTHONEXE" -m pip install dulwich') - -from dulwich import porcelain + from dulwich import porcelain def updateFileIfChanged(filename, content): mustUpdate = True try: - fp = open(filename, "rb") - if fp.read() == content: - mustUpdate = False - fp.close() + with open(filename, "rb") as fp: + if fp.read() == content: + mustUpdate = False except: pass if mustUpdate: - fp = open(filename, "wb") - fp.write(content) - fp.close() + with open(filename, "wb") as fp: + fp.write(content) return mustUpdate