diff --git a/README.md b/README.md
index 20f3113..b31c687 100644
--- a/README.md
+++ b/README.md
@@ -157,7 +157,7 @@ Newly parameterized molecules will be written to the cache, saving time next tim
 ## Using the Open Force Field Initiative SMIRNOFF small molecule force fields
 
 The `openmmforcefields` package includes a [residue template generator](http://docs.openmm.org/latest/userguide/application.html#adding-residue-template-generators) for [the OpenMM `ForceField` class](http://docs.openmm.org/latest/api-python/generated/simtk.openmm.app.forcefield.ForceField.html#simtk.openmm.app.forcefield.ForceField) that automatically generates OpenMM residue templates for small molecules lacking parameters using the [Open Force Field Initiative](http://openforcefield.org) [SMIRNOFF](https://open-forcefield-toolkit.readthedocs.io/en/0.6.0/smirnoff.html) small molecule force fields.
-This includes the [`openff-1.0.0` ("Parsley")](https://openforcefield.org/news/introducing-openforcefield-1.0/) small molecule force field.
+This includes the [`openff-1.0.0` ("Parsley")](https://openforcefield.org/news/introducing-openforcefield-1.0/) small molecule force field, as well as newer versions of this force field.
 
 The `SMIRNOFFTemplateGenerator` residue template generator operates in a manner very similar to `GAFFTemplateGenerator`, so we only highlight its differences here.
 
@@ -269,7 +269,9 @@ See the corresponding directories for information on how to use the provided con
 
 # Changelog
 
-##
+## 0.7.3 Bugfix release: Compatibility with openforcefield toolkit 0.7.0 and auto-detection of installed openforcefield force fields
+* [(PR #119)](https://github.com/openmm/openmmforcefields/pull/119) Handle `None` partial charges in openforcefield `Molecule` objects (needed in `openforcefield` toolkit 0.7.0)
+* [(PR #120)](https://github.com/openmm/openmmforcefields/pull/120) Auto-detect installed SMIRNOFF force fields
 
 ## 0.7.2 Bugfix release: More error checking; OpenMM 7.4.2 minimum version requirement
 
diff --git a/openmmforcefields/generators/template_generators.py b/openmmforcefields/generators/template_generators.py
index 4253d7a..55ba380 100644
--- a/openmmforcefields/generators/template_generators.py
+++ b/openmmforcefields/generators/template_generators.py
@@ -860,6 +860,10 @@ class GAFFTemplateGenerator(SmallMoleculeTemplateGenerator):
 # Open Force Field Initiative SMIRNOFF specific OpenMM ForceField template generation utilities
 ################################################################################
 
+class ClassProperty(property):
+    def __get__(self, cls, owner):
+        return self.fget.__get__(None, owner)()
+
 class SMIRNOFFTemplateGenerator(SmallMoleculeTemplateGenerator):
     """
     OpenMM ForceField residue template generator for Open Force Field Initiative SMIRNOFF
@@ -910,9 +914,6 @@ class SMIRNOFFTemplateGenerator(SmallMoleculeTemplateGenerator):
     Newly parameterized molecules will be written to the cache, saving time next time!
 
     """
-    # TODO: Automatically populate this at import by examining plugin directories in order of semantic version
-    INSTALLED_FORCEFIELDS = ['smirnoff99Frosst-1.1.0', 'openff-1.0.0']
-
     def __init__(self, molecules=None, cache=None, forcefield=None):
         """
         Create a SMIRNOFFTemplateGenerator with some openforcefield toolkit molecules
@@ -1011,6 +1012,41 @@ class SMIRNOFFTemplateGenerator(SmallMoleculeTemplateGenerator):
         # Cache a copy of the OpenMM System generated for each molecule for testing purposes
         self._system_cache = dict()
 
+    @ClassProperty
+    @classmethod
+    def INSTALLED_FORCEFIELDS(cls):
+        """Return a list of the offxml files shipped with the openforcefield package.
+
+        Returns
+        -------
+        file_names : str
+           The file names of available force fields
+
+        .. todo ::
+
+           Replace this with an API call once this issue is addressed:
+           https://github.com/openforcefield/openforcefield/issues/477
+
+        """
+        # TODO: Replace this method once there is a public API in the openforcefield toolkit for doing this
+        # TODO: Impose some sort of ordering by preference?
+
+        from openforcefield.utils import get_data_file_path
+        from openforcefield.typing.engines.smirnoff.forcefield import _get_installed_offxml_dir_paths
+        from glob import glob
+
+        file_names = list()
+        for dir_path in _get_installed_offxml_dir_paths():
+            file_pattern = os.path.join(dir_path, '*.offxml')
+            file_paths = [file_path for file_path in glob(file_pattern)]
+            for file_path in file_paths:
+                basename = os.path.basename(file_path)
+                root, ext = os.path.splitext(basename)
+                # Only add variants without '_unconstrained'
+                if '_unconstrained' not in root:
+                    file_names.append(root)
+        return file_names
+
     def _search_paths(self, filename):
         """Search registered openforcefield plugin directories
 
@@ -1023,6 +1059,12 @@ class SMIRNOFFTemplateGenerator(SmallMoleculeTemplateGenerator):
         -------
         fullpath : str
             Full path to identified file, or None if no file found
+
+        .. todo ::
+
+           Replace this with an API call once this issue is addressed:
+           https://github.com/openforcefield/openforcefield/issues/477
+
         """
         # TODO: Replace this method once there is a public API in the openforcefield toolkit for doing this
 

Openforcefields versions
This table will be updated as a part of the openforcefields release process, per https://github.com/openforcefield/openforcefields/wiki/Release-Process

Close this issue once https://github.com/openforcefield/openforcefield/issues/477 is implemented
| Filename | DOI | FF line | Release Date | Change in functional form? |
| -------- | --- | -------- | --- | --- |
| `openff-2.0.0.offxml` |  | Sage | Late 2020 or Early 2021 (Anticipated) | Likely |
| `openff_unconstrained-2.0.0.offxml` |  | Sage | Late 2020 or Early 2021 (Anticipated) | Likely |
| `openff-1.2.0.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3872244.svg)](https://doi.org/10.5281/zenodo.3872244) | Parsley | May 29, 2020 | No |
| `openff_unconstrained-1.2.0.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3872244.svg)](https://doi.org/10.5281/zenodo.3872244) | Parsley | May 29, 2020 | No |
| `openff-1.1.1.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3751818.svg)](https://doi.org/10.5281/zenodo.3751818) | Parsley | Apr 14, 2020 | No |
| `openff_unconstrained-1.1.1.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3751818.svg)](https://doi.org/10.5281/zenodo.3751818) | Parsley | Apr 14, 2020 | No |
| `openff-1.1.0.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3695094.svg)](https://doi.org/10.5281/zenodo.3695094) | Parsley | Mar 3, 2020 | No |
| `openff_unconstrained-1.1.0.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3695094.svg)](https://doi.org/10.5281/zenodo.3695094) | Parsley | Mar 3, 2020 | No |
| `openff-1.0.1.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3751812.svg)](https://doi.org/10.5281/zenodo.3751812) | Parsley | Apr 14, 2020 | No |
| `openff_unconstrained-1.0.1.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3751812.svg)](https://doi.org/10.5281/zenodo.3751812) | Parsley | Apr 14, 2020 | No |
| `openff-1.0.0.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3483227.svg)](https://doi.org/10.5281/zenodo.3483227) | Parsley | Oct 12, 2019 | No |
| `openff_unconstrained-1.0.0.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3483227.svg)](https://doi.org/10.5281/zenodo.3483227) | Parsley | Oct 12, 2019 | No |
| `openff-1.0.0-RC2.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3473554.svg)](https://doi.org/10.5281/zenodo.3473554) | None | Oct 4, 2019 | No |
| `openff_unconstrained-1.0.0-RC2.offxml` | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3473554.svg)](https://doi.org/10.5281/zenodo.3473554) | None | Oct 4, 2019 | No |
| `openff-1.0.0-RC1.offxml` | None | None | Oct 4, 2019 | N/A |
| `openff_unconstrained-1.0.0-RC1.offxml` | None | None | Oct 4, 2019 | N/A |

diff --git a/openmmforcefields/tests/test_template_generators.py b/openmmforcefields/tests/test_template_generators.py
index 1b91685..e22e69e 100644
--- a/openmmforcefields/tests/test_template_generators.py
+++ b/openmmforcefields/tests/test_template_generators.py
@@ -702,6 +702,12 @@ class TestSMIRNOFFTemplateGenerator(TestGAFFTemplateGenerator):
 
         return new_molecule
 
+    def test_INSTALLED_FORCEFIELDS(self):
+        """Test INSTALLED_FORCEFIELDS contains expected force fields"""
+        assert 'openff-1.1.0' in SMIRNOFFTemplateGenerator.INSTALLED_FORCEFIELDS
+        assert 'smirnoff99Frosst-1.1.0' in SMIRNOFFTemplateGenerator.INSTALLED_FORCEFIELDS
+        assert 'openff_unconstrained-1.1.0' not in SMIRNOFFTemplateGenerator.INSTALLED_FORCEFIELDS
+        
     def test_energies(self):
         """Test potential energies match between openforcefield and OpenMM ForceField"""
         # DEBUG
@@ -742,7 +748,7 @@ class TestSMIRNOFFTemplateGenerator(TestGAFFTemplateGenerator):
 
 
     def test_partial_charges_are_none(self):
-        """Test parameterizing a small molecule with `partial_charges=None` instead 
+        """Test parameterizing a small molecule with `partial_charges=None` instead
         of zeros (happens frequently in OFFTK>=0.7.0)"""
         from openforcefield.topology import Molecule
         molecule = Molecule.from_smiles('C=O')
@@ -763,7 +769,7 @@ class TestSMIRNOFFTemplateGenerator(TestGAFFTemplateGenerator):
             from simtk.openmm.app import NoCutoff
             openmm_system = openmm_forcefield.createSystem(molecule.to_topology().to_openmm(), removeCMMotion=False, onbondedMethod=NoCutoff)
             smirnoff_system = generator.get_openmm_system(molecule)
-                
+
     def test_version(self):
         """Test version"""
         for forcefield in SMIRNOFFTemplateGenerator.INSTALLED_FORCEFIELDS:

devtools/conda-envs/test_env.yaml
pip install -e .[dev]
parse_log_pytest
environment.yml
pytest pytest-cov codecov pytest
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
AmberLite==22.0
AmberUtils==21.0
anyio @ file:///home/conda/feedstock_root/build_artifacts/anyio_1688651106312/work/dist
argon2-cffi @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi_1692818318753/work
argon2-cffi-bindings @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi-bindings_1649500320262/work
astunparse @ file:///home/conda/feedstock_root/build_artifacts/astunparse_1728923142236/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1722977137225/work
backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
backports.functools-lru-cache @ file:///home/conda/feedstock_root/build_artifacts/backports.functools_lru_cache_1702571698061/work
beautifulsoup4 @ file:///home/conda/feedstock_root/build_artifacts/beautifulsoup4_1705564648255/work
bleach @ file:///home/conda/feedstock_root/build_artifacts/bleach_1696630167146/work
Bottleneck @ file:///home/conda/feedstock_root/build_artifacts/bottleneck_1656803757560/work
Brotli @ file:///home/conda/feedstock_root/build_artifacts/brotli-split_1648883617327/work
bson==0.5.9
certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1725278078093/work/certifi
cffi @ file:///home/conda/feedstock_root/build_artifacts/cffi_1666183775483/work
charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1728479282467/work
codecov @ file:///home/conda/feedstock_root/build_artifacts/codecov_1681778020913/work
colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1666700638685/work
comm @ file:///home/conda/feedstock_root/build_artifacts/comm_1710320294760/work
coverage @ file:///home/conda/feedstock_root/build_artifacts/coverage_1664603898546/work
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
Cython @ file:///home/conda/feedstock_root/build_artifacts/cython_1659101942790/work
debugpy @ file:///home/conda/feedstock_root/build_artifacts/debugpy_1660619049122/work
decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1641555617451/work
defusedxml @ file:///home/conda/feedstock_root/build_artifacts/defusedxml_1615232257335/work
entrypoints @ file:///home/conda/feedstock_root/build_artifacts/entrypoints_1643888246732/work
exceptiongroup @ file:///home/conda/feedstock_root/build_artifacts/exceptiongroup_1720869315914/work
fastjsonschema @ file:///home/conda/feedstock_root/build_artifacts/python-fastjsonschema_1718477020893/work/dist
fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1666389892786/work
greenlet @ file:///home/conda/feedstock_root/build_artifacts/greenlet_1661444174803/work
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1726459485162/work
importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1653252814274/work
importlib-resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1688813467203/work
iniconfig @ file:///home/conda/feedstock_root/build_artifacts/iniconfig_1673103042956/work
ipykernel @ file:///home/conda/feedstock_root/build_artifacts/ipykernel_1666723258080/work
ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1651240553635/work
ipython_genutils @ file:///home/conda/feedstock_root/build_artifacts/ipython_genutils_1716278396992/work
ipywidgets @ file:///home/conda/feedstock_root/build_artifacts/ipywidgets_1724334859652/work
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1696326070614/work
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1715127149914/work
jsonschema @ file:///home/conda/feedstock_root/build_artifacts/jsonschema-meta_1669810440410/work
jupyter-server @ file:///home/conda/feedstock_root/build_artifacts/jupyter_server_1671591499479/work
jupyter_client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1673615989977/work
jupyter_core @ file:///home/conda/feedstock_root/build_artifacts/jupyter_core_1658332345782/work
jupyterlab_pygments @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_pygments_1707149102966/work
jupyterlab_widgets @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_widgets_1724331334887/work
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1657953088445/work
lxml @ file:///home/conda/feedstock_root/build_artifacts/lxml_1656759367847/work
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1648737551960/work
matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1661439848456/work
matplotlib-inline @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-inline_1713250518406/work
mdtraj @ file:///home/conda/feedstock_root/build_artifacts/mdtraj_1663069972907/work
mistune @ file:///home/conda/feedstock_root/build_artifacts/mistune_1698947099619/work
MMPBSA.py==16.0
msgpack @ file:///home/conda/feedstock_root/build_artifacts/msgpack-python_1654260645308/work
munkres==1.1.4
nbclassic @ file:///home/conda/feedstock_root/build_artifacts/nbclassic_1716838762700/work
nbclient @ file:///home/conda/feedstock_root/build_artifacts/nbclient_1665125402713/work
nbconvert @ file:///home/conda/feedstock_root/build_artifacts/nbconvert-meta_1687202153002/work
nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1679336765223/work
nest_asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1705850609492/work
networkx @ file:///home/conda/feedstock_root/build_artifacts/networkx_1646092782768/work
nglview @ file:///home/conda/feedstock_root/build_artifacts/nglview_1694740897061/work
notebook @ file:///home/conda/feedstock_root/build_artifacts/notebook_1715848908871/work
notebook_shim @ file:///home/conda/feedstock_root/build_artifacts/notebook-shim_1707957777232/work
numexpr @ file:///home/conda/feedstock_root/build_artifacts/numexpr_1658076415990/work
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1649806299270/work
OpenEye-toolkits-python3-linux-x64==2023.1.0
openforcefield @ file:///Users/jeffreywagner/miniconda3/envs/build/conda-bld/openforcefield_1615304302389/work
openforcefields @ file:///Users/jeffreywagner/miniconda3/envs/off-tk-dev/conda-bld/openforcefields_1628027169827/work
OpenMM==7.7.0
-e git+https://github.com/openmm/openmmforcefields.git@32f891396d32209d142b06fd0cd08855be3278c4#egg=openmmforcefields
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1696202382185/work
packmol-memgen==1.2.3rc0
pandas==1.3.5
pandocfilters @ file:///home/conda/feedstock_root/build_artifacts/pandocfilters_1631603243851/work
ParmEd @ file:///home/conda/feedstock_root/build_artifacts/parmed_1650082866370/work
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1712320355065/work
pdb4amber==22.0
pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1706113125309/work
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602536217715/work
Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1660385854171/work
pkgutil_resolve_name @ file:///home/conda/feedstock_root/build_artifacts/pkgutil-resolve-name_1694617248815/work
pluggy @ file:///home/conda/feedstock_root/build_artifacts/pluggy_1648772594554/work
prometheus-client @ file:///home/conda/feedstock_root/build_artifacts/prometheus_client_1689032443210/work
prompt_toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1727341649933/work
psutil @ file:///home/conda/feedstock_root/build_artifacts/psutil_1666155398032/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
pycairo==1.21.0
pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1636257122734/work
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1700607939962/work
pyMSMT==22.0
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1724616129934/work
pyrsistent @ file:///home/conda/feedstock_root/build_artifacts/pyrsistent_1649013358450/work
PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1648857264451/work
pytest @ file:///home/conda/feedstock_root/build_artifacts/pytest_1704035161844/work
pytest-cov @ file:///home/conda/feedstock_root/build_artifacts/pytest-cov_1684964868191/work
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1709299778482/work
pytraj==2.0.6
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1726055524169/work
PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1648757092905/work
pyzmq @ file:///home/conda/feedstock_root/build_artifacts/pyzmq_1663830492333/work
reportlab==3.5.68
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1716354486713/work
sander==22.0
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy_1637806658031/work
Send2Trash @ file:///home/conda/feedstock_root/build_artifacts/send2trash_1712584999685/work
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
smirnoff99frosst @ file:///home/conda/feedstock_root/build_artifacts/smirnoff99frosst_1610626268593/work
sniffio @ file:///home/conda/feedstock_root/build_artifacts/sniffio_1708952932303/work
soupsieve @ file:///home/conda/feedstock_root/build_artifacts/soupsieve_1658207591808/work
SQLAlchemy @ file:///home/conda/feedstock_root/build_artifacts/sqlalchemy_1665944338818/work
tables @ file:///home/conda/feedstock_root/build_artifacts/pytables_1660375051596/work
terminado @ file:///home/conda/feedstock_root/build_artifacts/terminado_1670253674810/work
tinycss2 @ file:///home/conda/feedstock_root/build_artifacts/tinycss2_1729802851396/work
tinydb @ file:///home/conda/feedstock_root/build_artifacts/tinydb_1728767744185/work
toml @ file:///home/conda/feedstock_root/build_artifacts/toml_1604308577558/work
tomli @ file:///home/conda/feedstock_root/build_artifacts/tomli_1727974628237/work
tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1656937818679/work
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1675110562325/work
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1688315532570/work
unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1649111917568/work
urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1708239446578/work
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1699959196938/work
webencodings @ file:///home/conda/feedstock_root/build_artifacts/webencodings_1694681268211/work
websocket-client @ file:///home/conda/feedstock_root/build_artifacts/websocket-client_1687789148259/work
widgetsnbextension @ file:///home/conda/feedstock_root/build_artifacts/widgetsnbextension_1724331337528/work
xmltodict @ file:///home/conda/feedstock_root/build_artifacts/xmltodict_1729070904456/work
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1677313463193/work

name: openmmforcefields
channels:
  - defaults
  - omnia
  - openeye
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - ambertools=22.0=py37h461e982_3
  - anyio=3.7.1=pyhd8ed1ab_0
  - argon2-cffi=23.1.0=pyhd8ed1ab_0
  - argon2-cffi-bindings=21.2.0=py37h540881e_2
  - arpack=3.7.0=hdefa2d7_2
  - astunparse=1.6.3=pyhd8ed1ab_2
  - attrs=24.2.0=pyh71513ae_0
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=pyhd8ed1ab_4
  - backports.functools_lru_cache=2.0.0=pyhd8ed1ab_0
  - beautifulsoup4=4.12.3=pyha770c72_0
  - bleach=6.1.0=pyhd8ed1ab_0
  - blosc=1.21.5=hc2324a3_1
  - boost=1.74.0=py37h796e4cb_5
  - boost-cpp=1.74.0=h75c5d50_8
  - bottleneck=1.3.5=py37hda87dfa_0
  - brotli=1.1.0=hb9d3cd8_2
  - brotli-bin=1.1.0=hb9d3cd8_2
  - brotli-python=1.0.9=py37hd23a5d3_7
  - bson=0.5.9=py_0
  - bzip2=1.0.8=h4bc722e_7
  - c-ares=1.34.4=hb9d3cd8_0
  - ca-certificates=2025.1.31=hbcca054_0
  - cairo=1.16.0=ha61ee94_1014
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cffi=1.15.1=py37h43b0acd_1
  - charset-normalizer=3.4.0=pyhd8ed1ab_0
  - codecov=2.1.13=pyhd8ed1ab_0
  - colorama=0.4.6=pyhd8ed1ab_0
  - comm=0.2.2=pyhd8ed1ab_0
  - coverage=6.5.0=py37h540881e_0
  - cudatoolkit=11.8.0=h4ba93d1_13
  - curl=8.8.0=he654da7_1
  - cycler=0.11.0=pyhd8ed1ab_0
  - cython=0.29.32=py37hd23a5d3_0
  - debugpy=1.6.3=py37hd23a5d3_0
  - decorator=5.1.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - entrypoints=0.4=pyhd8ed1ab_0
  - exceptiongroup=1.2.2=pyhd8ed1ab_0
  - expat=2.6.4=h5888daf_0
  - fftw=3.3.10=nompi_hf1063bd_110
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=h77eed37_3
  - fontconfig=2.14.2=h14ed4e7_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - fonttools=4.38.0=py37h540881e_0
  - freetype=2.12.1=h267a509_2
  - greenlet=1.1.3=py37hd23a5d3_0
  - hdf4=4.2.15=h9772cbc_5
  - hdf5=1.12.2=nompi_h4df4325_101
  - icu=70.1=h27087fc_0
  - idna=3.10=pyhd8ed1ab_0
  - importlib-metadata=4.11.4=py37h89c1867_0
  - importlib_metadata=4.11.4=hd8ed1ab_0
  - importlib_resources=6.0.0=pyhd8ed1ab_0
  - iniconfig=2.0.0=pyhd8ed1ab_0
  - ipykernel=6.16.2=pyh210e3f2_0
  - ipython=7.33.0=py37h89c1867_0
  - ipython_genutils=0.2.0=pyhd8ed1ab_1
  - ipywidgets=8.1.5=pyhd8ed1ab_0
  - jedi=0.19.1=pyhd8ed1ab_0
  - jinja2=3.1.4=pyhd8ed1ab_0
  - jpeg=9e=h0b41bf4_3
  - jsonschema=4.17.3=pyhd8ed1ab_0
  - jupyter_client=7.4.9=pyhd8ed1ab_0
  - jupyter_core=4.11.1=py37h89c1867_0
  - jupyter_server=1.23.4=pyhd8ed1ab_0
  - jupyterlab_pygments=0.3.0=pyhd8ed1ab_1
  - jupyterlab_widgets=3.0.13=pyhd8ed1ab_0
  - keyutils=1.6.1=h166bdaf_0
  - kiwisolver=1.4.4=py37h7cecad7_0
  - krb5=1.21.3=h659f571_0
  - lcms2=2.14=h6ed2654_0
  - ld_impl_linux-64=2.43=h712a8e2_4
  - lerc=4.0.0=h27087fc_0
  - libaec=1.1.3=h59595ed_0
  - libblas=3.9.0=20_linux64_openblas
  - libbrotlicommon=1.1.0=hb9d3cd8_2
  - libbrotlidec=1.1.0=hb9d3cd8_2
  - libbrotlienc=1.1.0=hb9d3cd8_2
  - libcblas=3.9.0=20_linux64_openblas
  - libcurl=8.8.0=hca28451_1
  - libdeflate=1.14=h166bdaf_0
  - libedit=3.1.20250104=pl5321h7949ede_0
  - libev=4.33=hd590300_2
  - libexpat=2.6.4=h5888daf_0
  - libffi=3.4.6=h2dba641_0
  - libgcc=14.2.0=h767d61c_2
  - libgcc-ng=14.2.0=h69a702a_2
  - libgfortran=14.2.0=h69a702a_2
  - libgfortran-ng=14.2.0=h69a702a_2
  - libgfortran5=14.2.0=hf1ad2bd_2
  - libglib=2.80.2=hf974151_0
  - libgomp=14.2.0=h767d61c_2
  - libiconv=1.18=h4ce23a2_1
  - liblapack=3.9.0=20_linux64_openblas
  - liblzma=5.6.4=hb9d3cd8_0
  - liblzma-devel=5.6.4=hb9d3cd8_0
  - libnetcdf=4.8.1=nompi_h261ec11_106
  - libnghttp2=1.58.0=h47da74e_1
  - libnsl=2.0.1=hd590300_0
  - libopenblas=0.3.25=pthreads_h413a1c8_0
  - libpng=1.6.43=h2797004_0
  - libsodium=1.0.18=h36c2ea0_1
  - libsqlite=3.46.0=hde9e2c9_0
  - libssh2=1.11.0=h0841786_0
  - libstdcxx=14.2.0=h8f9b012_2
  - libstdcxx-ng=14.2.0=h4852527_2
  - libtiff=4.4.0=h82bc61c_5
  - libuuid=2.38.1=h0b41bf4_0
  - libwebp-base=1.5.0=h851e524_0
  - libxcb=1.13=h7f98852_1004
  - libxcrypt=4.4.36=hd590300_1
  - libxml2=2.10.3=hca2bb57_4
  - libxslt=1.1.37=h873f0b0_0
  - libzip=1.10.1=h2629f0a_3
  - libzlib=1.2.13=h4ab18f5_6
  - lxml=4.9.1=py37h540881e_0
  - lz4-c=1.9.4=hcb278e6_0
  - lzo=2.10=hd590300_1001
  - markupsafe=2.1.1=py37h540881e_1
  - matplotlib-base=3.5.3=py37hf395dca_2
  - matplotlib-inline=0.1.7=pyhd8ed1ab_0
  - mdtraj=1.9.7=py37hcc56668_2
  - mistune=3.0.2=pyhd8ed1ab_0
  - msgpack-python=1.0.4=py37h7cecad7_0
  - munkres=1.1.4=pyh9f0ad1d_0
  - nbclassic=1.1.0=pyhd8ed1ab_0
  - nbclient=0.7.0=pyhd8ed1ab_0
  - nbconvert-core=7.6.0=pyhd8ed1ab_0
  - nbformat=5.8.0=pyhd8ed1ab_0
  - ncurses=6.5=h2d0b736_3
  - nest-asyncio=1.6.0=pyhd8ed1ab_0
  - netcdf-fortran=4.6.0=nompi_he1eeb6f_102
  - networkx=2.7=pyhd8ed1ab_0
  - nglview=3.0.8=pyh1da8cd4_0
  - nomkl=1.0=h5ca1d4c_0
  - notebook=6.5.7=pyha770c72_0
  - notebook-shim=0.2.4=pyhd8ed1ab_0
  - numexpr=2.8.3=py37h85a3170_100
  - numpy=1.21.6=py37h976b520_0
  - ocl-icd=2.3.2=hb9d3cd8_2
  - ocl-icd-system=1.0.0=1
  - opencl-headers=2024.10.24=h5888daf_0
  - openeye-toolkits=2023.1.0=py37_0
  - openforcefield=0.8.4=pyh39e3cac_0
  - openforcefields=2.0.0rc.2=py_0
  - openjpeg=2.5.0=h7d73246_1
  - openmm=7.7.0=py37h9d45a84_1
  - openssl=3.4.1=h7b32b05_0
  - packaging=23.2=pyhd8ed1ab_0
  - packmol=20.16.1=h3b12eaf_0
  - pandas=1.3.5=py37h8c16a72_0
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - parmed=3.4.3=py37hd23a5d3_2
  - parso=0.8.4=pyhd8ed1ab_0
  - pcre2=10.43=hcad00b1_0
  - perl=5.32.1=7_hd590300_perl5
  - pexpect=4.9.0=pyhd8ed1ab_0
  - pickleshare=0.7.5=py_1003
  - pillow=9.2.0=py37h850a105_2
  - pip=24.0=pyhd8ed1ab_0
  - pixman=0.44.2=h29eaf8c_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1
  - pluggy=1.0.0=py37h89c1867_3
  - prometheus_client=0.17.1=pyhd8ed1ab_0
  - prompt-toolkit=3.0.48=pyha770c72_0
  - psutil=5.9.3=py37h540881e_0
  - pthread-stubs=0.4=hb9d3cd8_1002
  - ptyprocess=0.7.0=pyhd3deb0d_0
  - pycairo=1.21.0=py37h0afab05_1
  - pycparser=2.21=pyhd8ed1ab_0
  - pygments=2.17.2=pyhd8ed1ab_0
  - pyparsing=3.1.4=pyhd8ed1ab_0
  - pyrsistent=0.18.1=py37h540881e_1
  - pysocks=1.7.1=py37h89c1867_5
  - pytables=3.7.0=py37h7d129aa_2
  - pytest=7.4.4=pyhd8ed1ab_0
  - pytest-cov=4.1.0=pyhd8ed1ab_0
  - python=3.7.12=hf930737_100_cpython
  - python-dateutil=2.9.0=pyhd8ed1ab_0
  - python-fastjsonschema=2.20.0=pyhd8ed1ab_0
  - python_abi=3.7=4_cp37m
  - pytz=2024.2=pyhd8ed1ab_0
  - pyyaml=6.0=py37h540881e_4
  - pyzmq=24.0.1=py37h0c0c2a8_0
  - rdkit=2022.09.1=py37hd0946af_0
  - readline=8.2=h8c095d6_2
  - reportlab=3.5.68=py37h69800bb_1
  - requests=2.32.2=pyhd8ed1ab_0
  - scipy=1.7.3=py37hf2a6cf1_0
  - send2trash=1.8.3=pyh0d859eb_0
  - setuptools=69.0.3=pyhd8ed1ab_0
  - six=1.16.0=pyh6c4a22f_0
  - smirnoff99frosst=1.1.0=pyh44b312d_0
  - snappy=1.2.1=h8bd8927_1
  - sniffio=1.3.1=pyhd8ed1ab_0
  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
  - sqlalchemy=1.4.42=py37h540881e_0
  - sqlite=3.46.0=h6d4b2fc_0
  - terminado=0.17.1=pyh41d4057_0
  - tinycss2=1.4.0=pyhd8ed1ab_0
  - tinydb=4.8.2=pyhd8ed1ab_0
  - tk=8.6.13=noxft_h4845f30_101
  - toml=0.10.2=pyhd8ed1ab_0
  - tomli=2.0.2=pyhd8ed1ab_0
  - tornado=6.2=py37h540881e_0
  - traitlets=5.9.0=pyhd8ed1ab_0
  - typing-extensions=4.7.1=hd8ed1ab_0
  - typing_extensions=4.7.1=pyha770c72_0
  - unicodedata2=14.0.0=py37h540881e_1
  - urllib3=2.2.1=pyhd8ed1ab_0
  - wcwidth=0.2.10=pyhd8ed1ab_0
  - webencodings=0.5.1=pyhd8ed1ab_2
  - websocket-client=1.6.1=pyhd8ed1ab_0
  - wheel=0.42.0=pyhd8ed1ab_0
  - widgetsnbextension=4.0.13=pyhd8ed1ab_0
  - xmltodict=0.14.2=pyhd8ed1ab_0
  - xorg-kbproto=1.0.7=hb9d3cd8_1003
  - xorg-libice=1.0.10=h7f98852_0
  - xorg-libsm=1.2.3=hd9c2040_1000
  - xorg-libx11=1.8.4=h0b41bf4_0
  - xorg-libxau=1.0.12=hb9d3cd8_0
  - xorg-libxdmcp=1.1.5=hb9d3cd8_0
  - xorg-libxext=1.3.4=h0b41bf4_2
  - xorg-libxrender=0.9.10=h7f98852_1003
  - xorg-libxt=1.3.0=hd590300_0
  - xorg-renderproto=0.11.1=hb9d3cd8_1003
  - xorg-xextproto=7.3.0=hb9d3cd8_1004
  - xorg-xproto=7.0.31=hb9d3cd8_1008
  - xz=5.6.4=hbcc6ac9_0
  - xz-gpl-tools=5.6.4=hbcc6ac9_0
  - xz-tools=5.6.4=hb9d3cd8_0
  - yaml=0.2.5=h7f98852_2
  - zeromq=4.3.5=h75354e8_4
  - zipp=3.15.0=pyhd8ed1ab_0
  - zlib=1.2.13=h4ab18f5_6
  - zstd=1.5.6=ha6fb4c9_0
  - pip:
      - amberlite==22.0
      - amberutils==21.0
      - mmpbsa-py==16.0
      - packmol-memgen==1.2.3rc0
      - pdb4amber==22.0
      - pytraj==2.0.6
      - sander==22.0
prefix: /opt/conda/envs/openmmforcefields

openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_INSTALLED_FORCEFIELDS
openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_add_molecules openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_add_solvent openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_cache openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_charge openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_charge_from_molecules openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_debug_ffxml openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_jacs_complexes openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_jacs_ligands openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_multiple_registration openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_parameterize openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_version openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_add_molecules openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_add_solvent openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_cache openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_charge openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_charge_from_molecules openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_debug_ffxml openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_energies openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_jacs_complexes openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_jacs_ligands openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_multiple_registration openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_parameterize openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_partial_charges_are_none
openmmforcefields/tests/test_template_generators.py::TestGAFFTemplateGenerator::test_create openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_create openmmforcefields/tests/test_template_generators.py::TestSMIRNOFFTemplateGenerator::test_version
openmmforcefields/generators/template_generators.py README.md
openmmforcefields/generators/template_generators.py README.md