We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Review objects exposed by environ
At the request of @jsiirola after I brought this to his attention, some Pyomo objects are not exposed by environ that would otherwise be expected. One that I have encountered is `TerminationCondition`, which needs to be imported from `pyomo.opt`.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `pyomo/environ/__init__.py`
Content:
```
1 #  ___________________________________________________________________________
2 #
3 #  Pyomo: Python Optimization Modeling Objects
4 #  Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC
5 #  Under the terms of Contract DE-NA0003525 with National Technology and
6 #  Engineering Solutions of Sandia, LLC, the U.S. Government retains certain
7 #  rights in this software.
8 #  This software is distributed under the 3-clause BSD License.
9 #  ___________________________________________________________________________
10 
11 import sys as _sys
12 if _sys.version_info[0] >= 3:
13     import importlib
14 
15     def _do_import(pkg_name):
16         importlib.import_module(pkg_name)
17 else:
18     def _do_import(pkg_name):
19         __import__(pkg_name, globals(), locals(), [], -1)
20 
21 #
22 # These packages contain plugins that need to be loaded
23 #
24 _packages = [
25     'pyomo.opt',
26     'pyomo.core',
27     'pyomo.checker',
28     'pyomo.repn',
29     'pyomo.pysp',
30     'pyomo.neos',
31     'pyomo.solvers',
32     'pyomo.gdp',
33     'pyomo.mpec',
34     'pyomo.dae',
35     'pyomo.bilevel',
36     'pyomo.scripting',
37 ]
38 #
39 #
40 # These packages also contain plugins that need to be loaded, but
41 # we silently ignore any import errors because these
42 # packages are optional and/or under development.
43 #
44 _optional_packages = set([
45     'pyomo.contrib.example',
46     'pyomo.contrib.preprocessing',
47     'pyomo.contrib.gdpopt',
48     'pyomo.contrib.trustregion',
49 ])
50 
51 
52 def _import_packages():
53     #
54     # Import required packages
55     #
56     for name in _packages:
57         pname = name+'.plugins'
58         try:
59             _do_import(pname)
60         except ImportError:
61             exctype, err, tb = _sys.exc_info()  # BUG?
62             import traceback
63             msg = "pyomo.environ failed to import %s:\nOriginal %s: %s\n"\
64                   "Traceback:\n%s" \
65                   % (pname, exctype.__name__, err,
66                      ''.join(traceback.format_tb(tb)),)
67             # clear local variables to remove circular references
68             exctype = err = tb = None
69             # TODO: Should this just log an error and re-raise the
70             # original exception?
71             raise ImportError(msg)
72 
73         pkg = _sys.modules[pname]
74         pkg.load()
75     #
76     # Import optional packages
77     #
78     for name in _optional_packages:
79         pname = name+'.plugins'
80         try:
81             _do_import(pname)
82         except ImportError:
83             continue
84         pkg = _sys.modules[pname]
85         pkg.load()
86 
87 from pyomo.util.plugin import PluginGlobals as _PG
88 _PG.add_env("pyomo")
89 _import_packages()
90 _PG.pop_env()
91 
92 #
93 # Expose the symbols from pyomo.core
94 #
95 from pyomo.core import *
96 from pyomo.opt import SolverFactory, SolverManagerFactory, UnknownSolver
97
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/pyomo/environ/__init__.py b/pyomo/environ/__init__.py
--- a/pyomo/environ/__init__.py
+++ b/pyomo/environ/__init__.py
@@ -93,4 +93,7 @@
 # Expose the symbols from pyomo.core
 #
 from pyomo.core import *
-from pyomo.opt import SolverFactory, SolverManagerFactory, UnknownSolver
+from pyomo.opt import (
+    SolverFactory, SolverManagerFactory, UnknownSolver,
+    TerminationCondition, SolverStatus,
+)

{"golden_diff": "diff --git a/pyomo/environ/__init__.py b/pyomo/environ/__init__.py\n--- a/pyomo/environ/__init__.py\n+++ b/pyomo/environ/__init__.py\n@@ -93,4 +93,7 @@\n # Expose the symbols from pyomo.core\n #\n from pyomo.core import *\n-from pyomo.opt import SolverFactory, SolverManagerFactory, UnknownSolver\n+from pyomo.opt import (\n+    SolverFactory, SolverManagerFactory, UnknownSolver,\n+    TerminationCondition, SolverStatus,\n+)\n", "issue": "Review objects exposed by environ\nAt the request of @jsiirola after I brought this to his attention, some Pyomo objects are not exposed by environ that would otherwise be expected. One that I have encountered is `TerminationCondition`, which needs to be imported from `pyomo.opt`.\n", "before_files": [{"content": "#  ___________________________________________________________________________\n#\n#  Pyomo: Python Optimization Modeling Objects\n#  Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC\n#  Under the terms of Contract DE-NA0003525 with National Technology and\n#  Engineering Solutions of Sandia, LLC, the U.S. Government retains certain\n#  rights in this software.\n#  This software is distributed under the 3-clause BSD License.\n#  ___________________________________________________________________________\n\nimport sys as _sys\nif _sys.version_info[0] >= 3:\n    import importlib\n\n    def _do_import(pkg_name):\n        importlib.import_module(pkg_name)\nelse:\n    def _do_import(pkg_name):\n        __import__(pkg_name, globals(), locals(), [], -1)\n\n#\n# These packages contain plugins that need to be loaded\n#\n_packages = [\n    'pyomo.opt',\n    'pyomo.core',\n    'pyomo.checker',\n    'pyomo.repn',\n    'pyomo.pysp',\n    'pyomo.neos',\n    'pyomo.solvers',\n    'pyomo.gdp',\n    'pyomo.mpec',\n    'pyomo.dae',\n    'pyomo.bilevel',\n    'pyomo.scripting',\n]\n#\n#\n# These packages also contain plugins that need to be loaded, but\n# we silently ignore any import errors because these\n# packages are optional and/or under development.\n#\n_optional_packages = set([\n    'pyomo.contrib.example',\n    'pyomo.contrib.preprocessing',\n    'pyomo.contrib.gdpopt',\n    'pyomo.contrib.trustregion',\n])\n\n\ndef _import_packages():\n    #\n    # Import required packages\n    #\n    for name in _packages:\n        pname = name+'.plugins'\n        try:\n            _do_import(pname)\n        except ImportError:\n            exctype, err, tb = _sys.exc_info()  # BUG?\n            import traceback\n            msg = \"pyomo.environ failed to import %s:\\nOriginal %s: %s\\n\"\\\n                  \"Traceback:\\n%s\" \\\n                  % (pname, exctype.__name__, err,\n                     ''.join(traceback.format_tb(tb)),)\n            # clear local variables to remove circular references\n            exctype = err = tb = None\n            # TODO: Should this just log an error and re-raise the\n            # original exception?\n            raise ImportError(msg)\n\n        pkg = _sys.modules[pname]\n        pkg.load()\n    #\n    # Import optional packages\n    #\n    for name in _optional_packages:\n        pname = name+'.plugins'\n        try:\n            _do_import(pname)\n        except ImportError:\n            continue\n        pkg = _sys.modules[pname]\n        pkg.load()\n\nfrom pyomo.util.plugin import PluginGlobals as _PG\n_PG.add_env(\"pyomo\")\n_import_packages()\n_PG.pop_env()\n\n#\n# Expose the symbols from pyomo.core\n#\nfrom pyomo.core import *\nfrom pyomo.opt import SolverFactory, SolverManagerFactory, UnknownSolver\n", "path": "pyomo/environ/__init__.py"}], "after_files": [{"content": "#  ___________________________________________________________________________\n#\n#  Pyomo: Python Optimization Modeling Objects\n#  Copyright 2017 National Technology and Engineering Solutions of Sandia, LLC\n#  Under the terms of Contract DE-NA0003525 with National Technology and\n#  Engineering Solutions of Sandia, LLC, the U.S. Government retains certain\n#  rights in this software.\n#  This software is distributed under the 3-clause BSD License.\n#  ___________________________________________________________________________\n\nimport sys as _sys\nif _sys.version_info[0] >= 3:\n    import importlib\n\n    def _do_import(pkg_name):\n        importlib.import_module(pkg_name)\nelse:\n    def _do_import(pkg_name):\n        __import__(pkg_name, globals(), locals(), [], -1)\n\n#\n# These packages contain plugins that need to be loaded\n#\n_packages = [\n    'pyomo.opt',\n    'pyomo.core',\n    'pyomo.checker',\n    'pyomo.repn',\n    'pyomo.pysp',\n    'pyomo.neos',\n    'pyomo.solvers',\n    'pyomo.gdp',\n    'pyomo.mpec',\n    'pyomo.dae',\n    'pyomo.bilevel',\n    'pyomo.scripting',\n]\n#\n#\n# These packages also contain plugins that need to be loaded, but\n# we silently ignore any import errors because these\n# packages are optional and/or under development.\n#\n_optional_packages = set([\n    'pyomo.contrib.example',\n    'pyomo.contrib.preprocessing',\n    'pyomo.contrib.gdpopt',\n    'pyomo.contrib.trustregion',\n])\n\n\ndef _import_packages():\n    #\n    # Import required packages\n    #\n    for name in _packages:\n        pname = name+'.plugins'\n        try:\n            _do_import(pname)\n        except ImportError:\n            exctype, err, tb = _sys.exc_info()  # BUG?\n            import traceback\n            msg = \"pyomo.environ failed to import %s:\\nOriginal %s: %s\\n\"\\\n                  \"Traceback:\\n%s\" \\\n                  % (pname, exctype.__name__, err,\n                     ''.join(traceback.format_tb(tb)),)\n            # clear local variables to remove circular references\n            exctype = err = tb = None\n            # TODO: Should this just log an error and re-raise the\n            # original exception?\n            raise ImportError(msg)\n\n        pkg = _sys.modules[pname]\n        pkg.load()\n    #\n    # Import optional packages\n    #\n    for name in _optional_packages:\n        pname = name+'.plugins'\n        try:\n            _do_import(pname)\n        except ImportError:\n            continue\n        pkg = _sys.modules[pname]\n        pkg.load()\n\nfrom pyomo.util.plugin import PluginGlobals as _PG\n_PG.add_env(\"pyomo\")\n_import_packages()\n_PG.pop_env()\n\n#\n# Expose the symbols from pyomo.core\n#\nfrom pyomo.core import *\nfrom pyomo.opt import (\n    SolverFactory, SolverManagerFactory, UnknownSolver,\n    TerminationCondition, SolverStatus,\n)\n", "path": "pyomo/environ/__init__.py"}]}