Skip to content
This repository was archived by the owner on Dec 19, 2024. It is now read-only.

MoreliaTalk/morelia_server

Morelia Server - сСрвСр для мСссСндТСра MoreliaTalk

tests Coverage Status

Language EN, RU

Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ 2 Π±Ρ€Π°Π½Ρ‡Π°

Master - ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ°.

Π’ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ примСняСтся

  • Python 3.10 - язык программирования

  • Starlette - основной Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ

  • SQLObject - ORM для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹ΠΉ

  • Pydantic - валидация Π΄Π°Π½Π½Ρ‹Ρ…

  • Starlette - лСгковСсный ASGI Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ/Ρ‚ΡƒΠ»ΠΊΠΈΡ‚

  • websockets - рСализация ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Websockets Π² Python (RFC 6455 & 7692)

ОписаниС рСпозитория

  • /mod
    • /config
      • config.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ config.ini
      • validator.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
      • instance.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ содСрТит Π² сСбС инстанс handler-Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ
    • /db
      • dbhandler.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для выполнСния запросов ΠΊ Π‘Π”
      • models.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° описаниС Ρ‚Π°Π±Π»ΠΈΡ† Π‘Π” для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ОРМ.
      • instance.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ содСрТит Π² сСбС инстанс handler-Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…
    • /protocol
      • /matrix
        • api.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° описаниС API, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ….
        • worker.py - рСализация ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°
      • /mtp
        • api.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° описаниС API, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ….
        • worker.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² описанных Π² Morelia Protocol.
      • error.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² с ΠΊΠΎΠ΄Π°ΠΌΠΈ ошибок.
      • controller.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запрос Π² соотвСтствии с Ρ‚ΠΈΠΏΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°
      • lib.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ пароля, сравнСния пароля с Π΅Π³ΠΎ Ρ…ΡΡˆ-суммой, созданиС Ρ…Π΅ΡˆΠ° для auth_id.
      • log_handler.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ настройки логирования.
      • config.py - ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ настройки ΠΈΠ· config.ini
  • server.py - основной ΠΊΠΎΠ΄ сСрвСра
  • manage.py - cli-инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСрвСром(запуск, тСстовый ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π΄, ΠΈ Ρ‚.ΠΏ.)
  • /tests
    • fixtures/ - json-Ρ„Π°ΠΉΠ»Ρ‹ с Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, для провСдСния тСстов.
    • config.ini - ΠΊΠΎΠ½Ρ„ΠΈΠ³ сСрвСра для провСдСния тСстов
    • test_*.py - тСсты
  • example_config.ini - Ρ„Π°ΠΉΠ» содСрТащий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ настроСк сСрвСра, ΠΏΠ΅Ρ€Π΅Π΄ запуском сСрвСра просто ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ скопируйтС Π² config.ini.

Установка

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python вСрсиСй 3.10 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅.

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ git.

Если Π½ΡƒΠΆΠ΅Π½ GUI, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ GitHub Desktop.

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Git ΠΈΠ»ΠΈ GitHub Desktop ввСдя свои username ΠΈ email ΠΎΡ‚ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° созданного Π½Π° github.

Π€ΠΎΡ€ΠΊ рСпозитория Morelia Server

Если Ρ‚Ρ‹ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° GitHub'Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала Ρ„ΠΎΡ€ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊ сСбС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Morelia Server пСрСйдя ΠΏΠΎ ссылкС.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊ сСбС Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ git

git clone https://github.com/{username}/morelia_server.git
cd morelia_server

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ свой Ρ„ΠΎΡ€ΠΊ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ upstream Morelia Server

git remote add upstream https://github.com/MoreliaTalk/morelia_server.git

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ появились Π»ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ upstream Π² спискС ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

git remote -v
> origin    https://github.com/{username}/morelia_server.git (fetch)
> origin    https://github.com/{username}/morelia_server.git (push)
> upstream  https://github.com/MoreliaTalk/morelia_server.git (fetch)
> upstream  https://github.com/MoreliaTalk/morelia_server.git (push)

ΠŸΡ€ΠΈ использовании GitHub Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² мСню File ΠΏΡƒΠ½ΠΊΡ‚ Clone repository... Π΄Π°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ инструкциям

