-
Notifications
You must be signed in to change notification settings - Fork 228
/
environment.yml
115 lines (108 loc) · 3.71 KB
/
environment.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# environment.yml - conda environment specification file for RMG-Py
#
# Usage: conda env create --file environment.yml
#
# This file contains all of the software packages needed to run RMG-Py.
# There is a mixture of the following
# - packlages would could be installed at OS level, but we install here
# for better version control
# - python tools
# - external software tools specific to chemistry
# - other software we maintain which RMG depends on
# + some other categories (see below)
#
# Changelog:
# - May 15, 2023 Added this changelog, added inline documentation,
# made dependency list more explicit (@JacksonBurns).
# - October 16, 2023 Switched RDKit and descripatastorus to conda-forge,
# moved diffeqpy to pip and (temporarily) removed chemprop
# - April 17, 2024 Limit versions of cclib at advice of maintainers.
# - August 4, 2024 Restricted pyrms to <2
name: rmg_env
channels:
- rmg
- conda-forge
- cantera
dependencies:
# System-level dependencies - we could install these at the OS level
# but by installing them in the conda environment we get better control
- cairo
- cairocffi
- ffmpeg
- xlrd
- xlwt
- h5py
- graphviz
- markupsafe
- psutil
# conda-forge not default, since default has a version information bug
# (see https://github.com/ReactionMechanismGenerator/RMG-Py/pull/2421)
- conda-forge::ncurses
- conda-forge::suitesparse
# external software tools for chemistry
- coolprop
- cantera::cantera=2.6
- conda-forge::mopac
# see https://github.com/ReactionMechanismGenerator/RMG-Py/pull/2639#issuecomment-2050292972
- conda-forge::cclib >=1.6.3,<1.9
- conda-forge::openbabel >= 3
- conda-forge::rdkit >=2022.09.1
# general-purpose external software tools
- conda-forge::julia=1.9.1
- conda-forge::pyjulia >=0.6
# Python tools
- python >=3.7
- coverage
- cython >=0.25.2
- scikit-learn
- scipy <1.11
- numpy >=1.10.0
- pydot
- jinja2
- jupyter
- pymongo
- pyparsing
- pyyaml
- networkx
- pytest
- pytest-cov
# we use a the pytest-check plugin, which is on Conda and PyPI, but the
# version compatible with Python 3.7 is only on PyPI
# switch to the conda version after upgrading to 3.11
# - conda-forge::pytest-check
- pip
- pip:
- pytest-check
- matplotlib >=1.5
- mpmath
- pandas
- conda-forge::gprof2dot
- conda-forge::numdifftools
- conda-forge::quantities
- conda-forge::muq
- conda-forge::lpsolve55
- conda-forge::ringdecomposerlib-python
# packages we maintain
- rmg::pydas >=1.0.3
- rmg::pydqed >=1.0.3
- rmg::pyrms <2
- rmg::symmetry
# packages we would like to stop maintaining (and why)
- rmg::diffeqpy
# we should use the official verison https://github.com/SciML/diffeqpy),
# rather than ours (which is only made so that we can get it from conda)
# It is only on pip, so we will need to do something like:
# https://stackoverflow.com/a/35245610
# Note that _some other_ dep. in this list requires diffeqpy in its recipe
# which will cause it to be downloaded from the rmg conda channel
# configure packages to use OpenBLAS instead of Intel MKL
- blas=*=openblas
# additional packages that are required, but not specified here (and why)
# pydqed, pydas, mopac, and likely others require a fortran compiler (specifically gfortran)
# in the environment. Normally we would add this to the environment file with
# - libgfortran-ng >= 10
# but this exact package is only maintained for Linux, meaning that if we were to add
# it here the environment creation would fail on Mac. The way it ends up working behind
# the scenes is that conda will find a different package for Mac that provides gfortran,
# but because we cannot specify per-platform requirements in this file we simply leave
# it out.