Pylint report from report.jinja2

Score

6.87 / 10 (previous score: 6.87 / 10)

Messages

Module agentlib.core.agent (agentlib/core/agent.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/core/agent.py: Fatal error while checking 'agentlib/core/agent.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-54.txt'.
6 0 convention ungrouped-imports C0412
Imports from package threading are not grouped
47 0 convention line-too-long C0301
Line too long (120/100)

Module agentlib.core.data_broker (agentlib/core/data_broker.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/core/data_broker.py: Fatal error while checking 'agentlib/core/data_broker.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-54.txt'.

Module agentlib.core.datamodels (agentlib/core/datamodels.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/core/datamodels.py: Fatal error while checking 'agentlib/core/datamodels.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-55.txt'.
6 0 convention ungrouped-imports C0412
Imports from package abc are not grouped
8 0 convention ungrouped-imports C0412
Imports from package json are not grouped
9 0 convention ungrouped-imports C0412
Imports from package logging are not grouped
12 0 convention ungrouped-imports C0412
Imports from package copy are not grouped

Module agentlib.core.environment (agentlib/core/environment.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/core/environment.py: Fatal error while checking 'agentlib/core/environment.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-55.txt'.
28 0 convention ungrouped-imports C0412
Imports from package json are not grouped
31 0 convention ungrouped-imports C0412
Imports from package pathlib are not grouped

Module agentlib.core.logging_ (agentlib/core/logging_.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/core/logging_.py: Fatal error while checking 'agentlib/core/logging_.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-55.txt'.
1 0 convention ungrouped-imports C0412
Imports from package logging are not grouped

Module agentlib.core.model (agentlib/core/model.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/core/model.py: Fatal error while checking 'agentlib/core/model.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-56.txt'.
3 0 convention ungrouped-imports C0412
Imports from package abc are not grouped
5 0 convention ungrouped-imports C0412
Imports from package json are not grouped
6 0 convention ungrouped-imports C0412
Imports from package logging are not grouped
7 0 convention ungrouped-imports C0412
Imports from package copy are not grouped
8 0 convention ungrouped-imports C0412
Imports from package itertools are not grouped
87 0 convention line-too-long C0301
Line too long (106/100)
254 0 convention line-too-long C0301
Line too long (118/100)

Module agentlib.core.module (agentlib/core/module.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/core/module.py: Fatal error while checking 'agentlib/core/module.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-55.txt'.
5 0 convention ungrouped-imports C0412
Imports from package abc are not grouped
6 0 convention ungrouped-imports C0412
Imports from package json are not grouped
7 0 convention ungrouped-imports C0412
Imports from package logging are not grouped
8 0 convention ungrouped-imports C0412
Imports from package copy are not grouped

Module agentlib.models.fmu_model (agentlib/models/fmu_model.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/models/fmu_model.py: Fatal error while checking 'agentlib/models/fmu_model.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-52.txt'.
6 0 convention ungrouped-imports C0412
Imports from package logging are not grouped

Module agentlib.models.scipy_model (agentlib/models/scipy_model.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/models/scipy_model.py: Fatal error while checking 'agentlib/models/scipy_model.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-52.txt'.
35 0 refactor useless-option-value R0022
Useless option value for 'disable', 'no-self-use' was moved to an optional extension, see https://pylint.readthedocs.io/en/latest/whatsnew/2/2.14/summary.html#removed-checkers.

Module agentlib.modules.__init__ (agentlib/modules/__init__.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/__init__.py: Fatal error while checking 'agentlib/modules/__init__.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-56.txt'.

Module agentlib.modules.communicator.clonemap (agentlib/modules/communicator/clonemap.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/communicator/clonemap.py: Fatal error while checking 'agentlib/modules/communicator/clonemap.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-56.txt'.

Module agentlib.modules.communicator.communicator (agentlib/modules/communicator/communicator.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/communicator/communicator.py: Fatal error while checking 'agentlib/modules/communicator/communicator.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-48.txt'.

Module agentlib.modules.communicator.local (agentlib/modules/communicator/local.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
11 0 convention missing-class-docstring C0115 LocalSubscriptionCommunicatorConfig
Missing class docstring
33 4 convention missing-function-docstring C0116 LocalClient.subscriptions
Missing function or method docstring

Module agentlib.modules.communicator.local_broadcast (agentlib/modules/communicator/local_broadcast.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring

Module agentlib.modules.communicator.local_multiprocessing (agentlib/modules/communicator/local_multiprocessing.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
5 0 error import-error E0401
Unable to import 'pydantic'
6 0 convention wrong-import-order C0411
standard import "from ipaddress import IPv4Address" should be placed before "from pydantic import Field"
18 0 convention missing-class-docstring C0115 MultiProcessingBroadcastClientConfig
Missing class docstring
50 16 error no-member E1101 MultiProcessingBroadcastClient.__init__
Instance of 'BrokerManager' has no 'connect' member
57 23 error no-member E1101 MultiProcessingBroadcastClient.__init__
Instance of 'BrokerManager' has no 'get_queue' member
91 12 warning logging-fstring-interpolation W1203 MultiProcessingBroadcastClient._message_handler
Use lazy % formatting in logging functions

Module agentlib.modules.communicator.mqtt (agentlib/modules/communicator/mqtt.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/modules/communicator/mqtt.py: Fatal error while checking 'agentlib/modules/communicator/mqtt.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-57.txt'.

Module agentlib.modules.controller (agentlib/modules/controller/__init__.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring

Module agentlib.modules.controller.bangbang (agentlib/modules/controller/bangbang.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 error import-error E0401
Unable to import 'pydantic'
48 4 refactor inconsistent-return-statements R1710 BangBang.do_step
Either all return statements in a function should return an expression, or none of them should.

Module agentlib.modules.controller.controller (agentlib/modules/controller/controller.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/controller/controller.py: Fatal error while checking 'agentlib/modules/controller/controller.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-57.txt'.

Module agentlib.modules.controller.pid (agentlib/modules/controller/pid.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/modules/controller/pid.py: Fatal error while checking 'agentlib/modules/controller/pid.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-57.txt'.
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[53:98]
==examples.controller.pid_with_simulator:[67:112]
}

process_agent_config = {
    "id": "Process",
    "modules": [
        {
            "module_id": "sim",
            "type": "simulator",
            "model": {"type": {"file": __file__, "class_name": "HeatedRoom"}},
            "t_sample": 10,
            "inputs": [
                {"name": "heating_power_in_watt", "value": 0, "alias": "heating_power"}
            ],
            "states": [
                {
                    "name": "temperature_in_celsius",
                    "value": 21,
                    "shared": True,
                    "alias": "room_temp",
                }
            ],
        },
        {"module_id": "myLogger", "type": "AgentLogger"},
        {"module_id": "myComm", "type": "local", "subscriptions": ["PID"]},
    ],
}


def run_example(with_plots=True, log_level=logging.INFO):
    # Set the log-level
    logging.basicConfig(level=log_level)

    env_config = {"rt": False, "factor": 0.01, "clock": True, "t_sample": 60}
    env = ag.Environment(config=env_config)
    pid_agent = ag.Agent(config=pid_agent_config, env=env)
    process_agent = ag.Agent(config=process_agent_config, env=env)
    env.run(until=1000)

    results = process_agent.get_results()
    res = results["myLogger"]
    if with_plots:
        import matplotlib.pyplot as plt

        fig, ax = plt.subplots(2, 1)
        res["room_temp"].plot(ax=ax[0], label="$T_{room}$")
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_3_using_models_concise:[9:57]
==part_3_using_models_with_comments:[27:97]
import logging
from typing import List

import agentlib as ag


class HeatedRoomConfig(ag.ModelConfig):
    inputs: List[ag.ModelInput] = [
        ag.ModelInput(name="heating_power_in_watt", value=100)
    ]
    states: List[ag.ModelState] = [
        ag.ModelState(name="temperature_in_celsius", value=20)
    ]
    parameters: List[ag.ModelParameter] = [
        ag.ModelParameter(name="heat_loss_in_watt", value=150),
        ag.ModelParameter(name="thermal_capacity_zone", value=100_000),
    ]
    outputs: List[ag.ModelOutput] = []


class HeatedRoom(ag.Model):
    config: HeatedRoomConfig

    def initialize(self, **kwargs):
        pass

    def do_step(self, *, t_start, t_sample):
        t = self.get("temperature_in_celsius").value  # get/set also works in models
        power = self.get("heating_power_in_watt").value
        loss = self.get("heat_loss_in_watt").value
        capacity = self.get("thermal_capacity_zone").value
        t = t + ((power - loss) / capacity) * t_sample
        self.set("temperature_in_celsius", t)


agent_config = {
    "id": "my_agent_id",
    "modules": [
        {
            "module_id": "sim",
            "type": "simulator",
            "model": {
                "type": {"file": __file__, "class_name": "HeatedRoom"},
            },
            "t_sample": 10,
            "save_results": True,
            "result_filename": "results_part3.csv",
            "result_causalities": ["local"],
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[0:36]
==examples.controller.pid_with_simulator:[11:47]
import logging
from typing import List

import agentlib as ag


class HeatedRoomConfig(ag.ModelConfig):
    inputs: List[ag.ModelInput] = [
        ag.ModelInput(name="heating_power_in_watt", value=100)
    ]
    states: List[ag.ModelState] = [
        ag.ModelState(name="temperature_in_celsius", value=20)
    ]
    parameters: List[ag.ModelParameter] = [
        ag.ModelParameter(name="heat_loss_in_watt", value=150),
        ag.ModelParameter(name="thermal_capacity_zone", value=100_000),
    ]


class HeatedRoom(ag.Model):
    config: HeatedRoomConfig

    def initialize(self, **kwargs):
        pass

    def do_step(self, *, t_start, t_sample):
        t = self.get("temperature_in_celsius").value
        power = self.get("heating_power_in_watt").value
        loss = self.get("heat_loss_in_watt").value
        capacity = self.get("thermal_capacity_zone").value
        t = t + ((power - loss) / capacity) * t_sample
        self.set("temperature_in_celsius", t)


pid_agent_config = {
    "id": "PID",
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_2_agentvariables_concise:[10:45]
==part_2_agentvariables_with_comments:[10:72]
import logging

import agentlib as ag


class MyModuleConfig(ag.BaseModuleConfig):
    increment: float = 0.5
    my_number: ag.AgentVariable


class MyModule(ag.BaseModule):
    config: MyModuleConfig

    def process(self):
        # the .name attribute of an AgentVariable is also accessible. Here, we define
        # a local variable for convenience
        name_of_my_number = self.config.my_number.name

        while True:
            # we can access the AgentVariable by its name with the .get() method,
            # defined in the BaseModule and available through inheritance.
            # We accessed the AgentVariable - specifically its name attribute - above
            # through the config. However that is a static copy. With the get() method,
            # we obtain the variable with its current value.
            my_number = self.get(name_of_my_number)

            # we access the variables value, and add our predefined number to it. It
            # is easy to forget you need to access the value, since the get() method
            # returns the whole AgentVariable.
            new_value = my_number.value + self.config.increment

            # Now we log what we did, to confirm it is working.
            self.logger.info(
                f"I will change the value of '{name_of_my_number}' from {my_number.value} to {new_value}."
            )

            # The set method will write the new value of our variable. Using the set
            # method notifies other modules, that we changed the value of this variable.
            # If we were to just assign a value to the variable that we retrieved with
            # get(), it would not be remembered for the next time, and cannot be used
            # by other modules.
            self.set(name_of_my_number, new_value)
            yield self.env.timeout(1)

    def register_callbacks(self):
        pass


agent_config = {
    "id": "my_agent_id",
    "modules": [
        {
            "type": {"file": __file__, "class_name": "MyModule"},
            # when specifying fields of a module config that represent AgentVariables,
            # we have to provide more than just a value. The 'name' key is always
            # required. The 'value' key is not required and will default to None.
            # However, it often results in TypeErrors within the Module, if the value
            # is None, and depends on the specific code where the variable is used.
            "my_number": {"name": "greg", "value": 5},
        },
        # We define a second module in this agent, which will log the value of
        # AgentVariables.
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_3_using_models_with_comments:[27:64]
==part_4_communicators_with_comments:[10:48]
import logging
from typing import List

import agentlib as ag


# the model is the same as in example three
class HeatedRoomConfig(ag.ModelConfig):
    inputs: List[ag.ModelInput] = [
        ag.ModelInput(name="heating_power_in_watt", value=100)
    ]
    states: List[ag.ModelState] = [
        ag.ModelState(name="temperature_in_celsius", value=20)
    ]
    parameters: List[ag.ModelParameter] = [
        ag.ModelParameter(name="heat_loss_in_watt", value=150),
        ag.ModelParameter(name="thermal_capacity_zone", value=100_000),
    ]
    outputs: List[ag.ModelOutput] = []


class HeatedRoom(ag.Model):
    config: HeatedRoomConfig

    def initialize(self, **kwargs):
        pass

    def do_step(self, *, t_start, t_sample):
        t = self.get("temperature_in_celsius").value  # get/set also works in models
        power = self.get("heating_power_in_watt").value
        loss = self.get("heat_loss_in_watt").value
        capacity = self.get("thermal_capacity_zone").value
        t = t + ((power - loss) / capacity) * t_sample
        self.set("temperature_in_celsius", t)


# here, we have a similar configuration as last time, however, there are differences in
# the variable declarations
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_1_my_first_agent_concise:[25:54]
==part_1_my_first_agent_with_comments:[29:91]
        while True:
            # we can access the attributes from the config we defined above like this
            self.logger.info(f"I am {self.config.name} with age {self.config.age}.")
            yield self.env.timeout(1)  # timeout is in seconds

    def register_callbacks(self):
        # we will learn about callbacks later
        pass


# the config of an agent can be a python dict or a JSON-file
# the config has two keys: id and modules
agent_config = {
    # the id is the public name of the agent. It will become later, when using
    # communicators. It is also displayed in log messages.
    "id": "my_agent_id",
    # second comes a list of modules, which define the function of the agent. Usually,
    # an agent has a communicator and a functional module, but in fact, any
    # combination of modules is possible.
    # In this example, there is no communication with other agents, so we only have one
    # module
    "modules": [
        {
            # the type key defines the class of a module and is always required
            # There are two ways to specify the type
            #   1. Use a module from the core, or a plugin. You only need to write down
            #   the string-key which maps to it.
            #   2. Use a custom module. Under type, write down a dict, pointing to the
            #   exact python class you want to execute.
            # In our example, we use option two, to load the module defined above.
            "type": {"file": __file__, "class_name": "MyFirstModule"},
            # on the same level as type, the remaining configuration of the module has
            # to be done. For our module defined above, we defined a 'name' field which
            # we now have to specify
            "name": "first_agent",
        }
    ],
}


def main():
    # We have to make sure, our log level is set to INFO, otherwise, our process
    # defined above will not print anything
    logging.basicConfig(level=logging.INFO)

    # every agent runs in an environment. The environment has four keys:
    # 1. 'rt': If True, the code will run in realtime
    # 2. 'factor': Speed up realtime if <1, slow down if >1. Ignored if 'rt' is False
    # 3. 'clock': If True, periodically print the current simulation time
    # 4. 't_sample': Intervall for the clock. 3 and 4 only affect logs, not results
    environment_config = {"rt": False, "factor": 1, "clock": False, "t_sample": 60}
    env = ag.Environment(config=environment_config)

    # create the agent. Multiple agents can be created with the same environment.
    agent = ag.Agent(config=agent_config, env=env)

    # runs the environment for 10 seconds, starting the agent
    env.run(10)


if __name__ == "__main__":
    main()
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_3_using_models_concise:[59:84]
==part_3_using_models_with_comments:[103:139]
        },
    ],
}


def main(with_plots: bool = True):
    logging.basicConfig(level=logging.INFO)

    environment_config = {"rt": False, "factor": 1, "clock": False}
    # we use the LocalMASAgency class to start our agent
    # It can be passed a list of agent configs, and an environment config and will run
    # all agents in this environment
    mas = ag.LocalMASAgency(agent_configs=[agent_config], env=environment_config)

    # the run command now is part of the mas
    mas.run(1800)

    if with_plots:
        import matplotlib.pyplot as plt
        import pandas as pd

        # there is also a results function for the MAS, we can get agents with their id
        results = mas.get_results()["my_agent_id"]

        # key here is the module_id of the simulator
        logger_results: pd.DataFrame = results["sim"]

        # key is name of the variable (it's actually the alias, more on this later!)
        logger_results["temperature_in_celsius"].plot()
        plt.ylabel("Temperature / °C")
        plt.xlabel("Time / sec")
        plt.show()


if __name__ == "__main__":
    main()
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_2_agentvariables_concise:[46:74]
==part_2_agentvariables_with_comments:[85:120]
    ],
}


def main(with_plots: bool = True):
    logging.basicConfig(level=logging.INFO)

    environment_config = {"rt": False, "factor": 1, "clock": False}
    env = ag.Environment(config=environment_config)
    agent = ag.Agent(config=agent_config, env=env)
    env.run(10)

    if with_plots:
        import matplotlib.pyplot as plt
        import pandas as pd

        results = agent.get_results()

        # key here is the module_id of the agentlogger
        logger_results: pd.DataFrame = results["my_logger"]

        # key is name of the variable (it's actually the alias, more on this later!)
        logger_results["greg"].plot()
        plt.show()


if __name__ == "__main__":
    main()
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.pid_with_simulator:[11:30]
==part_3_using_models_with_comments:[27:45]
import logging
from typing import List

import agentlib as ag


class HeatedRoomConfig(ag.ModelConfig):
    inputs: List[ag.ModelInput] = [
        ag.ModelInput(name="heating_power_in_watt", value=100)
    ]
    states: List[ag.ModelState] = [
        ag.ModelState(name="temperature_in_celsius", value=20)
    ]
    parameters: List[ag.ModelParameter] = [
        ag.ModelParameter(name="heat_loss_in_watt", value=150),
        ag.ModelParameter(name="thermal_capacity_zone", value=100_000),
    ]

1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[0:19]
==part_4_communicators_with_comments:[10:28]
import logging
from typing import List

import agentlib as ag


# the model is the same as in example three
class HeatedRoomConfig(ag.ModelConfig):
    inputs: List[ag.ModelInput] = [
        ag.ModelInput(name="heating_power_in_watt", value=100)
    ]
    states: List[ag.ModelState] = [
        ag.ModelState(name="temperature_in_celsius", value=20)
    ]
    parameters: List[ag.ModelParameter] = [
        ag.ModelParameter(name="heat_loss_in_watt", value=150),
        ag.ModelParameter(name="thermal_capacity_zone", value=100_000),
    ]
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_3_using_models_with_comments:[118:139]
==part_4_communicators_with_comments:[141:157]
    mas.run(1800)

    if with_plots:
        import matplotlib.pyplot as plt
        import pandas as pd

        # there is also a results function for the MAS, we can get agents with their id
        results = mas.get_results()["my_agent_id"]

        # key here is the module_id of the simulator
        logger_results: pd.DataFrame = results["sim"]

        # key is name of the variable (it's actually the alias, more on this later!)
        logger_results["temperature_in_celsius"].plot()
        plt.ylabel("Temperature / °C")
        plt.xlabel("Time / sec")
        plt.show()


if __name__ == "__main__":
    main()
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_3_using_models_with_comments:[66:98]
==part_4_communicators_with_comments:[50:72]
    "modules": [
        {
            "module_id": "sim",
            "type": "simulator",
            "model": {
                "type": {"file": __file__, "class_name": "HeatedRoom"},
            },
            "t_sample": 10,
            "save_results": True,
            "result_filename": "results_part3.csv",
            "result_causalities": ["local"],
            "inputs": [
                # notice that we now included an alias in the declaration of the
                # heating power. The alias is the public name of a variable, which is
                # used for communication. The name is important for the
                # internal workings of a module. In this case, the alias has to match
                # with the other agent for communication, while the name has to match
                # with our model implementation.
                # If you do not declare an alias, it will be set to the name. You will
                # see many examples, where this is the case. However it is often useful
                # to be explicit about the alias, to better understand the
                # communication structure of a an agent system
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.pid_with_simulator:[45:56]
==part_4_communicators_with_comments:[95:114]
pid_agent_config = {
    "id": "PID",  # the ID here matches, what we subscribed to in the process agent
    "modules": [
        {
            "module_id": "myPid",
            "type": "pid",  # pid is the key, to configure the standard PID module
            "setpoint": 21,
            "Kp": 1000,
            "Ti": 10,
            "lb": 0,
            "ub": 500,
            # the PID takes one input and one output, which in control terms are usually
            # u and y. We define the aliases to match the alias in the process agent,
            # while leaving the local names as u and y. Note that we also included the
            # source key here, which is an additional filter. The input will only be
            # updated, if it is sent from an agent with matching source. If the source
            # is not specified, the agent will update the input with any variable that
            # has a matching alias, from any agent. You will not see the source in many
            # examples, however it can be a helpful filter in large mas.
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_3_using_models_concise:[46:57]
==part_4_communicators_with_comments:[50:61]
    "modules": [
        {
            "module_id": "sim",
            "type": "simulator",
            "model": {
                "type": {"file": __file__, "class_name": "HeatedRoom"},
            },
            "t_sample": 10,
            "save_results": True,
            "result_filename": "results_part3.csv",
            "result_causalities": ["local"],
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.multi-agent-systems.pingpong.pingpong_local_broadcast:[22:32]
==examples.multi-agent-systems.pingpong.pingpong_mqtt:[18:28]
        {
            "module_id": "Ping",
            "type": {"file": pingpong_module.__file__, "class_name": "PingPong"},
            "start": True,
        },
    ],
}
agent_config2 = {
    "id": "SecondAgent",
    "modules": [
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.pid_with_simulator:[30:45]
==part_3_using_models_with_comments:[48:64]
class HeatedRoom(ag.Model):
    config: HeatedRoomConfig  # match the config to the model

    def initialize(self, **kwargs):
        pass

    # define a discrete simulation step
    def do_step(self, *, t_start, t_sample):
        t = self.get("temperature_in_celsius").value  # get/set also works in models
        power = self.get("heating_power_in_watt").value
        loss = self.get("heat_loss_in_watt").value
        capacity = self.get("thermal_capacity_zone").value
        t = t + ((power - loss) / capacity) * t_sample
        self.set("temperature_in_celsius", t)

1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[19:34]
==part_4_communicators_with_comments:[31:48]
class HeatedRoom(ag.Model):
    config: HeatedRoomConfig

    def initialize(self, **kwargs):
        pass

    def do_step(self, *, t_start, t_sample):
        t = self.get("temperature_in_celsius").value
        power = self.get("heating_power_in_watt").value
        loss = self.get("heat_loss_in_watt").value
        capacity = self.get("thermal_capacity_zone").value
        t = t + ((power - loss) / capacity) * t_sample
        self.set("temperature_in_celsius", t)

1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.multi-agent-systems.pingpong.pingpong_local:[25:37]
==examples.multi-agent-systems.pingpong.pingpong_mqtt:[34:46]
        {
            "module_id": "Pong",
            "type": {"file": pingpong_module.__file__, "class_name": "PingPong"},
        },
    ],
}


if __name__ == "__main__":
    # Add configs to LocalMAS Agency
    MAS = LocalMASAgency(agent_configs=[agent_config1, agent_config2], env=env_config)
    MAS.run(until=None)
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[42:50]
==examples.controller.pid_with_simulator:[56:64]
            "input": {"name": "u", "value": 0, "alias": "room_temp"},
            "output": {
                "name": "y",
                "value": 0,
                "alias": "heating_power",
                "shared": True,
            },
        },
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[101:110]
==examples.controller.pid_with_simulator:[113:122]
        res["heating_power"].plot(ax=ax[1], label="$\dot{Q}_{heat}$")
        ax[0].legend()
        ax[1].legend()
        plt.show()
    return {"PID_1": results}


if __name__ == "__main__":
    run_example(log_level="INFO")
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==tests.test_agent:[243:251]
==tests.test_environment:[61:69]
        try:
            os.remove(self.filepath)
        except FileNotFoundError:
            pass


if __name__ == "__main__":
    unittest.main()
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==tests.test_communicator:[12:18]
==tests.test_module:[27:33]
    "allowed_values": [100, 150],
    "shared": True,
    "unit": "testUnit",
    "description": "My Doc",
    "clip": True,
    "rdf_class": "MyRDFClass",
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.controller.bangbang_with_simulator:[55:61]
==part_4_communicators_with_comments:[48:54]
process_agent_config = {
    "id": "Process",
    "modules": [
        {
            "module_id": "sim",
            "type": "simulator",
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_1_my_first_agent_concise:[27:37]
==part_2_agentvariables_concise:[32:42]
            yield self.env.timeout(1)

    def register_callbacks(self):
        pass


agent_config = {
    "id": "my_agent_id",
    "modules": [
        {
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_1_my_first_agent_with_comments:[32:59]
==part_2_agentvariables_with_comments:[52:62]
            yield self.env.timeout(1)

    def register_callbacks(self):
        pass


agent_config = {
    "id": "my_agent_id",
    "modules": [
        {
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==part_1_my_first_agent_concise:[11:22]
==part_1_my_first_agent_with_comments:[11:23]
import logging

import agentlib as ag


class MyFirstModuleConfig(ag.BaseModuleConfig):
    name: str
    age: int = 2


class MyFirstModule(ag.BaseModule):
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.multi-agent-systems.pingpong.pingpong_mqtt:[5:12]
==examples.multi-agent-systems.pingpong.pingpong_multiprocessing:[15:23]
logging.basicConfig(level="DEBUG")
logger = logging.getLogger(__name__)


env_config = {"rt": True, "factor": 1}
agent_config1 = {
    "id": "FirstAgent",
    "modules": [
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==tests.test_agentlogger:[23:31]
==tests.test_simulator:[60:68]
        env_config = {"rt": False, "factor": 1}
        agent_config = {"id": "TestAgent", "modules": []}
        env = Environment(config=env_config)
        return Agent(env=env, config=agent_config)

    def _get_module_cfg(self, **kwargs):
        """Dynamically build config to avoid duplicate code:"""
        return {
1 0 refactor duplicate-code R0801
Similar lines in 2 files
==examples.multi-agent-systems.pingpong.pingpong_local:[0:7]
==examples.multi-agent-systems.pingpong.pingpong_mqtt:[0:8]
import logging
import pingpong_module
from agentlib.utils.multi_agent_system import LocalMASAgency


logging.basicConfig(level="DEBUG")
logger = logging.getLogger(__name__)

Module agentlib.modules.simulation (agentlib/modules/simulation/__init__.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring

Module agentlib.modules.simulation.csv_data_source (agentlib/modules/simulation/csv_data_source.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/modules/simulation/csv_data_source.py: Fatal error while checking 'agentlib/modules/simulation/csv_data_source.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-57.txt'.
182 0 convention line-too-long C0301
Line too long (108/100)

Module agentlib.modules.simulation.simulator (agentlib/modules/simulation/simulator.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/simulation/simulator.py: Fatal error while checking 'agentlib/modules/simulation/simulator.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-48.txt'.

Module agentlib.modules.utils.agent_logger (agentlib/modules/utils/agent_logger.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/utils/agent_logger.py: Fatal error while checking 'agentlib/modules/utils/agent_logger.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-56.txt'.
45 0 convention line-too-long C0301
Line too long (106/100)
50 0 convention line-too-long C0301
Line too long (111/100)
57 0 refactor useless-option-value R0022
Useless option value for 'disable', 'no-self-use' was moved to an optional extension, see https://pylint.readthedocs.io/en/latest/whatsnew/2/2.14/summary.html#removed-checkers.

Module agentlib.modules.utils.try_sensor (agentlib/modules/utils/try_sensor.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/modules/utils/try_sensor.py: Fatal error while checking 'agentlib/modules/utils/try_sensor.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-56.txt'.

Module agentlib.utils (agentlib/utils/__init__.py)

Line Col. Type Symbol ID Obj Message
12 0 convention ungrouped-imports C0412
Imports from package pathlib are not grouped
85 8 warning raise-missing-from W0707 custom_injection
Consider explicitly re-raising using 'except KeyError as exc' and 'raise ImportError(f"Given module '{custom_module}' does not contain the specified class {class_name}") from exc'

Module agentlib.utils.fuzzy_matching (agentlib/utils/fuzzy_matching.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/utils/fuzzy_matching.py: Fatal error while checking 'agentlib/utils/fuzzy_matching.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-53.txt'.

Module agentlib.utils.load_config (agentlib/utils/load_config.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/utils/load_config.py: Fatal error while checking 'agentlib/utils/load_config.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-52.txt'.

Module agentlib.utils.local_broadcast_broker (agentlib/utils/local_broadcast_broker.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/utils/local_broadcast_broker.py: Fatal error while checking 'agentlib/utils/local_broadcast_broker.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-53.txt'.

Module agentlib.utils.local_broker (agentlib/utils/local_broker.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/utils/local_broker.py: Fatal error while checking 'agentlib/utils/local_broker.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-53.txt'.

Module agentlib.utils.multi_agent_system (agentlib/utils/multi_agent_system.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/utils/multi_agent_system.py: Fatal error while checking 'agentlib/utils/multi_agent_system.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-53.txt'.
219 0 convention line-too-long C0301
Line too long (107/100)

Module agentlib.utils.multi_processing_broker (agentlib/utils/multi_processing_broker.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/utils/multi_processing_broker.py: Fatal error while checking 'agentlib/utils/multi_processing_broker.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-53.txt'.
6 0 convention ungrouped-imports C0412
Imports from package json are not grouped

Module agentlib.utils.plotting.simulator_dashboard (agentlib/utils/plotting/simulator_dashboard.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
agentlib/utils/plotting/simulator_dashboard.py: Fatal error while checking 'agentlib/utils/plotting/simulator_dashboard.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-54.txt'.
5 0 convention ungrouped-imports C0412
Imports from package pathlib are not grouped

Module agentlib.utils.plugin_import (agentlib/utils/plugin_import.py)

Line Col. Type Symbol ID Obj Message
6 0 error import-error E0401
Unable to import 'pydantic'
31 0 warning unused-argument W0613 SaveUpdateDict.update
Unused argument 'kwargs'
72 8 warning raise-missing-from W0707 load_plugin
Consider explicitly re-raising using 'except AttributeError as exc' and 'raise ImportError(f"Plugin '{name}' has no dictionary called '{plugin_types_name}' to import plugin types.") from exc'

Module agentlib.utils.validators (agentlib/utils/validators.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
agentlib/utils/validators.py: Fatal error while checking 'agentlib/utils/validators.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-53.txt'.

Module tools (docs/source/manual_labor/tools.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 error import-error E0401
Unable to import 'attrs'
5 0 convention missing-function-docstring C0116 make_table_for_agent_variable
Missing function or method docstring
12 9 warning unspecified-encoding W1514 make_table_for_agent_variable
Using open without explicitly specifying an encoding
12 43 convention invalid-name C0103 make_table_for_agent_variable
Variable name "f" doesn't conform to snake_case naming style

Module mqtt (examples/communicator/mqtt.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
3 0 error import-error E0401
Unable to import 'numpy'
29 4 convention missing-function-docstring C0116 callback
Missing function or method docstring
32 4 convention missing-function-docstring C0116 simulated_output
Missing function or method docstring
33 14 error no-member E1101 simulated_output
Instance of 'Environment' has no 'timeout' member
38 29 error no-member E1101 simulated_output
Instance of 'Environment' has no 'now' member
43 18 error no-member E1101 simulated_output
Instance of 'Environment' has no 'timeout' member

Module examples.controller.bangbang_with_simulator (examples/controller/bangbang_with_simulator.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
examples/controller/bangbang_with_simulator.py: Fatal error while checking 'examples/controller/bangbang_with_simulator.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-50.txt'.
102 52 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\d'. String constant might be missing an r prefix.

Module examples.controller.pid_with_simulator (examples/controller/pid_with_simulator.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
examples/controller/pid_with_simulator.py: Fatal error while checking 'examples/controller/pid_with_simulator.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-50.txt'.
114 52 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\d'. String constant might be missing an r prefix.

Module part_1_my_first_agent_concise (examples/getting-started/part_1_my_first_agent_concise.py)

Line Col. Type Symbol ID Obj Message
17 0 convention missing-class-docstring C0115 MyFirstModuleConfig
Missing class docstring
22 0 convention missing-class-docstring C0115 MyFirstModule
Missing class docstring
27 12 warning logging-fstring-interpolation W1203 MyFirstModule.process
Use lazy % formatting in logging functions
45 0 convention missing-function-docstring C0116 main
Missing function or method docstring
49 4 warning unused-variable W0612 main
Unused variable 'agent'
50 4 error no-member E1101 main
Instance of 'Environment' has no 'run' member

Module part_1_my_first_agent_with_comments (examples/getting-started/part_1_my_first_agent_with_comments.py)

Line Col. Type Symbol ID Obj Message
18 0 convention missing-class-docstring C0115 MyFirstModuleConfig
Missing class docstring
23 0 convention missing-class-docstring C0115 MyFirstModule
Missing class docstring
32 12 warning logging-fstring-interpolation W1203 MyFirstModule.process
Use lazy % formatting in logging functions
70 0 convention missing-function-docstring C0116 main
Missing function or method docstring
84 4 warning unused-variable W0612 main
Unused variable 'agent'
87 4 error no-member E1101 main
Instance of 'Environment' has no 'run' member

Module part_2_agentvariables_concise (examples/getting-started/part_2_agentvariables_concise.py)

Line Col. Type Symbol ID Obj Message
16 0 convention missing-class-docstring C0115 MyModuleConfig
Missing class docstring
21 0 convention missing-class-docstring C0115 MyModule
Missing class docstring
29 12 warning logging-fstring-interpolation W1203 MyModule.process
Use lazy % formatting in logging functions
30 0 convention line-too-long C0301
Line too long (106/100)
51 0 convention missing-function-docstring C0116 main
Missing function or method docstring
57 4 error no-member E1101 main
Instance of 'Environment' has no 'run' member
60 8 convention import-outside-toplevel C0415 main
Import outside toplevel (matplotlib.pyplot)
60 8 error import-error E0401 main
Unable to import 'matplotlib.pyplot'
61 8 convention import-outside-toplevel C0415 main
Import outside toplevel (pandas)
61 8 error import-error E0401 main
Unable to import 'pandas'

Module part_2_agentvariables_with_comments (examples/getting-started/part_2_agentvariables_with_comments.py)

Line Col. Type Symbol ID Obj Message
16 0 convention missing-class-docstring C0115 MyModuleConfig
Missing class docstring
21 0 convention missing-class-docstring C0115 MyModule
Missing class docstring
43 12 warning logging-fstring-interpolation W1203 MyModule.process
Use lazy % formatting in logging functions
44 0 convention line-too-long C0301
Line too long (106/100)
90 0 convention missing-function-docstring C0116 main
Missing function or method docstring
96 4 error no-member E1101 main
Instance of 'Environment' has no 'run' member
99 8 convention import-outside-toplevel C0415 main
Import outside toplevel (matplotlib.pyplot)
99 8 error import-error E0401 main
Unable to import 'matplotlib.pyplot'
100 8 convention import-outside-toplevel C0415 main
Import outside toplevel (pandas)
100 8 error import-error E0401 main
Unable to import 'pandas'
121 4 convention missing-function-docstring C0116 alternate_process
Missing function or method docstring

Module part_3_using_models_concise (examples/getting-started/part_3_using_models_concise.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
examples/getting-started/part_3_using_models_concise.py: Fatal error while checking 'examples/getting-started/part_3_using_models_concise.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-49.txt'.

Module part_3_using_models_with_comments (examples/getting-started/part_3_using_models_with_comments.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
examples/getting-started/part_3_using_models_with_comments.py: Fatal error while checking 'examples/getting-started/part_3_using_models_with_comments.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-49.txt'.
147 0 convention line-too-long C0301
Line too long (117/100)

Module part_4_communicators_with_comments (examples/getting-started/part_4_communicators_with_comments.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
examples/getting-started/part_4_communicators_with_comments.py: Fatal error while checking 'examples/getting-started/part_4_communicators_with_comments.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-49.txt'.

Module scipy_example (examples/models/scipy/scipy_example.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
4 0 convention line-too-long C0301
Line too long (114/100)
9 0 convention invalid-name C0103
Constant name "C_p" doesn't conform to UPPER_CASE naming style
43 0 convention missing-function-docstring C0116 run_example
Missing function or method docstring
53 8 convention import-outside-toplevel C0415 run_example
Import outside toplevel (matplotlib.pyplot)
53 8 error import-error E0401 run_example
Unable to import 'matplotlib.pyplot'

Module examples.multi-agent-systems.pingpong.pingpong_clonemap (examples/multi-agent-systems/pingpong/pingpong_clonemap.py)

Line Col. Type Symbol ID Obj Message
6 17 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\e'. String constant might be missing an r prefix.
6 26 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\m'. String constant might be missing an r prefix.
6 46 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\p'. String constant might be missing an r prefix.
6 55 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\D'. String constant might be missing an r prefix.
11 0 error import-error E0401
Unable to import 'requests'
12 0 convention wrong-import-order C0411
standard import "from pathlib import Path" should be placed before "import requests"
16 4 refactor consider-using-from-import R0402
Use 'from clonemapy import ams' instead
16 4 error import-error E0401
Unable to import 'clonemapy.ams'
20 9 warning unspecified-encoding W1514
Using open without explicitly specifying an encoding
29 0 convention line-too-long C0301
Line too long (266/100)
37 0 convention line-too-long C0301
Line too long (234/100)

Module examples.multi-agent-systems.pingpong.pingpong_local (examples/multi-agent-systems/pingpong/pingpong_local.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring

Module examples.multi-agent-systems.pingpong.pingpong_module (examples/multi-agent-systems/pingpong/pingpong_module.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
4 0 error import-error E0401
Unable to import 'pydantic'
11 0 convention missing-class-docstring C0115 PingPongConfig
Missing class docstring
20 0 convention missing-class-docstring C0115 PingPong
Missing class docstring

Module examples.multi-agent-systems.pingpong.pingpong_mqtt (examples/multi-agent-systems/pingpong/pingpong_mqtt.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring

Module room_mas (examples/multi-agent-systems/room_mas/room_mas.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
4 0 error import-error E0401
Unable to import 'matplotlib.ticker'
11 0 convention line-too-long C0301
Line too long (110/100)
11 0 refactor too-many-locals R0914 run_example
Too many local variables (16/15)
65 4 convention import-outside-toplevel C0415 run_example
Import outside toplevel (matplotlib.pyplot)
65 4 error import-error E0401 run_example
Unable to import 'matplotlib.pyplot'
67 4 warning unused-variable W0612 run_example
Unused variable 'fig'
91 28 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\d'. String constant might be missing an r prefix.
91 41 warning anomalous-backslash-in-string W1401
Anomalous backslash in string: '\,'. String constant might be missing an r prefix.
98 8 convention invalid-name C0103 run_example
Variable name "ax" doesn't conform to snake_case naming style

Module examples.plugin.main (examples/plugin/main.py)

Line Col. Type Symbol ID Obj Message
24 0 convention missing-function-docstring C0116 main
Missing function or method docstring

Module examples.plugin.my_plugin.another_new_module (examples/plugin/my_plugin/another_new_module.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 error import-error E0401
Unable to import 'pydantic'
6 0 convention missing-class-docstring C0115 NewModuleConf2
Missing class docstring
10 0 convention missing-class-docstring C0115 NewModule2
Missing class docstring

Module examples.plugin.my_plugin.new_module (examples/plugin/my_plugin/new_module.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 error import-error E0401
Unable to import 'pydantic'
6 0 convention missing-class-docstring C0115 NewModuleConf
Missing class docstring
10 0 convention missing-class-docstring C0115 NewModule
Missing class docstring

Module csv_data_source (examples/simulation/csv_data_source.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
4 0 error import-error E0401
Unable to import 'matplotlib.pyplot'
5 0 error import-error E0401
Unable to import 'numpy'
6 0 error import-error E0401
Unable to import 'pandas'
11 0 convention missing-function-docstring C0116 create_sample_data
Missing function or method docstring
22 0 convention missing-function-docstring C0116 run_example
Missing function or method docstring
54 4 error no-member E1101 run_example
Instance of 'Environment' has no 'run' member
63 0 convention missing-function-docstring C0116 plot
Missing function or method docstring
69 4 warning unused-variable W0612 plot
Unused variable 'fig'

Module /home/runner/work/AgentLib/AgentLib/pylintrc (pylintrc)

Line Col. Type Symbol ID Obj Message
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'print-statement' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'parameter-unpacking' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'unpacking-in-except' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'old-raise-syntax' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'backtick' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'import-star-module-level' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'apply-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'basestring-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'buffer-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'cmp-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'coerce-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'execfile-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'file-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'long-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'raw_input-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'reduce-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'standarderror-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'unicode-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'xrange-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'coerce-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'delslice-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'getslice-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'setslice-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'no-absolute-import' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'old-division' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'dict-iter-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'dict-view-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'next-method-called' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'metaclass-assignment' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'indexing-exception' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'raising-string' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'reload-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'oct-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'hex-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'nonzero-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'cmp-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'input-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'round-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'intern-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'unichr-builtin' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'map-builtin-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'zip-builtin-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'range-builtin-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'filter-builtin-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'using-cmp-argument' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'div-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'idiv-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'rdiv-method' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'exception-message-attribute' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'invalid-str-codec' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'sys-max-int' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'bad-python3-import' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-string-function' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-str-translate-call' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-itertools-function' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-types-field' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'next-method-defined' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'dict-items-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'dict-keys-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'dict-values-not-iterating' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-operator-function' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-urllib-function' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'xreadlines-attribute' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'deprecated-sys-function' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'exception-escape' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'comprehension-escape' was removed from pylint, see https://github.com/pylint-dev/pylint/pull/4942.
1 0 refactor useless-option-value R0022
Useless option value for '--disable', 'no-self-use' was moved to an optional extension, see https://pylint.readthedocs.io/en/latest/whatsnew/2/2.14/summary.html#removed-checkers.
1 0 warning unknown-option-value W0012
Unknown option value for '--disable', expected a valid pylint message and got 'long-suffix'
1 0 warning unknown-option-value W0012
Unknown option value for '--disable', expected a valid pylint message and got 'old-ne-operator'
1 0 warning unknown-option-value W0012
Unknown option value for '--disable', expected a valid pylint message and got 'old-octal-literal'
1 0 warning unknown-option-value W0012
Unknown option value for '--disable', expected a valid pylint message and got 'non-ascii-bytes-literal'
1 0 warning unknown-option-value W0012
Unknown option value for '--disable', expected a valid pylint message and got 'eq-without-hash'

Module tests.test_agent (tests/test_agent.py)

Line Col. Type Symbol ID Obj Message
11 0 error import-error E0401
Unable to import 'pydantic'
29 0 convention missing-class-docstring C0115 UpdateModuleConfigTest
Missing class docstring
33 0 convention missing-class-docstring C0115 UpdateModuleTest
Missing class docstring
43 0 convention missing-class-docstring C0115 HealthCheckTest
Missing class docstring
56 12 warning broad-exception-raised W0719 HealthCheckTest._cb
Raising too general exception: Exception
59 0 refactor too-many-instance-attributes R0902 TestAgent
Too many instance attributes (8/7)
83 13 warning unspecified-encoding W1514 TestAgent.test_filepath_module_settings
Using open without explicitly specifying an encoding
104 4 convention missing-function-docstring C0116 TestAgent.test_getters
Missing function or method docstring
105 8 convention invalid-name C0103 TestAgent.test_getters
Variable name "ag" doesn't conform to snake_case naming style
116 8 convention invalid-name C0103 TestAgent.test_set_config
Variable name "ag" doesn't conform to snake_case naming style
134 8 convention invalid-name C0103 TestAgent.test_config_setter
Variable name "ag" doesn't conform to snake_case naming style
137 13 warning unspecified-encoding W1514 TestAgent.test_config_setter
Using open without explicitly specifying an encoding
149 8 convention invalid-name C0103 TestAgent.test_databroker_choice_
Variable name "ag" doesn't conform to snake_case naming style
152 8 convention invalid-name C0103 TestAgent.test_databroker_choice_
Variable name "ag" doesn't conform to snake_case naming style
160 8 convention invalid-name C0103 TestAgent.test_databroker_choice_
Variable name "ag" doesn't conform to snake_case naming style
173 8 convention invalid-name C0103 TestAgent.test_register_modules
Variable name "ag" doesn't conform to snake_case naming style
190 8 convention invalid-name C0103 TestAgent.test_health_check
Variable name "ag" doesn't conform to snake_case naming style
194 8 convention invalid-name C0103 TestAgent.test_health_check
Variable name "ag" doesn't conform to snake_case naming style
200 8 warning attribute-defined-outside-init W0201 TestAgent.test_health_check
Attribute '_stop_test' defined outside __init__
205 8 convention invalid-name C0103 TestAgent.test_health_check
Variable name "ag" doesn't conform to snake_case naming style
213 12 warning attribute-defined-outside-init W0201 TestAgent.test_health_check
Attribute '_still_running' defined outside __init__
217 12 warning attribute-defined-outside-init W0201 TestAgent.test_health_check
Attribute '_stop_test' defined outside __init__
226 12 warning attribute-defined-outside-init W0201 TestAgent._no_daemon_thread
Attribute '_still_running' defined outside __init__

Module tests.test_agentlogger (tests/test_agentlogger.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
5 0 error import-error E0401
Unable to import 'numpy'
6 0 error import-error E0401
Unable to import 'pandas'
13 0 convention missing-class-docstring C0115 TestAgentLogger
Missing class docstring
60 8 warning protected-access W0212 TestAgentLogger.test_logging_values
Access to a protected member _callback_values of a client class
61 8 warning protected-access W0212 TestAgentLogger.test_logging_values
Access to a protected member _log of a client class
79 8 warning protected-access W0212 TestAgentLogger.test_logging_full
Access to a protected member _callback_full of a client class
80 8 warning protected-access W0212 TestAgentLogger.test_logging_full
Access to a protected member _log of a client class
95 8 warning protected-access W0212 TestAgentLogger.test_file_overwrite
Access to a protected member _callback_values of a client class
96 8 warning protected-access W0212 TestAgentLogger.test_file_overwrite
Access to a protected member _log of a client class
111 8 warning protected-access W0212 TestAgentLogger.test_file_overwrite
Access to a protected member _callback_values of a client class
112 8 warning protected-access W0212 TestAgentLogger.test_file_overwrite
Access to a protected member _log of a client class
129 8 warning protected-access W0212 TestAgentLogger.test_cleanup
Access to a protected member _callback_values of a client class
130 8 warning protected-access W0212 TestAgentLogger.test_cleanup
Access to a protected member _log of a client class
150 12 warning protected-access W0212 TestAgentLogger.test_load_from_file
Access to a protected member _callback_values of a client class
151 8 warning protected-access W0212 TestAgentLogger.test_load_from_file
Access to a protected member _log of a client class
173 0 convention missing-final-newline C0304
Final newline missing

Module tests.test_communicator (tests/test_communicator.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 fatal astroid-error F0002
tests/test_communicator.py: Fatal error while checking 'tests/test_communicator.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-50.txt'.
3 0 error import-error E0401
Unable to import 'pandas'
23 0 convention missing-class-docstring C0115 TestCommunicator
Missing class docstring
33 4 convention missing-function-docstring C0116 TestCommunicator.test_roundtrip_variable
Missing function or method docstring
42 16 convention unnecessary-dunder-call C2801 TestCommunicator.test_roundtrip_variable
Unnecessarily calls dunder method __getattribute__. Access attribute directly or use getattr built-in function.
42 50 convention unnecessary-dunder-call C2801 TestCommunicator.test_roundtrip_variable
Unnecessarily calls dunder method __getattribute__. Access attribute directly or use getattr built-in function.

Module tests.test_data_broker (tests/test_data_broker.py)

Line Col. Type Symbol ID Obj Message
4 0 convention ungrouped-imports C0412
Imports from package unittest are not grouped
6 0 error import-error E0401
Unable to import 'numpy'
33 4 convention missing-function-docstring C0116 TestLocalDataBroker.perform_callbacks
Missing function or method docstring
34 23 warning protected-access W0212 TestLocalDataBroker.perform_callbacks
Access to a protected member _variable_queue of a client class
35 12 warning protected-access W0212 TestLocalDataBroker.perform_callbacks
Access to a protected member _execute_callbacks of a client class
42 29 warning protected-access W0212 TestLocalDataBroker.test_callback
Access to a protected member _unmapped_callbacks of a client class
55 29 warning protected-access W0212 TestLocalDataBroker.test_callback
Access to a protected member _unmapped_callbacks of a client class
61 29 warning protected-access W0212 TestLocalDataBroker.test_callback
Access to a protected member _mapped_callbacks of a client class
75 19 warning protected-access W0212 TestLocalDataBroker.test_callback
Access to a protected member _mapped_callbacks of a client class
75 8 warning unused-variable W0612 TestLocalDataBroker.test_callback
Unused variable 'key'
78 4 convention missing-function-docstring C0116 TestLocalDataBroker.dummy_callback
Missing function or method docstring
81 4 convention missing-function-docstring C0116 TestLocalDataBroker.test_trigger_recursion_error
Missing function or method docstring
84 4 convention missing-function-docstring C0116 TestLocalDataBroker.run_recursion_error_test
Missing function or method docstring
85 8 warning attribute-defined-outside-init W0201 TestLocalDataBroker.run_recursion_error_test
Attribute 'never_reached' defined outside __init__
97 4 convention missing-function-docstring C0116 TestLocalDataBroker.recursion_callback_1
Missing function or method docstring
97 35 warning unused-argument W0613 TestLocalDataBroker.recursion_callback_1
Unused argument 'variable'
100 4 convention missing-function-docstring C0116 TestLocalDataBroker.recursion_callback_2
Missing function or method docstring
100 35 warning unused-argument W0613 TestLocalDataBroker.recursion_callback_2
Unused argument 'variable'
102 8 warning attribute-defined-outside-init W0201 TestLocalDataBroker.recursion_callback_2
Attribute 'never_reached' defined outside __init__
114 8 convention missing-class-docstring C0115 TestLocalDataBroker.test_modules_cannot_overwrite_each_others_callbacks.Module
Missing class docstring
125 47 warning protected-access W0212 TestLocalDataBroker.test_modules_cannot_overwrite_each_others_callbacks
Access to a protected member _callback_config_vars of a client class
128 0 convention line-too-long C0301
Line too long (111/100)
130 47 warning protected-access W0212 TestLocalDataBroker.test_modules_cannot_overwrite_each_others_callbacks
Access to a protected member _callback_config_vars of a client class
132 29 warning protected-access W0212 TestLocalDataBroker.test_modules_cannot_overwrite_each_others_callbacks
Access to a protected member _unmapped_callbacks of a client class
135 47 warning protected-access W0212 TestLocalDataBroker.test_modules_cannot_overwrite_each_others_callbacks
Access to a protected member _callback_config_vars of a client class
137 29 warning protected-access W0212 TestLocalDataBroker.test_modules_cannot_overwrite_each_others_callbacks
Access to a protected member _unmapped_callbacks of a client class
162 0 convention missing-class-docstring C0115 TestRTDataBroker
Missing class docstring
169 13 warning protected-access W0212 TestRTDataBroker.setUp
Access to a protected member _start_executing_callbacks of a client class
181 0 convention missing-class-docstring C0115 TestDirectCallbackDataBroker
Missing class docstring
202 4 convention missing-function-docstring C0116 TestDirectCallbackDataBroker.test_assert_recursion_error
Missing function or method docstring

Module tests.test_data_source (tests/test_data_source.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
5 0 error import-error E0401
Unable to import 'numpy'
6 0 error import-error E0401
Unable to import 'pandas'
15 0 convention missing-class-docstring C0115 TestCSVDataSource
Missing class docstring
15 0 refactor too-many-instance-attributes R0902 TestCSVDataSource
Too many instance attributes (9/7)
35 4 convention missing-function-docstring C0116 TestCSVDataSource.create_test_df
Missing function or method docstring
50 4 convention missing-function-docstring C0116 TestCSVDataSource.test_datetime_index
Missing function or method docstring
58 4 convention missing-function-docstring C0116 TestCSVDataSource.test_float_index
Missing function or method docstring
66 4 convention missing-function-docstring C0116 TestCSVDataSource.test_string_number_index
Missing function or method docstring
74 4 convention missing-function-docstring C0116 TestCSVDataSource.test_non_convertible_index
Missing function or method docstring
81 4 convention missing-function-docstring C0116 TestCSVDataSource.get_data_source_config
Missing function or method docstring
91 4 convention missing-function-docstring C0116 TestCSVDataSource.test_data_source_initialization
Missing function or method docstring
98 4 convention missing-function-docstring C0116 TestCSVDataSource.test_data_loading
Missing function or method docstring
104 4 convention missing-function-docstring C0116 TestCSVDataSource.test_data_offset
Missing function or method docstring
110 4 convention missing-function-docstring C0116 TestCSVDataSource.test_interpolation
Missing function or method docstring
117 4 convention missing-function-docstring C0116 TestCSVDataSource.test_data_exhaustion
Missing function or method docstring
121 12 warning protected-access W0212 TestCSVDataSource.test_data_exhaustion
Access to a protected member _get_next_data of a client class
122 20 warning protected-access W0212 TestCSVDataSource.test_data_exhaustion
Access to a protected member _get_next_data of a client class

Module tests.test_databroker_limits (tests/test_databroker_limits.py)

Line Col. Type Symbol ID Obj Message
12 0 convention missing-class-docstring C0115 DataBrokerExplosionTest
Missing class docstring
31 0 convention missing-class-docstring C0115 Sender
Missing class docstring
45 0 convention missing-class-docstring C0115 SlowReceiver
Missing class docstring
61 0 convention missing-class-docstring C0115 FaultyReceiver
Missing class docstring
71 8 warning broad-exception-raised W0719 FaultyReceiver._do_some_slow_stuff
Raising too general exception: Exception
74 0 convention missing-function-docstring C0116 exploding_modules
Missing function or method docstring
95 0 convention missing-function-docstring C0116 slow_module
Missing function or method docstring
110 0 convention missing-function-docstring C0116 faulty_module
Missing function or method docstring
124 0 convention missing-class-docstring C0115 TestDataBrokerLimits
Missing class docstring
125 4 convention missing-function-docstring C0116 TestDataBrokerLimits.test_slow_module
Missing function or method docstring
130 4 convention missing-function-docstring C0116 TestDataBrokerLimits.test_exploding_module
Missing function or method docstring
135 4 convention missing-function-docstring C0116 TestDataBrokerLimits.test_faulty_module
Missing function or method docstring

Module tests.test_datamodels (tests/test_datamodels.py)

Line Col. Type Symbol ID Obj Message
5 0 error import-error E0401
Unable to import 'numpy'
6 0 error import-error E0401
Unable to import 'pandas'
23 4 convention missing-function-docstring C0116 TestVariables.test_base_model_variable
Missing function or method docstring
37 12 refactor use-dict-literal R1735 TestVariables.test_value_conversion
Consider using '{"name": 'test', "value": 100.0, "type": 'float'}' instead of a call to 'dict'.
51 12 refactor use-dict-literal R1735 TestVariables.test_series_sending
Consider using '{"name": 'test', "value": srs, "type": 'pd.Series'}' instead of a call to 'dict'.
63 16 refactor use-dict-literal R1735 TestVariables.test_type
Consider using '{"name": 'test', "type": 'not_supported'}' instead of a call to 'dict'.
66 50 refactor use-dict-literal R1735 TestVariables.test_type
Consider using '{"name": 'test', "type": float}' instead of a call to 'dict'.
72 16 refactor use-dict-literal R1735 TestVariables.test_allowed_values
Consider using '{"name": 'test', "type": 'float', "ub": 10, "lb": 0, "clip": True}' instead of a call to 'dict'.
82 12 refactor use-dict-literal R1735 TestVariables.test_allowed_values
Consider using '{"name": 'test', "type": 'float', "value": 20.0, "allowed_values": ['0', '10', 20, 30.0], ... }' instead of a call to 'dict'.
89 12 convention invalid-name C0103 TestVariables.test_allowed_values
Variable name "v" doesn't conform to snake_case naming style
101 16 refactor use-dict-literal R1735 TestVariables.test_pd_series
Consider using '{"name": 'test', "type": 'pd.Series', "value": value, "ub": 10, "lb": 5, ... }' instead of a call to 'dict'.
183 50 refactor use-dict-literal R1735 TestVariables.test_bounds
Consider using '{"name": 'test', "ub": 100, "lb": 200}' instead of a call to 'dict'.
187 12 refactor use-dict-literal R1735 TestVariables.test_bounds
Consider using '{"name": 'test', "clip": True, "ub": 100, "lb": 0, "value": 10000}' instead of a call to 'dict'.
191 12 refactor use-dict-literal R1735 TestVariables.test_bounds
Consider using '{"name": 'test', "clip": True, "ub": 100, "lb": 0, "value": -10000, ... }' instead of a call to 'dict'.
277 4 convention missing-function-docstring C0116 TestVariables.test_source
Missing function or method docstring
279 30 convention unnecessary-dunder-call C2801 TestVariables.test_source
Unnecessarily calls dunder method __str__. Use str built-in function.

Module tests.test_environment (tests/test_environment.py)

Line Col. Type Symbol ID Obj Message
7 0 error import-error E0401
Unable to import 'pydantic'
39 8 warning protected-access W0212 TestEnvironment.test_config_setter
Access to a protected member _config of a client class
40 30 error no-member E1101 TestEnvironment.test_config_setter
Instance of 'Environment' has no 'config' member; maybe '_config'?
42 13 warning unspecified-encoding W1514 TestEnvironment.test_config_setter
Using open without explicitly specifying an encoding
44 8 warning protected-access W0212 TestEnvironment.test_config_setter
Access to a protected member _config of a client class
45 30 error no-member E1101 TestEnvironment.test_config_setter
Instance of 'Environment' has no 'config' member; maybe '_config'?
52 8 error no-member E1101 TestEnvironment.test_rt
Instance of 'Environment' has no 'run' member
53 32 error no-member E1101 TestEnvironment.test_rt
Instance of 'Environment' has no 'time' member
58 30 error no-member E1101 TestEnvironment.test_no_config
Instance of 'Environment' has no 'config' member; maybe '_config'?

Module tests.test_examples (tests/test_examples.py)

Line Col. Type Symbol ID Obj Message
10 0 error import-error E0401
Unable to import 'pandas'
42 12 warning broad-exception-raised W0719 TestExamples._run_example
Raising too general exception: Exception
58 8 convention import-outside-toplevel C0415 TestExamples.test_room_mas
Import outside toplevel (sys)
73 8 convention import-outside-toplevel C0415 TestExamples.test_room_mas_direct_callback
Import outside toplevel (sys)

Module tests.test_mas (tests/test_mas.py)

Line Col. Type Symbol ID Obj Message
15 4 convention missing-function-docstring C0116 TestMAS.test_local_mas
Missing function or method docstring
17 4 convention missing-function-docstring C0116 TestMAS.test_multiprocessing_mas
Missing function or method docstring
19 4 convention missing-function-docstring C0116 TestMAS.test_clonemap_mas
Missing function or method docstring

Module tests.test_model (tests/test_model.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
tests/test_model.py: Fatal error while checking 'tests/test_model.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-51.txt'.
7 0 error import-error E0401
Unable to import 'pydantic'
8 0 error import-error E0401
Unable to import 'numpy'
15 0 convention missing-class-docstring C0115 DummyModel
Missing class docstring

Module tests.test_module (tests/test_module.py)

Line Col. Type Symbol ID Obj Message
1 0 fatal astroid-error F0002
tests/test_module.py: Fatal error while checking 'tests/test_module.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/runner/.cache/pylint/pylint-crash-2025-11-07-11-56-51.txt'.

Module tests.test_n_pingpong (tests/test_n_pingpong.py)

Line Col. Type Symbol ID Obj Message
8 0 error import-error E0401
Unable to import 'pydantic'
9 0 error import-error E0401
Unable to import 'numpy'
60 4 convention missing-function-docstring C0116 NPingPong.n
Missing function or method docstring
60 4 convention invalid-name C0103 NPingPong.n
Attribute name "n" doesn't conform to snake_case naming style
93 8 convention invalid-name C0103 TestNPingPong.setUp
Attribute name "n" doesn't conform to snake_case naming style
98 0 convention line-too-long C0301
Line too long (118/100)
101 8 convention invalid-name C0103 TestNPingPong.test_local_communicators
Variable name "rt" doesn't conform to snake_case naming style
103 34 convention invalid-name C0103 TestNPingPong.test_local_communicators
Variable name "rt" doesn't conform to snake_case naming style
117 8 warning unused-variable W0612 TestNPingPong.test_multiprocessing_broadcast
Unused variable 'broker'
130 59 convention invalid-name C0103 TestNPingPong._create_2n_pingpong_agents
Argument name "rt" doesn't conform to snake_case naming style

Module tests.test_plugins (tests/test_plugins.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
11 4 convention missing-function-docstring C0116 TestPlugin.test_model_plugin
Missing function or method docstring
13 4 convention missing-function-docstring C0116 TestPlugin.test_module_plugin
Missing function or method docstring
15 4 convention missing-function-docstring C0116 TestPlugin.test_module_not_found_error
Missing function or method docstring

Module tests.test_simulator (tests/test_simulator.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
1 0 convention wrong-import-position C0413
Import "import os" should be placed at the top of the module
1 0 convention wrong-import-order C0411
standard import "import os" should be placed before "import pandas as pd"
2 0 convention wrong-import-position C0413
Import "import shutil" should be placed at the top of the module
2 0 convention wrong-import-order C0411
standard import "import shutil" should be placed before "import pandas as pd"
3 0 convention wrong-import-position C0413
Import "import unittest" should be placed at the top of the module
3 0 convention wrong-import-order C0411
standard import "import unittest" should be placed before "import pandas as pd"
3 0 convention ungrouped-imports C0412
Imports from package unittest are not grouped
4 0 convention wrong-import-position C0413
Import "import uuid" should be placed at the top of the module
4 0 convention wrong-import-order C0411
standard import "import uuid" should be placed before "import pandas as pd"
6 0 error import-error E0401
Unable to import 'numpy'
6 0 convention wrong-import-position C0413
Import "import numpy as np" should be placed at the top of the module
6 0 convention wrong-import-order C0411
third party import "import numpy as np" should be placed before "from agentlib import Agent, Environment, AgentVariable"
7 0 error import-error E0401
Unable to import 'pandas'
7 0 convention wrong-import-position C0413
Import "import pandas as pd" should be placed at the top of the module
7 0 convention wrong-import-order C0411
third party import "import pandas as pd" should be placed before "from agentlib import Agent, Environment, AgentVariable"
7 0 convention ungrouped-imports C0412
Imports from package pandas are not grouped
8 0 error import-error E0401
Unable to import 'pydantic'
8 0 convention wrong-import-position C0413
Import "from pydantic import ValidationError" should be placed at the top of the module
8 0 convention wrong-import-order C0411
third party import "from pydantic import ValidationError" should be placed before "from agentlib import Agent, Environment, AgentVariable"
10 0 convention wrong-import-position C0413
Import "from agentlib.core import Agent, Environment, Model, ModelConfig, ModelOutputs, ModelOutput, ModelInput, ModelInputs, datamodels" should be placed at the top of the module
10 0 convention ungrouped-imports C0412
Imports from package agentlib are not grouped
21 0 convention wrong-import-position C0413
Import "from agentlib.modules.simulation.simulator import Simulator" should be placed at the top of the module
60 4 convention missing-function-docstring C0116 TestSimulator.get_agent
Missing function or method docstring
94 4 convention missing-function-docstring C0116 TestSimulator.test_simulation
Missing function or method docstring
101 4 convention missing-function-docstring C0116 TestSimulator.test_inputs_and_pars
Missing function or method docstring
103 8 warning protected-access W0212 TestSimulator.test_inputs_and_pars
Access to a protected member _callback_update_model_input of a client class
106 8 warning protected-access W0212 TestSimulator.test_inputs_and_pars
Access to a protected member _callback_update_model_parameter of a client class
114 4 convention missing-function-docstring C0116 TestSimulator.test_save_results
Missing function or method docstring
141 4 convention missing-function-docstring C0116 TestSimulator.test_wrong_causality
Missing function or method docstring
148 4 convention missing-function-docstring C0116 TestSimulator.test_no_files
Missing function or method docstring
174 13 warning unspecified-encoding W1514 TestSimulator.test_model_injection
Using open without explicitly specifying an encoding

Module tests.test_simulator_dashboard (tests/test_simulator_dashboard.py)

Line Col. Type Symbol ID Obj Message
1 0 convention missing-module-docstring C0114
Missing module docstring
4 0 error import-error E0401
Unable to import 'pandas'
5 0 error import-error E0401
Unable to import 'dash'
15 0 convention missing-class-docstring C0115 TestSimulatorDashboard
Missing class docstring
17 4 convention missing-function-docstring C0116 TestSimulatorDashboard.test_load_new_data
Missing function or method docstring
46 4 convention missing-function-docstring C0116 TestSimulatorDashboard.test_update_data
Missing function or method docstring
74 4 convention missing-function-docstring C0116 TestSimulatorDashboard.test_format_time_axis
Missing function or method docstring
79 4 convention missing-function-docstring C0116 TestSimulatorDashboard.test_create_plot
Missing function or method docstring

Module tests.test_utils (tests/test_utils.py)

Line Col. Type Symbol ID Obj Message
58 0 convention missing-class-docstring C0115 TestLoadConfig
Missing class docstring
81 17 warning unspecified-encoding W1514 TestLoadConfig.test_load_config
Using open without explicitly specifying an encoding
81 45 convention invalid-name C0103 TestLoadConfig.test_load_config
Variable name "f" doesn't conform to snake_case naming style
89 4 convention missing-function-docstring C0116 TestLoadConfig.test_load_config_error
Missing function or method docstring

Metrics

Count per types

Name Count
refactor 113
warning 75
fatal 35
convention 214
error 55

Count per messages

Name Count
useless-option-value 69
unknown-option-value 5
astroid-error 35
line-too-long 16
missing-module-docstring 30
invalid-name 20
missing-function-docstring 60
import-outside-toplevel 8
import-error 40
missing-class-docstring 33
anomalous-backslash-in-string 8
consider-using-from-import 1
unspecified-encoding 7
wrong-import-order 9
too-many-locals 1
unused-variable 6
logging-fstring-interpolation 5
no-member 15
missing-final-newline 1
protected-access 30
too-many-instance-attributes 2
unnecessary-dunder-call 3
wrong-import-position 9
ungrouped-imports 25
unused-argument 3
attribute-defined-outside-init 6
broad-exception-raised 3
use-dict-literal 10
raise-missing-from 2
inconsistent-return-statements 1
duplicate-code 29

Count per modules

Name Count
/home/runner/work/AgentLib/AgentLib/pylintrc 72
agentlib.modules.communicator.communicator 1
agentlib.modules.simulation.simulator 1
scipy_example 6
examples.multi-agent-systems.pingpong.pingpong_mqtt 1
examples.multi-agent-systems.pingpong.pingpong_local 1
examples.multi-agent-systems.pingpong.pingpong_module 4
examples.multi-agent-systems.pingpong.pingpong_clonemap 11
room_mas 10
part_1_my_first_agent_with_comments 6
part_1_my_first_agent_concise 6
part_4_communicators_with_comments 1
part_3_using_models_with_comments 2
part_2_agentvariables_with_comments 11
part_3_using_models_concise 1
part_2_agentvariables_concise 10
mqtt 7
csv_data_source 9
examples.plugin.main 1
examples.plugin.my_plugin.new_module 4
examples.plugin.my_plugin.another_new_module 4
examples.controller.bangbang_with_simulator 3
examples.controller.pid_with_simulator 2
tools 5
tests.test_n_pingpong 10
tests.test_agentlogger 17
tests.test_data_source 18
tests.test_communicator 7
tests.test_simulator 32
tests.test_plugins 4
tests.test_module 1
tests.test_data_broker 30
tests.test_simulator_dashboard 8
tests.test_mas 3
tests.test_examples 4
tests.test_databroker_limits 12
tests.test_model 4
tests.test_utils 4
tests.test_datamodels 16
tests.test_agent 23
tests.test_environment 9
agentlib.models.scipy_model 2
agentlib.models.fmu_model 2
agentlib.utils.plugin_import 3
agentlib.utils.load_config 2
agentlib.utils.local_broadcast_broker 1
agentlib.utils.validators 1
agentlib.utils.local_broker 1
agentlib.utils.fuzzy_matching 2
agentlib.utils.multi_processing_broker 2
agentlib.utils 2
agentlib.utils.multi_agent_system 2
agentlib.utils.plotting.simulator_dashboard 3
agentlib.core.data_broker 1
agentlib.core.agent 3
agentlib.core.module 5
agentlib.core.logging_ 3
agentlib.core.environment 3
agentlib.core.datamodels 5
agentlib.core.model 8
agentlib.modules.__init__ 1
agentlib.modules.utils.try_sensor 1
agentlib.modules.utils.agent_logger 4
agentlib.modules.communicator.local_broadcast 1
agentlib.modules.communicator.local 3
agentlib.modules.communicator.clonemap 1
agentlib.modules.communicator.local_multiprocessing 7
agentlib.modules.communicator.mqtt 2
agentlib.modules.simulation.csv_data_source 3
agentlib.modules.simulation 1
agentlib.modules.controller.bangbang 3
agentlib.modules.controller.controller 1
agentlib.modules.controller 1
agentlib.modules.controller.pid 31

Count per path

Name Count
pylintrc 72
agentlib/modules/communicator/communicator.py 1
agentlib/modules/simulation/simulator.py 1
examples/models/scipy/scipy_example.py 6
examples/multi-agent-systems/pingpong/pingpong_mqtt.py 1
examples/multi-agent-systems/pingpong/pingpong_local.py 1
examples/multi-agent-systems/pingpong/pingpong_module.py 4
examples/multi-agent-systems/pingpong/pingpong_clonemap.py 11
examples/multi-agent-systems/room_mas/room_mas.py 10
examples/getting-started/part_1_my_first_agent_with_comments.py 6
examples/getting-started/part_1_my_first_agent_concise.py 6
examples/getting-started/part_4_communicators_with_comments.py 1
examples/getting-started/part_3_using_models_with_comments.py 2
examples/getting-started/part_2_agentvariables_with_comments.py 11
examples/getting-started/part_3_using_models_concise.py 1
examples/getting-started/part_2_agentvariables_concise.py 10
examples/communicator/mqtt.py 7
examples/simulation/csv_data_source.py 9
examples/plugin/main.py 1
examples/plugin/my_plugin/new_module.py 4
examples/plugin/my_plugin/another_new_module.py 4
examples/controller/bangbang_with_simulator.py 3
examples/controller/pid_with_simulator.py 2
docs/source/manual_labor/tools.py 5
tests/test_n_pingpong.py 10
tests/test_agentlogger.py 17
tests/test_data_source.py 18
tests/test_communicator.py 7
tests/test_simulator.py 32
tests/test_plugins.py 4
tests/test_module.py 1
tests/test_data_broker.py 30
tests/test_simulator_dashboard.py 8
tests/test_mas.py 3
tests/test_examples.py 4
tests/test_databroker_limits.py 12
tests/test_model.py 4
tests/test_utils.py 4
tests/test_datamodels.py 16
tests/test_agent.py 23
tests/test_environment.py 9
agentlib/models/scipy_model.py 2
agentlib/models/fmu_model.py 2
agentlib/utils/plugin_import.py 3
agentlib/utils/load_config.py 2
agentlib/utils/local_broadcast_broker.py 1
agentlib/utils/validators.py 1
agentlib/utils/local_broker.py 1
agentlib/utils/fuzzy_matching.py 2
agentlib/utils/multi_processing_broker.py 2
agentlib/utils/__init__.py 2
agentlib/utils/multi_agent_system.py 2
agentlib/utils/plotting/simulator_dashboard.py 3
agentlib/core/data_broker.py 1
agentlib/core/agent.py 3
agentlib/core/module.py 5
agentlib/core/logging_.py 3
agentlib/core/environment.py 3
agentlib/core/datamodels.py 5
agentlib/core/model.py 8
agentlib/modules/__init__.py 1
agentlib/modules/utils/try_sensor.py 1
agentlib/modules/utils/agent_logger.py 4
agentlib/modules/communicator/local_broadcast.py 1
agentlib/modules/communicator/local.py 3
agentlib/modules/communicator/clonemap.py 1
agentlib/modules/communicator/local_multiprocessing.py 7
agentlib/modules/communicator/mqtt.py 2
agentlib/modules/simulation/csv_data_source.py 3
agentlib/modules/simulation/__init__.py 1
agentlib/modules/controller/bangbang.py 3
agentlib/modules/controller/controller.py 1
agentlib/modules/controller/__init__.py 1
agentlib/modules/controller/pid.py 31