This is the main package directory, containing all of the core workings of Mephisto. They roughly follow the divisions noted in the architecture overview doc. The breakdown is as following:

  • abstractions: Contains the interface classes for the core abstractions in Mephisto, as well as implementations of those interfaces. These are the Architects, Blueprints, Crowd Providers, and Databases.
  • client: Contains user interfaces for using Mephisto at a very high level. Primarily comprised of the python code for the cli and the web views.
  • data_model: Contains the data model components as described in the architecture document. These are the relevant data structures that build upon the underlying MephistoDB, and are utilized throughout the Mephisto codebase.
  • operations: Contains low-level operational code that performs more complex functionality on top of the Mephisto data model.
  • scripts: Contains commonly executed convenience scripts for Mephisto users.
  • tools: Contains helper methods and modules that allow for lower-level access to the Mephisto data model than the clients provide. Useful for creating custom workflows and scripts that are built on Mephisto.
View Source
#!/usr/bin/env python3

# Copyright (c) Facebook, Inc. and its affiliates.
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

.. include::
__docformat__ = "restructuredtext"

from mephisto.operations.registry import fill_registries
from mephisto.operations.config_handler import init_config
from mephisto.operations.hydra_config import initialize_named_configs

import os

here = os.path.abspath(os.path.dirname(__file__))

    with open(os.path.join(here, "VERSION")) as version_file:
        __version__ =
except Exception:
    __version__ = "no_version_file"