Настройка Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния Pipenv

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚.Π½. Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ virtualenv, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Pipenv

Если Π½Π΅ установлСн pipenv, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ

python -m pip install pipenv

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ

pipenv shell

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ· Pipfile

pipenv install --ignore-pipfile

ΠŸΠ΅Ρ€Π΅Π΄ запуском сСрвСра - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ настроСк

ΠŸΠ΅Ρ€Π΅Π΄ запуском сСрвСра Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ настройки (ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π‘Π”, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ - администратора)

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» example_config.ini, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ URI, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π° ΠΏΡƒΡ‚ΡŒ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠΌΠ΅Ρ€: URI = 'sqlite:db_sqlite.db'

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ config.ini, Ρ„Π°ΠΉΠ»Π° Π‘Π” ΠΈ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи администратора сСрвСра:

pipenv run python ./manage.py run init

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² созданной Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Π’ΠΠ˜ΠœΠΠΠ˜Π• ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π‘Π” Π½Π΅ удаляСтся):

pipenv run python ./manage.py delete db

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСстовый flow:

pipenv run python ./manage.py create flow

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ всСх возмоТностях ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° настроСк:

pipenv run python ./manage.py --help

Запуск сСрвСра Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Для запуска сСрвСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pipenv run python ./manage.py run devserver

Запуск сСрвСра Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для запуска сСрвСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pipenv run python ./manage.py run server

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ сСрвСру (ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅):

--host <str> - адрСс сСрвСра, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 127.0.0.1.

--port <int> - ΠΏΠΎΡ€Ρ‚ сСрврСра, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 8080.

--log-level <str> - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ логирования: critical, error, warning, info, debugΠ± trace, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ debug.

--use-colors - Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ использования Ρ†Π²Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний.

--reload - "горячая" ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности сСрвСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнного ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСра запуститС встроСнный Π² manage.py ΠΌΠΈΠ½ΠΈ-ΠΊΠ»ΠΈΠ΅Π½Ρ‚:

pipenv run python manage.py client send

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡƒΠ»Π»-рСквСста для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² master-Π²Π΅Ρ‚ΠΊΡƒ Morelia Server

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· master-Π²Π΅Ρ‚ΠΊΠΈ Morelia Server

git pull upstream master

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² master-Π²Π΅Ρ‚ΠΊΡƒ своСго Ρ„ΠΎΡ€ΠΊΠ°

git push

Для создания ΠΏΡƒΠ»Π»-рСквСста, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° GitHub, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ свой Ρ„ΠΎΡ€ΠΊ ΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΌ мСню Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° New pull request, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ пСрСнос ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² master-Π²Π΅Ρ‚ΠΊΡƒ Morelia Server ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Create pull request.

ВрСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ ΠΊΠΎΠ΄Π°

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ рСкомСндуСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ PEP 8 - руководство ΠΏΠΎ написанию ΠΊΠΎΠ΄Π° Π½Π° Python. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½Ρ‚Π΅Ρ€ (flake8, pylint ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ).

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° loguru

Π£Ρ€ΠΎΠ²Π½ΠΈ логирования ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅:

Level name | Logger method

DEBUG      | logger.debug()
INFO       | logger.info()
SUCCESS    | logger.success()
WARNING    | logger.warning()
ERROR      | logger.error()
           | logger.exception()
CRITICAL   | logger.critical()

НаписаниС ΠΈ запуск тСстов

Для написания тСстов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Unittest.

Для запуска тСстов Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ (вмСсто Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ тСста)

pipenv run python -v ./tests/test_*.py

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹

Telegram - Π³Ρ€ΡƒΠΏΠΏΠ° для обсуТдСния вопросов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Slack - Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» для обсуТдСния вопросов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ЛицСнзия

Copyright (c) 2020 - настоящСС врСмя MoreliaTalk team (NekrodNIK, Stepan Skriabin, rus-ai ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список Π² Ρ„Π°ΠΉΠ»Π΅ AUTHORS.md)

MoreliaTalkServer распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU Lesser General Public License вСрсии 3 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ (LGPL-3.0-or-later). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ смотритС Π² Ρ„Π°ΠΉΠ»Π΅ COPYING.LESSER.

Packages

 
 
 

Contributors 7