Every Prism project needs a prism_project.py file. This file serves two purposes:
It tells Prism that the directory is indeed a project
It contains information about your Python environment and project.
Here's what the default prism_project.py file looks like:
# prism_project.py
"""
Prism project
"""
# Imports
from prism.admin import generate_run_id, generate_run_slug
import logging
from pathlib import Path
# Project metadata
NAME = ""
AUTHOR = ""
VERSION = ""
DESCRIPTION = """
"""
# Admin
RUN_ID = generate_run_id()
SLUG = generate_run_slug()
# sys.path config. This gives your tasks access to local modules / packages that exist
# outside of your project structure.
SYS_PATH_CONF = [
Path(__file__).parent,
# Add more paths here!
]
# Thread count: number of workers to use to execute tasks concurrently. If set to 1,
# then 1 task is run at a time.
THREADS = 1
# Profile directory and name
PROFILE_YML_PATH = Path(__file__).parent / 'profile.yml'
PROFILE = "default"
# Logger
PRISM_LOGGER = logging.getLogger("PRISM_LOGGER")
# Triggers
TRIGGERS_YML_PATH = Path(__file__).parent / 'triggers.yml'
TRIGGERS = {
'on_success': [],
'on_failure': [],
}
# Other variables / parameters. Make sure to capitalize all of these!
VAR_1 = {'a': 'b'}
VAR_2 = 200
VAR_3 = '2015-01-01'
# Paths
WKDIR = Path(__file__).parent
DATA = WKDIR / 'data'
OUTPUT = WKDIR / 'output'
Critical: All prism projects require a prism_project.py file. This file tells prism that it is working inside a valid project.
The prism_project.py is a normal Python module with variables representing Prism settings and project parameters. Next, we provide some more detail on specific settings, such as: