Drawlib パッケージ概要

Drawlib は Illustration as Code(コードとしての図解)および Illustrated Documentation as Code(図解入りドキュメントのコード管理)を実現する純粋 Python ライブラリです。import drawlib 配下に 20 個の遅延ロード対応トップレベルサブモジュール(PEP 562)と、drawlib.charts・drawlib.diagrams サブパッケージを公開しています。各機能は from drawlib.<module> import ... で直接インポートできます。

00_overview_1
Drawlib 統合 Python パッケージ構成 (import drawlib)
Source Code
from drawlib.canvas import save, setup
from drawlib.icons import phosphor
from drawlib.lines import line
from drawlib.shapes import rectangle
from drawlib.styles import Colors, Styles
from drawlib.text import text

setup(width=120, height=58, dpi=150)

# Outer package frame
rectangle((60, 29), width=112, height=50, style=Styles.MutedDashed.patch(shape_r=2.5))
phosphor.package((38.0, 48.5), width=4.4, style=Styles.DarkBold)
text(
    (63.5, 48.5),
    "Drawlib Package Architecture (v0.3.5)",
    style=Styles.DarkBold.patch(text_size=12.5),
)

# 1. Core Primitives & Styling
rectangle((23.5, 24), width=31, height=34, style=Styles.Neutral.patch(shape_r=2.0))
phosphor.shapes((12.5, 35.5), width=4.2, style=Styles.DarkBold)
text((25.5, 35.5), "Core Primitives", style=Styles.DarkBold.patch(text_size=11.0))
text(
    (23.5, 21.5),
    "canvas / shapes\nlines / text / images\nmath / styles / fonts",
    style=Styles.Dark.patch(text_size=10.0, text_line_spacing=1.35),
)

line((39.0, 24), (44.0, 24), arrow_head="->", style=Styles.DarkBold)

# 2. High-Level Components (Focal Hero)
rectangle((60, 24), width=32, height=34, style=Styles.PrimaryFlat.patch(shape_r=2.0))
phosphor.graph((48.5, 35.5), width=4.2, style=Styles.WhiteBold)
text((62.0, 35.5), "High-Level API", style=Styles.WhiteBold.patch(text_size=11.5))
text(
    (60, 21.5),
    "smartarts / charts\ndiagrams / graph\nicons (34 suites)",
    style=Styles.White.patch(text_size=10.0, text_color=Colors.White, text_line_spacing=1.35),
)

line((76.0, 24), (81.0, 24), arrow_head="->", style=Styles.DarkBold)

# 3. Docs, Animation & CLI
rectangle((96.5, 24), width=31, height=34, style=Styles.SecondaryNeutral.patch(shape_r=2.0))
phosphor.terminal_window((86.0, 35.5), width=4.2, style=Styles.DarkBold)
text((98.5, 35.5), "Docs & CLI", style=Styles.DarkBold.patch(text_size=11.0))
text(
    (96.5, 21.5),
    "anim / slide / tools\ndrawlib build & show\nHTML / PDF / PPTX",
    style=Styles.Dark.patch(text_size=10.0, text_line_spacing=1.35),
)

save()

パッケージ・サブパッケージの再エクスポート一覧 (__all__)#

Drawlib は PEP 562 に基づく遅延モジュールロードを採用しており、import drawlib 時の起動オーバーヘッドを最小化しつつ、dir() や静的型チェッカーからすべての公開サブモジュールを参照できます。

パッケージ名前空間 再エクスポートされるサブモジュール (__all__)
drawlib anim, canvas, charts, diagrams, fonts, graph, icons, images, lines, math, preset_colors, preset_styles, shapes, slide, smartarts, styles, text, tools, types, utils
drawlib.charts area, bar, gantt, heatmap, line, pie, radar, scatter(および共通型エイリアス DrawDirection)
drawlib.diagrams architecture, class_diagram, er, flow, sequence, state

全モジュール・CLI リファレンス一覧(全 29 ページ)#

