78 lines
1.7 KiB
Python
78 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Python wrapper of IVI Virtual Instruments Software Architecture library (VISA).
|
|
|
|
This file is part of PyVISA.
|
|
|
|
:copyright: 2014-2022 by PyVISA Authors, see AUTHORS for more details.
|
|
:license: MIT, see LICENSE for more details.
|
|
|
|
"""
|
|
import logging
|
|
import sys
|
|
|
|
if sys.version_info >= (3, 8):
|
|
from importlib.metadata import PackageNotFoundError, version
|
|
else:
|
|
from importlib_metadata import PackageNotFoundError, version # type: ignore
|
|
|
|
# Defined here since it is imported in other pyvisa modules
|
|
logger = logging.getLogger("pyvisa")
|
|
logger.addHandler(logging.NullHandler())
|
|
|
|
from .errors import (
|
|
Error,
|
|
InvalidBinaryFormat,
|
|
InvalidSession,
|
|
LibraryError,
|
|
OSNotSupported,
|
|
UnknownHandler,
|
|
VisaIOError,
|
|
VisaIOWarning,
|
|
VisaTypeError,
|
|
)
|
|
from .highlevel import ResourceManager
|
|
from .resources import Resource # noqa : F401 This is needed to register all resources.
|
|
|
|
|
|
def log_to_screen(level=logging.DEBUG) -> None:
|
|
log_to_stream(None, level) # sys.stderr by default
|
|
|
|
|
|
def log_to_stream(stream_output, level=logging.DEBUG) -> None:
|
|
logger.setLevel(level)
|
|
ch = logging.StreamHandler(stream_output)
|
|
ch.setLevel(level)
|
|
|
|
formatter = logging.Formatter(
|
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
)
|
|
|
|
ch.setFormatter(formatter)
|
|
|
|
logger.addHandler(ch)
|
|
|
|
|
|
__version__ = "unknown"
|
|
try:
|
|
__version__ = version(__name__)
|
|
except PackageNotFoundError:
|
|
# package is not installed
|
|
pass
|
|
|
|
|
|
__all__ = [
|
|
"ResourceManager",
|
|
"logger",
|
|
"Error",
|
|
"VisaIOError",
|
|
"VisaIOWarning",
|
|
"VisaTypeError",
|
|
"UnknownHandler",
|
|
"OSNotSupported",
|
|
"InvalidBinaryFormat",
|
|
"InvalidSession",
|
|
"LibraryError",
|
|
"log_to_screen",
|
|
"log_to_stream",
|
|
]
|