Project Structure ##################### This site gives a brief overview of the project structure of the qunicorn project. Describing the different packages and components within. The Structure described can be found within the :py:mod:`qunicorn_core` package. Structure of the project ************************* api : ^^^^^^^^^^^^^^^^ The :py:mod:`api package ` contains all the api views and models. It is used to define the API. * :py:mod:`api_models ` : * Contains DTOS and Schemas for all Objects * These are used for computation and to define the schemas for the api views * {component}_api : * Contains the api definition for a component. core : ^^^^^^^^^^^^^^^^ The :py:mod:`core package ` contains all the core logic of the project. This includes mappers and various services. * :py:mod:`mapper ` : * Contains mappers to map between different objects. * This includes: * mapping from DTOs to Dataclass objects * mapping from Schemas to DTOs * :py:mod:`pilotmanager ` : * Contains the different pilots, which are used to communicate with different quantum providers * Contains the pilot_manager, a service class for handling of pilot data. * pilot_resources : * Contains resources for the pilots in the json format. * :py:mod:`transpiler ` : * Contains the transpiler, which is used to transpile between assembler languages used by different providers. * {component}_service <.py File> * A service file for a component which handles communication between the api and other parts of the core package and the db package. db : ^^^^^^^^^^^^^^^^ The :py:mod:`db package ` contains the database models and the database service. It is used to define the database, and to handle communication with it. * :py:mod:`models ` : * Contains the definitions of the various database models. * :py:mod:`cli ` <.py File>: * Contains cli commands to interact with the database, such as setting up the database or pushing clean data. * :py:mod:`db ` <.py File>: * Contains DB constant to avoid circular imports. static : ^^^^^^^^^^^^^^^^^^ The :py:mod:`static package ` contains all static files, such as the enums used in the qunicorn project. * :py:mod:`enums ` : * Contains all enums used within the project. util : ^^^^^^^^^^^^^^^^ The :py:mod:`util package ` contains various util files, as well as config files for the project. * :py:mod:`config ` : * Contains config files for the project. * These include: Celery, Smorest and SQLAlchemy config files. * :py:mod:`debug_routes ` : * Contains routes for debugging purposes. * :py:mod:`logging ` <.py File>: * A util file to set up logging. * :py:mod:`reverse_proxy_fix ` <.py File> * A util file to set up reverse proxy fix. * :py:mod:`utils ` <.py File>: * A util file to set up general util methods.