Skip to content

Remove all library requirements #626

@Corvince

Description

@Corvince

Mesa currently ships as a "batteries included" package with requirements for all possible functionality provided. While this is nice for new users, concerns have been raised that mesa is unsuitable for integration into larger projects due to its (possibly unused) dependencies. Upon further inspection all currently required packages are optional.

  • click, cookiecutter only used for mesa command
  • jupyter not used at all
  • networkx only implicitly used by NetworkGrid
  • numpy only used for ContinuousSpace
  • pandas only used for DataFrame output of the DataCollector
  • tornado only used for Visualization
  • tqdm only used for batch runner

Those requirements could be put under some extra_requires in the setup.py file and then users could still install mesa with pip install mesa[all] to have everything included.

Steps for this issue would include:

  • Update setup.py (decide on name for "all")
  • Lazy load all dependencies with helpful error messages if it fails
  • Update documentation

But before working on this issue we should decide whether this is a good idea or not

Credits to @rht for starting this discussion in #614

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions