This page describes the directory layout and the application structure of GeniePy.
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
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.
An initial gitignore file for the project.
We use the pre-commit framework for managing Git's pre-commit hooks.
This YAML file specifies pre-commit's configuration.
Reflex compiles your Python code to a Next.js application and stores its
.web. As such, this directory is important for local
development but you should ideally never have to touch it.
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 directory contains all the application source code. We'll talk about
this in detail in a later section.
assets directory contains the static assets (eg. images, icons, etc.) that
your application requires.
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.
GeniePy uses Poetry to help you keep your project's dependencies pinned and
poetry.lock is the lockfile that Poetry uses to lock those dependencies.
This file contains the Reflex configuration for your project. Check the Reflex configuration page for more details.
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.