SolarManager unter Versionsverwaltung
Erster Stand der Hintergrundprozesse, die auf der Synology unter /volume1/homes/wagner/SolarManager laufen: der Manager selbst, die Sammler je Geraet, die MQTT-Bruecke, der Wecker und - neu hinzugezogen - der AutoAction-Runner, der als Hintergrundprozess hierher gehoert und nicht ins Web-Verzeichnis. Zugangsdaten stehen nicht mehr im Quelltext, sondern in config.ini, die nicht mit eingecheckt wird. Vorlage ist config.ini.example, gelesen wird sie von konfig.py. Betroffen waren solarManager.py (Datenbank und Wattpilot), zeit.py, gatherWaterData.py, wecker.py und skoda_testdaten.py, das sich das Passwort bisher aus dem Quelltext eines anderen Moduls herausgesucht hat. Die Kia-Anbindung ist mit dem Fahrzeug entfallen: kiaTest.py, gatherCarData.py und hyundai_kia_connect_api sind nicht mehr dabei, ebenso gatherInverterData.py, auf das nur noch eine auskommentierte Zeile zeigte. Die mitgelieferten Bibliotheken bleiben im Repository - die NAS hat kein pip, sie muessen neben den Skripten liegen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# Protocol Buffers - Google's data interchange format
|
||||
# Copyright 2008 Google Inc. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style
|
||||
# license that can be found in the LICENSE file or at
|
||||
# https://developers.google.com/open-source/licenses/bsd
|
||||
|
||||
"""Protobuf Runtime versions and validators.
|
||||
|
||||
It should only be accessed by Protobuf gencodes and tests. DO NOT USE it
|
||||
elsewhere.
|
||||
"""
|
||||
|
||||
__author__ = 'shaod@google.com (Dennis Shao)'
|
||||
|
||||
from enum import Enum
|
||||
import os
|
||||
|
||||
|
||||
class Domain(Enum):
|
||||
GOOGLE_INTERNAL = 1
|
||||
PUBLIC = 2
|
||||
|
||||
|
||||
class VersionError(Exception):
|
||||
"""Exception class for version violation."""
|
||||
|
||||
|
||||
# The versions of this Python Protobuf runtime to be changed automatically by
|
||||
# the Protobuf release process. Do not edit them manually.
|
||||
DOMAIN = Domain.PUBLIC
|
||||
MAJOR = 5
|
||||
MINOR = 27
|
||||
PATCH = 3
|
||||
SUFFIX = ''
|
||||
|
||||
|
||||
def ValidateProtobufRuntimeVersion(
|
||||
gen_domain, gen_major, gen_minor, gen_patch, gen_suffix, location
|
||||
):
|
||||
"""Function to validate versions.
|
||||
|
||||
Args:
|
||||
gen_domain: The domain where the code was generated from.
|
||||
gen_major: The major version number of the gencode.
|
||||
gen_minor: The minor version number of the gencode.
|
||||
gen_patch: The patch version number of the gencode.
|
||||
gen_suffix: The version suffix e.g. '-dev', '-rc1' of the gencode.
|
||||
location: The proto location that causes the version violation.
|
||||
|
||||
Raises:
|
||||
VersionError: if gencode version is invalid or incompatible with the
|
||||
runtime.
|
||||
"""
|
||||
|
||||
disable_flag = os.getenv('TEMORARILY_DISABLE_PROTOBUF_VERSION_CHECK')
|
||||
if disable_flag is not None and disable_flag.lower() == 'true':
|
||||
return
|
||||
|
||||
version = f'{MAJOR}.{MINOR}.{PATCH}{SUFFIX}'
|
||||
gen_version = f'{gen_major}.{gen_minor}.{gen_patch}{gen_suffix}'
|
||||
|
||||
if gen_major < 0 or gen_minor < 0 or gen_patch < 0:
|
||||
raise VersionError(f'Invalid gencode version: {gen_version}')
|
||||
|
||||
error_prompt = (
|
||||
'See Protobuf version guarantees at'
|
||||
' https://protobuf.dev/support/cross-version-runtime-guarantee.'
|
||||
)
|
||||
|
||||
if gen_domain != DOMAIN:
|
||||
raise VersionError(
|
||||
'Detected mismatched Protobuf Gencode/Runtime domains when loading'
|
||||
f' {location}: gencode {gen_domain.name} runtime {DOMAIN.name}.'
|
||||
' Cross-domain usage of Protobuf is not supported.'
|
||||
)
|
||||
|
||||
if gen_major != MAJOR:
|
||||
raise VersionError(
|
||||
'Detected mismatched Protobuf Gencode/Runtime major versions when'
|
||||
f' loading {location}: gencode {gen_version} runtime {version}.'
|
||||
f' Same major version is required. {error_prompt}'
|
||||
)
|
||||
|
||||
if MINOR < gen_minor or (MINOR == gen_minor and PATCH < gen_patch):
|
||||
raise VersionError(
|
||||
'Detected incompatible Protobuf Gencode/Runtime versions when loading'
|
||||
f' {location}: gencode {gen_version} runtime {version}. Runtime version'
|
||||
f' cannot be older than the linked gencode version. {error_prompt}'
|
||||
)
|
||||
|
||||
if gen_suffix != SUFFIX:
|
||||
raise VersionError(
|
||||
'Detected mismatched Protobuf Gencode/Runtime version suffixes when'
|
||||
f' loading {location}: gencode {gen_version} runtime {version}.'
|
||||
f' Version suffixes must be the same. {error_prompt}'
|
||||
)
|
||||
Reference in New Issue
Block a user