Metadata-Version: 2.1
Name: thestage
Version: 0.5.20
Summary: 
Author: TheStage AI team
Author-email: hello@thestage.ai
Requires-Python: >=3.9,<=3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: gitpython (>=3.1.40,<4.0.0)
Requires-Dist: paramiko (>=3.4.0,<4.0.0)
Requires-Dist: pydantic (>=2.4.2,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: python-gettext-translations (>=1.1.0,<2.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
Requires-Dist: thestage-core (==0.0.16)
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
Description-Content-Type: text/markdown

# Запуск приложения разработчиком

Для разработки используется:
    python 3.11 
    poetry 1.7.1
### 1. Клонировать приложения с git:

    git clone git@github.com:TheStageAI/launcher-cli.git .

### 2. Установка poetry:
    
    pip install poetry==1.7.1

### 3. Установка зависимостей
    poetry install 

### 4. Первый запуск приложения разработчиком

Если нужно просто оценить работу приложения возможен запуск в таком формате:

    python -m thestage --help 
    
### 5. Для дебага приложения:

Для дебага можно использовать отдельный скрипт debug_main.py: `cp debug_main.dist.py debug_main.py`

Далее debug_main.py нужно обавить в pycharm как скрипт запуска (Run configuration)


### 6. Билд приложения

    poetry build

Создает папку dist в которой будет архив приложения и *.whl файл для установки.
Позже будет добавлен `push` в публичный репозиторий


# Установка приложения клиентом 
На текущий момент возможно установка с файла *.whl
    
    pip install thestage-*.*.*-py3-none-any.whl

# Первое знакомство с приложением 
Для приложения прописан help для каждой команды, даст возможность быстро разобраться с доступным функционалом

    thestage --help
    thestage project --help
    thestage project run --help

# Доступные команды для запуска:

В большинстве команд используется опция `working-directory`, она позволяет изменить рабочую директорию.
По умолчанию приложение будет работать с папкой в которой запущено.
Приложение хранит конфигурацию в папке `.thestage`, в рабочей папке(LOCAL), или в глобальной папке `~/.thestage/*`.
Хранить конфигы необходимые для работы приложения. Параметры рабочего скетча храняться только в LOCAL конфигах.  
    
## Работа c config
На текущий момент позволяет изменить токен если он был указан не верно 

    thestage config --help
    Пример: thestage config --change-token

## Работа с project
Дает возможность работать с project. На текущий момент позволяет 

### Инициализация скетча в текущей папке 
    
    thestage project init  --help
    Пример: thestage project init  --project-uid=test_project_1

Можно указать опцию `project-uid` указывает UID существующего project, если не указать приложение опросить перейти на сайт и создать.
Утилита проверить наличие токена и попросит его ввести если не найдет. Проверит скетч и инициализирует `git` с репозитория скетча в рабочей папке.

### Клонирование скетча в текущей папке 
    
    thestage project clone --help
    Пример: thestage project clone --project-uid=test_project_1

Можно указать опцию `project-uid` указывает UID существующего project, если не указать приложение опросить перейти на сайт и создать.
Утилита проверить наличие токена и попросит его ввести если не найдет. Проверит скетч и клонирует `git` в рабочую папку.
ВАЖНО! клон возможен только в пустую папку.

### Запуск task project 
    
    thestage project run --help
    Пример: thestage project run --command="pip install -r requirements.txt && CUDA_VISIBLE_DEVICES=0 python nin_cifar.py" --task-title="test task 1"

Важно указать команду которую будет запускать. Для запуска таски в рабочей директории должен быть инициализирован скетч.
Для команды можно указать опцию `--tail-output`=[1 или 0] 1 - (по умолчанию) дает возможность просматривать вывод таски пока она не будет завершена, 
0 - после установки таски выходит с приложения. 
    
    `--commit-hash` - запустит таску с конкретного хеша репозитория, если у нас в папке есть не закомиченые изменения, приложения предложит закомитить и использует его хеш для старта.
    `--instance-uid`, `--strage-uid` - дает возможность указать другой инстанс или сторейдж, если они не переданы будет использоваьться дефолтный с скетча.

### Получить список тасок скетча
    
    thestage project list-runs --help

Дополнительные опции:
    
    --page - номер страницы
    --row  - количество строк в таблице

Выводит список тасок скетча. Позволяет потом переключаться между страницами

### Получить информацию по конкретной таске
    
    thestage project run-details --help
    thestage project run-details --task-id=12345

Вернет информацию про задачу ид которой указано в task-id


### Получить лог по конкретной таске
    
    thestage project run-details --help
    thestage project run-log --task-id=12345

Вернет логи выполнения задачи ид которой указано в task-id

### Run Tests
Install pytest: `pip install pytest`

Make sure to unset all envs from .env: THESTAGE_API_URL etc

Run tests for installed package: `pytest`

Run tests 'module as a script' (runs actual code, not the installed package) `python -m pytest`

