Project files

Let’s talk a bit about the files in the Dagster Essentials course. The dagster_university/dagster_essentials directory should look something like this:

dagster_university/dagster_essentials
├── Makefile
├── README.md
├── dagster_cloud.yaml
├── dagster_essentials
│   ├── __init__.py
│   ├── assets
│   │   ├── __init__.py
│   │   ├── constants.py
│   │   ├── metrics.py
│   │   └── trips.py
│   ├── completed
│   │   └── ...
│   ├── definitions.py
│   ├── jobs.py
│   ├── partitions.py
│   ├── resources.py
│   ├── schedules.py
│   └── sensors.py
├── dagster_essentials_tests
│   └── ...
├── data
│   ├── outputs
│   ├── raw
│   ├── requests
│   └── staging
├── env.example
├── pyproject.toml
├── pytest.ini
└── uv.lock

We’re only going to touch on a handful of files for now, but later lessons will go over additional files in more detail.

The columns in the following table are as follows:

  • File/Directory - The name of the file/directory
  • Context - The reason the file/directory is in the project. Indicates that the file/directory is:
    • Dagster - Found in every Dagster project
    • Dagster U - Specifically for the project you will build during Dagster University
    • Python - Highly recommended as software engineering and Python best practices, but not technically required by Dagster
  • Description - A description of what the file/directory contains or what it’s used for
File/Directory Context Description
README.mdPythonA description and starter guide for the Dagster project.
dagster_essentials/Dagster UContains the files we will be working with during the course.
dagster_essentials/completedDagster UFinished code for each lesson of the course.
dagster_essentials_tests/Dagster UA Python module that contains unit tests for the completed code.
data/Dagster UThis directory (and directories within it) is where you’ll store the data assets you’ll make during this course. In production settings, this could be Amazon S3 or a data warehouse.
.env.examplePythonA text file containing pre-configured environment variables. We’ll talk more about this file in Lesson 6, when we cover connecting to external services.
pyproject.tomlPythonA file that specifies package core metadata in a static, tool-agnostic way. This file includes a tool.dagster section which references the Python module with your Dagster definitions defined and discoverable at the top level. This allows you to use the dagster dev command to load your Dagster code without any parameters.
pytest.iniPythonThe pytest.ini file is a configuration file for pytest that allows you to define test settings, such as command-line options, markers, and plugin configurations.
uv.lockPythonIn Python, uv.lock is a file used by the package manager uv to lock dependencies, similar to poetry.lock or requirements.txt, ensuring reproducible installations.

For more info about the other files in your Dagster project, check out the Project file reference in the Dagster Docs.