mephisto

Mephisto

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:: README.md
"""
__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__))

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

init_config()
fill_registries()
initialize_named_configs()