# prism\_project.py

Every Prism project needs a `prism_project.py` file. This file serves two purposes:

1. It tells Prism that the directory is indeed a project
2. It contains information about your Python environment and project.

Here's what the default `prism_project.py` file looks like:

```python
# 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'

```

{% hint style="warning" %}
**Critical:** All prism projects require a `prism_project.py` file. This file tells prism that it is working inside a valid project.
{% endhint %}

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:

* [`RUN_ID / SLUG`](prism_project.py/run_id-slug)
* [`SYS_PATH_CONF`](prism_project.py/sys_path_conf)
* [`THREADS`](prism_project.py/threads)
* [`PROFILE_YML_PATH / PROFILE`](prism_project.py/profile_yml_path-profile)
* [`PRISM_LOGGER`](prism_project.py/prism_logger)
* [`TRIGGER_YML_PATH / TRIGGERS`](prism_project.py/triggers_yml_path-triggers)

More on these next.&#x20;
