mirror of
https://github.com/AdaCore/learn.git
synced 2026-02-12 13:00:42 -08:00
60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
"""Provide compiler/runtime information for code block.
|
|
"""
|
|
|
|
from typing import List, Dict
|
|
import glob
|
|
|
|
import os
|
|
|
|
class CodeBlockInfo():
|
|
"""Code block info class
|
|
"""
|
|
|
|
# Hard-coding directories:
|
|
# - build directory
|
|
# - base project directory
|
|
base_project_dir = "projects"
|
|
|
|
def __init__(self,
|
|
project_name : str,
|
|
filename : str,
|
|
line_number: int):
|
|
"""Widget constructor
|
|
"""
|
|
self.__project_name: str = project_name
|
|
self.__filename: str = filename
|
|
self.__line_number: int = line_number
|
|
self.__src_test_data_dir = ""
|
|
self.__data_available = False
|
|
|
|
if 'SRC_TEST_DIR' in os.environ:
|
|
self.__src_test_data_dir = os.environ['SRC_TEST_DIR']
|
|
self.__data_available = True
|
|
|
|
def __get_project_dir(self) -> str:
|
|
return self.__project_name.replace(".", "/")
|
|
|
|
def __get_code_block_dir(self) -> str:
|
|
return (self.__src_test_data_dir + "/" +
|
|
self.base_project_dir + "/" +
|
|
self.__get_project_dir() + "/" +
|
|
str(self.__line_number))
|
|
|
|
def get_info(self) -> Dict[str, str]:
|
|
"""
|
|
"""
|
|
info : Dict[str, str] = {}
|
|
|
|
if not self.__data_available:
|
|
return info
|
|
|
|
code_block_dir = self.__get_code_block_dir()
|
|
|
|
for logfile in glob.glob(code_block_dir + "/*.log"):
|
|
with open(logfile) as f:
|
|
content = f.read()
|
|
log_type = os.path.splitext(os.path.basename(logfile))[0]
|
|
info[log_type] = content
|
|
|
|
return info
|