# Create environment with "conda env create", update with "conda env update"!
# This file contains the top level dependencies of the empyre project!
# requirements.txt also contains sub-dependencies, generated by "pip freeze > requirements.txt"!
# Add new dependencies here, then "conda env update", then "pip freeze > requirements.txt"!
# To see if compatible upgrades are available for the current packages, use "conda upgrade --all"!
# When packages are deprecated/deleted, it may be best to recreate the environment from scratch!

name: empyre

channels:
  - defaults  # Default conda channels, on top to keep highest priority!
  - conda-forge  # Used for hyperspy, pyFFTW!

dependencies:
  # Basic:
  - python=3.7
  - setuptools
  - numpy=1.17
  - scipy=1.3
  - tqdm=4.36
  - scikit-image=0.15
  # File IO:
  - hyperspy=1.5
  - hyperspy-gui-ipywidgets=1.2
  #- h5py=2.9  # TODO: depends on hyperspy? Not needed here?
  # Plotting and colors:
  - matplotlib=3.1
  - Pillow=6.1
  - cmocean=2.0
  #- qt=5.9  # TODO: only needed for mayavi?
  - mayavi=4.6  # TODO: Get rid of!
  # Testing:
  - pytest=5.0
  - pytest-cov=2.7
  - pytest-flake8=1.0
  - pytest-runner=5.1
  - pyroma  # Checks setup.py for cheese!
  #- pytest-mpl=0.10  # Needed for testing hyperspy! # TODO: Use for pyramid/plotting library, too!
  - coverage=4.5
  # Documentation:
  - sphinx=2.1
  - numpydoc=0.9
  - sphinx_rtd_theme=0.4  # TODO: not needed?
  # IPython and notebooks:
  - ipython=7.7
  - jupyter=1.0
  - nb_conda=2.2
  #- ptvsd=4.3  # Cell debugging in VS Code
  # TODO: - ipywidgets
  # TODO: Add back GUI dependencies!
  # TODO: Get Jutil from gitlab (currently doesn't work, git and cygwin don't play nice,...
  # TODO: ...because one is Unix, ond is Windows).
  # Fast computation:
  - pyFFTW=0.11
  # TODO: ? - pathos  # pathos.multiprocessing uses dill instead of pickle
  # PIP installations:
  #- pip=19.0
#  - pip:
#    # ALSO NEEDS JUTIL!
#    - "git+ssh://gitlab@iffgit.fz-juelich.de/unger/jutil.git"
  # Misc.:
  - nodejs=12.8  # TODO: Needs to be fixed to prevent errors! Check again if needed in future!
