Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Dev environements
.idea
test_pyaml_logging.conf

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
14 changes: 13 additions & 1 deletion pyaml/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,19 @@
__author__ = "pyAML collaboration"
__author_email__ = ""

import logging.config
import os
from pyaml.exception import PyAMLException

__all__ = [__version__, "YamlLoader", PyAMLException]
__all__ = [__version__, PyAMLException]


config_file = os.getenv("PYAML_LOG_CONFIG", "pyaml_logging.conf")

if os.path.exists(config_file):
logging.config.fileConfig(config_file, disable_existing_loggers=False)

logger = logging.getLogger("pyaml")
level = os.getenv("PYAML_LOG_LEVEL", "").upper()
if len(level)>0:
logger.setLevel(getattr(logging, level, logging.WARNING))
14 changes: 9 additions & 5 deletions pyaml/pyaml.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
PyAML main class
"""
import logging

from pydantic import BaseModel,ConfigDict
from .instrument import Instrument
Expand All @@ -11,6 +12,8 @@
# Define the main class name for this module
PYAMLCLASS = "PyAML"

logger = logging.getLogger(__name__)

class ConfigModel(BaseModel):

model_config = ConfigDict(arbitrary_types_allowed=True)
Expand All @@ -32,14 +35,15 @@ def get(self,name:str) -> Instrument:
raise Exception(f"Instrument {name} not defined")
return self.INSTRUMENTS[name]

def pyaml(fileName:str) -> PyAML:
def pyaml(filename:str) -> PyAML:
"""Load an accelerator middle layer"""
logger.log(logging.INFO, f"Loading PyAML from file '{filename}'")

# Asume that all files are referenced from folder where main AML file is stored
if not os.path.exists(fileName):
raise Exception(f"{fileName} file nnot found")
rootfolder = os.path.abspath(os.path.dirname(fileName))
if not os.path.exists(filename):
raise Exception(f"{filename} file not found")
rootfolder = os.path.abspath(os.path.dirname(filename))
set_root_folder(rootfolder)
aml_cfg = load(os.path.basename(fileName))
aml_cfg = load(os.path.basename(filename))
aml:PyAML = depthFirstBuild(aml_cfg)
return aml
Loading