drawlib 0.2.4.dev3__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- drawlib-0.3.1/PKG-INFO +252 -0
- drawlib-0.3.1/docs/README_PYPI.md +231 -0
- {drawlib-0.2.4.dev3 → drawlib-0.3.1}/pyproject.toml +64 -17
- drawlib-0.3.1/src/drawlib/__init__.py +107 -0
- {drawlib-0.2.4.dev3 → drawlib-0.3.1}/src/drawlib/__main__.py +6 -4
- drawlib-0.3.1/src/drawlib/_anim/__init__.py +16 -0
- drawlib-0.3.1/src/drawlib/_anim/_animation.py +200 -0
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/duml.py → drawlib-0.3.1/src/drawlib/_builder/__init__.py +3 -3
- drawlib-0.3.1/src/drawlib/_builder/_common/__init__.py +56 -0
- drawlib-0.3.1/src/drawlib/_builder/_common/cache.py +712 -0
- drawlib-0.3.1/src/drawlib/_builder/_common/cache_manager.py +100 -0
- drawlib-0.3.1/src/drawlib/_builder/_common/progress.py +142 -0
- drawlib-0.3.1/src/drawlib/_builder/_common/styles_loader.py +245 -0
- drawlib-0.3.1/src/drawlib/_builder/_image_ast.py +319 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/__init__.py +161 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/compiler/__init__.py +22 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/compiler/base.py +226 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/compiler/html.py +572 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/compiler/markdown.py +211 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/compiler/pdf.py +200 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/detector.py +174 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/exporter_html.py +175 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/exporter_md.py +25 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/exporter_pdf.py +292 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/highlight.py +66 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/merger.py +380 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/navbar.py +210 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/parser_md.py +60 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/processor/__init__.py +44 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/processor/options.py +225 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/processor/parser.py +151 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/processor/processor.py +447 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/processor/viewer.py +265 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/progress.py +99 -0
- drawlib-0.3.1/src/drawlib/_builder/doc_builder/styles_utils.py +26 -0
- drawlib-0.3.1/src/drawlib/_builder/image_builder.py +731 -0
- drawlib-0.3.1/src/drawlib/_builder/rules_builder.py +294 -0
- drawlib-0.3.1/src/drawlib/_cached_assets/.gitignore +4 -0
- {drawlib-0.2.4.dev3/src/drawlib/assets/v0_2/fonticons → drawlib-0.3.1/src/drawlib/_cached_assets}/__init__.py +2 -2
- drawlib-0.3.1/src/drawlib/_charts/__init__.py +61 -0
- drawlib-0.3.1/src/drawlib/_charts/_common/__init__.py +33 -0
- drawlib-0.3.1/src/drawlib/_charts/_common/_axis.py +326 -0
- drawlib-0.3.1/src/drawlib/_charts/_common/_base.py +275 -0
- drawlib-0.3.1/src/drawlib/_charts/_common/_legend.py +128 -0
- drawlib-0.3.1/src/drawlib/_charts/_common/_style_utils.py +72 -0
- drawlib-0.3.1/src/drawlib/_charts/_common/_types.py +70 -0
- drawlib-0.3.1/src/drawlib/_charts/area_chart/__init__.py +20 -0
- drawlib-0.3.1/src/drawlib/_charts/area_chart/_chart.py +175 -0
- drawlib-0.3.1/src/drawlib/_charts/area_chart/_series.py +68 -0
- drawlib-0.3.1/src/drawlib/_charts/bar_chart/__init__.py +20 -0
- drawlib-0.3.1/src/drawlib/_charts/bar_chart/_chart.py +170 -0
- drawlib-0.3.1/src/drawlib/_charts/bar_chart/_renderer.py +600 -0
- drawlib-0.3.1/src/drawlib/_charts/bar_chart/_series.py +55 -0
- drawlib-0.3.1/src/drawlib/_charts/gantt_chart/__init__.py +30 -0
- drawlib-0.3.1/src/drawlib/_charts/gantt_chart/_chart.py +316 -0
- drawlib-0.3.1/src/drawlib/_charts/gantt_chart/_item.py +169 -0
- drawlib-0.3.1/src/drawlib/_charts/gantt_chart/_renderer.py +488 -0
- drawlib-0.3.1/src/drawlib/_charts/heatmap_chart/__init__.py +24 -0
- drawlib-0.3.1/src/drawlib/_charts/heatmap_chart/_chart.py +398 -0
- drawlib-0.3.1/src/drawlib/_charts/heatmap_chart/_models.py +525 -0
- drawlib-0.3.1/src/drawlib/_charts/heatmap_chart/_overlay.py +352 -0
- drawlib-0.3.1/src/drawlib/_charts/heatmap_chart/_overlay_renderer.py +248 -0
- drawlib-0.3.1/src/drawlib/_charts/heatmap_chart/_renderer.py +340 -0
- drawlib-0.3.1/src/drawlib/_charts/line_chart/__init__.py +20 -0
- drawlib-0.3.1/src/drawlib/_charts/line_chart/_base.py +65 -0
- drawlib-0.3.1/src/drawlib/_charts/line_chart/_line.py +165 -0
- drawlib-0.3.1/src/drawlib/_charts/line_chart/_renderer.py +564 -0
- drawlib-0.3.1/src/drawlib/_charts/line_chart/_series.py +65 -0
- drawlib-0.3.1/src/drawlib/_charts/pie_chart/__init__.py +20 -0
- drawlib-0.3.1/src/drawlib/_charts/pie_chart/_chart.py +151 -0
- drawlib-0.3.1/src/drawlib/_charts/pie_chart/_renderer.py +171 -0
- drawlib-0.3.1/src/drawlib/_charts/pie_chart/_slice.py +50 -0
- drawlib-0.3.1/src/drawlib/_charts/radar_chart/__init__.py +20 -0
- drawlib-0.3.1/src/drawlib/_charts/radar_chart/_chart.py +224 -0
- drawlib-0.3.1/src/drawlib/_charts/radar_chart/_renderer.py +282 -0
- drawlib-0.3.1/src/drawlib/_charts/radar_chart/_series.py +67 -0
- drawlib-0.3.1/src/drawlib/_charts/scatter_chart/__init__.py +21 -0
- drawlib-0.3.1/src/drawlib/_charts/scatter_chart/_chart.py +218 -0
- drawlib-0.3.1/src/drawlib/_charts/scatter_chart/_point.py +89 -0
- drawlib-0.3.1/src/drawlib/_charts/scatter_chart/_renderer.py +340 -0
- drawlib-0.3.1/src/drawlib/_cli/__init__.py +17 -0
- drawlib-0.3.1/src/drawlib/_cli/_drawlib.py +140 -0
- drawlib-0.3.1/src/drawlib/_cli/_help.py +26 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/__init__.py +30 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/_common.py +26 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/colors/__init__.py +83 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/colors/base.py +267 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/colors/css.py +18 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/colors/default.py +18 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/colors/google.py +18 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/colors/monochrome.py +18 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/styles/__init__.py +48 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/styles/base.py +612 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/styles/default.py +42 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/styles/google.py +42 -0
- drawlib-0.3.1/src/drawlib/_cli/_visualizers/styles/monochrome.py +42 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/__init__.py +35 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/build.py +310 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/cache.py +143 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/colors.py +151 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/css.py +202 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/init.py +279 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/rules.py +187 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/serve.py +71 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/show.py +91 -0
- drawlib-0.3.1/src/drawlib/_cli/commands/styles.py +158 -0
- drawlib-0.3.1/src/drawlib/_cli/main.py +23 -0
- drawlib-0.3.1/src/drawlib/_core/__init__.py +24 -0
- drawlib-0.3.1/src/drawlib/_core/l1_core/__init__.py +55 -0
- drawlib-0.3.1/src/drawlib/_core/l1_core/_const.py +26 -0
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/logging.py → drawlib-0.3.1/src/drawlib/_core/l1_core/_logging.py +5 -3
- drawlib-0.3.1/src/drawlib/_core/l1_core/_path_utils.py +160 -0
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/dutil/settings.py → drawlib-0.3.1/src/drawlib/_core/l1_core/_settings.py +75 -17
- drawlib-0.3.1/src/drawlib/_core/l1_core/_validator.py +82 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/__init__.py +147 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_color.py +28 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_font.py +67 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_geometry.py +21 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_image.py +30 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_path.py +76 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_primitive.py +33 -0
- drawlib-0.3.1/src/drawlib/_core/l2_types/_style.py +247 -0
- drawlib-0.3.1/src/drawlib/_core/l3_colors/__init__.py +37 -0
- drawlib-0.3.1/src/drawlib/_core/l3_colors/_base_colors.py +177 -0
- drawlib-0.3.1/src/drawlib/_core/l3_colors/_color.py +296 -0
- drawlib-0.3.1/src/drawlib/_core/l3_colors/_color_utils.py +291 -0
- drawlib-0.3.1/src/drawlib/_core/l3_external/__init__.py +47 -0
- drawlib-0.3.1/src/drawlib/_core/l3_external/_cache.py +71 -0
- drawlib-0.3.1/src/drawlib/_core/l3_external/_download.py +97 -0
- drawlib-0.3.1/src/drawlib/_core/l3_external/_package.py +300 -0
- drawlib-0.3.1/src/drawlib/_core/l3_fonts/__init__.py +60 -0
- drawlib-0.3.1/src/drawlib/_core/l3_fonts/_metadata.py +46 -0
- drawlib-0.3.1/src/drawlib/_core/l3_fonts/_names.py +281 -0
- drawlib-0.3.1/src/drawlib/_core/l3_fonts/_resources.py +585 -0
- drawlib-0.3.1/src/drawlib/_core/l3_images/__init__.py +20 -0
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/dimage.py → drawlib-0.3.1/src/drawlib/_core/l3_images/_dimage.py +237 -163
- drawlib-0.3.1/src/drawlib/_core/l3_math/__init__.py +54 -0
- drawlib-0.3.1/src/drawlib/_core/l3_math/_geometry.py +439 -0
- drawlib-0.3.1/src/drawlib/_core/l3_math/_routing.py +101 -0
- drawlib-0.3.1/src/drawlib/_core/l3_styles/__init__.py +36 -0
- drawlib-0.3.1/src/drawlib/_core/l3_styles/_base_styles.py +646 -0
- drawlib-0.3.1/src/drawlib/_core/l3_styles/_style.py +319 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/__init__.py +153 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_base.py +520 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_canvas.py +472 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_image.py +178 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_image_code.py +123 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_line.py +342 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_line_utils.py +212 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/__init__.py +45 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_arrow.py +347 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_arrow_builders.py +494 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_badge.py +429 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_badge_builders.py +629 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_basic.py +335 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_container.py +401 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_container_builders.py +1102 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_path_utils.py +678 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_polygon.py +545 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_shape_utils.py +486 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_symbol.py +485 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_shapes/_symbol_builders.py +1413 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_text.py +92 -0
- drawlib-0.3.1/src/drawlib/_core/l4_canvas/_text_utils.py +225 -0
- drawlib-0.3.1/src/drawlib/_diagrams/__init__.py +35 -0
- drawlib-0.3.1/src/drawlib/_diagrams/_common.py +540 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/__init__.py +98 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_diagram.py +228 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_edge.py +173 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_group.py +212 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_icons.py +4781 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_junction.py +117 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_node.py +209 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_render_edges.py +210 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_renderer.py +216 -0
- drawlib-0.3.1/src/drawlib/_diagrams/architecture/_types.py +127 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/__init__.py +34 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_class_node.py +256 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_diagram.py +242 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_relationship.py +116 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_render_node.py +203 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_render_relationship.py +441 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_renderer.py +103 -0
- drawlib-0.3.1/src/drawlib/_diagrams/class_diagram/_types.py +122 -0
- drawlib-0.3.1/src/drawlib/_diagrams/er/__init__.py +27 -0
- drawlib-0.3.1/src/drawlib/_diagrams/er/_diagram.py +215 -0
- drawlib-0.3.1/src/drawlib/_diagrams/er/_entity.py +242 -0
- drawlib-0.3.1/src/drawlib/_diagrams/er/_relationship.py +90 -0
- drawlib-0.3.1/src/drawlib/_diagrams/er/_renderer.py +482 -0
- drawlib-0.3.1/src/drawlib/_diagrams/er/_types.py +53 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/__init__.py +40 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_diagram.py +295 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_edge.py +135 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_junction.py +128 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_lane.py +50 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_node.py +206 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_nodes.py +184 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_render_edges.py +242 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_render_lanes.py +170 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_renderer.py +186 -0
- drawlib-0.3.1/src/drawlib/_diagrams/flow/_types.py +46 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/__init__.py +28 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_block.py +71 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_diagram.py +440 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_group.py +71 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_layout.py +240 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_message.py +154 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_note.py +91 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_participant.py +246 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_render_elements.py +517 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_renderer.py +125 -0
- drawlib-0.3.1/src/drawlib/_diagrams/sequence/_types.py +128 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/__init__.py +46 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_diagram.py +296 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_render_node.py +420 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_render_transition.py +509 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_renderer.py +105 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_state_node.py +340 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_transition.py +133 -0
- drawlib-0.3.1/src/drawlib/_diagrams/state/_types.py +75 -0
- drawlib-0.3.1/src/drawlib/_graph/__init__.py +44 -0
- drawlib-0.3.1/src/drawlib/_graph/_architecture/__init__.py +16 -0
- drawlib-0.3.1/src/drawlib/_graph/_architecture/_graph.py +159 -0
- drawlib-0.3.1/src/drawlib/_graph/_architecture/_solver.py +709 -0
- drawlib-0.3.1/src/drawlib/_graph/_common/__init__.py +46 -0
- drawlib-0.3.1/src/drawlib/_graph/_common/_base.py +338 -0
- drawlib-0.3.1/src/drawlib/_graph/_common/_models.py +325 -0
- drawlib-0.3.1/src/drawlib/_graph/_common/_routing.py +204 -0
- drawlib-0.3.1/src/drawlib/_graph/_grid/__init__.py +16 -0
- drawlib-0.3.1/src/drawlib/_graph/_grid/_graph.py +238 -0
- drawlib-0.3.1/src/drawlib/_graph/_grid/_solver.py +191 -0
- drawlib-0.3.1/src/drawlib/_graph/_layered/__init__.py +16 -0
- drawlib-0.3.1/src/drawlib/_graph/_layered/_graph.py +142 -0
- drawlib-0.3.1/src/drawlib/_graph/_layered/_solver.py +346 -0
- drawlib-0.3.1/src/drawlib/_graph/_radial/__init__.py +18 -0
- drawlib-0.3.1/src/drawlib/_graph/_radial/_graph.py +165 -0
- drawlib-0.3.1/src/drawlib/_graph/_radial/_solver.py +256 -0
- drawlib-0.3.1/src/drawlib/_graph/_tree/__init__.py +18 -0
- drawlib-0.3.1/src/drawlib/_graph/_tree/_graph.py +279 -0
- drawlib-0.3.1/src/drawlib/_graph/_tree/_solver.py +232 -0
- drawlib-0.3.1/src/drawlib/_http_server/__init__.py +15 -0
- drawlib-0.3.1/src/drawlib/_http_server/_link_scanner.py +105 -0
- drawlib-0.3.1/src/drawlib/_http_server/_server.py +147 -0
- drawlib-0.3.1/src/drawlib/_icons/__init__.py +156 -0
- drawlib-0.3.1/src/drawlib/_icons/_utils.py +54 -0
- drawlib-0.3.1/src/drawlib/_icons/font_icons/__init__.py +44 -0
- drawlib-0.3.1/src/drawlib/_icons/font_icons/_base.py +116 -0
- drawlib-0.3.1/src/drawlib/_icons/font_icons/_font_icon.py +59 -0
- drawlib-0.3.1/src/drawlib/_icons/font_icons/phosphor/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/font_icons/phosphor/_base.py +60 -0
- drawlib-0.3.1/src/drawlib/_icons/font_icons/phosphor/_generated.py +27556 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/__init__.py +103 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/_base.py +123 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/ai/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/ai/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/ai/_generated.py +1218 -0
- drawlib-0.2.4.dev3/src/drawlib/apis.py → drawlib-0.3.1/src/drawlib/_icons/png_icons/aws/__init__.py +4 -5
- drawlib-0.3.1/src/drawlib/_icons/png_icons/aws/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/aws/_generated.py +6598 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/azure/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/azure/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/azure/_generated.py +5018 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/business/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/business/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/business/_generated.py +978 -0
- drawlib-0.2.4.dev3/src/drawlib/v0_2/__main__.py → drawlib-0.3.1/src/drawlib/_icons/png_icons/client/__init__.py +4 -5
- drawlib-0.3.1/src/drawlib/_icons/png_icons/client/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/client/_generated.py +1218 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/cloud/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/cloud/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/cloud/_generated.py +918 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/cnative/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/cnative/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/cnative/_generated.py +1478 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/code/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/code/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/code/_generated.py +1958 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/data/__init__.py +14 -0
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/dutil/dutil_script.py → drawlib-0.3.1/src/drawlib/_icons/png_icons/data/_base.py +11 -11
- drawlib-0.3.1/src/drawlib/_icons/png_icons/data/_generated.py +1418 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/devops/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/devops/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/devops/_generated.py +1178 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/facility/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/facility/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/facility/_generated.py +998 -0
- {drawlib-0.2.4.dev3/src/drawlib/assets/v0_2 → drawlib-0.3.1/src/drawlib/_icons/png_icons/gcp}/__init__.py +6 -2
- drawlib-0.3.1/src/drawlib/_icons/png_icons/gcp/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/gcp/_generated.py +5018 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/itservice/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/itservice/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/itservice/_generated.py +898 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/network/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/network/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/network/_generated.py +1418 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_ai/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_ai/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_ai/_generated.py +1618 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_business/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_business/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_business/_generated.py +1538 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_client/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_client/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_client/_generated.py +1858 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_cloud/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_cloud/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_cloud/_generated.py +2958 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_cnative/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_cnative/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_cnative/_generated.py +1478 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_code/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_code/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_code/_generated.py +2438 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_data/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_data/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_data/_generated.py +1738 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_devops/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_devops/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_devops/_generated.py +1578 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_facility/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_facility/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_facility/_generated.py +1738 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_itservice/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_itservice/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_itservice/_generated.py +1298 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_network/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_network/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_network/_generated.py +1418 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_security/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_security/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_security/_generated.py +2078 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_server/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_server/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_server/_generated.py +1618 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_social/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_social/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_social/_generated.py +1338 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_workspace/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_workspace/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/original_workspace/_generated.py +1158 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/security/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/security/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/security/_generated.py +1498 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/server/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/server/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/server/_generated.py +1658 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/social/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/social/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/social/_generated.py +1018 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/workspace/__init__.py +14 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/workspace/_base.py +22 -0
- drawlib-0.3.1/src/drawlib/_icons/png_icons/workspace/_generated.py +818 -0
- drawlib-0.3.1/src/drawlib/_preset_colors/__init__.py +74 -0
- drawlib-0.3.1/src/drawlib/_preset_colors/_color_css.py +165 -0
- drawlib-0.3.1/src/drawlib/_preset_colors/_color_default.py +585 -0
- drawlib-0.3.1/src/drawlib/_preset_colors/_color_google.py +580 -0
- drawlib-0.3.1/src/drawlib/_preset_colors/_color_monochrome.py +129 -0
- drawlib-0.3.1/src/drawlib/_preset_styles/__init__.py +70 -0
- drawlib-0.3.1/src/drawlib/_preset_styles/_style_default.py +4947 -0
- drawlib-0.3.1/src/drawlib/_preset_styles/_style_google.py +5544 -0
- drawlib-0.3.1/src/drawlib/_preset_styles/_style_monochrome.py +941 -0
- drawlib-0.3.1/src/drawlib/_preset_styles/_utils.py +382 -0
- drawlib-0.3.1/src/drawlib/_release_assets.py +4571 -0
- {drawlib-0.2.4.dev3/src/drawlib/assets → drawlib-0.3.1/src/drawlib/_rules}/__init__.py +2 -2
- drawlib-0.3.1/src/drawlib/_rules/_assets/avenger/readme.txt +40 -0
- drawlib-0.3.1/src/drawlib/_rules/_assets/avenger/regular.ttf +0 -0
- drawlib-0.3.1/src/drawlib/_rules/_assets/linux.png +0 -0
- drawlib-0.3.1/src/drawlib/_rules/agent_instruction.md +118 -0
- drawlib-0.3.1/src/drawlib/_rules/anim_guide.md +334 -0
- drawlib-0.3.1/src/drawlib/_rules/api.md +792 -0
- drawlib-0.3.1/src/drawlib/_rules/cli.md +1123 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_anim.md +194 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_canvas.md +230 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_charts.md +1123 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_diagrams.md +1132 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_fonts.md +191 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_graph.md +696 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_icons.md +1030 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_images.md +188 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_lines.md +1112 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_math.md +259 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_preset_colors.md +212 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_preset_styles.md +932 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_shapes.md +2686 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_slide.md +219 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_smartarts.md +1518 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_styles.md +166 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_text.md +409 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_tools.md +283 -0
- drawlib-0.3.1/src/drawlib/_rules/lib_types.md +231 -0
- drawlib-0.3.1/src/drawlib/_rules/overview.md +885 -0
- drawlib-0.3.1/src/drawlib/_rules/project_doc.md +173 -0
- drawlib-0.3.1/src/drawlib/_rules/project_images.md +180 -0
- drawlib-0.3.1/src/drawlib/_rules/project_overview.md +212 -0
- drawlib-0.3.1/src/drawlib/_rules/project_site.md +221 -0
- drawlib-0.3.1/src/drawlib/_rules/project_slide.md +405 -0
- drawlib-0.3.1/src/drawlib/_rules/review_guide.md +302 -0
- drawlib-0.3.1/src/drawlib/_rules/slide_guide.md +310 -0
- drawlib-0.3.1/src/drawlib/_rules/style_guide.md +370 -0
- drawlib-0.3.1/src/drawlib/_slide/__init__.py +40 -0
- drawlib-0.3.1/src/drawlib/_slide/_assets.py +284 -0
- drawlib-0.3.1/src/drawlib/_slide/_blocks.py +218 -0
- drawlib-0.3.1/src/drawlib/_slide/base.py +141 -0
- drawlib-0.3.1/src/drawlib/_slide/compiler.py +393 -0
- drawlib-0.3.1/src/drawlib/_slide/helpers.py +649 -0
- drawlib-0.3.1/src/drawlib/_smartarts/__init__.py +131 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_boxlist.py +186 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_bulletpoints.py +201 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_calendar/__init__.py +24 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_calendar/_day.py +563 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_calendar/_models.py +395 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_calendar/_month.py +545 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_calendar/_week.py +703 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_cardlist.py +442 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_chevronprocess.py +242 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_common/__init__.py +22 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_common/_card_helpers.py +83 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_cycle.py +611 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_geomap/__init__.py +42 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_geomap/_geomap.py +436 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_geomap/_loader.py +456 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_geomap/_presets.py +315 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_geomap/_projection.py +251 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_geomap/_types.py +101 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_gridlayout.py +282 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_kpicards.py +400 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_mindmap.py +833 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_panel.py +453 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_pyramid.py +415 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_roadmap.py +484 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_sourcecode.py +611 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_table.py +585 -0
- drawlib-0.3.1/src/drawlib/_smartarts/_tree.py +333 -0
- drawlib-0.3.1/src/drawlib/_templates/__init__.py +58 -0
- drawlib-0.3.1/src/drawlib/_templates/_css.py +250 -0
- drawlib-0.3.1/src/drawlib/_templates/_models.py +42 -0
- drawlib-0.3.1/src/drawlib/_templates/_project.py +320 -0
- drawlib-0.3.1/src/drawlib/_templates/css/components/code.css +39 -0
- drawlib-0.3.1/src/drawlib/_templates/css/components/markdown.css +207 -0
- drawlib-0.3.1/src/drawlib/_templates/css/targets/doc.css +168 -0
- drawlib-0.3.1/src/drawlib/_templates/css/targets/pdf.css +93 -0
- drawlib-0.3.1/src/drawlib/_templates/css/targets/site.css +307 -0
- drawlib-0.3.1/src/drawlib/_templates/css/targets/slide.css +1017 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/default-auto.css.template +69 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/default-dark.css.template +36 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/default.css.template +80 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/github.css.template +59 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/google-auto.css.template +70 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/google-dark.css.template +37 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/google.css.template +46 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/minimal.css.template +59 -0
- drawlib-0.3.1/src/drawlib/_templates/css/themes/monochrome.css.template +72 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/__init__.py +53 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/_map_css.py +86 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/_map_html.py +41 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/_map_style_font.py +129 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/_models.py +111 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/_patch.py +166 -0
- drawlib-0.3.1/src/drawlib/_templates/langs/_registry.py +56 -0
- {drawlib-0.2.4.dev3/src/drawlib/assets/v0_2/fonts → drawlib-0.3.1/src/drawlib/_templates/project}/__init__.py +4 -2
- drawlib-0.3.1/src/drawlib/_templates/project/_assets/_logo.png +0 -0
- drawlib-0.3.1/src/drawlib/_templates/project/_assets/_logo_dark.png +0 -0
- drawlib-0.3.1/src/drawlib/_templates/project/_assets/favicon.png +0 -0
- drawlib-0.3.1/src/drawlib/_templates/project/_assets/linux.png +0 -0
- drawlib-0.3.1/src/drawlib/_templates/project/_shared/output_html_readme.md +25 -0
- drawlib-0.3.1/src/drawlib/_templates/project/_shared/styles.py.template +32 -0
- drawlib-0.3.1/src/drawlib/_templates/project/_shared/utils.py +76 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/build.sh.template +18 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/build_html.sh.template +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/build_image.sh.template +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/build_markdown.sh.template +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/build_pdf.sh.template +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/en/00_cover.md +9 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/en/01_overview.md +23 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/en/02_design.md +28 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/en/README.md +45 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/ja/00_cover.md +3 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/ja/01_overview.md +23 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/ja/02_design.md +28 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/docs/ja/README.md +45 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/serve.sh.template +34 -0
- drawlib-0.3.1/src/drawlib/_templates/project/doc/template.html.template +35 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/build.sh.template +9 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/build_image.sh.template +30 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/docs/en/README.md +95 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/docs/en/sample1.py +44 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/docs/en/sample2.py +35 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/docs/ja/README.md +95 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/docs/ja/sample1.py +44 -0
- drawlib-0.3.1/src/drawlib/_templates/project/images/docs/ja/sample2.py +35 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/build.sh.template +15 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/build_html.sh.template +30 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/build_image.sh.template +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/build_markdown.sh.template +30 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/en/README.md +171 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/en/architecture/index.md +22 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/en/index.md +52 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/en/navbar.md +7 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/en/workflow/index.md +23 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/ja/README.md +170 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/ja/architecture/index.md +22 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/ja/index.md +52 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/ja/navbar.md +7 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/docs/ja/workflow/index.md +23 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/serve.sh.template +29 -0
- drawlib-0.3.1/src/drawlib/_templates/project/site/template.html.template +115 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/build.sh.template +15 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/build_html.sh.template +30 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/build_image.sh.template +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/build_pdf.sh.template +30 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/en/01_title.md +20 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/en/02_agenda.md +54 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/en/03_architecture.md +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/en/README.md +40 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/ja/01_title.md +20 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/ja/02_agenda.md +54 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/ja/03_architecture.md +31 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/docs/ja/README.md +40 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/output_readme.md +43 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/serve.sh.template +33 -0
- drawlib-0.3.1/src/drawlib/_templates/project/slide/slide.js +1316 -0
- drawlib-0.3.1/src/drawlib/anim.py +16 -0
- drawlib-0.3.1/src/drawlib/canvas.py +30 -0
- drawlib-0.3.1/src/drawlib/charts/__init__.py +71 -0
- drawlib-0.3.1/src/drawlib/charts/area.py +36 -0
- drawlib-0.3.1/src/drawlib/charts/bar.py +38 -0
- drawlib-0.3.1/src/drawlib/charts/gantt.py +32 -0
- drawlib-0.3.1/src/drawlib/charts/heatmap.py +40 -0
- drawlib-0.3.1/src/drawlib/charts/line.py +36 -0
- drawlib-0.3.1/src/drawlib/charts/pie.py +25 -0
- drawlib-0.3.1/src/drawlib/charts/radar.py +32 -0
- drawlib-0.3.1/src/drawlib/charts/scatter.py +36 -0
- drawlib-0.3.1/src/drawlib/diagrams/__init__.py +58 -0
- drawlib-0.3.1/src/drawlib/diagrams/architecture.py +100 -0
- drawlib-0.3.1/src/drawlib/diagrams/class_diagram.py +34 -0
- drawlib-0.3.1/src/drawlib/diagrams/er.py +27 -0
- drawlib-0.3.1/src/drawlib/diagrams/flow.py +40 -0
- drawlib-0.3.1/src/drawlib/diagrams/sequence.py +104 -0
- drawlib-0.3.1/src/drawlib/diagrams/state.py +46 -0
- drawlib-0.3.1/src/drawlib/fonts.py +46 -0
- drawlib-0.3.1/src/drawlib/graph.py +48 -0
- drawlib-0.3.1/src/drawlib/icons.py +196 -0
- drawlib-0.3.1/src/drawlib/images.py +21 -0
- drawlib-0.3.1/src/drawlib/lines.py +34 -0
- drawlib-0.3.1/src/drawlib/math.py +52 -0
- drawlib-0.3.1/src/drawlib/preset_colors.py +82 -0
- drawlib-0.3.1/src/drawlib/preset_styles.py +70 -0
- drawlib-0.3.1/src/drawlib/shapes.py +113 -0
- drawlib-0.3.1/src/drawlib/slide.py +30 -0
- drawlib-0.3.1/src/drawlib/smartarts.py +104 -0
- drawlib-0.3.1/src/drawlib/styles.py +73 -0
- drawlib-0.3.1/src/drawlib/text.py +22 -0
- drawlib-0.3.1/src/drawlib/tools.py +110 -0
- drawlib-0.3.1/src/drawlib/types.py +34 -0
- drawlib-0.3.1/src/drawlib/utils.py +67 -0
- drawlib-0.2.4.dev3/PKG-INFO +0 -91
- drawlib-0.2.4.dev3/pypi.md +0 -77
- drawlib-0.2.4.dev3/src/drawlib/__init__.py +0 -87
- drawlib-0.2.4.dev3/src/drawlib/v0_2/__init__.py +0 -21
- drawlib-0.2.4.dev3/src/drawlib/v0_2/apis.py +0 -113
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/command.py +0 -559
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/colors.py +0 -237
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/fonts.py +0 -803
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/model.py +0 -1561
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/model_system_default.py +0 -85
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/theme.py +0 -1227
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/theme_officials.py +0 -671
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/theme_style_caches.py +0 -5578
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core/util.py +0 -835
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/base.py +0 -630
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/canvas.py +0 -328
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/image.py +0 -203
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/line.py +0 -548
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/original_arrow.py +0 -718
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/original_polygon.py +0 -456
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/patches.py +0 -455
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/core_canvas/text.py +0 -113
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/download.py +0 -91
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/dutil/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/dutil/dutil_canvas.py +0 -48
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/dutil/dutil_color.py +0 -112
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/icons/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/icons/phosphor.py +0 -30740
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/icons/util.py +0 -64
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/boxlist.py +0 -253
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/boxtree.py +0 -114
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/bubblespeech.py +0 -110
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/bulletpoints.py +0 -188
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/dsart.py +0 -25
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/gridlayout.py +0 -327
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/pyramid.py +0 -431
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/sourcecode.py +0 -279
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/table.py +0 -683
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/smartarts/tree.py +0 -309
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/activity.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/class_.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/communication.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/component.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/deployment.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/object.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/package.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/sequence.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/state_machine.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/umls/usecase.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/util.py +0 -446
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/__init__.py +0 -10
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/args.py +0 -418
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/color.py +0 -75
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/coordinate.py +0 -189
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/icon.py +0 -30
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/image.py +0 -32
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/line.py +0 -61
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/shape.py +0 -65
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/smartarts.py +0 -27
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/style.py +0 -103
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/text.py +0 -35
- drawlib-0.2.4.dev3/src/drawlib/v0_2/private/validators/types.py +0 -126
- {drawlib-0.2.4.dev3 → drawlib-0.3.1}/src/drawlib/py.typed +0 -0
drawlib-0.3.1/PKG-INFO
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: drawlib
|
|
3
|
+
Version: 0.3.1
|
|
4
|
+
Summary: Python drawing library. Illustration as Code.
|
|
5
|
+
Author: Yuichi Ito
|
|
6
|
+
Author-email: Yuichi Ito <yuichi@yuichi.com>
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Requires-Dist: matplotlib>=3.8
|
|
9
|
+
Requires-Dist: pydantic>=2.8
|
|
10
|
+
Requires-Dist: pygments>=2.18
|
|
11
|
+
Requires-Dist: markdown-it-py>=3.0
|
|
12
|
+
Requires-Dist: jinja2>=3.1
|
|
13
|
+
Requires-Dist: typer>=0.12.0
|
|
14
|
+
Requires-Dist: rich>=13.0.0
|
|
15
|
+
Requires-Dist: playwright>=1.40.0 ; extra == 'pdf'
|
|
16
|
+
Requires-Python: >=3.11
|
|
17
|
+
Project-URL: Homepage, https://www.drawlib.com
|
|
18
|
+
Project-URL: Repository, https://github.com/yuichi110/drawlib
|
|
19
|
+
Provides-Extra: pdf
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# Drawlib
|
|
23
|
+
|
|
24
|
+
**Pure-Python Library for "Illustration as Code" & "Illustrated Documentation as Code"**
|
|
25
|
+
|
|
26
|
+
Drawlib is a declarative Python drawing library and integrated documentation compiler designed for software engineers and **autonomous AI coding agents**. Instead of maintaining brittle diagrams in external GUI tools (draw.io, Visio, PowerPoint) and manually pasting exported images into wikis, Drawlib lets you author, version-control, and build architectural diagrams, data charts, technical documents, and presentation slide decks entirely from code in Git.
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
- **Official Website & Documentation**: [https://www.drawlib.com/](https://www.drawlib.com/)
|
|
31
|
+
- **Repository Guides & Whitepapers**:
|
|
32
|
+
- [Quickstart Guide (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/quickstart.pdf)
|
|
33
|
+
- [16:9 Presentation Slide Deck (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/slide_about_drawlib.pdf)
|
|
34
|
+
- [Dogfooding Whitepaper — English (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/drawlib-dogfooding-en.pdf) | [日本語版 (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/drawlib-dogfooding.pdf)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Why Drawlib v0.3?
|
|
39
|
+
|
|
40
|
+
### 1. Cloud & Software Engineering Diagrams
|
|
41
|
+
Stop assembling complex architectures out of raw coordinates. Drawlib provides high-level diagramming engines (`drawlib.diagrams`, `drawlib.graph`) and standardized icon sets (`drawlib.icons.gcp`, `phosphor`, `fontawesome`):
|
|
42
|
+
|
|
43
|
+

|
|
44
|
+
|
|
45
|
+
- **Auto-Layout Graphs (`drawlib.graph`)**: Declarative graph layout solvers (`ArchitectureGraph`, `LayerGraph`, `TreeGraph`, `RadialGraph`, `GridGraph`) that compute overlap-free coordinates (`get_layout()`), nested cluster bounds, and `offset()` fine-tuning for rendering with `drawlib.diagrams` and `drawlib.shapes`.
|
|
46
|
+
- **Technical Diagrams (`drawlib.diagrams`)**:
|
|
47
|
+
- **Cloud Architecture (`ArchitectureDiagram`)**: VPC boundaries, subnets, tiers, and official cloud service icons.
|
|
48
|
+
- **Flowcharts (`FlowDiagram`)**: Process stages, decision branches, and orthogonal connectors.
|
|
49
|
+
- **Sequence Diagrams (`SequenceDiagram`)**: Client/server lifelines, synchronous/asynchronous messages, and activation bars.
|
|
50
|
+
- **UML Class, ER & State Diagrams (`ClassDiagram`, `ERDiagram`, `StateDiagram`)**: Object-oriented models, database schemas, and state machines.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 2. Quantitative Charts & SmartArt Infographics
|
|
55
|
+
Compose presentation-ready infographics (`drawlib.smartarts`) and quantitative data plots (`drawlib.charts`) side by side on the same canvas:
|
|
56
|
+
|
|
57
|
+

|
|
58
|
+
|
|
59
|
+
- **SmartArts (`drawlib.smartarts`)**: `ChevronProcess`, `Cycle`, `Table`, `TreeNode`, `MindMapNode`, `Pyramid`, `BoxList`, `BulletPoints`, `GridLayout`, and syntax-highlighted `SourceCode`.
|
|
60
|
+
- **Charts (`drawlib.charts`)**: Pure-Python `BarChart`, `LineChart`, `AreaChart`, `PieChart`, `RadarChart`, `ScatterChart`, `GanttChart`, and `HeatmapChart` / `HeatmapOverlay` styled with the same design tokens as your diagrams.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### 3. Rich Primitives & Semantic Design System
|
|
65
|
+
At its foundation, Drawlib separates **Content** (geometry, coordinates, structure) from **Style** (colors, typography, borders, themes)—just like HTML and CSS:
|
|
66
|
+
|
|
67
|
+

|
|
68
|
+
|
|
69
|
+
- **5 Core Primitive Categories**:
|
|
70
|
+
- **Icons (`drawlib.icons`)**: 1,500+ Phosphor icons (5 weights), FontAwesome, and official Google Cloud (GCP) icons.
|
|
71
|
+
- **Images (`drawlib.images`)**: Non-destructive `Dimage` processing pipeline (`sepia()`, `grayscale()`, `mosaic()`, `mirror()`, `crop()`, borders, rotation).
|
|
72
|
+
- **Lines (`drawlib.lines`)**: Straight, curved (`bend`), quadratic/cubic Bezier, and rounded multi-point polylines with customizable arrowheads (`"->"`, `"<-"`, `"<->"`).
|
|
73
|
+
- **Shapes (`drawlib.shapes`)**: 23 geometric primitives (`rectangle`, `circle`, `ellipse`, `rhombus`, `star`, `arrow`, `chevron`, `bubblespeech`, `polygon`, etc.).
|
|
74
|
+
- **Text (`drawlib.text`, `drawlib.fonts`)**: Multilingual typography with automatic on-demand font caching (`FontRoboto`, `FontSansSerif`, `FontSerif`, `FontSourceCode`, `FontJapanese`, `FontChinese`, `FontKorean`, `FontArabic`, etc.).
|
|
75
|
+
- **7-Role Semantic Style System (`drawlib.styles`)**:
|
|
76
|
+
- Built-in presets (`default`, `google`, `essentials`, `monochrome`, `warm`, `cold`) accessed via `Styles.<Token>` (`Styles.PrimaryFlat`, `Styles.Neutral`, `Styles.SecondaryNeutral`, `Styles.MutedDashed`, `Styles.SuccessNeutral`, `Styles.WarningNeutral`, `Styles.DangerNeutral`).
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### 4. Illustrated Documentation & Slide as Code
|
|
81
|
+
Write Markdown files with embedded ```` ```drawlib ```` code blocks. A single `drawlib build` command compiles your repository into multiple publication formats:
|
|
82
|
+
|
|
83
|
+

|
|
84
|
+
|
|
85
|
+
- **4 Project Scaffolds (`drawlib init <type>`)**:
|
|
86
|
+
- `drawlib init site`: Multi-page documentation website (`docs_html/`), GitHub Markdown (`docs/`), and PDF.
|
|
87
|
+
- `drawlib init doc`: Linear technical specification / whitepaper (`*_html/`, `*_markdown/`, `*.pdf`).
|
|
88
|
+
- `drawlib init slide`: 16:9 presentation slide deck with native SVG text and keyboard navigation (`slide_html/`, `slide.pdf`).
|
|
89
|
+
- `drawlib init images`: Standalone batch Python illustration scripts (`images_src/` -> `images/`).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 5. AI Inner Loop & Human Outer Loop
|
|
94
|
+
Drawlib is engineered from the ground up for **AI-native documentation and diagram engineering** (Claude Code, Cursor, Gemini, Codex), separating high-frequency visual self-correction from high-level human review:
|
|
95
|
+
|
|
96
|
+

|
|
97
|
+
|
|
98
|
+
- **AI Inner Loop (Autonomous Visual Self-Correction)**:
|
|
99
|
+
1. **On-Demand Spec & Codebase Lookup**: The AI agent autonomously queries **`drawlib rules show <topic>`** for detailed API specifications and design best practices, while directly inspecting **repository source code, schemas, and design docs** as the single source of truth.
|
|
100
|
+
2. **Code Synthesis & Grid Preview (`drawlib show -g`)**: The agent writes Python drawing blocks and Markdown prose, then renders a headless preview with a coordinate grid overlay.
|
|
101
|
+
3. **Multimodal Inspection & Self-Repair**: The agent visually inspects the rendered PNG for text clipping, overlapping labels, or style imbalances, repairing coordinates and styles autonomously until the diagram passes inspection.
|
|
102
|
+
- **Human Outer Loop (Intent & Review)**:
|
|
103
|
+
- The developer stays focused on high-level architecture and intent—providing initial goals, reviewing the compiled **Published Docs** (HTML / PDF / GitHub MD / Slide), and iterating on direction without ever nudging pixels in a GUI tool.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Installation
|
|
108
|
+
|
|
109
|
+
Install `drawlib` from PyPI using `pip` or `uv`:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pip install drawlib
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
To enable headless PDF export for documentation sites, linear documents, and slide decks, install the `[pdf]` extra and Chromium:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
pip install "drawlib[pdf]"
|
|
119
|
+
playwright install chromium
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Verify the installation:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
drawlib --version
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Quick Start
|
|
131
|
+
|
|
132
|
+
### 1. Standalone Python Script
|
|
133
|
+
|
|
134
|
+
Create a file named `architecture.py`:
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
from drawlib.canvas import save, setup
|
|
138
|
+
from drawlib.lines import line
|
|
139
|
+
from drawlib.shapes import rectangle
|
|
140
|
+
from drawlib.styles import Styles
|
|
141
|
+
from drawlib.text import text
|
|
142
|
+
|
|
143
|
+
setup(width=120, height=50)
|
|
144
|
+
|
|
145
|
+
# 1. Structural Boundary (Muted)
|
|
146
|
+
rectangle((60, 25), width=112, height=42, r=3, style=Styles.MutedDashed)
|
|
147
|
+
text((22, 42.5), "Production VPC", style=Styles.MutedBold.patch(text_size=9))
|
|
148
|
+
|
|
149
|
+
# 2. Entrypoint & Hero Service
|
|
150
|
+
rectangle((22, 24), width=24, height=16, r=2, style=Styles.Neutral, text="Client App")
|
|
151
|
+
rectangle(
|
|
152
|
+
(58, 24),
|
|
153
|
+
width=26,
|
|
154
|
+
height=16,
|
|
155
|
+
r=2,
|
|
156
|
+
style=Styles.PrimaryFlat,
|
|
157
|
+
text="API Gateway",
|
|
158
|
+
text_style=Styles.WhiteBold,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
# 3. Downstream Services (Tinted Neutral Cards)
|
|
162
|
+
rectangle((96, 33), width=24, height=12, r=2, style=Styles.SecondaryNeutral, text="Auth Service")
|
|
163
|
+
rectangle((96, 15), width=24, height=12, r=2, style=Styles.SuccessNeutral, text="Audit Log DB")
|
|
164
|
+
|
|
165
|
+
# 4. Directional Connectors
|
|
166
|
+
line((34, 24), (45, 24), arrow_head="->", style=Styles.DarkBold)
|
|
167
|
+
line((71, 28), (84, 33), arrow_head="->", style=Styles.DarkBold)
|
|
168
|
+
line((71, 20), (84, 15), arrow_head="->", style=Styles.DarkBold)
|
|
169
|
+
|
|
170
|
+
save()
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Run the script with Python or `drawlib` to generate `architecture.png`:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
python architecture.py
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
#### Core Principles at a Glance
|
|
180
|
+
- **Bottom-Left Origin `(0, 0)`**: `setup(width=120, height=50)` defines a Cartesian coordinate canvas where `x` spans `0..120` (left to right) and `y` spans `0..50` (bottom to top).
|
|
181
|
+
- **Center Alignment by Default**: Shapes (`rectangle`, `circle`, `icon`, `image`, `text`) are positioned by their center `(x, y)`, making horizontal and vertical alignment effortless.
|
|
182
|
+
- **50%+ Neutral Baseline**: Ground supporting nodes in calm neutral styles (`Styles.Neutral`, `Styles.SecondaryNeutral`, `Styles.SuccessNeutral`) and reserve saturated fills (`Styles.PrimaryFlat`) for primary focal points.
|
|
183
|
+
- **Style Patching (`.patch()`)**: Customize any preset token non-destructively via `Styles.MutedBold.patch(text_size=9)` or `Styles.Primary.patch(shape_line_width=2)`.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### 2. Illustrated Documentation & Slide Deck Workflow
|
|
188
|
+
|
|
189
|
+
Scaffold a new documentation website, technical spec, or 16:9 slide deck in seconds:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Initialize a multi-page documentation site in docs_src/
|
|
193
|
+
drawlib init site
|
|
194
|
+
|
|
195
|
+
# Or initialize a 16:9 presentation slide deck in slide_src/
|
|
196
|
+
drawlib init slide
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Inside your Markdown files (`docs_src/index.md`), embed Python drawing blocks using the ```` ```drawlib ```` fence:
|
|
200
|
+
|
|
201
|
+
````markdown
|
|
202
|
+
# System Architecture
|
|
203
|
+
|
|
204
|
+
Below is our core request routing pipeline:
|
|
205
|
+
|
|
206
|
+
```drawlib 600px center file:service_routing.png caption:"Service Routing Pipeline"
|
|
207
|
+
from drawlib.canvas import setup
|
|
208
|
+
from drawlib.shapes import rectangle
|
|
209
|
+
from drawlib.lines import line
|
|
210
|
+
from drawlib.styles import Styles
|
|
211
|
+
|
|
212
|
+
setup(width=100, height=40)
|
|
213
|
+
rectangle((25, 20), width=30, height=16, r=2, style=Styles.Neutral, text="Ingress")
|
|
214
|
+
rectangle((75, 20), width=30, height=16, r=2, style=Styles.PrimaryFlat, text="Core API", text_style=Styles.WhiteBold)
|
|
215
|
+
line((40, 20), (60, 20), arrow_head="->", style=Styles.DarkBold)
|
|
216
|
+
```
|
|
217
|
+
````
|
|
218
|
+
|
|
219
|
+
Compile or preview with the `drawlib` CLI:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Build HTML site, GitHub Markdown, or PDF
|
|
223
|
+
./docs_src/build.sh
|
|
224
|
+
|
|
225
|
+
# Launch local HTTP server with broken-link check at http://localhost:8000
|
|
226
|
+
drawlib serve docs_html/
|
|
227
|
+
|
|
228
|
+
# Render a single diagram with coordinate grid (-g) for layout inspection
|
|
229
|
+
drawlib show docs_src/index.md service_routing.png -g -o preview_grid.png
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### 3. CLI Reference Summary
|
|
235
|
+
|
|
236
|
+
| Command | Description |
|
|
237
|
+
| :--- | :--- |
|
|
238
|
+
| `drawlib init <site\|doc\|slide\|images>` | Scaffold a new documentation, slide deck, or image project |
|
|
239
|
+
| `drawlib build <html\|markdown\|pdf\|image>` | Compile source files into HTML, Markdown, PDF, or PNG/WebP images |
|
|
240
|
+
| `drawlib serve <html_dir> [--check]` | Start a local HTTP server for built HTML docs/slides with pre-flight link checks |
|
|
241
|
+
| `drawlib show <file> [target] [-g]` | Render and inspect a single script or embedded Markdown diagram (with optional grid) |
|
|
242
|
+
| `drawlib rules show [topic]` | On-demand CLI reference for AI agents to look up detailed API specs & best practices (`overview`, `style-guide`, `api`, `lib-*`) |
|
|
243
|
+
| `drawlib cache <list\|download\|clear>` | Manage local font and icon asset caches (supports offline pre-caching via `--all`) |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## Links & Resources
|
|
248
|
+
|
|
249
|
+
- **Official Website & Documentation**: [https://www.drawlib.com/](https://www.drawlib.com/)
|
|
250
|
+
- **PyPI Package**: [https://pypi.org/project/drawlib/](https://pypi.org/project/drawlib/)
|
|
251
|
+
- **GitHub Repository**: [https://github.com/yuichi110/drawlib](https://github.com/yuichi110/drawlib)
|
|
252
|
+
- **License**: Apache License 2.0
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Drawlib
|
|
2
|
+
|
|
3
|
+
**Pure-Python Library for "Illustration as Code" & "Illustrated Documentation as Code"**
|
|
4
|
+
|
|
5
|
+
Drawlib is a declarative Python drawing library and integrated documentation compiler designed for software engineers and **autonomous AI coding agents**. Instead of maintaining brittle diagrams in external GUI tools (draw.io, Visio, PowerPoint) and manually pasting exported images into wikis, Drawlib lets you author, version-control, and build architectural diagrams, data charts, technical documents, and presentation slide decks entirely from code in Git.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
- **Official Website & Documentation**: [https://www.drawlib.com/](https://www.drawlib.com/)
|
|
10
|
+
- **Repository Guides & Whitepapers**:
|
|
11
|
+
- [Quickstart Guide (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/quickstart.pdf)
|
|
12
|
+
- [16:9 Presentation Slide Deck (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/slide_about_drawlib.pdf)
|
|
13
|
+
- [Dogfooding Whitepaper — English (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/drawlib-dogfooding-en.pdf) | [日本語版 (PDF)](https://github.com/yuichi110/drawlib/blob/main/docs/drawlib-dogfooding.pdf)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Why Drawlib v0.3?
|
|
18
|
+
|
|
19
|
+
### 1. Cloud & Software Engineering Diagrams
|
|
20
|
+
Stop assembling complex architectures out of raw coordinates. Drawlib provides high-level diagramming engines (`drawlib.diagrams`, `drawlib.graph`) and standardized icon sets (`drawlib.icons.gcp`, `phosphor`, `fontawesome`):
|
|
21
|
+
|
|
22
|
+

|
|
23
|
+
|
|
24
|
+
- **Auto-Layout Graphs (`drawlib.graph`)**: Declarative graph layout solvers (`ArchitectureGraph`, `LayerGraph`, `TreeGraph`, `RadialGraph`, `GridGraph`) that compute overlap-free coordinates (`get_layout()`), nested cluster bounds, and `offset()` fine-tuning for rendering with `drawlib.diagrams` and `drawlib.shapes`.
|
|
25
|
+
- **Technical Diagrams (`drawlib.diagrams`)**:
|
|
26
|
+
- **Cloud Architecture (`ArchitectureDiagram`)**: VPC boundaries, subnets, tiers, and official cloud service icons.
|
|
27
|
+
- **Flowcharts (`FlowDiagram`)**: Process stages, decision branches, and orthogonal connectors.
|
|
28
|
+
- **Sequence Diagrams (`SequenceDiagram`)**: Client/server lifelines, synchronous/asynchronous messages, and activation bars.
|
|
29
|
+
- **UML Class, ER & State Diagrams (`ClassDiagram`, `ERDiagram`, `StateDiagram`)**: Object-oriented models, database schemas, and state machines.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### 2. Quantitative Charts & SmartArt Infographics
|
|
34
|
+
Compose presentation-ready infographics (`drawlib.smartarts`) and quantitative data plots (`drawlib.charts`) side by side on the same canvas:
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
- **SmartArts (`drawlib.smartarts`)**: `ChevronProcess`, `Cycle`, `Table`, `TreeNode`, `MindMapNode`, `Pyramid`, `BoxList`, `BulletPoints`, `GridLayout`, and syntax-highlighted `SourceCode`.
|
|
39
|
+
- **Charts (`drawlib.charts`)**: Pure-Python `BarChart`, `LineChart`, `AreaChart`, `PieChart`, `RadarChart`, `ScatterChart`, `GanttChart`, and `HeatmapChart` / `HeatmapOverlay` styled with the same design tokens as your diagrams.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### 3. Rich Primitives & Semantic Design System
|
|
44
|
+
At its foundation, Drawlib separates **Content** (geometry, coordinates, structure) from **Style** (colors, typography, borders, themes)—just like HTML and CSS:
|
|
45
|
+
|
|
46
|
+

|
|
47
|
+
|
|
48
|
+
- **5 Core Primitive Categories**:
|
|
49
|
+
- **Icons (`drawlib.icons`)**: 1,500+ Phosphor icons (5 weights), FontAwesome, and official Google Cloud (GCP) icons.
|
|
50
|
+
- **Images (`drawlib.images`)**: Non-destructive `Dimage` processing pipeline (`sepia()`, `grayscale()`, `mosaic()`, `mirror()`, `crop()`, borders, rotation).
|
|
51
|
+
- **Lines (`drawlib.lines`)**: Straight, curved (`bend`), quadratic/cubic Bezier, and rounded multi-point polylines with customizable arrowheads (`"->"`, `"<-"`, `"<->"`).
|
|
52
|
+
- **Shapes (`drawlib.shapes`)**: 23 geometric primitives (`rectangle`, `circle`, `ellipse`, `rhombus`, `star`, `arrow`, `chevron`, `bubblespeech`, `polygon`, etc.).
|
|
53
|
+
- **Text (`drawlib.text`, `drawlib.fonts`)**: Multilingual typography with automatic on-demand font caching (`FontRoboto`, `FontSansSerif`, `FontSerif`, `FontSourceCode`, `FontJapanese`, `FontChinese`, `FontKorean`, `FontArabic`, etc.).
|
|
54
|
+
- **7-Role Semantic Style System (`drawlib.styles`)**:
|
|
55
|
+
- Built-in presets (`default`, `google`, `essentials`, `monochrome`, `warm`, `cold`) accessed via `Styles.<Token>` (`Styles.PrimaryFlat`, `Styles.Neutral`, `Styles.SecondaryNeutral`, `Styles.MutedDashed`, `Styles.SuccessNeutral`, `Styles.WarningNeutral`, `Styles.DangerNeutral`).
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### 4. Illustrated Documentation & Slide as Code
|
|
60
|
+
Write Markdown files with embedded ```` ```drawlib ```` code blocks. A single `drawlib build` command compiles your repository into multiple publication formats:
|
|
61
|
+
|
|
62
|
+

|
|
63
|
+
|
|
64
|
+
- **4 Project Scaffolds (`drawlib init <type>`)**:
|
|
65
|
+
- `drawlib init site`: Multi-page documentation website (`docs_html/`), GitHub Markdown (`docs/`), and PDF.
|
|
66
|
+
- `drawlib init doc`: Linear technical specification / whitepaper (`*_html/`, `*_markdown/`, `*.pdf`).
|
|
67
|
+
- `drawlib init slide`: 16:9 presentation slide deck with native SVG text and keyboard navigation (`slide_html/`, `slide.pdf`).
|
|
68
|
+
- `drawlib init images`: Standalone batch Python illustration scripts (`images_src/` -> `images/`).
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### 5. AI Inner Loop & Human Outer Loop
|
|
73
|
+
Drawlib is engineered from the ground up for **AI-native documentation and diagram engineering** (Claude Code, Cursor, Gemini, Codex), separating high-frequency visual self-correction from high-level human review:
|
|
74
|
+
|
|
75
|
+

|
|
76
|
+
|
|
77
|
+
- **AI Inner Loop (Autonomous Visual Self-Correction)**:
|
|
78
|
+
1. **On-Demand Spec & Codebase Lookup**: The AI agent autonomously queries **`drawlib rules show <topic>`** for detailed API specifications and design best practices, while directly inspecting **repository source code, schemas, and design docs** as the single source of truth.
|
|
79
|
+
2. **Code Synthesis & Grid Preview (`drawlib show -g`)**: The agent writes Python drawing blocks and Markdown prose, then renders a headless preview with a coordinate grid overlay.
|
|
80
|
+
3. **Multimodal Inspection & Self-Repair**: The agent visually inspects the rendered PNG for text clipping, overlapping labels, or style imbalances, repairing coordinates and styles autonomously until the diagram passes inspection.
|
|
81
|
+
- **Human Outer Loop (Intent & Review)**:
|
|
82
|
+
- The developer stays focused on high-level architecture and intent—providing initial goals, reviewing the compiled **Published Docs** (HTML / PDF / GitHub MD / Slide), and iterating on direction without ever nudging pixels in a GUI tool.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Installation
|
|
87
|
+
|
|
88
|
+
Install `drawlib` from PyPI using `pip` or `uv`:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
pip install drawlib
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
To enable headless PDF export for documentation sites, linear documents, and slide decks, install the `[pdf]` extra and Chromium:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pip install "drawlib[pdf]"
|
|
98
|
+
playwright install chromium
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Verify the installation:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
drawlib --version
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Quick Start
|
|
110
|
+
|
|
111
|
+
### 1. Standalone Python Script
|
|
112
|
+
|
|
113
|
+
Create a file named `architecture.py`:
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
from drawlib.canvas import save, setup
|
|
117
|
+
from drawlib.lines import line
|
|
118
|
+
from drawlib.shapes import rectangle
|
|
119
|
+
from drawlib.styles import Styles
|
|
120
|
+
from drawlib.text import text
|
|
121
|
+
|
|
122
|
+
setup(width=120, height=50)
|
|
123
|
+
|
|
124
|
+
# 1. Structural Boundary (Muted)
|
|
125
|
+
rectangle((60, 25), width=112, height=42, r=3, style=Styles.MutedDashed)
|
|
126
|
+
text((22, 42.5), "Production VPC", style=Styles.MutedBold.patch(text_size=9))
|
|
127
|
+
|
|
128
|
+
# 2. Entrypoint & Hero Service
|
|
129
|
+
rectangle((22, 24), width=24, height=16, r=2, style=Styles.Neutral, text="Client App")
|
|
130
|
+
rectangle(
|
|
131
|
+
(58, 24),
|
|
132
|
+
width=26,
|
|
133
|
+
height=16,
|
|
134
|
+
r=2,
|
|
135
|
+
style=Styles.PrimaryFlat,
|
|
136
|
+
text="API Gateway",
|
|
137
|
+
text_style=Styles.WhiteBold,
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
# 3. Downstream Services (Tinted Neutral Cards)
|
|
141
|
+
rectangle((96, 33), width=24, height=12, r=2, style=Styles.SecondaryNeutral, text="Auth Service")
|
|
142
|
+
rectangle((96, 15), width=24, height=12, r=2, style=Styles.SuccessNeutral, text="Audit Log DB")
|
|
143
|
+
|
|
144
|
+
# 4. Directional Connectors
|
|
145
|
+
line((34, 24), (45, 24), arrow_head="->", style=Styles.DarkBold)
|
|
146
|
+
line((71, 28), (84, 33), arrow_head="->", style=Styles.DarkBold)
|
|
147
|
+
line((71, 20), (84, 15), arrow_head="->", style=Styles.DarkBold)
|
|
148
|
+
|
|
149
|
+
save()
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Run the script with Python or `drawlib` to generate `architecture.png`:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
python architecture.py
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
#### Core Principles at a Glance
|
|
159
|
+
- **Bottom-Left Origin `(0, 0)`**: `setup(width=120, height=50)` defines a Cartesian coordinate canvas where `x` spans `0..120` (left to right) and `y` spans `0..50` (bottom to top).
|
|
160
|
+
- **Center Alignment by Default**: Shapes (`rectangle`, `circle`, `icon`, `image`, `text`) are positioned by their center `(x, y)`, making horizontal and vertical alignment effortless.
|
|
161
|
+
- **50%+ Neutral Baseline**: Ground supporting nodes in calm neutral styles (`Styles.Neutral`, `Styles.SecondaryNeutral`, `Styles.SuccessNeutral`) and reserve saturated fills (`Styles.PrimaryFlat`) for primary focal points.
|
|
162
|
+
- **Style Patching (`.patch()`)**: Customize any preset token non-destructively via `Styles.MutedBold.patch(text_size=9)` or `Styles.Primary.patch(shape_line_width=2)`.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### 2. Illustrated Documentation & Slide Deck Workflow
|
|
167
|
+
|
|
168
|
+
Scaffold a new documentation website, technical spec, or 16:9 slide deck in seconds:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Initialize a multi-page documentation site in docs_src/
|
|
172
|
+
drawlib init site
|
|
173
|
+
|
|
174
|
+
# Or initialize a 16:9 presentation slide deck in slide_src/
|
|
175
|
+
drawlib init slide
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Inside your Markdown files (`docs_src/index.md`), embed Python drawing blocks using the ```` ```drawlib ```` fence:
|
|
179
|
+
|
|
180
|
+
````markdown
|
|
181
|
+
# System Architecture
|
|
182
|
+
|
|
183
|
+
Below is our core request routing pipeline:
|
|
184
|
+
|
|
185
|
+
```drawlib 600px center file:service_routing.png caption:"Service Routing Pipeline"
|
|
186
|
+
from drawlib.canvas import setup
|
|
187
|
+
from drawlib.shapes import rectangle
|
|
188
|
+
from drawlib.lines import line
|
|
189
|
+
from drawlib.styles import Styles
|
|
190
|
+
|
|
191
|
+
setup(width=100, height=40)
|
|
192
|
+
rectangle((25, 20), width=30, height=16, r=2, style=Styles.Neutral, text="Ingress")
|
|
193
|
+
rectangle((75, 20), width=30, height=16, r=2, style=Styles.PrimaryFlat, text="Core API", text_style=Styles.WhiteBold)
|
|
194
|
+
line((40, 20), (60, 20), arrow_head="->", style=Styles.DarkBold)
|
|
195
|
+
```
|
|
196
|
+
````
|
|
197
|
+
|
|
198
|
+
Compile or preview with the `drawlib` CLI:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
# Build HTML site, GitHub Markdown, or PDF
|
|
202
|
+
./docs_src/build.sh
|
|
203
|
+
|
|
204
|
+
# Launch local HTTP server with broken-link check at http://localhost:8000
|
|
205
|
+
drawlib serve docs_html/
|
|
206
|
+
|
|
207
|
+
# Render a single diagram with coordinate grid (-g) for layout inspection
|
|
208
|
+
drawlib show docs_src/index.md service_routing.png -g -o preview_grid.png
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### 3. CLI Reference Summary
|
|
214
|
+
|
|
215
|
+
| Command | Description |
|
|
216
|
+
| :--- | :--- |
|
|
217
|
+
| `drawlib init <site\|doc\|slide\|images>` | Scaffold a new documentation, slide deck, or image project |
|
|
218
|
+
| `drawlib build <html\|markdown\|pdf\|image>` | Compile source files into HTML, Markdown, PDF, or PNG/WebP images |
|
|
219
|
+
| `drawlib serve <html_dir> [--check]` | Start a local HTTP server for built HTML docs/slides with pre-flight link checks |
|
|
220
|
+
| `drawlib show <file> [target] [-g]` | Render and inspect a single script or embedded Markdown diagram (with optional grid) |
|
|
221
|
+
| `drawlib rules show [topic]` | On-demand CLI reference for AI agents to look up detailed API specs & best practices (`overview`, `style-guide`, `api`, `lib-*`) |
|
|
222
|
+
| `drawlib cache <list\|download\|clear>` | Manage local font and icon asset caches (supports offline pre-caching via `--all`) |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Links & Resources
|
|
227
|
+
|
|
228
|
+
- **Official Website & Documentation**: [https://www.drawlib.com/](https://www.drawlib.com/)
|
|
229
|
+
- **PyPI Package**: [https://pypi.org/project/drawlib/](https://pypi.org/project/drawlib/)
|
|
230
|
+
- **GitHub Repository**: [https://github.com/yuichi110/drawlib](https://github.com/yuichi110/drawlib)
|
|
231
|
+
- **License**: Apache License 2.0
|
|
@@ -4,15 +4,20 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "drawlib"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.1"
|
|
8
8
|
description = "Python drawing library. Illustration as Code."
|
|
9
|
-
readme = "
|
|
10
|
-
requires-python = ">=3.
|
|
11
|
-
license = { text = "
|
|
9
|
+
readme = "docs/README_PYPI.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = { text = "Apache-2.0" }
|
|
12
12
|
authors = [{name = "Yuichi Ito", email = "yuichi@yuichi.com"}]
|
|
13
13
|
dependencies = [
|
|
14
|
-
"matplotlib>=3.
|
|
15
|
-
"
|
|
14
|
+
"matplotlib>=3.8",
|
|
15
|
+
"pydantic>=2.8",
|
|
16
|
+
"pygments>=2.18",
|
|
17
|
+
"markdown-it-py>=3.0",
|
|
18
|
+
"jinja2>=3.1",
|
|
19
|
+
"typer>=0.12.0",
|
|
20
|
+
"rich>=13.0.0",
|
|
16
21
|
]
|
|
17
22
|
|
|
18
23
|
[project.urls]
|
|
@@ -20,23 +25,34 @@ Homepage = "https://www.drawlib.com"
|
|
|
20
25
|
Repository = "https://github.com/yuichi110/drawlib"
|
|
21
26
|
|
|
22
27
|
[project.scripts]
|
|
23
|
-
drawlib = "drawlib.
|
|
28
|
+
drawlib = "drawlib._cli.main:main"
|
|
29
|
+
|
|
30
|
+
[project.optional-dependencies]
|
|
31
|
+
pdf = [
|
|
32
|
+
"playwright>=1.40.0",
|
|
33
|
+
]
|
|
24
34
|
|
|
25
35
|
[dependency-groups]
|
|
26
36
|
dev = [
|
|
27
37
|
"types-pillow>=10.2.0.20240311",
|
|
28
38
|
"ruff>=0.9.0",
|
|
29
|
-
"pyright>=1.1.390",
|
|
30
39
|
"pytest>=8.3.0",
|
|
31
40
|
"pytest-cov>=6.0.0",
|
|
32
41
|
"tomlkit>=0.14.0",
|
|
42
|
+
"ty>=0.0.35",
|
|
43
|
+
"pyright>=1.1.409",
|
|
44
|
+
"typer>=0.12.0",
|
|
45
|
+
"rich>=13.0.0",
|
|
46
|
+
"pytest-xdist>=3.8.0",
|
|
47
|
+
"playwright>=1.40.0",
|
|
33
48
|
]
|
|
34
49
|
|
|
35
50
|
[tool.ruff]
|
|
36
|
-
preview =
|
|
51
|
+
preview = false
|
|
37
52
|
fix = true
|
|
38
53
|
unsafe-fixes = false
|
|
39
54
|
line-length = 120
|
|
55
|
+
exclude = ["docs"]
|
|
40
56
|
|
|
41
57
|
[tool.ruff.lint]
|
|
42
58
|
select = [
|
|
@@ -58,7 +74,6 @@ ignore = [
|
|
|
58
74
|
"D212", # Multi-line docstring summary should start at the first line
|
|
59
75
|
"D415", # First line should end with a period, question mark, or exclamation point
|
|
60
76
|
"F401", # imported but unused
|
|
61
|
-
"ANN101", # Missing type annotation for self in method (deprecated in newer ruff)
|
|
62
77
|
"PLC0414", # Import alias does not rename original package
|
|
63
78
|
"PLC1901", # compare-to-empty-string
|
|
64
79
|
"PLR0904", # Too many public methods
|
|
@@ -72,19 +87,45 @@ ignore = [
|
|
|
72
87
|
]
|
|
73
88
|
|
|
74
89
|
[tool.ruff.lint.per-file-ignores]
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
90
|
+
"src/drawlib/_preset_colors/**.py" = [
|
|
91
|
+
"N803", # PascalCase argument names for design token patch methods
|
|
92
|
+
]
|
|
93
|
+
"src/drawlib/_preset_styles/**.py" = [
|
|
94
|
+
"D417", # Style patch methods have hundreds of design tokens that do not need individual docstring entries
|
|
95
|
+
"N803", # PascalCase argument names for design token patch methods
|
|
96
|
+
]
|
|
97
|
+
"tools/**.py" = [
|
|
98
|
+
"ANN", # flake8-annotations
|
|
99
|
+
"S101", # Use of assert detected
|
|
100
|
+
"S310", # Audit URL open for permitted schemes
|
|
101
|
+
"S404", # Subprocess module usage
|
|
102
|
+
"S603", # Subprocess call without shell=True
|
|
103
|
+
"S607", # Subprocess with partial executable path
|
|
104
|
+
"PLC2701", # Private name import from external module
|
|
105
|
+
"PLR6301", # Method could be a function/static method
|
|
79
106
|
]
|
|
80
107
|
"tests*/**.py" = [
|
|
81
108
|
"F403", # undefined-local-with-import-star
|
|
82
109
|
"F405", # undefined-local-with-import-star-usage
|
|
83
110
|
"D100", # undocumented-public-module
|
|
111
|
+
"D101", # undocumented-public-class
|
|
112
|
+
"D102", # undocumented-public-method
|
|
84
113
|
"D103", # undocumented-public-function
|
|
85
114
|
"D104", # undocumented-public-package
|
|
115
|
+
"D107", # undocumented-public-init
|
|
86
116
|
"ANN", # flake8-annotations
|
|
87
|
-
"
|
|
117
|
+
"CPY", # flake8-copyright
|
|
118
|
+
"S101", # Use of assert detected
|
|
119
|
+
"PLC2701", # Private name import from external module (standard for unit tests)
|
|
120
|
+
"PLR6301" # Method could be a function/static method (standard for pytest classes)
|
|
121
|
+
]
|
|
122
|
+
"src/drawlib/_builder/**.py" = [
|
|
123
|
+
"S102", # exec usage is intentional for dynamic code execution
|
|
124
|
+
"S701", # jinja2 autoescape
|
|
125
|
+
"PLC0415", # lazy import for optional dependencies
|
|
126
|
+
"C901", # complex functions in builder
|
|
127
|
+
"F403", # import star
|
|
128
|
+
"F405" # import star usage
|
|
88
129
|
]
|
|
89
130
|
"test_build_target/**.py" = [
|
|
90
131
|
"F403", # undefined-local-with-import-star
|
|
@@ -97,11 +138,17 @@ ignore = [
|
|
|
97
138
|
convention = "google"
|
|
98
139
|
|
|
99
140
|
[tool.pyright]
|
|
100
|
-
include = ["src/drawlib", "
|
|
101
|
-
extraPaths = ["
|
|
141
|
+
include = ["src/drawlib", "tools"]
|
|
142
|
+
extraPaths = ["."]
|
|
102
143
|
typeCheckingMode = "basic"
|
|
103
144
|
reportMissingTypeArgument = "warning"
|
|
104
145
|
reportUnknownParameterType = "warning"
|
|
105
146
|
reportUnknownVariableType = "warning"
|
|
106
147
|
reportUnknownMemberType = "warning"
|
|
107
148
|
reportUnknownArgumentType = "warning"
|
|
149
|
+
|
|
150
|
+
[tool.pytest.ini_options]
|
|
151
|
+
testpaths = ["tests"]
|
|
152
|
+
markers = [
|
|
153
|
+
"image_threshold(threshold): custom pixel match threshold for image comparison",
|
|
154
|
+
]
|