Skip to content

global_object

Modules:

Name Description
global_object
logger
object_registry

Classes

Modules

global_object

Classes:

Name Description
GlobalObject

GlobalObject is the assimilated knowledge of EasyScience.

Classes

GlobalObject()

GlobalObject is the assimilated knowledge of EasyScience.

Every class based on EasyScience gets brought into the collective.

Methods:

Name Description
generate_unique_name

Generate a generic unique name for the object using the class

Methods:
generate_unique_name(name_prefix)

Generate a generic unique name for the object using the class name and a global iterator. Names are in the format name_prefix_0, name_prefix_1, name_prefix_2, etc.

Parameters:

Name Type Description Default
name_prefix str

The prefix to be used for the name.

required

Returns:

Type Description
str

Generated unique name.

Functions:

logger

Classes:

Name Description
Logger

Central logging controller for EasyScience.

Classes

Logger(log_level=logging.WARNING)

Central logging controller for EasyScience.

Owns the package-root logger easyscience and provides a convenience API to set its level. It never calls logging.basicConfig nor attaches a handler, so the host application keeps full control over where output goes.

log_level : int, default=logging.WARNING Default level for the package-root logger. Overridden by the EASYSCIENCE_LOG_LEVEL environment variable when set.

Methods:

Name Description
debug

Log a DEBUG-level message on the package-root logger.

info

Log an INFO-level message on the package-root logger.

warning

Log a WARNING-level message on the package-root logger.

error

Log an ERROR-level message on the package-root logger.

critical

Log a CRITICAL-level message on the package-root logger.

exception

Log an ERROR-level message with traceback on the package-root

getLogger

Create or retrieve a child logger under easyscience.

at_level

Context manager that temporarily sets the package-root logger to

suspend

Suppress all core log output (set level to CRITICAL+1).

resume

Restore the level captured by the most recent suspend call.

Attributes:

Name Type Description
level int

Get the effective level of the package-root logger.

Attributes
level property writable

Get the effective level of the package-root logger.

Returns:

Type Description
int

Numeric logging level currently set on the easyscience package-root logger.

Methods:
debug(msg, *args, **kwargs)

Log a DEBUG-level message on the package-root logger.

info(msg, *args, **kwargs)

Log an INFO-level message on the package-root logger.

warning(msg, *args, **kwargs)

Log a WARNING-level message on the package-root logger.

error(msg, *args, **kwargs)

Log an ERROR-level message on the package-root logger.

critical(msg, *args, **kwargs)

Log a CRITICAL-level message on the package-root logger.

exception(msg, *args, **kwargs)

Log an ERROR-level message with traceback on the package-root logger.

getLogger(logger_name)

Create or retrieve a child logger under easyscience.

The returned logger is left at logging.NOTSET so it inherits level and handler configuration from the package-root logger.

Parameters:

Name Type Description Default
logger_name str

Logger name. Usually __name__ of the calling module.

required

Returns:

Type Description
logging.Logger

A child logger whose name is easyscience.<logger_name> when logger_name does not already start with easyscience or a dot.

at_level(level)

Context manager that temporarily sets the package-root logger to level, restoring the previous level on exit.

Parameters:

Name Type Description Default
level int | str

Temporary level for the package-root logger — e.g. logging.ERROR or 'ERROR'.

required

Yields:

Type Description
None

Control is handed back to the with block with the temporary level applied.

Examples:

Setting the log-level only within the context:

with global_object.log.at_level(logging.ERROR):
    fitter.fit(x, y, weights)  # no core messages below ERROR
suspend()

Suppress all core log output (set level to CRITICAL+1).

resume()

Restore the level captured by the most recent suspend call.

object_registry

Classes:

Name Description
ObjectRegistry

Global registry of EasyScience objects, indexed by unique_name.

Classes

ObjectRegistry()

Global registry of EasyScience objects, indexed by unique_name.

Registered objects must have a unique_name attribute. Values are held weakly, so an entry disappears once nothing else references the object.

Supports name in registry, registry[name], len(registry) and iteration over the registered names.

Methods:

Name Description
names

All registered unique names.

objects

All registered objects that are still alive.

add

Register obj under its unique_name.

discard

Remove name from the registry, if present.

clear

Empty the registry.

Methods:
names()

All registered unique names.

objects()

All registered objects that are still alive.

The list holds strong references, so it keeps those objects alive until it is released.

add(obj)

Register obj under its unique_name.

Parameters:

Name Type Description Default
obj object

The object to register. It must have a unique_name attribute.

required

Raises:

Type Description
ValueError

If the name is already registered.

discard(name)

Remove name from the registry, if present.

clear()

Empty the registry.