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_apps only sees apps that loaded successfully at import time. If PM_REGISTRIES is unreachable (network down, wrong credentials) the function returns nothing — check the playmolecule logger output, or set PM_LOG_LEVEL=DEBUG to see why.

  • A custom app whose manifest fails to parse is silently skipped at import time and logged as an error. describe_apps won’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#