Skip to main content

gostpadi

Рисовалка блок-схем. Скармливаешь main.c — получаешь готовую схему: все линии под 90° и одной толщины, if и switch расходятся ветками, return уводит стрелку в «End». Рисовать руками не приходится.

схема из кода C

Работает и в обратную сторону: короткий текстовый файл .gvn — и та же схема без кода.

switch

Пакет на PyPI: pypi.org/project/gostpadi

Установка

pip install gostpadi

Нужен только matplotlib, он поставится сам.

Вариант без установки — uv запускает утилиту прямо с GitHub:

uv run https://raw.githubusercontent.com/sehaxe/gostpadi/main/gostpadi.py main.c

Использование

gostpadi main.c                 # -> main.png, вписано в А4
gostpadi main.c --show          # показать схему в терминале
gostpadi main.c -o scheme.svg   # векторный SVG для Word/LaTeX
gostpadi main.c --auto          # размер по схеме, без ужимания
gostpadi main.c --gvn           # сохранить текст схемы (можно править)

Понимает: printf/scanf (сами параллелограммы), присваивания, if/else, switch/case/default (кейсы висят на линии из нижнего угла ромба, подписи s = 1default), return (ветка уходит в «End»). Объявления переменных выбрасываются. Циклов и else if пока нет — утилита скажет сама.

Свой формат .gvn

Если хочется управлять каждой строкой — пиши схему текстом: строка = блок, ветки — отступом в 4 пробела.

#gostpadi 1
input scanf("%d", &x)
y = x * 2
if y > 10
    yes: printf("big")
    no: printf("small")
output printf("done")

Примеры и заготовка — в examples/ и по команде --template.

Все опции

опция что делает
-o ФАЙЛ имя результата (.png или .svg)
--show нарисовать схему прямо в терминале
--auto канвас по размеру схемы, без ужимания
--gvn сохранить текст схемы
--scale=N масштаб
--font=N кегль (12)
--lw=N толщина всех линий (1.4)
--dpi=N плотность пикселей (200)
--template заготовка схемы

Из Python

import gostpadi

gostpadi.render(open("main.c").read(), "схема.png")          # из кода C
gostpadi.render(open("схема.gvn").read(), "результат.png")   # из .gvn
gostpadi.render(text, "x2.png", page="auto", scale=2.0)      # опции

Проверка

uv run --with matplotlib python selftest.py

Прогоняет все вариации и сверяет геометрию с эталоном (tests/baseline.json).

Лицензия

MIT — LICENSE.

Download files

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

Source Distribution

gostpadi-1.0.1.tar.gz (197.2 kB view details)

Uploaded Source

Built Distribution

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

gostpadi-1.0.1-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file gostpadi-1.0.1.tar.gz.

File metadata

  • Download URL: gostpadi-1.0.1.tar.gz
  • Upload date:
  • Size: 197.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gostpadi-1.0.1.tar.gz
Algorithm Hash digest
SHA256 fb70878401d1b7b1a67fad383cac4b2ef65a1c0c358379eb7f5ce654d802da88
MD5 51da6ecbad160706ac3e149107a4d23e
BLAKE2b-256 56f2f63c3b3d8b3210b2f2a5d09d120e63b599a2a1412e1559e0cb496207751d

See more details on using hashes here.

File details

Details for the file gostpadi-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: gostpadi-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gostpadi-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56a5e35401a8a5fae5680a75e6519998ce6ca1759190d0e097eabe1a6a4479bd
MD5 57c45aa94e5c462a348a5e7c43045cf7
BLAKE2b-256 ac38c53d76733be5dfb0a88e4474397fbf278479863f1d5043027fad167867e6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page