List and inspect apps#
Goal#
Find out which PlayMolecule apps are installed, what each one does, and what parameters it accepts.
Minimal example#
from playmolecule import describe_apps
describe_apps()
Prints each app’s qualified import path and one-line description.
Get the data as a dict#
apps = describe_apps(as_dict=True)
for path, info in apps.items():
print(path, "—", info["description"])
The keys are fully qualified import paths (playmolecule.apps.<name>.<version>.<function>); the values currently expose only description. Use this when you need to drive a UI or a config file rather than print to a terminal.
Inspect one app#
Once imported, each app is a normal Python function with a real signature and docstring:
from playmolecule.apps import proteinprepare
help(proteinprepare) # parameters + outputs + examples
In IPython, proteinprepare? is equivalent. The docstring lists every parameter, its type, default, and description, plus the outputs the app writes and any example calls — everything you need to call the app correctly.
See available versions#
The versioned submodules live under the app’s namespace:
import playmolecule.apps.proteinprepare as pp
[name for name in dir(pp) if name.startswith("v")] # ['v1', 'v2', ...]
The bare proteinprepare symbol aliases the latest version; everything else is at pp.v1, pp.v2, etc. See Select an app version.
Gotchas#
describe_appsonly sees apps that loaded successfully at import time. IfPM_REGISTRIESis unreachable (network down, wrong credentials) the function returns nothing — check theplaymoleculelogger output, or setPM_LOG_LEVEL=DEBUGto see why.A custom app whose manifest fails to parse is silently skipped at import time and logged as an error.
describe_appswon’t list it; check the import-time log to spot the problem.The descriptions you see are the first line of each app function’s docstring. If you maintain an app, keep the first line tight.
See also#
describe_apps()