Metadata-Version: 2.4
Name: solar-system-simulator
Version: 0.1.1
Summary: A Python simulation of the Solar System with CLI interface
Author-email: aratakrr1 <kirillpoplavskiy8@gmail.com>
License: MIT
Project-URL: Repository, https://github.com/suyeatolog/PPOIS_2/tree/main/lab1
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.14
Description-Content-Type: text/markdown

# Lab 1 - Solar System Model

## Постановка задания:
Предметная область: исследование и моделирование космических объектов в солнечной системе.

Важные сущности: солнце, планеты, спутники, кометы, астероиды, космический аппарат.

Операции: операция исследования движения планет, операция моделирования орбит, операция изучения атмосфер и поверхностей планет, операция запуска космических аппаратов, операция сбора данных.

```text
  ______             __                             ______                         __                             
 /      \           /  |                           /      \                       /  |                            
/$$$$$$  |  ______  $$ |  ______    ______        /$$$$$$  | __    __   _______  _$$ |_     ______   _____  ____  
$$ \__$$/  /      \ $$ | /      \  /      \       $$ \__$$/ /  |  /  | /       |/ $$   |   /      \ /     \/    \ 
$$      \ /$$$$$$  |$$ | $$$$$$  |/$$$$$$  |      $$      \ $$ |  $$ |/$$$$$$$/ $$$$$$/   /$$$$$$  |$$$$$$ $$$$  |
 $$$$$$  |$$ |  $$ |$$ | /    $$ |$$ |  $$/        $$$$$$  |$$ |  $$ |$$      \   $$ | __ $$    $$ |$$ | $$ | $$ |
/  \__$$ |$$ \__$$ |$$ |/$$$$$$$ |$$ |            /  \__$$ |$$ \__$$ | $$$$$$  |  $$ |/  |$$$$$$$$/ $$ | $$ | $$ |
$$    $$/ $$    $$/ $$ |$$    $$ |$$ |            $$    $$/ $$    $$ |/     $$/   $$  $$/ $$       |$$ | $$ | $$ |
 $$$$$$/   $$$$$$/  $$/  $$$$$$$/ $$/              $$$$$$/   $$$$$$$ |$$$$$$$/     $$$$/   $$$$$$$/ $$/  $$/  $$/ 
                                                            /  \__$$ |                                            
                                                            $$    $$/                                             
                                                             $$$$$$/                                              
                         __       __                  __            __                                            
                        /  \     /  |                /  |          /  |                                           
                        $$  \   /$$ |  ______    ____$$ |  ______  $$ |                                           
                        $$$  \ /$$$ | /      \  /    $$ | /      \ $$ |                                           
                        $$$$  /$$$$ |/$$$$$$  |/$$$$$$$ |/$$$$$$  |$$ |                                           
                        $$ $$ $$/$$ |$$ |  $$ |$$ |  $$ |$$    $$ |$$ |                                           
                        $$ |$$$/ $$ |$$ \__$$ |$$ \__$$ |$$$$$$$$/ $$ |                                           
                        $$ | $/  $$ |$$    $$/ $$    $$ |$$       |$$ |                                           
                        $$/      $$/  $$$$$$/   $$$$$$$/  $$$$$$$/ $$/                                                       
```
## Программа
Программа представляет собой модель предметной области Солнечной Системы, позволяющую просматривать данные об объектах Солнечной Системы, удалять текущие, создавать новые. Взаимодействие с программой осуществляется через консоль.

## Основные классы
Основной класс - Celestial Body \
Он представляет собой базовый класс для всех тел, присутствующих в солнечной системе \
Имеет поля:
- name - имя объекта
- mass - масса объекта
- radius - радиус объекта
- position - координаты позиции объекта

Классы Planet, Comet, Satellite, Asteroid, Sun, Spacecraft наследуются от Celestial Body \

Spacecraft - Класс, с помощью которого происходит сбор данных с космических тел. \
Наделен функционалом:
- Завести двигатель
- Путешествовать к объекту
- Считывать данные с текущего объекта
- Просматривать количество топлива
- Пополнять топливо, если необходимо

Данные, вводимые пользователем валидируются. Ошибки отлавливаются благодаря исключениям: \
exceptions.custom_exceptions.py:
- InvalidMassError
- InvalidRadiusError
- InvalidPositionError
- InvalidTemperatureError
- InvalidSurfaceError
- InvalidLuminosityError
- InvalidCoreDiameterError \
и так далее

