Skip to main content

Space Engineers Redis helper utilities

Project description

secontrol

secontrol — это высокоуровневый клиент для взаимодействия с Redis-шлюзом Space Engineers. Библиотека упрощает получение телеметрии, отправку команд и реализацию автоматизаций, используя устойчивые подписки на ключевые события.

Возможности

  • Подключение к Redis с помощью конфигурации из .env или аргументов конструктора.
  • Наблюдение за ключами и каналами с автоматическим восстановлением подписок.
  • Утилиты для получения идентификаторов владельца, игрока и грида.
  • Примеры, демонстрирующие публикацию команд и мониторинг состояний.

Установка

После публикации на PyPI библиотеку можно будет установить стандартным способом:

pip install secontrol

До публикации можно установить пакет из исходников:

pip install .

Быстрый старт

from secontrol.common import prepare_grid

#Первый грид игрока
client, grid = prepare_grid()
#Устройства на гриде
print(", ".join((d.name or f"{d.device_type}:{d.device_id}") for d in grid.devices.values()) or "(no devices)")

Переменные окружения

Переменная Назначение
REDIS_URL URL Redis-инстанса (по умолчанию redis://api.outenemy.ru:6379/0).
REDIS_USERNAME Имя пользователя для авторизации.
REDIS_PASSWORD Пароль для подключения.
SE_PLAYER_ID Идентификатор игрока Space Engineers.
SE_GRID_ID Идентификатор грида. Если не задан, используется первый доступный.

Переменные можно определить в файле .env в корне проекта или системы. Модуль автоматически читает файл с помощью python-dotenv.

Примеры

Готовые скрипты находятся в каталоге sepy/examples. Чтобы запустить пример:

python -m secontrol.examples.list_grids

Разработка

  1. Создайте виртуальное окружение и установите зависимости:
    python -m venv .venv
    source .venv/bin/activate
    pip install -e .[dev]
    
  2. Запустите тесты:
    pytest
    

Подготовка и публикация пакета

  1. Обновите версию в pyproject.toml и src/secontrol/__init__.py.
  2. Сформируйте wheel и sdist:
    python -m build
    
  3. Проверьте содержимое архива:
    tar tzf dist/secontrol-<версия>.tar.gz
    
  4. Загрузите пакет на TestPyPI:
    twine upload --repository testpypi dist/*
    
  5. Убедитесь, что установка проходит успешно:
    </code></pre>
    </li>
    </ol>
    <p>pip install --index-url <a href="https://test.pypi.org/simple/">https://test.pypi.org/simple/</a> --extra-index-url <a href="https://pypi.org/simple">https://pypi.org/simple</a> secontrol</p>
    <pre><code>6. Опубликуйте на PyPI:
    ```bash
    twine upload dist/*
    

    После публикации команда pip install sepy станет доступной всем пользователям.

    Лицензия

    Проект распространяется по лицензии MIT. См. файл LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secontrol-0.1.1.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

secontrol-0.1.1-py3-none-any.whl (43.5 kB view details)

Uploaded Python 3

File details

Details for the file secontrol-0.1.1.tar.gz.

File metadata

  • Download URL: secontrol-0.1.1.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for secontrol-0.1.1.tar.gz
Algorithm Hash digest
SHA256 102c380aa5165c1ec405ec101e2396d5997c9ac821edd96f20637605376d19ea
MD5 f07cbc83e2588c0f90e6783649d07cfc
BLAKE2b-256 2f5f6ee16861be07fca45c94b8c83c7ec9bc337826a685580470e052c3de5f92

See more details on using hashes here.

File details

Details for the file secontrol-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: secontrol-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 43.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for secontrol-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1caa99b1090c79785b42c6bd1d5f0682cd79eae228563cff32e24fc22eb0c372
MD5 2126123ffbe1703bc2caf1d72164ce6f
BLAKE2b-256 fa41998d2b59e750d93bbfd1258fa4549f3153607ac8c1fa67198fa704f92ae3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page