c_a
.M = sympy.Matrix(...)
довольно брутальные вещи творятся. По стопицот раз вычисляешь синус и косинус одного и того же числа, а это небыстрая операция! Ну и опять же, там numpy вот прям напрашивается... На клиенте есть маршрут до сервера, где локальный (российский) конец туннеля.
import sys
from pathlib import Path
# __file__ и sys.argv[0] могут не совпадать для скриптов из нескольких файлов.
script_path = Path(sys.argv[0]).resolve()
dotenv_path = script_path.parent / '.env'
script_name = script_path.stem
log_dir = script_path.parent
log_file = log_dir / (script_name + '.log')