mirror of
https://github.com/AdaCore/learn.git
synced 2026-02-12 13:00:42 -08:00
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
import os
|
|
import re
|
|
import hashlib
|
|
import json
|
|
import time
|
|
|
|
class CodeCheck(object):
|
|
def __init__(self, timestamp=None,
|
|
version=None, status_ok=None,
|
|
logfile=None, cmdline=None):
|
|
|
|
self.version = version
|
|
self.status_ok = status_ok
|
|
self.logfile = logfile
|
|
self.cmdline = cmdline
|
|
self.timestamp = timestamp if timestamp is not None else time.time()
|
|
|
|
|
|
class BlockCheck(object):
|
|
@staticmethod
|
|
def from_json_file(json_filename=None):
|
|
|
|
if json_filename is None:
|
|
json_filename = "block_checks.json"
|
|
|
|
if os.path.isfile(json_filename):
|
|
with open(json_filename, u'r') as f:
|
|
block_checks_json = json.load(f)
|
|
return BlockCheck(**block_checks_json)
|
|
|
|
return None
|
|
|
|
def __init__(self, text_hash, text_hash_short,
|
|
timestamp=None,
|
|
status_ok=None,
|
|
checks=None):
|
|
|
|
self.text_hash: str = text_hash
|
|
self.text_hash_short: str = text_hash_short
|
|
self.timestamp = timestamp if timestamp is not None else time.time()
|
|
self.status_ok = status_ok
|
|
self.checks = dict()
|
|
|
|
def to_json_file(self, json_filename=None):
|
|
block_checks = self.__dict__
|
|
|
|
if json_filename is None:
|
|
json_filename = "block_checks.json"
|
|
with open(json_filename, u'w') as f:
|
|
json.dump(block_checks, f, indent=4, default=lambda __o: __o.__dict__)
|
|
|
|
def add_check(self, check_type : str, code_check : CodeCheck):
|
|
self.checks[check_type] = code_check
|