[BUG] maturity and existing filters raise an AttributeError

Open
#662 0 comments 0 reactions 1 assignee View on GitHub

@tsmbland is already working on this.

Since Mar 24, 2025.

Assessment

This issue has not been assessed yet.

Description

bug

Describe the bug

In MUSE 1.3.2 and 1.3.3, I get the following error when using the maturity and existing filters:

-- 2025-02-17 18:43:50 - muse.filters - INFO
Computing filter: maturity

Traceback (most recent call last):
  File "", line 198, in _run_module_as_main
  File "", line 88, in _run_code
  File "...\.venv\Scripts\muse.exe\__main__.py", line 7, in 
    sys.exit(run())
             ~~~^^
  File "...\.venv\Lib\site-packages\muse\__main__.py", line 64, in run
    muse_main(args.settings, args.model, args.copy)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\muse\__main__.py", line 59, in muse_main
    MCA.factory(settings).run()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "...\.venv\Lib\site-packages\muse\mca.py", line 295, in run
    _, new_market, self.sectors = self.find_equilibrium(new_market)
                                  ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\muse\mca.py", line 198, in find_equilibrium
    return find_equilibrium(
        market=market,
    ...<6 lines>...
        equilibrium=self.equilibrium,
    )
  File "...\.venv\Lib\site-packages\muse\mca.py", line 444, in find_equilibrium
    market, equilibrium_sectors = single_year_iteration(market, sectors)
                                  ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\muse\mca.py", line 361, in single_year_iteration
    sector_market = sector.next(
        market[["supply", "consumption", "prices"]]  # type:ignore
    )
  File "...\.venv\Lib\site-packages\muse\sectors\sector.py", line 220, in next
    subsector.invest(
    ~~~~~~~~~~~~~~~~^
        technologies=self.technologies.sel(year=investment_year),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        market=market,
        ^^^^^^^^^^^^^^
    )
    ^
  File "...\.venv\Lib\site-packages\muse\sectors\subsector.py", line 71, in invest
    self.aggregate_lp(technologies, market)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\muse\sectors\subsector.py", line 103, in aggregate_lp
    agent.next(technologies=technologies, market=market, demand=share)
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\muse\agents\agent.py", line 340, in next
    self.search_rules(self, demand, technologies, market).fillna(0).astype(int)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\muse\filters.py", line 230, in filters
    result = function(agent, result, *args, **kwargs)
  File "...\.venv\Lib\site-packages\muse\registration.py", line 176, in decorated
    result = inner_decorated(*args, **kwargs)
  File "...\.venv\Lib\site-packages\muse\filters.py", line 139, in decorated
    result = function(agent, search_space, *args, **kwargs)  # type: ignore
  File "...\.venv\Lib\site-packages\muse\filters.py", line 341, in maturity
    capacity = agent.filter_input(market.capacity, year=agent.year)
                                  ^^^^^^^^^^^^^^^
  File "...\.venv\Lib\site-packages\xarray\core\common.py", line 302, in __getattr__
    raise AttributeError(
        f"{type(self).__name__!r} object has no attribute {name!r}"
    )
AttributeError: 'Dataset' object has no attribute 'capacity'

To Reproduce

Edit Agents.csv in the default or default_retro folders with a dedicated SearchRule.

Note

These filters work in MUSE 1.3.1

Dominant language
Python
Stars
29
Forks
12
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from EnergySystemsModellingLab/MUSE_OS

All issues in EnergySystemsModellingLab/MUSE_OS

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.