ページ 対象モジュール 主な収録内容
00. Drawlib パッケージ概要 drawlib, drawlib.utils, drawlib.charts, drawlib.diagrams パッケージ定数、遅延ロード一覧、drawlib.utils、DrawDirection
01. drawlib.canvas drawlib.canvas 左下原点 (0, 0) キャンバスのライフサイクル(setup, save, clear, show, get_dimage, canvas)
02. drawlib.shapes drawlib.shapes 基本図形・ブロック矢印・3D コンテナ・バッジ・記号など全 43 シェイプ関数
03. drawlib.lines & drawlib.text drawlib.lines, drawlib.text 直線・円弧・ベジェ曲線・角丸ポリライン描画と横書き・縦書きテキスト
04. drawlib.images & drawlib.math drawlib.images, drawlib.math image()、不変 Dimage 画像変換、get_dimage_from_code()、2D 幾何計算
05. drawlib.styles & drawlib.types drawlib.styles, drawlib.types アクティブ Styles / Colors、不変 Style・Color モデル、型エイリアス
06. drawlib.preset_styles & preset_colors drawlib.preset_styles, drawlib.preset_colors DefaultStyles、GoogleStyles、MonochromeStyles、CssColors 等のプリセット
07. drawlib.fonts drawlib.fonts 環境非依存の標準フォント群(Font、日本語・多言語フォント、FontFile)
08. drawlib.icons drawlib.icons 全 34 アイコンスイート(phosphor, gcp, aws, azure, ドメイン別アイコン)
09. drawlib.smartarts(リスト・カード・テーブル) drawlib.smartarts Table, BoxList, CardList, KpiCards, BulletPoints, Panel, SourceCode, GridLayout
10. drawlib.smartarts(フロー・ツリー・マップ) drawlib.smartarts ChevronProcess, Cycle, Pyramid, Roadmap, TreeNode, MindMapNode, GeoMap, *Calendar
11. drawlib.charts.bar drawlib.charts.bar 集合・積み上げ・横向き対応の棒グラフ BarChart
12. drawlib.charts.line drawlib.charts.line 複数系列・マーカー・閾値線対応の折れ線グラフ LineChart
13. drawlib.charts.area drawlib.charts.area 積み上げ・重ね合わせ対応の面グラフ AreaChart
14. drawlib.charts.pie drawlib.charts.pie 円グラフ・ドーナツグラフ PieChart
15. drawlib.charts.radar drawlib.charts.radar 多軸レーダーチャート RadarChart
16. drawlib.charts.scatter drawlib.charts.scatter 散布図・バブルチャート ScatterChart
17. drawlib.charts.gantt drawlib.charts.gantt スケジュール・マイルストーン・依存関係を表す GanttChart
18. drawlib.charts.heatmap drawlib.charts.heatmap マトリクス HeatmapChart と空間サーマルオーバーレイ HeatmapOverlay
19. drawlib.diagrams.architecture drawlib.diagrams.architecture クラウド・マイクロサービス構成図 ArchitectureDiagram
20. drawlib.diagrams.flow drawlib.diagrams.flow フローチャート・スイムレーン図 FlowDiagram
21. drawlib.diagrams.sequence drawlib.diagrams.sequence シーケンス図 SequenceDiagram(ライフライン・複合フラグメント・ノート)
22. drawlib.diagrams.class_diagram drawlib.diagrams.class_diagram UML クラス図 ClassDiagram
23. drawlib.diagrams.er drawlib.diagrams.er ER データベース設計図 ERDiagram
24. drawlib.diagrams.state drawlib.diagrams.state ステートマシン図 StateDiagram
25. drawlib.graph drawlib.graph 5 種の決定論的自動レイアウトソルバー(get_layout())
26. drawlib.anim & drawlib.slide drawlib.anim, drawlib.slide マルチフレーム WebP Animation と 16:9 スライド SlideDeck / .pptx 出力
27. drawlib.tools drawlib.tools プロジェクトビルド・キャッシュ管理・プレビューサーバー・ルール取得 API
28. CLI リファレンス (drawlib) drawlib._cli コマンドラインツール(init, build, show, serve, cache, rules)

const__version__#

drawlib.__version__ として公開される標準 PEP 396 パッケージバージョン文字列(LIB_VERSION のエイリアス)です。

from drawlib import __version__

__version__: Final[str] = "0.3.5"
定数名 型 値 説明
__version__ Final[str] '0.3.5' インストールされている Drawlib のセマンティックバージョン文字列。

constLIB_NAME#

drawlib.LIB_NAME として公開される正規パッケージ識別子定数です。

from drawlib import LIB_NAME

LIB_NAME: Final[str] = "drawlib"
定数名 型 値 説明
LIB_NAME Final[str] 'drawlib' メタデータ・キャッシュ管理・CLI 表示で使用される正規ライブラリ名。

constLIB_VERSION#

drawlib.LIB_VERSION として公開されるセマンティックバージョン定数です。

from drawlib import LIB_VERSION

LIB_VERSION: Final[str] = "0.3.5"
定数名 型 値 説明
LIB_VERSION Final[str] '0.3.5' drawlib.__version__ と同一のセマンティックバージョン文字列。

typedrawlib.utils#

プロジェクト内の utils.py(または drawlib show -u <path> で指定したファイル)で定義されたトップレベル関数・クラス・定数がビルド/描画時に自動注入される動的ユーティリティ名前空間モジュール(import drawlib.utils または from drawlib import utils)です。

# プロジェクトの utils.py 側:
# def service_card(xy: tuple[float, float], title: str) -> None: ...

from drawlib import utils

utils.service_card((60, 30), "API Gateway")
挙動・属性 型 説明
drawlib.utils.<name> Any utils.py から読み込まれた任意のヘルパー関数・クラス・定数を解決します。
未定義属性へのアクセス AttributeError utils.py での定義方法および --utils オプションの案内を含む AttributeError を送出します。

typedrawlib.charts.DrawDirection#

drawlib.charts から公開される共通リテラル型エイリアスで、チャート要素(BarChart、LineChart、AreaChart など)の段階的描画や伸長方向を指定します。

from typing import Literal
from drawlib.charts import DrawDirection

DrawDirection = Literal["bottom_to_top", "left_to_right"]
指定可能なリテラル値 説明
'bottom_to_top' 下端(y0)から上方向へ向けてチャート要素を描画・伸長します。
'left_to_right' 左端(x0)から右方向へ向けてチャート要素を描画・伸長します。