This page describes the directory layout and the application structure of GeniePy.
Project Layout
The initial directory structure looks as follows:
~/W/p/geniepy/code main ❯ tree -a -L 1 .
.
├── .env
├── .git
├── .gitattributes
├── .github
├── .gitignore
├── .pre-commit-config.yaml
├── .web
├── README.md
├── Taskfile.yml
├── app
├── assets
├── db.sqlite
├── dist
├── poetry.lock
├── pyproject.toml
├── rxconfig.py
├── sample.env
├── tasks.py
└── test_db.sqlite
7 directories, 13 files
.github
GeniePy support Github Actions as one of the continuous integration targets.
This directory contains the workflow definitions that will enable continuous testing for your application, if you've chosen Github as the source code hosting service.
.gitignore
An initial gitignore file for the project.
.pre-commit-config.yaml
We use the pre-commit framework for managing Git's pre-commit hooks.
This YAML file specifies pre-commit's configuration.
.web
Reflex compiles your Python code to a Next.js application and stores its
contents inside .web
. As such, this directory is important for local
development but you should ideally never have to touch it.
README.md
This file contains the project's README. We've left the file empty so you can fill it up with details about your project.
app
The app
directory contains all the application source code. We'll talk about
this in detail in a later section.
assets
The assets
directory contains the static assets (eg. images, icons, etc.) that
your application requires.
pyproject.toml
pyproject.toml
is a modern standard in the Python community to specify build
system information for Python projects.
GeniePy uses this file to store the project metadata, the dependencies, and some configuration for those dependencies.
poetry.lock
GeniePy uses Poetry to help you keep your project's dependencies pinned and
fresh. poetry.lock
is the lockfile that Poetry uses to lock those dependencies.
rxconfig.py
This file contains the Reflex configuration for your project. Check the Reflex configuration page for more details.
sample.env
This file acts as a starting point for the environment variables for your application.
If you're initializing a new application, copy this file to .env
and edit
.env
to have your application reflect the changes.