simetri.graphics.all_enums

All enumerations.

   1"""All enumerations."""
   2
   3from typing import Union
   4from typing_extensions import TypeAlias
   5from strenum import StrEnum
   6
   7
   8def get_enum_value(enum_class: StrEnum, value: str) -> str:
   9    """Get the value of an enumeration."""
  10    if isinstance(value, enum_class):
  11        res = value.value
  12    else:
  13        res = enum_class[value.upper()].value
  14
  15    return res
  16
  17
  18class Align(StrEnum):
  19    """Align is used to set the alignment of the text in tags.
  20    Used for Tag and Text objects. This is based on TikZ.
  21
  22    Valid values are: NONE, CENTER, FLUSH_CENTER, FLUSH_LEFT, FLUSH_RIGHT, JUSTIFY, LEFT, RIGHT.
  23    """
  24
  25    NONE = ""
  26    CENTER = "center"
  27    FLUSH_CENTER = "flush center"
  28    FLUSH_LEFT = "flush left"
  29    FLUSH_RIGHT = "flush right"
  30    JUSTIFY = "justify"
  31    LEFT = "left"
  32    RIGHT = "right"
  33
  34
  35# Anchor points
  36# Used for TikZ. VaLUeS are case sensitive.
  37class Anchor(StrEnum):
  38    """Anchor is used to set the anchor point of the shapes
  39    relative to the boundary box of shapes/batches or
  40    frames of tag objects.
  41
  42    Valid values are: BASE, BASE_EAST, BASE_WEST, BOTTOM, CENTER, EAST, LEFT, MID, MIDEAST, MIDWEST, NORTH,
  43    NORTHEAST, NORTHWEST, RIGHT, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, TOP, WEST.
  44    """
  45
  46    BASE = "base"  # FOR TAGS ONLY
  47    BASE_EAST = "base east"  # FOR TAGS ONLY
  48    BASE_WEST = "base west"  # FOR TAGS ONLY
  49    BOTTOM = "bottom"
  50    MIDPOINT = "midpoint"
  51    EAST = "east"
  52    LEFT = "left"
  53    CENTER = "center"
  54    MID = "mid"
  55    MIDEAST = "mid east"
  56    MIDWEST = "mid west"
  57    NORTH = "north"
  58    NORTHEAST = "north east"
  59    NORTHWEST = "north west"
  60    RIGHT = "right"
  61    SOUTH = "south"
  62    SOUTHEAST = "south east"
  63    SOUTHWEST = "south west"
  64    TEXT = "text"
  65    TOP = "top"
  66    WEST = "west"
  67
  68
  69class ArrowLine(StrEnum):
  70    """ArrowLine is used to set the type of arrow line.
  71
  72    Valid values are: FLATBASE_END, FLATBASE_MIDDLE, FLATBASE_START, FLATBOTH_END, FLATBOTH_MIDDLE,
  73    FLATBOTH_START, FLATTOP_END, FLATTOP_MIDDLE, FLATTOP_START, STRAIGHT_END, STRAIGHT_MIDDLE, STRAIGHT_START.
  74    """
  75
  76    FLATBASE_END = "flatbase end"  # FLAT BASE, ARROW AT THE END
  77    FLATBASE_MIDDLE = "flatbase middle"  # FLAT BASE, ARROW AT THE MIDDLE
  78    FLATBASE_START = "flatbase start"  # FLAT BASE, ARROW AT THE START
  79    FLATBOTH_END = "flatboth end"
  80    FLATBOTH_MIDDLE = "flatboth middle"
  81    FLATBOTH_START = "flatboth start"
  82    FLATTOP_END = "flattop end"  #  FLAT TOP, ARROW AT THE END
  83    FLATTOP_MIDDLE = "flattop middle"
  84    FLATTOP_START = "flattop start"
  85    STRAIGHT_END = "straight end"  # DEFAULT, STRAIGHT LINE, ARROW AT THE END
  86    STRAIGHT_MIDDLE = "straight middle"  # STRAIGHT LINE, ARROW AT THE MIDDLE
  87    STRAIGHT_START = "straight start"  # STRAIGHT LINE, ARROW AT THE START
  88
  89
  90class Axis(StrEnum):
  91    """Cartesian coordinate system axes.
  92
  93    Valid values are: X, Y.
  94    """
  95
  96    X = "x"
  97    Y = "y"
  98
  99
 100# Used for shapes, canvas, and  tags
 101class BackStyle(StrEnum):
 102    """BackStyle is used to set the background style of a shape or tag.
 103    If shape.fill is True, then background will be drawn according to
 104    the shape.back_style value.
 105
 106    Valid values are: COLOR, COLOR_AND_GRID, EMPTY, GRIDLINES, PATTERN, SHADING, SHADING_AND_GRID.
 107    """
 108
 109    COLOR = "COLOR"
 110    COLOR_AND_GRID = "COLOR_AND_GRID"
 111    EMPTY = "EMPTY"
 112    GRIDLINES = "GRIDLINES"
 113    PATTERN = "PATTERN"
 114    SHADING = "SHADING"
 115    SHADING_AND_GRID = "SHADING_AND_GRID"
 116
 117
 118class BlendMode(StrEnum):
 119    """BlendMode is used to set the blend mode of the colors.
 120
 121    Valid values are: COLOR, COLORBURN, COLORDODGE, DARKEN, DIFFERENCE, EXCLUSION, HARDLIGHT, HUE, LIGHTEN,
 122    LUMINOSITY, MULTIPLY, NORMAL, OVERLAY, SATURATION, SCREEN, SOFTLIGHT.
 123    """
 124
 125    COLOR = "color"
 126    COLORBURN = "colorburn"
 127    COLORDODGE = "colordodge"
 128    DARKEN = "darken"
 129    DIFFERENCE = "difference"
 130    EXCLUSION = "exclusion"
 131    HARDLIGHT = "hardlight"
 132    HUE = "hue"
 133    LIGHTEN = "lighten"
 134    LUMINOSITY = "luminosity"
 135    MULTIPLY = "multiply"
 136    NORMAL = "normal"
 137    OVERLAY = "overlay"
 138    SATURATION = "saturation"
 139    SCREEN = "screen"
 140    SOFTLIGHT = "softlight"
 141
 142
 143class ColorSpace(StrEnum):
 144    """ColorSpace is used to set the color space of the colors.
 145
 146    Valid values are: CMYK, GRAY, HCL, HLS, HSV, LAB, RGB, YIQ.
 147    """
 148
 149    CMYK = "CMYK"
 150    GRAY = "GRAY"
 151    HCL = "HCL"
 152    HLS = "HLS"
 153    HSV = "HSV"
 154    LAB = "LAB"
 155    RGB = "RGB"
 156    YIQ = "YIQ"
 157
 158
 159class Connection(StrEnum):
 160    """Connection is used for identifying how two line segments are related
 161    to each other. Intersection check uses some of these values.
 162
 163    Valid values are: CHAIN, COINCIDENT, COLL_CHAIN, CONGRUENT, CONTAINS, COVERS, DISJOINT, END_END, END_START,
 164    FLIPPED, INTERSECT, NONE, OVERLAPS, PARALLEL, START_END, START_START, TOUCHES, WITHIN, YJOINT.
 165    """
 166
 167    CHAIN = "CHAIN"
 168    COINCIDENT = "COINCIDENT"
 169    COLL_CHAIN = "COLL_CHAIN"
 170    CONGRUENT = "CONGRUENT"
 171    CONTAINS = "CONTAINS"
 172    COVERS = "COVERS"
 173    DISJOINT = "DISJOINT"
 174    END_END = "END_END"
 175    END_START = "END_START"
 176    FLIPPED = "FLIPPED"
 177    INTERSECT = "INTERSECT"
 178    NONE = "NONE"
 179    OVERLAPS = "OVERLAPS"
 180    PARALLEL = "PARALLEL"
 181    START_END = "START_END"
 182    START_START = "START_START"
 183    TOUCHES = "TOUCHES"
 184    WITHIN = "WITHIN"
 185    YJOINT = "YJOINT"
 186
 187
 188class Connector(StrEnum):
 189    """Connector is used to set the way connecting lines are drawn.
 190    This is not used yet.
 191
 192    Valid values are: ARC, ARROW_LINE, CURVE, LINE, DOUBLE_LINE, SQUIGLY, ZIGZAG, SQUIGLY_ARROW, ZIGZAG_ARROW,
 193    DOUBLE_ARROW, DOUBLE_SQUIGLY.
 194    """
 195
 196    ARC = "ARC"
 197    ARROW_LINE = "ARROW_LINE"
 198    CURVE = "CURVE"
 199    LINE = "LINE"
 200    DOUBLE_LINE = "DOUBLE_LINE"
 201    SQUIGLY = "squigly"
 202    ZIGZAG = "zigzag"
 203    SQUIGLY_ARROW = "squigly_arrow"
 204    ZIGZAG_ARROW = "zigzag_arrow"
 205    DOUBLE_ARROW = "double_arrow"
 206    DOUBLE_SQUIGLY = "double_squigly"
 207
 208
 209class ConstraintType(StrEnum):
 210    """Constraint types are used with the 2D geometric constraint solver.
 211
 212    Valid values are: COLLINEAR, DISTANCE, LINE_ANGLE, PARALLEL, PERPENDICULAR, EQUAL_SIZE, EQUAL_VALUE,
 213    INNER_TANGENT, OUTER_TANGENT.
 214    """
 215
 216    COLLINEAR = "COLLINEAR"
 217    DISTANCE = "DISTANCE"
 218    LINE_ANGLE = "LINE_ANGLE"
 219    PARALLEL = "PARALLEL"
 220    PERPENDICULAR = "PERPENDICULAR"
 221    EQUAL_SIZE = "EQUAL_SIZE"
 222    EQUAL_VALUE = "EQUAL_VALUE"
 223    INNER_TANGENT = "INNER_TANGENT"
 224    OUTER_TANGENT = "OUTER_TANGENT"
 225
 226
 227class Compiler(StrEnum):
 228    """Used for the LaTeX compiler.
 229    Currently, only XELATEX is used.
 230
 231    Valid values are: LATEX, PDFLATEX, XELATEX, LUALATEX.
 232    """
 233
 234    LATEX = "LATEX"
 235    PDFLATEX = "PDFLATEX"
 236    XELATEX = "XELATEX"
 237    LUALATEX = "LUALATEX"
 238
 239
 240class Control(StrEnum):
 241    """Used with the modifiers.
 242
 243    Valid values are: INITIAL, PAUSE, RESTART, RESUME, STOP.
 244    """
 245
 246    INITIAL = "INITIAL"
 247    PAUSE = "PAUSE"
 248    RESTART = "RESTART"
 249    RESUME = "RESUME"
 250    STOP = "STOP"
 251
 252
 253class Conway(StrEnum):
 254    """Frieze groups in Conway notation.
 255
 256    Valid values are: HOP, JUMP, SIDLE, SPINNING_HOP, SPINNING_JUMP, SPINNING_SIDLE, STEP.
 257    """
 258
 259    HOP = "HOP"
 260    JUMP = "JUMP"
 261    SIDLE = "SIDLE"
 262    SPINNING_HOP = "SPINNING_HOP"
 263    SPINNING_JUMP = "SPINNING_JUMP"
 264    SPINNING_SIDLE = "SPINNING_SIDLE"
 265    STEP = "STEP"
 266
 267
 268class CurveMode(StrEnum):
 269    """CurveMode is used to set how arc objects are drawn.
 270
 271    Valid values are: OPEN, CHORD, PIE.
 272    """
 273
 274    OPEN = "OPEN"
 275    CHORD = "CHORD"
 276    PIE = "PIE"
 277
 278
 279class Dep(StrEnum):
 280    """Depend may be used in the future to set the dependency of the shapes
 281    when they are copied. Dependent copies share the same underlying data.
 282
 283    Valid values are: FALSE, TRUE, GEOM, STYLE.
 284    """
 285
 286    FALSE = "FALSE"  # Independent
 287    TRUE = "TRUE"  # Both geometry and style are dependent
 288    GEOM = "GEOM"  # Only geometry is dependent
 289    STYLE = "STYLE"  # Only style is dependent
 290
 291
 292class DocumentClass(StrEnum):
 293    """DocumentClass is used to set the class of the LaTeX document.
 294
 295    Valid values are: ARTICLE, BEAMER, BOOK, IEEETRAN, LETTER, REPORT, SCRARTCL, SLIDES, STANDALONE.
 296    """
 297
 298    ARTICLE = "article"
 299    BEAMER = "beamer"
 300    BOOK = "book"
 301    IEEETRAN = "ieeetran"
 302    LETTER = "letter"
 303    REPORT = "report"
 304    SCRARTCL = "scrartcl"
 305    SLIDES = "slides"
 306    STANDALONE = "standalone"
 307
 308
 309class FillMode(StrEnum):
 310    """FillMode is used to set the fill mode of the shape.
 311
 312    Valid values are: EVENODD, NONZERO.
 313    """
 314
 315    EVENODD = "even odd"
 316    NONZERO = "non zero"
 317
 318
 319class FontFamily(StrEnum):
 320    """FontFamily is used to set the family of the font.
 321
 322    Valid values are: MONOSPACE, SERIF, SANSSERIF.
 323    """
 324
 325    MONOSPACE = "monospace"  # \ttfamily, \texttt
 326    SERIF = "serif"  # serif \rmfamily, \textrm
 327    SANSSERIF = "sansserif"  # \sffamily, \textsf
 328
 329
 330class FontSize(StrEnum):
 331    """FontSize is used to set the size of the font.
 332
 333    Valid values are: FOOTNOTESIZE, HUGE, HUGE2, LARGE, LARGE2, LARGE3, NORMAL, SCRIPTSIZE, SMALL, TINY.
 334    """
 335
 336    FOOTNOTESIZE = "footnotesize"
 337    HUGE = "huge"  # \huge
 338    HUGE2 = "Huge"  # \Huge
 339    LARGE = "large"  # \large
 340    LARGE2 = "Large"  # \Large
 341    LARGE3 = "LARGE"  # \LARGE
 342    NORMAL = "normalsize"  # \normalsize
 343    SCRIPTSIZE = "scriptsize"  # \scriptsize
 344    SMALL = "small"  # \small
 345    TINY = "tiny"  # \tiny
 346
 347
 348class FontStretch(StrEnum):
 349    """FontStretch is used to set the stretch of the font.
 350    These come from LaTeX.
 351
 352    Valid values are: CONDENSED, EXPANDED, EXTRA_CONDENSED, EXTRA_EXPANDED, NORMAL, SEMI_CONDENSED,
 353    SEMI_EXPANDED, ULTRA_CONDENSED, ULTRA_EXPANDED.
 354    """
 355
 356    CONDENSED = "condensed"
 357    EXPANDED = "expanded"
 358    EXTRA_CONDENSED = "extracondensed"
 359    EXTRA_EXPANDED = "extraexpanded"
 360    NORMAL = "normal"
 361    SEMI_CONDENSED = "semicondensed"
 362    SEMI_EXPANDED = "semiexpanded"
 363    ULTRA_CONDENSED = "ultracondensed"
 364    ULTRA_EXPANDED = "ultraexpanded"
 365
 366
 367class FontStrike(StrEnum):
 368    """FontStrike is used to set the strike of the font.
 369
 370    Valid values are: OVERLINE, THROUGH, UNDERLINE.
 371    """
 372
 373    OVERLINE = "overline"
 374    THROUGH = "through"
 375    UNDERLINE = "underline"
 376
 377
 378class FontWeight(StrEnum):
 379    """FontWeight is used to set the weight of the font.
 380
 381    Valid values are: BOLD, MEDIUM, NORMAL.
 382    """
 383
 384    BOLD = "bold"
 385    MEDIUM = "medium"
 386    NORMAL = "normal"
 387
 388
 389class FrameShape(StrEnum):
 390    """FrameShape is used to set the shape of the frame.
 391    Frames are used for the tags.
 392
 393    Valid values are: CIRCLE, DIAMOND, ELLIPSE, FORBIDDEN, PARALLELOGRAM, POLYGON, RECTANGLE, RHOMBUS,
 394    SPLITCIRCLE, SQUARE, STAR, TRAPEZOID.
 395    """
 396
 397    CIRCLE = "circle"
 398    DIAMOND = "diamond"
 399    ELLIPSE = "ellipse"
 400    FORBIDDEN = "forbidden"
 401    PARALLELOGRAM = "parallelogram"
 402    POLYGON = "polygon"
 403    RECTANGLE = "rectangle"
 404    RHOMBUS = "rhombus"
 405    SPLITCIRCLE = "split circle"
 406    SQUARE = "square"
 407    STAR = "star"
 408    TRAPEZOID = "trapezoid"
 409
 410
 411class Graph(StrEnum):
 412    """Graph is used to set the type of graph.
 413
 414    Valid values are: DIRECTED, DIRECTEDWEIGHTED, UNDIRECTED, UNDIRECTEDWEIGHTED.
 415    """
 416
 417    DIRECTED = "DIRECTED"
 418    DIRECTEDWEIGHTED = "DIRECTEDWEIGHTED"
 419    UNDIRECTED = "UNDIRECTED"
 420    UNDIRECTEDWEIGHTED = "UNDIRECTEDWEIGHTED"
 421
 422
 423class GridType(StrEnum):
 424    """GridType is used to set the type of grid.
 425    Grids are used for creating star patterns.
 426
 427    Valid values are: CIRCULAR, SQUARE, HEXAGONAL, MIXED.
 428    """
 429
 430    CIRCULAR = "CIRCULAR"
 431    SQUARE = "SQUARE"
 432    HEXAGONAL = "HEXAGONAL"
 433    MIXED = "MIXED"  # CIRCULAR + SQUARE
 434
 435
 436# arrow head positions
 437class HeadPos(StrEnum):
 438    """Arrow head positions.
 439
 440    Valid values are: BOTH, END, MIDDLE, START, NONE.
 441    """
 442
 443    BOTH = "BOTH"
 444    END = "END"
 445    MIDDLE = "MIDDLE"
 446    START = "START"
 447    NONE = "NONE"
 448
 449
 450class IUC(StrEnum):
 451    """IUC notation for frieze groups.
 452
 453    Valid values are: P1, P11G, P11M, P1M1, P2, P2MG, P2MM.
 454    """
 455
 456    P1 = "P1"
 457    P11G = "P11G"
 458    P11M = "P11M"
 459    P1M1 = "P1M1"
 460    P2 = "P2"
 461    P2MG = "P2MG"
 462    P2MM = "P2MM"
 463
 464
 465class LineCap(StrEnum):
 466    """LineCap is used to set the type of line cap.
 467
 468    Valid values are: BUTT, ROUND, SQUARE.
 469    """
 470
 471    BUTT = "butt"
 472    ROUND = "round"
 473    SQUARE = "square"
 474
 475
 476class LineDashArray(StrEnum):
 477    """LineDashArray is used to set the type of dashed-line.
 478
 479    Valid values are: DASHDOT, DASHDOTDOT, DASHED, DENSELY_DASHED, DENSELY_DOTTED, DOTTED, LOOSELY_DASHED,
 480    LOOSELY_DOTTED, SOLID.
 481    """
 482
 483    DASHDOT = "dash dot"
 484    DASHDOTDOT = "dash dot dot"
 485    DASHED = "dashed"
 486    DENSELY_DASHED = "densely dashed"
 487    DENSELY_DOTTED = "densely dotted"
 488    DOTTED = "dotted"
 489    LOOSELY_DASHED = "loosely dashed"
 490    LOOSELY_DOTTED = "loosely dotted"
 491    SOLID = "solid"
 492
 493
 494class LineJoin(StrEnum):
 495    """LineJoin is used to set the type of line join.
 496
 497    Valid values are: BEVEL, MITER, ROUND.
 498    """
 499
 500    BEVEL = "bevel"
 501    MITER = "miter"
 502    ROUND = "round"
 503
 504
 505class LineWidth(StrEnum):
 506    """LineWidth is used to set the width of the line.
 507
 508    Valid values are: SEMITHICK, THICK, THIN, ULTRA_THICK, ULTRA_THIN, VERY_THICK, VERY_THIN.
 509    """
 510
 511    SEMITHICK = "semithick"
 512    THICK = "thick"
 513    THIN = "thin"
 514    ULTRA_THICK = "ultra thick"
 515    ULTRA_THIN = "ultra thin"
 516    VERY_THICK = "very thick"
 517    VERY_THIN = "very thin"
 518
 519
 520class MarkerPos(StrEnum):
 521    """MarkerPos is used to set the position of the marker.
 522
 523    Valid values are: CONCAVEHULL, CONVEXHULL, MAINX, OFFSETX.
 524    """
 525
 526    CONCAVEHULL = "CONCAVEHULL"
 527    CONVEXHULL = "CONVEXHULL"
 528    MAINX = "MAINX"
 529    OFFSETX = "OFFSETX"
 530
 531
 532class MarkerType(StrEnum):
 533    """MarkerType is used to set the type of marker.
 534
 535    Valid values are: ASTERISK, BAR, CIRCLE, CROSS, DIAMOND, DIAMOND_F, EMPTY, FCIRCLE, HALF_CIRCLE,
 536    HALF_CIRCLE_F, HALF_DIAMOND, HALF_DIAMOND_F, HALF_SQUARE, HALF_SQUARE_F, HEXAGON, HEXAGON_F, INDICES,
 537    MINUS, OPLUS, OPLUS_F, O_TIMES, O_TIMES_F, PENTAGON, PENTAGON_F, PLUS, SQUARE, SQUARE_F, STAR, STAR2,
 538    STAR3, TEXT, TRIANGLE, TRIANGLE_F.
 539    """
 540
 541    ASTERISK = "asterisk"
 542    BAR = "|"
 543    CIRCLE = "o"
 544    CROSS = "x"
 545    DIAMOND = "diamond"
 546    DIAMOND_F = "diamond*"
 547    EMPTY = ""
 548    FCIRCLE = "*"
 549    HALF_CIRCLE = "halfcircle"
 550    HALF_CIRCLE_F = "halfcircle*"
 551    HALF_DIAMOND = "halfdiamond"
 552    HALF_DIAMOND_F = "halfdiamond*"
 553    HALF_SQUARE = "halfsquare"
 554    HALF_SQUARE_F = "halfsquare*"
 555    HEXAGON = "hexagon"
 556    HEXAGON_F = "hexagon*"
 557    INDICES = "indices"
 558    MINUS = "-"
 559    OPLUS = "oplus"
 560    OPLUS_F = "oplus*"
 561    O_TIMES = "otimes"
 562    O_TIMES_F = "otimes*"
 563    PENTAGON = "pentagon"
 564    PENTAGON_F = "pentagon*"
 565    PLUS = "+"
 566    SQUARE = "square"
 567    SQUARE_F = "square*"
 568    STAR = "star"
 569    STAR2 = "star2"
 570    STAR3 = "star3"
 571    TEXT = "text"
 572    TRIANGLE = "triangle"
 573    TRIANGLE_F = "triangle*"
 574
 575
 576class MusicScale(StrEnum):
 577    """MusicScale is used for musical note scales.
 578    This is used for audio generation for animations.
 579    Not implemented yet!!!
 580
 581    Valid values are: MAJOR, MINOR, CHROMATIC, PENTATONIC, IONIC, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN,
 582    AEOLIAN, LOCRIAN.
 583    """
 584
 585    MAJOR = "major"
 586    MINOR = "minor"
 587    CHROMATIC = "chromatic"
 588    PENTATONIC = "pentatonic"
 589    IONIC = "ionic"
 590    DORIAN = "dorian"
 591    PHRYGIAN = "phrygian"
 592    LYDIAN = "lydian"
 593    MIXOLYDIAN = "mixolydian"
 594    AEOLIAN = "aeolian"
 595    LOCRIAN = "locrian"
 596
 597
 598class Orientation(StrEnum):
 599    """Orientation is used to set the orientation of the dimension
 600    lines.
 601
 602    Valid values are: ANGLED, HORIZONTAL, VERTICAL.
 603    """
 604
 605    ANGLED = "ANGLED"
 606    HORIZONTAL = "HORIZONTAL"
 607    VERTICAL = "VERTICAL"
 608
 609
 610class PageMargins(StrEnum):
 611    """Page margins for the LaTeX documents.
 612    Used in Page class.
 613
 614    Valid values are: CUSTOM, NARROW, STANDARD, WIDE.
 615    """
 616
 617    CUSTOM = "custom"
 618    NARROW = "narrow"
 619    STANDARD = "standard"
 620    WIDE = "wide"
 621
 622
 623class PageNumbering(StrEnum):
 624    """Page numbering style for the LaTeX documents.
 625    Used in Page class.
 626
 627    Valid values are: ALPH, ALPHUPPER, ARABIC, NONE, ROMAN, ROMAN_UPPER.
 628    """
 629
 630    ALPH = "alph"
 631    ALPHUPPER = "ALPH"
 632    ARABIC = "arabic"
 633    NONE = "none"
 634    ROMAN = "roman"
 635    ROMAN_UPPER = "ROMAN"
 636
 637
 638class PageNumberPosition(StrEnum):
 639    """Page number positions for the LaTeX documents.
 640    Used in Page class.
 641
 642    Valid values are: BOTTOM_CENTER, BOTTOM_LEFT, BOTTOM_RIGHT, CUSTOM, TOP_CENTER, TOP_LEFT, TOP_RIGHT.
 643    """
 644
 645    BOTTOM_CENTER = "bottom"
 646    BOTTOM_LEFT = "bottom left"
 647    BOTTOM_RIGHT = "bottom right"
 648    CUSTOM = "custom"
 649    TOP_CENTER = "top"
 650    TOP_LEFT = "top left"
 651    TOP_RIGHT = "top right"
 652
 653
 654class PageOrientation(StrEnum):
 655    """Page orientations for the LaTeX documents.
 656    Used in Page class.
 657
 658    Valid values are: LANDSCAPE, PORTRAIT.
 659    """
 660
 661    LANDSCAPE = "landscape"
 662    PORTRAIT = "portrait"
 663
 664
 665class PageSize(StrEnum):
 666    """Page sizes for the LaTeX documents.
 667    Used in Page class.
 668
 669    Valid values are: LETTER, LEGAL, EXECUTIVE, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13,
 670    A0, A1, A2, A3, A4, A5, A6.
 671    """
 672
 673    LETTER = "letterpaper"
 674    LEGAL = "legalpaper"
 675    EXECUTIVE = "executivepaper"
 676    B0 = "b0paper"
 677    B1 = "b1paper"
 678    B2 = "b2paper"
 679    B3 = "b3paper"
 680    B4 = "b4paper"
 681    B5 = "b5paper"
 682    B6 = "b6paper"
 683    B7 = "b7paper"
 684    B8 = "b8paper"
 685    B9 = "b9paper"
 686    B10 = "b10paper"
 687    B11 = "b11paper"
 688    B12 = "b12paper"
 689    B13 = "b13paper"
 690    A0 = "a0paper"
 691    A1 = "a1paper"
 692    A2 = "a2paper"
 693    A3 = "a3paper"
 694    A4 = "a4paper"
 695    A5 = "a5paper"
 696    A6 = "a6paper"
 697
 698
 699class PathOperation(StrEnum):
 700    """PathOperation is used to set the type of path operation.
 701    Used with LinPath objects.
 702
 703    Valid values are: ARC, ARC_TO, BLEND_ARC, BLEND_CUBIC, BLEND_QUAD, BLEND_SINE, CLOSE, CUBIC_TO, FORWARD,
 704    HOBBY_TO, H_LINE, LINE_TO, MOVE_TO, QUAD_TO, R_LINE, R_MOVE, SEGMENTS, SINE, V_LINE.
 705    """
 706
 707    ARC = "ARC"
 708    ARC_TO = "ARC_TO"
 709    BLEND_ARC = "BLEND_ARC"
 710    BLEND_CUBIC = "BLEND_CUBIC"
 711    BLEND_QUAD = "BLEND_QUAD"
 712    BLEND_SINE = "BLEND_SINE"
 713    CLOSE = "CLOSE"
 714    CUBIC_TO = "CUBIC_TO"
 715    FORWARD = "FORWARD"
 716    HOBBY_TO = "HOBBY_TO"
 717    H_LINE = "H_LINE"
 718    LINE_TO = "LINE_TO"
 719    MOVE_TO = "MOVE_TO"
 720    QUAD_TO = "QUAD_TO"
 721    R_LINE = "RLINE"
 722    R_MOVE = "RMOVE"
 723    SEGMENTS = "SEGMENTS"
 724    SINE = "SINE"
 725    V_LINE = "V_LINE"
 726
 727
 728class PatternType(StrEnum):
 729    """PatternType is used to set the type of pattern.
 730    Used with closed shapes and Tag objects.
 731
 732    Valid values are: BRICKS, CHECKERBOARD, CROSSHATCH, CROSSHATCH_DOTS, DOTS, FIVE_POINTED_STARS, GRID,
 733    HORIZONTAL_LINES, NORTHEAST, NORTHWEST, SIX_POINTED_STARS, VERTICAL_LINES.
 734    """
 735
 736    BRICKS = "bricks"
 737    CHECKERBOARD = "checkerboard"
 738    CROSSHATCH = "crosshatch"
 739    CROSSHATCH_DOTS = "crosshatch dots"
 740    DOTS = "dots"
 741    FIVE_POINTED_STARS = "fivepointed stars"
 742    GRID = "grid"
 743    HORIZONTAL_LINES = "horizontal lines"
 744    NORTHEAST = "north east lines"
 745    NORTHWEST = "north west lines"
 746    SIX_POINTED_STARS = "sixpointed stars"
 747    VERTICAL_LINES = "vertical lines"
 748
 749
 750class Placement(StrEnum):
 751    """Placement is used to set the placement of the tags
 752    relative to another object.
 753
 754    Valid values are: ABOVE, ABOVE_LEFT, ABOVE_RIGHT, BELOW, BELOW_LEFT, BELOW_RIGHT, CENTERED, INSIDE,
 755    LEFT, OUTSIDE, RIGHT.
 756    """
 757
 758    ABOVE = "above"
 759    ABOVE_LEFT = "above left"
 760    ABOVE_RIGHT = "above right"
 761    BELOW = "below"
 762    BELOW_LEFT = "below left"
 763    BELOW_RIGHT = "below right"
 764    CENTERED = "centered"
 765    INSIDE = "inside"
 766    LEFT = "left"
 767    OUTSIDE = "outside"
 768    RIGHT = "right"
 769
 770
 771class Render(StrEnum):
 772    """Render is used to set the type of rendering.
 773
 774    Valid values are: EPS, PDF, SVG, TEX.
 775    """
 776
 777    EPS = "EPS"
 778    PDF = "PDF"
 779    SVG = "SVG"
 780    TEX = "TEX"
 781
 782
 783class Result(StrEnum):
 784    """Result is used for the return values of the functions.
 785
 786    Valid values are: FAILURE, GO, NOPAGES, OVERWRITE, SAVED, STOP, SUCCESS.
 787    """
 788
 789    FAILURE = "FAILURE"
 790    GO = "GO"
 791    NOPAGES = "NO_PAGES"
 792    OVERWRITE = "OVERWRITE"
 793    SAVED = "SAVED"
 794    STOP = "STOP"
 795    SUCCESS = "SUCCESS"
 796
 797
 798class ShadeType(StrEnum):
 799    """ShadeType is used to set the type of shading.
 800
 801    Valid values are: AXIS_LEFT_RIGHT, AXIS_TOP_BOTTOM, AXIS_LEFT_MIDDLE, AXIS_RIGHT_MIDDLE, AXIS_TOP_MIDDLE,
 802    AXIS_BOTTOM_MIDDLE, BALL, BILINEAR, COLORWHEEL, COLORWHEEL_BLACK, COLORWHEEL_WHITE, RADIAL_INNER,
 803    RADIAL_OUTER, RADIAL_INNER_OUTER.
 804    """
 805
 806    AXIS_LEFT_RIGHT = "axis left right"
 807    AXIS_TOP_BOTTOM = "axis top bottom"
 808    AXIS_LEFT_MIDDLE = "axis left middle"
 809    AXIS_RIGHT_MIDDLE = "axis right middle"
 810    AXIS_TOP_MIDDLE = "axis top middle"
 811    AXIS_BOTTOM_MIDDLE = "axis bottom middle"
 812    BALL = "ball"
 813    BILINEAR = "bilinear"
 814    COLORWHEEL = "color wheel"
 815    COLORWHEEL_BLACK = "color wheel black center"
 816    COLORWHEEL_WHITE = "color wheel white center"
 817    RADIAL_INNER = "radial inner"
 818    RADIAL_OUTER = "radial outer"
 819    RADIAL_INNER_OUTER = "radial inner outer"
 820
 821
 822# Anchor lines are called sides.
 823class Side(StrEnum):
 824    """Side is used to with boundary box offset lines.
 825    They determine the position of the offset lines.
 826
 827    Valid values are: BASE, BOTTOM, DIAGONAL1, DIAGONAL2, H_CENTERLINE, LEFT, MID, RIGHT, TOP, V_CENTERLINE.
 828    """
 829
 830    BASE = "BASE"
 831    BOTTOM = "BOTTOM"
 832    DIAGONAL1 = "DIAGONAL1"
 833    DIAGONAL2 = "DIAGONAL2"
 834    H_CENTERLINE = "H_CENTERLINE"
 835    LEFT = "LEFT"
 836    MID = "MID"
 837    RIGHT = "RIGHT"
 838    TOP = "TOP"
 839    V_CENTERLINE = "V_CENTERLINE"
 840
 841
 842class State(StrEnum):
 843    """State is used for modifiers.
 844    Not implemented yet.
 845
 846    Valid values are: INITIAL, PAUSED, RESTARTING, RUNNING, STOPPED.
 847    """
 848
 849    INITIAL = "INITIAL"
 850    PAUSED = "PAUSED"
 851    RESTARTING = "RESTARTING"
 852    RUNNING = "RUNNING"
 853    STOPPED = "STOPPED"
 854
 855
 856class TexLoc(StrEnum):
 857    """TexLoc is used to set the location of the TeX related
 858    objects.
 859
 860    Valid values are: DOCUMENT, PICTURE, PREAMBLE, NONE.
 861    """
 862
 863    DOCUMENT = "DOCUMENT"  # BETWEEN \BEGIN{DOCUMENT} AND \BEGIN{TIKZPICTURE}
 864    PICTURE = "PICTURE"  # AFTER \BEGIN{PICTURE}
 865    PREAMBLE = "PREAMBLE"  # BEFORE \BEGIN{DOCUMENT}
 866    NONE = "NONE"  # Anywhere in the picture.
 867
 868
 869class Topology(StrEnum):
 870    """Topology is used for geometry classification.
 871
 872    Valid values are: CLOSED, COLLINEAR, CONGRUENT, FOLDED, INTERSECTING, OPEN, SELF_INTERSECTING, SIMPLE,
 873    YJOINT.
 874    """
 875
 876    CLOSED = "CLOSED"
 877    COLLINEAR = "COLLINEAR"
 878    CONGRUENT = "CONGRUENT"
 879    FOLDED = "FOLDED"
 880    INTERSECTING = "INTERSECTING"
 881    OPEN = "OPEN"
 882    SELF_INTERSECTING = "SELF_INTERSECTING"
 883    SIMPLE = "SIMPLE"
 884    YJOINT = "YJOINT"
 885
 886
 887class Transformation(StrEnum):
 888    """Transformation is used to set the type of a transformation.
 889
 890    Valid values are: GLIDE, MIRROR, ROTATE, SCALE, SHEAR, TRANSFORM, TRANSLATE.
 891    """
 892
 893    GLIDE = "GLIDE"
 894    MIRROR = "MIRROR"
 895    ROTATE = "ROTATE"
 896    SCALE = "SCALE"
 897    SHEAR = "SHEAR"
 898    TRANSFORM = "TRANSFORM"
 899    TRANSLATE = "TRANSLATE"
 900
 901
 902class Types(StrEnum):
 903    """All objects in simetri.graphics has type and subtype properties.
 904    Types are mostly Batch and Shape,  and subtypes are listed here.
 905    """
 906
 907    ANGULAR_DIMENSION = "ANGULAR DIMENSION"
 908    ANNOTATION = "ANNOTATION"
 909    ARC = "ARC"
 910    ARC_ARROW = "ARC_ARROW"
 911    ARC_SKETCH = "ARC_SKETCH"
 912    ARROW = "ARROW"
 913    ARROW_HEAD = "ARROW_HEAD"
 914    AXIS = "AXIS"
 915    BATCH = "BATCH"
 916    BATCH_SKETCH = "BATCH_SKETCH"
 917    BEZIER = "BEZIER"
 918    BEZIER_SKETCH = "BEZIER_SKETCH"
 919    BBOX_SKETCH = "BBOX_SKETCH"
 920    BOUNDING_BOX = "BOUNDING_BOX"
 921    BRACE = "BRACE"
 922    CANVAS = "CANVAS"
 923    CIRCLE = "CIRCLE"
 924    CIRCLE_SKETCH = "CIRCLE_SKETCH"
 925    CIRCULAR_GRID = "CIRCULAR_GRID"
 926    COLOR = "COLOR"
 927    CS = "CS"
 928    CURVE = "CURVE"
 929    CURVE_SKETCH = "CURVE_SKETCH"
 930    DIMENSION = "DIMENSION"
 931    DIRECTED = "DIRECTED_GRAPH"
 932    DIVISION = "DIVISION"
 933    DOT = "DOT"
 934    DOTS = "DOTS"
 935    EDGE = "EDGE"
 936    ELLIPSE = "ELLIPSE"
 937    ELLIPSE_SKETCH = "ELLIPSE_SKETCH"
 938    ELLIPTIC_ARC = "ELLIPTIC_ARC"
 939    FILL_STYLE = "FILL_STYLE"
 940    FONT = "FONT"
 941    FONT_SKETCH = "FONT_SKETCH"
 942    FONT_STYLE = "FONT_STYLE"
 943    FRAGMENT = "FRAGMENT"
 944    FRAGMENT_SKETCH = "FRAGMENT_SKETCH"
 945    FRAME = "FRAME"
 946    FRAME_SKETCH = "FRAME_SKETCH"
 947    FRAME_STYLE = "FRAME_STYLE"
 948    GRADIENT = "GRADIENT"
 949    GRID = "GRID"
 950    GRID_STYLE = "GRID_STYLE"
 951    HANDLE = "HANDLE"
 952    HEXAGONAL = "HEXAGONAL"
 953    HEX_GRID = "HEX_GRID"
 954    ICANVAS = "ICANVAS"
 955    INTERSECTION = "INTERSECTION"
 956    LABEL = "LABEL"
 957    LACE = "LACE"
 958    LACESKETCH = "LACE_SKETCH"
 959    LINE = "LINE"
 960    LINEAR = "LINEAR"
 961    LINE_SKETCH = "LINE_SKETCH"
 962    LINE_STYLE = "LINE_STYLE"
 963    LINPATH = "LINPATH"
 964    LOOM = "LOOM"
 965    MARKER = "MARKER"
 966    MARKER_STYLE = "MARKER_STYLE"
 967    MASK = "MASK"
 968    MIXED_GRID = "MIXED_GRID"
 969    NONE = "NONE"
 970    OBLIQUE = "OBLIQUE"
 971    OUTLINE = "OUTLINE"
 972    OVERLAP = "OVERLAP"
 973    PAGE = "PAGE"
 974    PAGE_GRID = "PAGE_GRID"
 975    PARALLEL_POLYLINE = "PARALLEL_POLYLINE"
 976    PART = "PART"
 977    PATH_OPERATION = "PATH_OPERATION"
 978    PATH_SKETCH = "PATH_SKETCH"
 979    PATTERN = "PATTERN"
 980    PATTERN_SKETCH = "PATTERN_SKETCH"
 981    PATTERN_STYLE = "PATTERN_STYLE"
 982    PETAL = "PETAL"
 983    PLAIT = "PLAIT"
 984    PLAIT_SKETCH = "PLAIT_SKETCH"
 985    POINT = "POINT"
 986    POINTS = "POINTS"
 987    POLYLINE = "POLYLINE"
 988    Q_BEZIER = "Q_BEZIER"
 989    RADIAL = "RADIAL"
 990    RECT_SKETCH = "RECT_SKETCH"
 991    RECTANGLE = "RECTANGLE"
 992    RECTANGULAR = "RECTANGULAR"
 993    REG_POLY = "REGPOLY"
 994    REG_POLY_SKETCH = "REGPOLY_SKETCH"
 995    REGULAR_POLYGON = "REGULAR_POLYGON"
 996    RHOMBIC = "RHOMBIC"
 997    SECTION = "SECTION"
 998    SEGMENT = "SEGMENT"
 999    SEGMENTS = "SEGMENTS"
1000    SHADE_STYLE = "SHADE_STYLE"
1001    SHAPE = "SHAPE"
1002    SHAPE_SKETCH = "SHAPE_SKETCH"
1003    SHAPE_STYLE = "SHAPE_STYLE"
1004    SINE_WAVE = "SINE_WAVE"
1005    SKETCH = "SKETCH"
1006    SKETCH_STYLE = "SKETCH_STYLE"
1007    SQUARE = "SQUARE"
1008    SQUARE_GRID = "SQUARE_GRID"
1009    STAR = "STAR"
1010    STYLE = "STYLE"
1011    SVG_PATH = "SVG_PATH"
1012    SVG_PATH_SKETCH = "SVG_PATH_SKETCH"
1013    TAG = "TAG"
1014    TAG_SKETCH = "TAG_SKETCH"
1015    TAG_STYLE = "TAG_STYLE"
1016    TEX = "TEX"  # USED FOR GENERATING OUTPUTFILE.TEX
1017    TEX_SKETCH = "TEX_SKETCH"
1018    TEXT = "TEXT"
1019    TEXTANCHOR = "TEXT_ANCHOR"
1020    TEXT_ANCHOR_LINE = "TEXT_ANCHORLINE"
1021    TEXT_ANCHOR_POINT = "TEXT_ANCHORPOINT"
1022    THREAD = "THREAD"
1023    TRANSFORM = "TRANSFORM"
1024    TRANSFORMATION = "TRANSFORMATION"
1025    TRIANGLE = "TRIANGLE"
1026    TURTLE = "TURTLE"
1027    UNDIRECTED = "UNDIRECTED_GRAPH"
1028    VERTEX = "VERTEX"
1029    WARP = "WARP"
1030    WEFT = "WEFT"
1031    WEIGHTED = "WEIGHTED_GRAPH"
1032
1033
1034drawable_types = [
1035    Types.ARC,
1036    Types.ARC_ARROW,
1037    Types.ARROW,
1038    Types.ARROW_HEAD,
1039    Types.BATCH,
1040    Types.BEZIER,
1041    Types.BOUNDING_BOX,
1042    Types.CIRCLE,
1043    Types.CIRCULAR_GRID,
1044    Types.DIMENSION,
1045    Types.DIVISION,
1046    Types.DOT,
1047    Types.DOTS,
1048    Types.EDGE,
1049    Types.ELLIPSE,
1050    Types.FRAGMENT,
1051    Types.HEX_GRID,
1052    Types.INTERSECTION,
1053    Types.LACE,
1054    Types.LINPATH,
1055    Types.MIXED_GRID,
1056    Types.OUTLINE,
1057    Types.OVERLAP,
1058    Types.PARALLEL_POLYLINE,
1059    Types.PATTERN,
1060    Types.PLAIT,
1061    Types.POLYLINE,
1062    Types.Q_BEZIER,
1063    Types.RECTANGLE,
1064    Types.SECTION,
1065    Types.SEGMENT,
1066    Types.SHAPE,
1067    Types.SINE_WAVE,
1068    Types.SQUARE_GRID,
1069    Types.STAR,
1070    Types.SVG_PATH,
1071    Types.TAG,
1072    Types.TURTLE,
1073]
1074
1075shape_types = [
1076    Types.ARC,
1077    Types.ARROW_HEAD,
1078    Types.BEZIER,
1079    Types.BRACE,
1080    Types.CIRCLE,
1081    Types.CURVE,
1082    Types.DIVISION,
1083    Types.ELLIPSE,
1084    Types.FRAME,
1085    Types.INTERSECTION,
1086    Types.LINE,
1087    Types.POLYLINE,
1088    Types.Q_BEZIER,
1089    Types.SECTION,
1090    Types.SHAPE,
1091    Types.SINE_WAVE,
1092]
1093
1094batch_types = [
1095    Types.ANGULAR_DIMENSION,
1096    Types.ANNOTATION,
1097    Types.ARC_ARROW,
1098    Types.ARROW,
1099    Types.BATCH,
1100    Types.CIRCULAR_GRID,
1101    Types.DIMENSION,
1102    Types.DOTS,
1103    Types.HEX_GRID,
1104    Types.LACE,
1105    Types.LINPATH,
1106    Types.MARKER,
1107    Types.MIXED_GRID,
1108    Types.OVERLAP,
1109    Types.PARALLEL_POLYLINE,
1110    Types.PATTERN,
1111    Types.SQUARE_GRID,
1112    Types.STAR,
1113    Types.SVG_PATH,
1114    Types.TURTLE,
1115]
1116
1117# Python Version 3.9 cannot handle Union[*drawable_types]
1118Drawable: TypeAlias = Union[
1119    Types.ARC,
1120    Types.ARC_ARROW,
1121    Types.ARROW,
1122    Types.ARROW_HEAD,
1123    Types.BATCH,
1124    Types.CIRCLE,
1125    Types.CIRCULAR_GRID,
1126    Types.DIMENSION,
1127    Types.DOT,
1128    Types.DOTS,
1129    Types.EDGE,
1130    Types.ELLIPSE,
1131    Types.FRAGMENT,
1132    Types.HEX_GRID,
1133    Types.INTERSECTION,
1134    Types.LACE,
1135    Types.LINPATH,
1136    Types.MIXED_GRID,
1137    Types.OUTLINE,
1138    Types.OVERLAP,
1139    Types.PARALLEL_POLYLINE,
1140    Types.PATTERN,
1141    Types.PLAIT,
1142    Types.POLYLINE,
1143    Types.RECTANGLE,
1144    Types.SECTION,
1145    Types.SEGMENT,
1146    Types.SHAPE,
1147    Types.SINE_WAVE,
1148    Types.SQUARE_GRID,
1149    Types.STAR,
1150    Types.SVG_PATH,
1151    Types.TAG,
1152    Types.TURTLE,
1153]
1154
1155
1156anchors = [
1157    "southeast",
1158    "southwest",
1159    "northeast",
1160    "northwest",
1161    "south",
1162    "north",
1163    "east",
1164    "west",
1165    "center",
1166    "midpoint",
1167    "left",
1168    "right",
1169    "top",
1170    "bottom",
1171    "diagonal1",
1172    "diagonal2",
1173    "horiz_centerline",
1174    "vert_centerline",
1175    "left_of",
1176    "right_of",
1177    "above",
1178    "below",
1179    "above_left",
1180    "above_right",
1181    "below_left",
1182    "below_right",
1183    "centered",
1184    "polar_pos",
1185    "s",
1186    "n",
1187    "e",
1188    "w",
1189    "sw",
1190    "se",
1191    "nw",
1192    "ne",
1193    "c",
1194    "d1",
1195    "d",
1196    "corners",
1197    "all_anchors",
1198    "width",
1199    "height",
1200]
def get_enum_value(enum_class: strenum.StrEnum, value: str) -> str:
 9def get_enum_value(enum_class: StrEnum, value: str) -> str:
10    """Get the value of an enumeration."""
11    if isinstance(value, enum_class):
12        res = value.value
13    else:
14        res = enum_class[value.upper()].value
15
16    return res

Get the value of an enumeration.

class Align(strenum.StrEnum):
19class Align(StrEnum):
20    """Align is used to set the alignment of the text in tags.
21    Used for Tag and Text objects. This is based on TikZ.
22
23    Valid values are: NONE, CENTER, FLUSH_CENTER, FLUSH_LEFT, FLUSH_RIGHT, JUSTIFY, LEFT, RIGHT.
24    """
25
26    NONE = ""
27    CENTER = "center"
28    FLUSH_CENTER = "flush center"
29    FLUSH_LEFT = "flush left"
30    FLUSH_RIGHT = "flush right"
31    JUSTIFY = "justify"
32    LEFT = "left"
33    RIGHT = "right"

Align is used to set the alignment of the text in tags. Used for Tag and Text objects. This is based on TikZ.

Valid values are: NONE, CENTER, FLUSH_CENTER, FLUSH_LEFT, FLUSH_RIGHT, JUSTIFY, LEFT, RIGHT.

NONE = <Align.NONE: ''>
CENTER = <Align.CENTER: 'center'>
FLUSH_CENTER = <Align.FLUSH_CENTER: 'flush center'>
FLUSH_LEFT = <Align.FLUSH_LEFT: 'flush left'>
FLUSH_RIGHT = <Align.FLUSH_RIGHT: 'flush right'>
JUSTIFY = <Align.JUSTIFY: 'justify'>
LEFT = <Align.LEFT: 'left'>
RIGHT = <Align.RIGHT: 'right'>
class Anchor(strenum.StrEnum):
38class Anchor(StrEnum):
39    """Anchor is used to set the anchor point of the shapes
40    relative to the boundary box of shapes/batches or
41    frames of tag objects.
42
43    Valid values are: BASE, BASE_EAST, BASE_WEST, BOTTOM, CENTER, EAST, LEFT, MID, MIDEAST, MIDWEST, NORTH,
44    NORTHEAST, NORTHWEST, RIGHT, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, TOP, WEST.
45    """
46
47    BASE = "base"  # FOR TAGS ONLY
48    BASE_EAST = "base east"  # FOR TAGS ONLY
49    BASE_WEST = "base west"  # FOR TAGS ONLY
50    BOTTOM = "bottom"
51    MIDPOINT = "midpoint"
52    EAST = "east"
53    LEFT = "left"
54    CENTER = "center"
55    MID = "mid"
56    MIDEAST = "mid east"
57    MIDWEST = "mid west"
58    NORTH = "north"
59    NORTHEAST = "north east"
60    NORTHWEST = "north west"
61    RIGHT = "right"
62    SOUTH = "south"
63    SOUTHEAST = "south east"
64    SOUTHWEST = "south west"
65    TEXT = "text"
66    TOP = "top"
67    WEST = "west"

Anchor is used to set the anchor point of the shapes relative to the boundary box of shapes/batches or frames of tag objects.

Valid values are: BASE, BASE_EAST, BASE_WEST, BOTTOM, CENTER, EAST, LEFT, MID, MIDEAST, MIDWEST, NORTH, NORTHEAST, NORTHWEST, RIGHT, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, TOP, WEST.

BASE = <Anchor.BASE: 'base'>
BASE_EAST = <Anchor.BASE_EAST: 'base east'>
BASE_WEST = <Anchor.BASE_WEST: 'base west'>
BOTTOM = <Anchor.BOTTOM: 'bottom'>
MIDPOINT = <Anchor.MIDPOINT: 'midpoint'>
EAST = <Anchor.EAST: 'east'>
LEFT = <Anchor.LEFT: 'left'>
CENTER = <Anchor.CENTER: 'center'>
MID = <Anchor.MID: 'mid'>
MIDEAST = <Anchor.MIDEAST: 'mid east'>
MIDWEST = <Anchor.MIDWEST: 'mid west'>
NORTH = <Anchor.NORTH: 'north'>
NORTHEAST = <Anchor.NORTHEAST: 'north east'>
NORTHWEST = <Anchor.NORTHWEST: 'north west'>
RIGHT = <Anchor.RIGHT: 'right'>
SOUTH = <Anchor.SOUTH: 'south'>
SOUTHEAST = <Anchor.SOUTHEAST: 'south east'>
SOUTHWEST = <Anchor.SOUTHWEST: 'south west'>
TEXT = <Anchor.TEXT: 'text'>
TOP = <Anchor.TOP: 'top'>
WEST = <Anchor.WEST: 'west'>
class ArrowLine(strenum.StrEnum):
70class ArrowLine(StrEnum):
71    """ArrowLine is used to set the type of arrow line.
72
73    Valid values are: FLATBASE_END, FLATBASE_MIDDLE, FLATBASE_START, FLATBOTH_END, FLATBOTH_MIDDLE,
74    FLATBOTH_START, FLATTOP_END, FLATTOP_MIDDLE, FLATTOP_START, STRAIGHT_END, STRAIGHT_MIDDLE, STRAIGHT_START.
75    """
76
77    FLATBASE_END = "flatbase end"  # FLAT BASE, ARROW AT THE END
78    FLATBASE_MIDDLE = "flatbase middle"  # FLAT BASE, ARROW AT THE MIDDLE
79    FLATBASE_START = "flatbase start"  # FLAT BASE, ARROW AT THE START
80    FLATBOTH_END = "flatboth end"
81    FLATBOTH_MIDDLE = "flatboth middle"
82    FLATBOTH_START = "flatboth start"
83    FLATTOP_END = "flattop end"  #  FLAT TOP, ARROW AT THE END
84    FLATTOP_MIDDLE = "flattop middle"
85    FLATTOP_START = "flattop start"
86    STRAIGHT_END = "straight end"  # DEFAULT, STRAIGHT LINE, ARROW AT THE END
87    STRAIGHT_MIDDLE = "straight middle"  # STRAIGHT LINE, ARROW AT THE MIDDLE
88    STRAIGHT_START = "straight start"  # STRAIGHT LINE, ARROW AT THE START

ArrowLine is used to set the type of arrow line.

Valid values are: FLATBASE_END, FLATBASE_MIDDLE, FLATBASE_START, FLATBOTH_END, FLATBOTH_MIDDLE, FLATBOTH_START, FLATTOP_END, FLATTOP_MIDDLE, FLATTOP_START, STRAIGHT_END, STRAIGHT_MIDDLE, STRAIGHT_START.

FLATBASE_END = <ArrowLine.FLATBASE_END: 'flatbase end'>
FLATBASE_MIDDLE = <ArrowLine.FLATBASE_MIDDLE: 'flatbase middle'>
FLATBASE_START = <ArrowLine.FLATBASE_START: 'flatbase start'>
FLATBOTH_END = <ArrowLine.FLATBOTH_END: 'flatboth end'>
FLATBOTH_MIDDLE = <ArrowLine.FLATBOTH_MIDDLE: 'flatboth middle'>
FLATBOTH_START = <ArrowLine.FLATBOTH_START: 'flatboth start'>
FLATTOP_END = <ArrowLine.FLATTOP_END: 'flattop end'>
FLATTOP_MIDDLE = <ArrowLine.FLATTOP_MIDDLE: 'flattop middle'>
FLATTOP_START = <ArrowLine.FLATTOP_START: 'flattop start'>
STRAIGHT_END = <ArrowLine.STRAIGHT_END: 'straight end'>
STRAIGHT_MIDDLE = <ArrowLine.STRAIGHT_MIDDLE: 'straight middle'>
STRAIGHT_START = <ArrowLine.STRAIGHT_START: 'straight start'>
class Axis(strenum.StrEnum):
91class Axis(StrEnum):
92    """Cartesian coordinate system axes.
93
94    Valid values are: X, Y.
95    """
96
97    X = "x"
98    Y = "y"

Cartesian coordinate system axes.

Valid values are: X, Y.

X = <Axis.X: 'x'>
Y = <Axis.Y: 'y'>
class BackStyle(strenum.StrEnum):
102class BackStyle(StrEnum):
103    """BackStyle is used to set the background style of a shape or tag.
104    If shape.fill is True, then background will be drawn according to
105    the shape.back_style value.
106
107    Valid values are: COLOR, COLOR_AND_GRID, EMPTY, GRIDLINES, PATTERN, SHADING, SHADING_AND_GRID.
108    """
109
110    COLOR = "COLOR"
111    COLOR_AND_GRID = "COLOR_AND_GRID"
112    EMPTY = "EMPTY"
113    GRIDLINES = "GRIDLINES"
114    PATTERN = "PATTERN"
115    SHADING = "SHADING"
116    SHADING_AND_GRID = "SHADING_AND_GRID"

BackStyle is used to set the background style of a shape or tag. If shape.fill is True, then background will be drawn according to the shape.back_style value.

Valid values are: COLOR, COLOR_AND_GRID, EMPTY, GRIDLINES, PATTERN, SHADING, SHADING_AND_GRID.

COLOR = <BackStyle.COLOR: 'COLOR'>
COLOR_AND_GRID = <BackStyle.COLOR_AND_GRID: 'COLOR_AND_GRID'>
EMPTY = <BackStyle.EMPTY: 'EMPTY'>
GRIDLINES = <BackStyle.GRIDLINES: 'GRIDLINES'>
PATTERN = <BackStyle.PATTERN: 'PATTERN'>
SHADING = <BackStyle.SHADING: 'SHADING'>
SHADING_AND_GRID = <BackStyle.SHADING_AND_GRID: 'SHADING_AND_GRID'>
class BlendMode(strenum.StrEnum):
119class BlendMode(StrEnum):
120    """BlendMode is used to set the blend mode of the colors.
121
122    Valid values are: COLOR, COLORBURN, COLORDODGE, DARKEN, DIFFERENCE, EXCLUSION, HARDLIGHT, HUE, LIGHTEN,
123    LUMINOSITY, MULTIPLY, NORMAL, OVERLAY, SATURATION, SCREEN, SOFTLIGHT.
124    """
125
126    COLOR = "color"
127    COLORBURN = "colorburn"
128    COLORDODGE = "colordodge"
129    DARKEN = "darken"
130    DIFFERENCE = "difference"
131    EXCLUSION = "exclusion"
132    HARDLIGHT = "hardlight"
133    HUE = "hue"
134    LIGHTEN = "lighten"
135    LUMINOSITY = "luminosity"
136    MULTIPLY = "multiply"
137    NORMAL = "normal"
138    OVERLAY = "overlay"
139    SATURATION = "saturation"
140    SCREEN = "screen"
141    SOFTLIGHT = "softlight"

BlendMode is used to set the blend mode of the colors.

Valid values are: COLOR, COLORBURN, COLORDODGE, DARKEN, DIFFERENCE, EXCLUSION, HARDLIGHT, HUE, LIGHTEN, LUMINOSITY, MULTIPLY, NORMAL, OVERLAY, SATURATION, SCREEN, SOFTLIGHT.

COLOR = <BlendMode.COLOR: 'color'>
COLORBURN = <BlendMode.COLORBURN: 'colorburn'>
COLORDODGE = <BlendMode.COLORDODGE: 'colordodge'>
DARKEN = <BlendMode.DARKEN: 'darken'>
DIFFERENCE = <BlendMode.DIFFERENCE: 'difference'>
EXCLUSION = <BlendMode.EXCLUSION: 'exclusion'>
HARDLIGHT = <BlendMode.HARDLIGHT: 'hardlight'>
HUE = <BlendMode.HUE: 'hue'>
LIGHTEN = <BlendMode.LIGHTEN: 'lighten'>
LUMINOSITY = <BlendMode.LUMINOSITY: 'luminosity'>
MULTIPLY = <BlendMode.MULTIPLY: 'multiply'>
NORMAL = <BlendMode.NORMAL: 'normal'>
OVERLAY = <BlendMode.OVERLAY: 'overlay'>
SATURATION = <BlendMode.SATURATION: 'saturation'>
SCREEN = <BlendMode.SCREEN: 'screen'>
SOFTLIGHT = <BlendMode.SOFTLIGHT: 'softlight'>
class ColorSpace(strenum.StrEnum):
144class ColorSpace(StrEnum):
145    """ColorSpace is used to set the color space of the colors.
146
147    Valid values are: CMYK, GRAY, HCL, HLS, HSV, LAB, RGB, YIQ.
148    """
149
150    CMYK = "CMYK"
151    GRAY = "GRAY"
152    HCL = "HCL"
153    HLS = "HLS"
154    HSV = "HSV"
155    LAB = "LAB"
156    RGB = "RGB"
157    YIQ = "YIQ"

ColorSpace is used to set the color space of the colors.

Valid values are: CMYK, GRAY, HCL, HLS, HSV, LAB, RGB, YIQ.

CMYK = <ColorSpace.CMYK: 'CMYK'>
GRAY = <ColorSpace.GRAY: 'GRAY'>
HCL = <ColorSpace.HCL: 'HCL'>
HLS = <ColorSpace.HLS: 'HLS'>
HSV = <ColorSpace.HSV: 'HSV'>
LAB = <ColorSpace.LAB: 'LAB'>
RGB = <ColorSpace.RGB: 'RGB'>
YIQ = <ColorSpace.YIQ: 'YIQ'>
class Connection(strenum.StrEnum):
160class Connection(StrEnum):
161    """Connection is used for identifying how two line segments are related
162    to each other. Intersection check uses some of these values.
163
164    Valid values are: CHAIN, COINCIDENT, COLL_CHAIN, CONGRUENT, CONTAINS, COVERS, DISJOINT, END_END, END_START,
165    FLIPPED, INTERSECT, NONE, OVERLAPS, PARALLEL, START_END, START_START, TOUCHES, WITHIN, YJOINT.
166    """
167
168    CHAIN = "CHAIN"
169    COINCIDENT = "COINCIDENT"
170    COLL_CHAIN = "COLL_CHAIN"
171    CONGRUENT = "CONGRUENT"
172    CONTAINS = "CONTAINS"
173    COVERS = "COVERS"
174    DISJOINT = "DISJOINT"
175    END_END = "END_END"
176    END_START = "END_START"
177    FLIPPED = "FLIPPED"
178    INTERSECT = "INTERSECT"
179    NONE = "NONE"
180    OVERLAPS = "OVERLAPS"
181    PARALLEL = "PARALLEL"
182    START_END = "START_END"
183    START_START = "START_START"
184    TOUCHES = "TOUCHES"
185    WITHIN = "WITHIN"
186    YJOINT = "YJOINT"

Connection is used for identifying how two line segments are related to each other. Intersection check uses some of these values.

Valid values are: CHAIN, COINCIDENT, COLL_CHAIN, CONGRUENT, CONTAINS, COVERS, DISJOINT, END_END, END_START, FLIPPED, INTERSECT, NONE, OVERLAPS, PARALLEL, START_END, START_START, TOUCHES, WITHIN, YJOINT.

CHAIN = <Connection.CHAIN: 'CHAIN'>
COINCIDENT = <Connection.COINCIDENT: 'COINCIDENT'>
COLL_CHAIN = <Connection.COLL_CHAIN: 'COLL_CHAIN'>
CONGRUENT = <Connection.CONGRUENT: 'CONGRUENT'>
CONTAINS = <Connection.CONTAINS: 'CONTAINS'>
COVERS = <Connection.COVERS: 'COVERS'>
DISJOINT = <Connection.DISJOINT: 'DISJOINT'>
END_END = <Connection.END_END: 'END_END'>
END_START = <Connection.END_START: 'END_START'>
FLIPPED = <Connection.FLIPPED: 'FLIPPED'>
INTERSECT = <Connection.INTERSECT: 'INTERSECT'>
NONE = <Connection.NONE: 'NONE'>
OVERLAPS = <Connection.OVERLAPS: 'OVERLAPS'>
PARALLEL = <Connection.PARALLEL: 'PARALLEL'>
START_END = <Connection.START_END: 'START_END'>
START_START = <Connection.START_START: 'START_START'>
TOUCHES = <Connection.TOUCHES: 'TOUCHES'>
WITHIN = <Connection.WITHIN: 'WITHIN'>
YJOINT = <Connection.YJOINT: 'YJOINT'>
class Connector(strenum.StrEnum):
189class Connector(StrEnum):
190    """Connector is used to set the way connecting lines are drawn.
191    This is not used yet.
192
193    Valid values are: ARC, ARROW_LINE, CURVE, LINE, DOUBLE_LINE, SQUIGLY, ZIGZAG, SQUIGLY_ARROW, ZIGZAG_ARROW,
194    DOUBLE_ARROW, DOUBLE_SQUIGLY.
195    """
196
197    ARC = "ARC"
198    ARROW_LINE = "ARROW_LINE"
199    CURVE = "CURVE"
200    LINE = "LINE"
201    DOUBLE_LINE = "DOUBLE_LINE"
202    SQUIGLY = "squigly"
203    ZIGZAG = "zigzag"
204    SQUIGLY_ARROW = "squigly_arrow"
205    ZIGZAG_ARROW = "zigzag_arrow"
206    DOUBLE_ARROW = "double_arrow"
207    DOUBLE_SQUIGLY = "double_squigly"

Connector is used to set the way connecting lines are drawn. This is not used yet.

Valid values are: ARC, ARROW_LINE, CURVE, LINE, DOUBLE_LINE, SQUIGLY, ZIGZAG, SQUIGLY_ARROW, ZIGZAG_ARROW, DOUBLE_ARROW, DOUBLE_SQUIGLY.

ARC = <Connector.ARC: 'ARC'>
ARROW_LINE = <Connector.ARROW_LINE: 'ARROW_LINE'>
CURVE = <Connector.CURVE: 'CURVE'>
LINE = <Connector.LINE: 'LINE'>
DOUBLE_LINE = <Connector.DOUBLE_LINE: 'DOUBLE_LINE'>
SQUIGLY = <Connector.SQUIGLY: 'squigly'>
ZIGZAG = <Connector.ZIGZAG: 'zigzag'>
SQUIGLY_ARROW = <Connector.SQUIGLY_ARROW: 'squigly_arrow'>
ZIGZAG_ARROW = <Connector.ZIGZAG_ARROW: 'zigzag_arrow'>
DOUBLE_ARROW = <Connector.DOUBLE_ARROW: 'double_arrow'>
DOUBLE_SQUIGLY = <Connector.DOUBLE_SQUIGLY: 'double_squigly'>
class ConstraintType(strenum.StrEnum):
210class ConstraintType(StrEnum):
211    """Constraint types are used with the 2D geometric constraint solver.
212
213    Valid values are: COLLINEAR, DISTANCE, LINE_ANGLE, PARALLEL, PERPENDICULAR, EQUAL_SIZE, EQUAL_VALUE,
214    INNER_TANGENT, OUTER_TANGENT.
215    """
216
217    COLLINEAR = "COLLINEAR"
218    DISTANCE = "DISTANCE"
219    LINE_ANGLE = "LINE_ANGLE"
220    PARALLEL = "PARALLEL"
221    PERPENDICULAR = "PERPENDICULAR"
222    EQUAL_SIZE = "EQUAL_SIZE"
223    EQUAL_VALUE = "EQUAL_VALUE"
224    INNER_TANGENT = "INNER_TANGENT"
225    OUTER_TANGENT = "OUTER_TANGENT"

Constraint types are used with the 2D geometric constraint solver.

Valid values are: COLLINEAR, DISTANCE, LINE_ANGLE, PARALLEL, PERPENDICULAR, EQUAL_SIZE, EQUAL_VALUE, INNER_TANGENT, OUTER_TANGENT.

COLLINEAR = <ConstraintType.COLLINEAR: 'COLLINEAR'>
DISTANCE = <ConstraintType.DISTANCE: 'DISTANCE'>
LINE_ANGLE = <ConstraintType.LINE_ANGLE: 'LINE_ANGLE'>
PARALLEL = <ConstraintType.PARALLEL: 'PARALLEL'>
PERPENDICULAR = <ConstraintType.PERPENDICULAR: 'PERPENDICULAR'>
EQUAL_SIZE = <ConstraintType.EQUAL_SIZE: 'EQUAL_SIZE'>
EQUAL_VALUE = <ConstraintType.EQUAL_VALUE: 'EQUAL_VALUE'>
INNER_TANGENT = <ConstraintType.INNER_TANGENT: 'INNER_TANGENT'>
OUTER_TANGENT = <ConstraintType.OUTER_TANGENT: 'OUTER_TANGENT'>
class Compiler(strenum.StrEnum):
228class Compiler(StrEnum):
229    """Used for the LaTeX compiler.
230    Currently, only XELATEX is used.
231
232    Valid values are: LATEX, PDFLATEX, XELATEX, LUALATEX.
233    """
234
235    LATEX = "LATEX"
236    PDFLATEX = "PDFLATEX"
237    XELATEX = "XELATEX"
238    LUALATEX = "LUALATEX"

Used for the LaTeX compiler. Currently, only XELATEX is used.

Valid values are: LATEX, PDFLATEX, XELATEX, LUALATEX.

LATEX = <Compiler.LATEX: 'LATEX'>
PDFLATEX = <Compiler.PDFLATEX: 'PDFLATEX'>
XELATEX = <Compiler.XELATEX: 'XELATEX'>
LUALATEX = <Compiler.LUALATEX: 'LUALATEX'>
class Control(strenum.StrEnum):
241class Control(StrEnum):
242    """Used with the modifiers.
243
244    Valid values are: INITIAL, PAUSE, RESTART, RESUME, STOP.
245    """
246
247    INITIAL = "INITIAL"
248    PAUSE = "PAUSE"
249    RESTART = "RESTART"
250    RESUME = "RESUME"
251    STOP = "STOP"

Used with the modifiers.

Valid values are: INITIAL, PAUSE, RESTART, RESUME, STOP.

INITIAL = <Control.INITIAL: 'INITIAL'>
PAUSE = <Control.PAUSE: 'PAUSE'>
RESTART = <Control.RESTART: 'RESTART'>
RESUME = <Control.RESUME: 'RESUME'>
STOP = <Control.STOP: 'STOP'>
class Conway(strenum.StrEnum):
254class Conway(StrEnum):
255    """Frieze groups in Conway notation.
256
257    Valid values are: HOP, JUMP, SIDLE, SPINNING_HOP, SPINNING_JUMP, SPINNING_SIDLE, STEP.
258    """
259
260    HOP = "HOP"
261    JUMP = "JUMP"
262    SIDLE = "SIDLE"
263    SPINNING_HOP = "SPINNING_HOP"
264    SPINNING_JUMP = "SPINNING_JUMP"
265    SPINNING_SIDLE = "SPINNING_SIDLE"
266    STEP = "STEP"

Frieze groups in Conway notation.

Valid values are: HOP, JUMP, SIDLE, SPINNING_HOP, SPINNING_JUMP, SPINNING_SIDLE, STEP.

HOP = <Conway.HOP: 'HOP'>
JUMP = <Conway.JUMP: 'JUMP'>
SIDLE = <Conway.SIDLE: 'SIDLE'>
SPINNING_HOP = <Conway.SPINNING_HOP: 'SPINNING_HOP'>
SPINNING_JUMP = <Conway.SPINNING_JUMP: 'SPINNING_JUMP'>
SPINNING_SIDLE = <Conway.SPINNING_SIDLE: 'SPINNING_SIDLE'>
STEP = <Conway.STEP: 'STEP'>
class CurveMode(strenum.StrEnum):
269class CurveMode(StrEnum):
270    """CurveMode is used to set how arc objects are drawn.
271
272    Valid values are: OPEN, CHORD, PIE.
273    """
274
275    OPEN = "OPEN"
276    CHORD = "CHORD"
277    PIE = "PIE"

CurveMode is used to set how arc objects are drawn.

Valid values are: OPEN, CHORD, PIE.

OPEN = <CurveMode.OPEN: 'OPEN'>
CHORD = <CurveMode.CHORD: 'CHORD'>
PIE = <CurveMode.PIE: 'PIE'>
class Dep(strenum.StrEnum):
280class Dep(StrEnum):
281    """Depend may be used in the future to set the dependency of the shapes
282    when they are copied. Dependent copies share the same underlying data.
283
284    Valid values are: FALSE, TRUE, GEOM, STYLE.
285    """
286
287    FALSE = "FALSE"  # Independent
288    TRUE = "TRUE"  # Both geometry and style are dependent
289    GEOM = "GEOM"  # Only geometry is dependent
290    STYLE = "STYLE"  # Only style is dependent

Depend may be used in the future to set the dependency of the shapes when they are copied. Dependent copies share the same underlying data.

Valid values are: FALSE, TRUE, GEOM, STYLE.

FALSE = <Dep.FALSE: 'FALSE'>
TRUE = <Dep.TRUE: 'TRUE'>
GEOM = <Dep.GEOM: 'GEOM'>
STYLE = <Dep.STYLE: 'STYLE'>
class DocumentClass(strenum.StrEnum):
293class DocumentClass(StrEnum):
294    """DocumentClass is used to set the class of the LaTeX document.
295
296    Valid values are: ARTICLE, BEAMER, BOOK, IEEETRAN, LETTER, REPORT, SCRARTCL, SLIDES, STANDALONE.
297    """
298
299    ARTICLE = "article"
300    BEAMER = "beamer"
301    BOOK = "book"
302    IEEETRAN = "ieeetran"
303    LETTER = "letter"
304    REPORT = "report"
305    SCRARTCL = "scrartcl"
306    SLIDES = "slides"
307    STANDALONE = "standalone"

DocumentClass is used to set the class of the LaTeX document.

Valid values are: ARTICLE, BEAMER, BOOK, IEEETRAN, LETTER, REPORT, SCRARTCL, SLIDES, STANDALONE.

ARTICLE = <DocumentClass.ARTICLE: 'article'>
BEAMER = <DocumentClass.BEAMER: 'beamer'>
BOOK = <DocumentClass.BOOK: 'book'>
IEEETRAN = <DocumentClass.IEEETRAN: 'ieeetran'>
LETTER = <DocumentClass.LETTER: 'letter'>
REPORT = <DocumentClass.REPORT: 'report'>
SCRARTCL = <DocumentClass.SCRARTCL: 'scrartcl'>
SLIDES = <DocumentClass.SLIDES: 'slides'>
STANDALONE = <DocumentClass.STANDALONE: 'standalone'>
class FillMode(strenum.StrEnum):
310class FillMode(StrEnum):
311    """FillMode is used to set the fill mode of the shape.
312
313    Valid values are: EVENODD, NONZERO.
314    """
315
316    EVENODD = "even odd"
317    NONZERO = "non zero"

FillMode is used to set the fill mode of the shape.

Valid values are: EVENODD, NONZERO.

EVENODD = <FillMode.EVENODD: 'even odd'>
NONZERO = <FillMode.NONZERO: 'non zero'>
class FontFamily(strenum.StrEnum):
320class FontFamily(StrEnum):
321    """FontFamily is used to set the family of the font.
322
323    Valid values are: MONOSPACE, SERIF, SANSSERIF.
324    """
325
326    MONOSPACE = "monospace"  # \ttfamily, \texttt
327    SERIF = "serif"  # serif \rmfamily, \textrm
328    SANSSERIF = "sansserif"  # \sffamily, \textsf

FontFamily is used to set the family of the font.

Valid values are: MONOSPACE, SERIF, SANSSERIF.

MONOSPACE = <FontFamily.MONOSPACE: 'monospace'>
SERIF = <FontFamily.SERIF: 'serif'>
SANSSERIF = <FontFamily.SANSSERIF: 'sansserif'>
class FontSize(strenum.StrEnum):
331class FontSize(StrEnum):
332    """FontSize is used to set the size of the font.
333
334    Valid values are: FOOTNOTESIZE, HUGE, HUGE2, LARGE, LARGE2, LARGE3, NORMAL, SCRIPTSIZE, SMALL, TINY.
335    """
336
337    FOOTNOTESIZE = "footnotesize"
338    HUGE = "huge"  # \huge
339    HUGE2 = "Huge"  # \Huge
340    LARGE = "large"  # \large
341    LARGE2 = "Large"  # \Large
342    LARGE3 = "LARGE"  # \LARGE
343    NORMAL = "normalsize"  # \normalsize
344    SCRIPTSIZE = "scriptsize"  # \scriptsize
345    SMALL = "small"  # \small
346    TINY = "tiny"  # \tiny

FontSize is used to set the size of the font.

Valid values are: FOOTNOTESIZE, HUGE, HUGE2, LARGE, LARGE2, LARGE3, NORMAL, SCRIPTSIZE, SMALL, TINY.

FOOTNOTESIZE = <FontSize.FOOTNOTESIZE: 'footnotesize'>
HUGE = <FontSize.HUGE: 'huge'>
HUGE2 = <FontSize.HUGE2: 'Huge'>
LARGE = <FontSize.LARGE: 'large'>
LARGE2 = <FontSize.LARGE2: 'Large'>
LARGE3 = <FontSize.LARGE3: 'LARGE'>
NORMAL = <FontSize.NORMAL: 'normalsize'>
SCRIPTSIZE = <FontSize.SCRIPTSIZE: 'scriptsize'>
SMALL = <FontSize.SMALL: 'small'>
TINY = <FontSize.TINY: 'tiny'>
class FontStretch(strenum.StrEnum):
349class FontStretch(StrEnum):
350    """FontStretch is used to set the stretch of the font.
351    These come from LaTeX.
352
353    Valid values are: CONDENSED, EXPANDED, EXTRA_CONDENSED, EXTRA_EXPANDED, NORMAL, SEMI_CONDENSED,
354    SEMI_EXPANDED, ULTRA_CONDENSED, ULTRA_EXPANDED.
355    """
356
357    CONDENSED = "condensed"
358    EXPANDED = "expanded"
359    EXTRA_CONDENSED = "extracondensed"
360    EXTRA_EXPANDED = "extraexpanded"
361    NORMAL = "normal"
362    SEMI_CONDENSED = "semicondensed"
363    SEMI_EXPANDED = "semiexpanded"
364    ULTRA_CONDENSED = "ultracondensed"
365    ULTRA_EXPANDED = "ultraexpanded"

FontStretch is used to set the stretch of the font. These come from LaTeX.

Valid values are: CONDENSED, EXPANDED, EXTRA_CONDENSED, EXTRA_EXPANDED, NORMAL, SEMI_CONDENSED, SEMI_EXPANDED, ULTRA_CONDENSED, ULTRA_EXPANDED.

CONDENSED = <FontStretch.CONDENSED: 'condensed'>
EXPANDED = <FontStretch.EXPANDED: 'expanded'>
EXTRA_CONDENSED = <FontStretch.EXTRA_CONDENSED: 'extracondensed'>
EXTRA_EXPANDED = <FontStretch.EXTRA_EXPANDED: 'extraexpanded'>
NORMAL = <FontStretch.NORMAL: 'normal'>
SEMI_CONDENSED = <FontStretch.SEMI_CONDENSED: 'semicondensed'>
SEMI_EXPANDED = <FontStretch.SEMI_EXPANDED: 'semiexpanded'>
ULTRA_CONDENSED = <FontStretch.ULTRA_CONDENSED: 'ultracondensed'>
ULTRA_EXPANDED = <FontStretch.ULTRA_EXPANDED: 'ultraexpanded'>
class FontStrike(strenum.StrEnum):
368class FontStrike(StrEnum):
369    """FontStrike is used to set the strike of the font.
370
371    Valid values are: OVERLINE, THROUGH, UNDERLINE.
372    """
373
374    OVERLINE = "overline"
375    THROUGH = "through"
376    UNDERLINE = "underline"

FontStrike is used to set the strike of the font.

Valid values are: OVERLINE, THROUGH, UNDERLINE.

OVERLINE = <FontStrike.OVERLINE: 'overline'>
THROUGH = <FontStrike.THROUGH: 'through'>
UNDERLINE = <FontStrike.UNDERLINE: 'underline'>
class FontWeight(strenum.StrEnum):
379class FontWeight(StrEnum):
380    """FontWeight is used to set the weight of the font.
381
382    Valid values are: BOLD, MEDIUM, NORMAL.
383    """
384
385    BOLD = "bold"
386    MEDIUM = "medium"
387    NORMAL = "normal"

FontWeight is used to set the weight of the font.

Valid values are: BOLD, MEDIUM, NORMAL.

BOLD = <FontWeight.BOLD: 'bold'>
MEDIUM = <FontWeight.MEDIUM: 'medium'>
NORMAL = <FontWeight.NORMAL: 'normal'>
class FrameShape(strenum.StrEnum):
390class FrameShape(StrEnum):
391    """FrameShape is used to set the shape of the frame.
392    Frames are used for the tags.
393
394    Valid values are: CIRCLE, DIAMOND, ELLIPSE, FORBIDDEN, PARALLELOGRAM, POLYGON, RECTANGLE, RHOMBUS,
395    SPLITCIRCLE, SQUARE, STAR, TRAPEZOID.
396    """
397
398    CIRCLE = "circle"
399    DIAMOND = "diamond"
400    ELLIPSE = "ellipse"
401    FORBIDDEN = "forbidden"
402    PARALLELOGRAM = "parallelogram"
403    POLYGON = "polygon"
404    RECTANGLE = "rectangle"
405    RHOMBUS = "rhombus"
406    SPLITCIRCLE = "split circle"
407    SQUARE = "square"
408    STAR = "star"
409    TRAPEZOID = "trapezoid"

FrameShape is used to set the shape of the frame. Frames are used for the tags.

Valid values are: CIRCLE, DIAMOND, ELLIPSE, FORBIDDEN, PARALLELOGRAM, POLYGON, RECTANGLE, RHOMBUS, SPLITCIRCLE, SQUARE, STAR, TRAPEZOID.

CIRCLE = <FrameShape.CIRCLE: 'circle'>
DIAMOND = <FrameShape.DIAMOND: 'diamond'>
ELLIPSE = <FrameShape.ELLIPSE: 'ellipse'>
FORBIDDEN = <FrameShape.FORBIDDEN: 'forbidden'>
PARALLELOGRAM = <FrameShape.PARALLELOGRAM: 'parallelogram'>
POLYGON = <FrameShape.POLYGON: 'polygon'>
RECTANGLE = <FrameShape.RECTANGLE: 'rectangle'>
RHOMBUS = <FrameShape.RHOMBUS: 'rhombus'>
SPLITCIRCLE = <FrameShape.SPLITCIRCLE: 'split circle'>
SQUARE = <FrameShape.SQUARE: 'square'>
STAR = <FrameShape.STAR: 'star'>
TRAPEZOID = <FrameShape.TRAPEZOID: 'trapezoid'>
class Graph(strenum.StrEnum):
412class Graph(StrEnum):
413    """Graph is used to set the type of graph.
414
415    Valid values are: DIRECTED, DIRECTEDWEIGHTED, UNDIRECTED, UNDIRECTEDWEIGHTED.
416    """
417
418    DIRECTED = "DIRECTED"
419    DIRECTEDWEIGHTED = "DIRECTEDWEIGHTED"
420    UNDIRECTED = "UNDIRECTED"
421    UNDIRECTEDWEIGHTED = "UNDIRECTEDWEIGHTED"

Graph is used to set the type of graph.

Valid values are: DIRECTED, DIRECTEDWEIGHTED, UNDIRECTED, UNDIRECTEDWEIGHTED.

DIRECTED = <Graph.DIRECTED: 'DIRECTED'>
DIRECTEDWEIGHTED = <Graph.DIRECTEDWEIGHTED: 'DIRECTEDWEIGHTED'>
UNDIRECTED = <Graph.UNDIRECTED: 'UNDIRECTED'>
UNDIRECTEDWEIGHTED = <Graph.UNDIRECTEDWEIGHTED: 'UNDIRECTEDWEIGHTED'>
class GridType(strenum.StrEnum):
424class GridType(StrEnum):
425    """GridType is used to set the type of grid.
426    Grids are used for creating star patterns.
427
428    Valid values are: CIRCULAR, SQUARE, HEXAGONAL, MIXED.
429    """
430
431    CIRCULAR = "CIRCULAR"
432    SQUARE = "SQUARE"
433    HEXAGONAL = "HEXAGONAL"
434    MIXED = "MIXED"  # CIRCULAR + SQUARE

GridType is used to set the type of grid. Grids are used for creating star patterns.

Valid values are: CIRCULAR, SQUARE, HEXAGONAL, MIXED.

CIRCULAR = <GridType.CIRCULAR: 'CIRCULAR'>
SQUARE = <GridType.SQUARE: 'SQUARE'>
HEXAGONAL = <GridType.HEXAGONAL: 'HEXAGONAL'>
MIXED = <GridType.MIXED: 'MIXED'>
class HeadPos(strenum.StrEnum):
438class HeadPos(StrEnum):
439    """Arrow head positions.
440
441    Valid values are: BOTH, END, MIDDLE, START, NONE.
442    """
443
444    BOTH = "BOTH"
445    END = "END"
446    MIDDLE = "MIDDLE"
447    START = "START"
448    NONE = "NONE"

Arrow head positions.

Valid values are: BOTH, END, MIDDLE, START, NONE.

BOTH = <HeadPos.BOTH: 'BOTH'>
END = <HeadPos.END: 'END'>
MIDDLE = <HeadPos.MIDDLE: 'MIDDLE'>
START = <HeadPos.START: 'START'>
NONE = <HeadPos.NONE: 'NONE'>
class IUC(strenum.StrEnum):
451class IUC(StrEnum):
452    """IUC notation for frieze groups.
453
454    Valid values are: P1, P11G, P11M, P1M1, P2, P2MG, P2MM.
455    """
456
457    P1 = "P1"
458    P11G = "P11G"
459    P11M = "P11M"
460    P1M1 = "P1M1"
461    P2 = "P2"
462    P2MG = "P2MG"
463    P2MM = "P2MM"

IUC notation for frieze groups.

Valid values are: P1, P11G, P11M, P1M1, P2, P2MG, P2MM.

P1 = <IUC.P1: 'P1'>
P11G = <IUC.P11G: 'P11G'>
P11M = <IUC.P11M: 'P11M'>
P1M1 = <IUC.P1M1: 'P1M1'>
P2 = <IUC.P2: 'P2'>
P2MG = <IUC.P2MG: 'P2MG'>
P2MM = <IUC.P2MM: 'P2MM'>
class LineCap(strenum.StrEnum):
466class LineCap(StrEnum):
467    """LineCap is used to set the type of line cap.
468
469    Valid values are: BUTT, ROUND, SQUARE.
470    """
471
472    BUTT = "butt"
473    ROUND = "round"
474    SQUARE = "square"

LineCap is used to set the type of line cap.

Valid values are: BUTT, ROUND, SQUARE.

BUTT = <LineCap.BUTT: 'butt'>
ROUND = <LineCap.ROUND: 'round'>
SQUARE = <LineCap.SQUARE: 'square'>
class LineDashArray(strenum.StrEnum):
477class LineDashArray(StrEnum):
478    """LineDashArray is used to set the type of dashed-line.
479
480    Valid values are: DASHDOT, DASHDOTDOT, DASHED, DENSELY_DASHED, DENSELY_DOTTED, DOTTED, LOOSELY_DASHED,
481    LOOSELY_DOTTED, SOLID.
482    """
483
484    DASHDOT = "dash dot"
485    DASHDOTDOT = "dash dot dot"
486    DASHED = "dashed"
487    DENSELY_DASHED = "densely dashed"
488    DENSELY_DOTTED = "densely dotted"
489    DOTTED = "dotted"
490    LOOSELY_DASHED = "loosely dashed"
491    LOOSELY_DOTTED = "loosely dotted"
492    SOLID = "solid"

LineDashArray is used to set the type of dashed-line.

Valid values are: DASHDOT, DASHDOTDOT, DASHED, DENSELY_DASHED, DENSELY_DOTTED, DOTTED, LOOSELY_DASHED, LOOSELY_DOTTED, SOLID.

DASHDOT = <LineDashArray.DASHDOT: 'dash dot'>
DASHDOTDOT = <LineDashArray.DASHDOTDOT: 'dash dot dot'>
DASHED = <LineDashArray.DASHED: 'dashed'>
DENSELY_DASHED = <LineDashArray.DENSELY_DASHED: 'densely dashed'>
DENSELY_DOTTED = <LineDashArray.DENSELY_DOTTED: 'densely dotted'>
DOTTED = <LineDashArray.DOTTED: 'dotted'>
LOOSELY_DASHED = <LineDashArray.LOOSELY_DASHED: 'loosely dashed'>
LOOSELY_DOTTED = <LineDashArray.LOOSELY_DOTTED: 'loosely dotted'>
SOLID = <LineDashArray.SOLID: 'solid'>
class LineJoin(strenum.StrEnum):
495class LineJoin(StrEnum):
496    """LineJoin is used to set the type of line join.
497
498    Valid values are: BEVEL, MITER, ROUND.
499    """
500
501    BEVEL = "bevel"
502    MITER = "miter"
503    ROUND = "round"

LineJoin is used to set the type of line join.

Valid values are: BEVEL, MITER, ROUND.

BEVEL = <LineJoin.BEVEL: 'bevel'>
MITER = <LineJoin.MITER: 'miter'>
ROUND = <LineJoin.ROUND: 'round'>
class LineWidth(strenum.StrEnum):
506class LineWidth(StrEnum):
507    """LineWidth is used to set the width of the line.
508
509    Valid values are: SEMITHICK, THICK, THIN, ULTRA_THICK, ULTRA_THIN, VERY_THICK, VERY_THIN.
510    """
511
512    SEMITHICK = "semithick"
513    THICK = "thick"
514    THIN = "thin"
515    ULTRA_THICK = "ultra thick"
516    ULTRA_THIN = "ultra thin"
517    VERY_THICK = "very thick"
518    VERY_THIN = "very thin"

LineWidth is used to set the width of the line.

Valid values are: SEMITHICK, THICK, THIN, ULTRA_THICK, ULTRA_THIN, VERY_THICK, VERY_THIN.

SEMITHICK = <LineWidth.SEMITHICK: 'semithick'>
THICK = <LineWidth.THICK: 'thick'>
THIN = <LineWidth.THIN: 'thin'>
ULTRA_THICK = <LineWidth.ULTRA_THICK: 'ultra thick'>
ULTRA_THIN = <LineWidth.ULTRA_THIN: 'ultra thin'>
VERY_THICK = <LineWidth.VERY_THICK: 'very thick'>
VERY_THIN = <LineWidth.VERY_THIN: 'very thin'>
class MarkerPos(strenum.StrEnum):
521class MarkerPos(StrEnum):
522    """MarkerPos is used to set the position of the marker.
523
524    Valid values are: CONCAVEHULL, CONVEXHULL, MAINX, OFFSETX.
525    """
526
527    CONCAVEHULL = "CONCAVEHULL"
528    CONVEXHULL = "CONVEXHULL"
529    MAINX = "MAINX"
530    OFFSETX = "OFFSETX"

MarkerPos is used to set the position of the marker.

Valid values are: CONCAVEHULL, CONVEXHULL, MAINX, OFFSETX.

CONCAVEHULL = <MarkerPos.CONCAVEHULL: 'CONCAVEHULL'>
CONVEXHULL = <MarkerPos.CONVEXHULL: 'CONVEXHULL'>
MAINX = <MarkerPos.MAINX: 'MAINX'>
OFFSETX = <MarkerPos.OFFSETX: 'OFFSETX'>
class MarkerType(strenum.StrEnum):
533class MarkerType(StrEnum):
534    """MarkerType is used to set the type of marker.
535
536    Valid values are: ASTERISK, BAR, CIRCLE, CROSS, DIAMOND, DIAMOND_F, EMPTY, FCIRCLE, HALF_CIRCLE,
537    HALF_CIRCLE_F, HALF_DIAMOND, HALF_DIAMOND_F, HALF_SQUARE, HALF_SQUARE_F, HEXAGON, HEXAGON_F, INDICES,
538    MINUS, OPLUS, OPLUS_F, O_TIMES, O_TIMES_F, PENTAGON, PENTAGON_F, PLUS, SQUARE, SQUARE_F, STAR, STAR2,
539    STAR3, TEXT, TRIANGLE, TRIANGLE_F.
540    """
541
542    ASTERISK = "asterisk"
543    BAR = "|"
544    CIRCLE = "o"
545    CROSS = "x"
546    DIAMOND = "diamond"
547    DIAMOND_F = "diamond*"
548    EMPTY = ""
549    FCIRCLE = "*"
550    HALF_CIRCLE = "halfcircle"
551    HALF_CIRCLE_F = "halfcircle*"
552    HALF_DIAMOND = "halfdiamond"
553    HALF_DIAMOND_F = "halfdiamond*"
554    HALF_SQUARE = "halfsquare"
555    HALF_SQUARE_F = "halfsquare*"
556    HEXAGON = "hexagon"
557    HEXAGON_F = "hexagon*"
558    INDICES = "indices"
559    MINUS = "-"
560    OPLUS = "oplus"
561    OPLUS_F = "oplus*"
562    O_TIMES = "otimes"
563    O_TIMES_F = "otimes*"
564    PENTAGON = "pentagon"
565    PENTAGON_F = "pentagon*"
566    PLUS = "+"
567    SQUARE = "square"
568    SQUARE_F = "square*"
569    STAR = "star"
570    STAR2 = "star2"
571    STAR3 = "star3"
572    TEXT = "text"
573    TRIANGLE = "triangle"
574    TRIANGLE_F = "triangle*"

MarkerType is used to set the type of marker.

Valid values are: ASTERISK, BAR, CIRCLE, CROSS, DIAMOND, DIAMOND_F, EMPTY, FCIRCLE, HALF_CIRCLE, HALF_CIRCLE_F, HALF_DIAMOND, HALF_DIAMOND_F, HALF_SQUARE, HALF_SQUARE_F, HEXAGON, HEXAGON_F, INDICES, MINUS, OPLUS, OPLUS_F, O_TIMES, O_TIMES_F, PENTAGON, PENTAGON_F, PLUS, SQUARE, SQUARE_F, STAR, STAR2, STAR3, TEXT, TRIANGLE, TRIANGLE_F.

ASTERISK = <MarkerType.ASTERISK: 'asterisk'>
BAR = <MarkerType.BAR: '|'>
CIRCLE = <MarkerType.CIRCLE: 'o'>
CROSS = <MarkerType.CROSS: 'x'>
DIAMOND = <MarkerType.DIAMOND: 'diamond'>
DIAMOND_F = <MarkerType.DIAMOND_F: 'diamond*'>
EMPTY = <MarkerType.EMPTY: ''>
FCIRCLE = <MarkerType.FCIRCLE: '*'>
HALF_CIRCLE = <MarkerType.HALF_CIRCLE: 'halfcircle'>
HALF_CIRCLE_F = <MarkerType.HALF_CIRCLE_F: 'halfcircle*'>
HALF_DIAMOND = <MarkerType.HALF_DIAMOND: 'halfdiamond'>
HALF_DIAMOND_F = <MarkerType.HALF_DIAMOND_F: 'halfdiamond*'>
HALF_SQUARE = <MarkerType.HALF_SQUARE: 'halfsquare'>
HALF_SQUARE_F = <MarkerType.HALF_SQUARE_F: 'halfsquare*'>
HEXAGON = <MarkerType.HEXAGON: 'hexagon'>
HEXAGON_F = <MarkerType.HEXAGON_F: 'hexagon*'>
INDICES = <MarkerType.INDICES: 'indices'>
MINUS = <MarkerType.MINUS: '-'>
OPLUS = <MarkerType.OPLUS: 'oplus'>
OPLUS_F = <MarkerType.OPLUS_F: 'oplus*'>
O_TIMES = <MarkerType.O_TIMES: 'otimes'>
O_TIMES_F = <MarkerType.O_TIMES_F: 'otimes*'>
PENTAGON = <MarkerType.PENTAGON: 'pentagon'>
PENTAGON_F = <MarkerType.PENTAGON_F: 'pentagon*'>
PLUS = <MarkerType.PLUS: '+'>
SQUARE = <MarkerType.SQUARE: 'square'>
SQUARE_F = <MarkerType.SQUARE_F: 'square*'>
STAR = <MarkerType.STAR: 'star'>
STAR2 = <MarkerType.STAR2: 'star2'>
STAR3 = <MarkerType.STAR3: 'star3'>
TEXT = <MarkerType.TEXT: 'text'>
TRIANGLE = <MarkerType.TRIANGLE: 'triangle'>
TRIANGLE_F = <MarkerType.TRIANGLE_F: 'triangle*'>
class MusicScale(strenum.StrEnum):
577class MusicScale(StrEnum):
578    """MusicScale is used for musical note scales.
579    This is used for audio generation for animations.
580    Not implemented yet!!!
581
582    Valid values are: MAJOR, MINOR, CHROMATIC, PENTATONIC, IONIC, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN,
583    AEOLIAN, LOCRIAN.
584    """
585
586    MAJOR = "major"
587    MINOR = "minor"
588    CHROMATIC = "chromatic"
589    PENTATONIC = "pentatonic"
590    IONIC = "ionic"
591    DORIAN = "dorian"
592    PHRYGIAN = "phrygian"
593    LYDIAN = "lydian"
594    MIXOLYDIAN = "mixolydian"
595    AEOLIAN = "aeolian"
596    LOCRIAN = "locrian"

MusicScale is used for musical note scales. This is used for audio generation for animations. Not implemented yet!!!

Valid values are: MAJOR, MINOR, CHROMATIC, PENTATONIC, IONIC, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN, LOCRIAN.

MAJOR = <MusicScale.MAJOR: 'major'>
MINOR = <MusicScale.MINOR: 'minor'>
CHROMATIC = <MusicScale.CHROMATIC: 'chromatic'>
PENTATONIC = <MusicScale.PENTATONIC: 'pentatonic'>
IONIC = <MusicScale.IONIC: 'ionic'>
DORIAN = <MusicScale.DORIAN: 'dorian'>
PHRYGIAN = <MusicScale.PHRYGIAN: 'phrygian'>
LYDIAN = <MusicScale.LYDIAN: 'lydian'>
MIXOLYDIAN = <MusicScale.MIXOLYDIAN: 'mixolydian'>
AEOLIAN = <MusicScale.AEOLIAN: 'aeolian'>
LOCRIAN = <MusicScale.LOCRIAN: 'locrian'>
class Orientation(strenum.StrEnum):
599class Orientation(StrEnum):
600    """Orientation is used to set the orientation of the dimension
601    lines.
602
603    Valid values are: ANGLED, HORIZONTAL, VERTICAL.
604    """
605
606    ANGLED = "ANGLED"
607    HORIZONTAL = "HORIZONTAL"
608    VERTICAL = "VERTICAL"

Orientation is used to set the orientation of the dimension lines.

Valid values are: ANGLED, HORIZONTAL, VERTICAL.

ANGLED = <Orientation.ANGLED: 'ANGLED'>
HORIZONTAL = <Orientation.HORIZONTAL: 'HORIZONTAL'>
VERTICAL = <Orientation.VERTICAL: 'VERTICAL'>
class PageMargins(strenum.StrEnum):
611class PageMargins(StrEnum):
612    """Page margins for the LaTeX documents.
613    Used in Page class.
614
615    Valid values are: CUSTOM, NARROW, STANDARD, WIDE.
616    """
617
618    CUSTOM = "custom"
619    NARROW = "narrow"
620    STANDARD = "standard"
621    WIDE = "wide"

Page margins for the LaTeX documents. Used in Page class.

Valid values are: CUSTOM, NARROW, STANDARD, WIDE.

CUSTOM = <PageMargins.CUSTOM: 'custom'>
NARROW = <PageMargins.NARROW: 'narrow'>
STANDARD = <PageMargins.STANDARD: 'standard'>
WIDE = <PageMargins.WIDE: 'wide'>
class PageNumbering(strenum.StrEnum):
624class PageNumbering(StrEnum):
625    """Page numbering style for the LaTeX documents.
626    Used in Page class.
627
628    Valid values are: ALPH, ALPHUPPER, ARABIC, NONE, ROMAN, ROMAN_UPPER.
629    """
630
631    ALPH = "alph"
632    ALPHUPPER = "ALPH"
633    ARABIC = "arabic"
634    NONE = "none"
635    ROMAN = "roman"
636    ROMAN_UPPER = "ROMAN"

Page numbering style for the LaTeX documents. Used in Page class.

Valid values are: ALPH, ALPHUPPER, ARABIC, NONE, ROMAN, ROMAN_UPPER.

ALPH = <PageNumbering.ALPH: 'alph'>
ALPHUPPER = <PageNumbering.ALPHUPPER: 'ALPH'>
ARABIC = <PageNumbering.ARABIC: 'arabic'>
NONE = <PageNumbering.NONE: 'none'>
ROMAN = <PageNumbering.ROMAN: 'roman'>
ROMAN_UPPER = <PageNumbering.ROMAN_UPPER: 'ROMAN'>
class PageNumberPosition(strenum.StrEnum):
639class PageNumberPosition(StrEnum):
640    """Page number positions for the LaTeX documents.
641    Used in Page class.
642
643    Valid values are: BOTTOM_CENTER, BOTTOM_LEFT, BOTTOM_RIGHT, CUSTOM, TOP_CENTER, TOP_LEFT, TOP_RIGHT.
644    """
645
646    BOTTOM_CENTER = "bottom"
647    BOTTOM_LEFT = "bottom left"
648    BOTTOM_RIGHT = "bottom right"
649    CUSTOM = "custom"
650    TOP_CENTER = "top"
651    TOP_LEFT = "top left"
652    TOP_RIGHT = "top right"

Page number positions for the LaTeX documents. Used in Page class.

Valid values are: BOTTOM_CENTER, BOTTOM_LEFT, BOTTOM_RIGHT, CUSTOM, TOP_CENTER, TOP_LEFT, TOP_RIGHT.

BOTTOM_CENTER = <PageNumberPosition.BOTTOM_CENTER: 'bottom'>
BOTTOM_LEFT = <PageNumberPosition.BOTTOM_LEFT: 'bottom left'>
BOTTOM_RIGHT = <PageNumberPosition.BOTTOM_RIGHT: 'bottom right'>
CUSTOM = <PageNumberPosition.CUSTOM: 'custom'>
TOP_CENTER = <PageNumberPosition.TOP_CENTER: 'top'>
TOP_LEFT = <PageNumberPosition.TOP_LEFT: 'top left'>
TOP_RIGHT = <PageNumberPosition.TOP_RIGHT: 'top right'>
class PageOrientation(strenum.StrEnum):
655class PageOrientation(StrEnum):
656    """Page orientations for the LaTeX documents.
657    Used in Page class.
658
659    Valid values are: LANDSCAPE, PORTRAIT.
660    """
661
662    LANDSCAPE = "landscape"
663    PORTRAIT = "portrait"

Page orientations for the LaTeX documents. Used in Page class.

Valid values are: LANDSCAPE, PORTRAIT.

LANDSCAPE = <PageOrientation.LANDSCAPE: 'landscape'>
PORTRAIT = <PageOrientation.PORTRAIT: 'portrait'>
class PageSize(strenum.StrEnum):
666class PageSize(StrEnum):
667    """Page sizes for the LaTeX documents.
668    Used in Page class.
669
670    Valid values are: LETTER, LEGAL, EXECUTIVE, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13,
671    A0, A1, A2, A3, A4, A5, A6.
672    """
673
674    LETTER = "letterpaper"
675    LEGAL = "legalpaper"
676    EXECUTIVE = "executivepaper"
677    B0 = "b0paper"
678    B1 = "b1paper"
679    B2 = "b2paper"
680    B3 = "b3paper"
681    B4 = "b4paper"
682    B5 = "b5paper"
683    B6 = "b6paper"
684    B7 = "b7paper"
685    B8 = "b8paper"
686    B9 = "b9paper"
687    B10 = "b10paper"
688    B11 = "b11paper"
689    B12 = "b12paper"
690    B13 = "b13paper"
691    A0 = "a0paper"
692    A1 = "a1paper"
693    A2 = "a2paper"
694    A3 = "a3paper"
695    A4 = "a4paper"
696    A5 = "a5paper"
697    A6 = "a6paper"

Page sizes for the LaTeX documents. Used in Page class.

Valid values are: LETTER, LEGAL, EXECUTIVE, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, A0, A1, A2, A3, A4, A5, A6.

LETTER = <PageSize.LETTER: 'letterpaper'>
LEGAL = <PageSize.LEGAL: 'legalpaper'>
EXECUTIVE = <PageSize.EXECUTIVE: 'executivepaper'>
B0 = <PageSize.B0: 'b0paper'>
B1 = <PageSize.B1: 'b1paper'>
B2 = <PageSize.B2: 'b2paper'>
B3 = <PageSize.B3: 'b3paper'>
B4 = <PageSize.B4: 'b4paper'>
B5 = <PageSize.B5: 'b5paper'>
B6 = <PageSize.B6: 'b6paper'>
B7 = <PageSize.B7: 'b7paper'>
B8 = <PageSize.B8: 'b8paper'>
B9 = <PageSize.B9: 'b9paper'>
B10 = <PageSize.B10: 'b10paper'>
B11 = <PageSize.B11: 'b11paper'>
B12 = <PageSize.B12: 'b12paper'>
B13 = <PageSize.B13: 'b13paper'>
A0 = <PageSize.A0: 'a0paper'>
A1 = <PageSize.A1: 'a1paper'>
A2 = <PageSize.A2: 'a2paper'>
A3 = <PageSize.A3: 'a3paper'>
A4 = <PageSize.A4: 'a4paper'>
A5 = <PageSize.A5: 'a5paper'>
A6 = <PageSize.A6: 'a6paper'>
class PathOperation(strenum.StrEnum):
700class PathOperation(StrEnum):
701    """PathOperation is used to set the type of path operation.
702    Used with LinPath objects.
703
704    Valid values are: ARC, ARC_TO, BLEND_ARC, BLEND_CUBIC, BLEND_QUAD, BLEND_SINE, CLOSE, CUBIC_TO, FORWARD,
705    HOBBY_TO, H_LINE, LINE_TO, MOVE_TO, QUAD_TO, R_LINE, R_MOVE, SEGMENTS, SINE, V_LINE.
706    """
707
708    ARC = "ARC"
709    ARC_TO = "ARC_TO"
710    BLEND_ARC = "BLEND_ARC"
711    BLEND_CUBIC = "BLEND_CUBIC"
712    BLEND_QUAD = "BLEND_QUAD"
713    BLEND_SINE = "BLEND_SINE"
714    CLOSE = "CLOSE"
715    CUBIC_TO = "CUBIC_TO"
716    FORWARD = "FORWARD"
717    HOBBY_TO = "HOBBY_TO"
718    H_LINE = "H_LINE"
719    LINE_TO = "LINE_TO"
720    MOVE_TO = "MOVE_TO"
721    QUAD_TO = "QUAD_TO"
722    R_LINE = "RLINE"
723    R_MOVE = "RMOVE"
724    SEGMENTS = "SEGMENTS"
725    SINE = "SINE"
726    V_LINE = "V_LINE"

PathOperation is used to set the type of path operation. Used with LinPath objects.

Valid values are: ARC, ARC_TO, BLEND_ARC, BLEND_CUBIC, BLEND_QUAD, BLEND_SINE, CLOSE, CUBIC_TO, FORWARD, HOBBY_TO, H_LINE, LINE_TO, MOVE_TO, QUAD_TO, R_LINE, R_MOVE, SEGMENTS, SINE, V_LINE.

ARC = <PathOperation.ARC: 'ARC'>
ARC_TO = <PathOperation.ARC_TO: 'ARC_TO'>
BLEND_ARC = <PathOperation.BLEND_ARC: 'BLEND_ARC'>
BLEND_CUBIC = <PathOperation.BLEND_CUBIC: 'BLEND_CUBIC'>
BLEND_QUAD = <PathOperation.BLEND_QUAD: 'BLEND_QUAD'>
BLEND_SINE = <PathOperation.BLEND_SINE: 'BLEND_SINE'>
CLOSE = <PathOperation.CLOSE: 'CLOSE'>
CUBIC_TO = <PathOperation.CUBIC_TO: 'CUBIC_TO'>
FORWARD = <PathOperation.FORWARD: 'FORWARD'>
HOBBY_TO = <PathOperation.HOBBY_TO: 'HOBBY_TO'>
H_LINE = <PathOperation.H_LINE: 'H_LINE'>
LINE_TO = <PathOperation.LINE_TO: 'LINE_TO'>
MOVE_TO = <PathOperation.MOVE_TO: 'MOVE_TO'>
QUAD_TO = <PathOperation.QUAD_TO: 'QUAD_TO'>
R_LINE = <PathOperation.R_LINE: 'RLINE'>
R_MOVE = <PathOperation.R_MOVE: 'RMOVE'>
SEGMENTS = <PathOperation.SEGMENTS: 'SEGMENTS'>
SINE = <PathOperation.SINE: 'SINE'>
V_LINE = <PathOperation.V_LINE: 'V_LINE'>
class PatternType(strenum.StrEnum):
729class PatternType(StrEnum):
730    """PatternType is used to set the type of pattern.
731    Used with closed shapes and Tag objects.
732
733    Valid values are: BRICKS, CHECKERBOARD, CROSSHATCH, CROSSHATCH_DOTS, DOTS, FIVE_POINTED_STARS, GRID,
734    HORIZONTAL_LINES, NORTHEAST, NORTHWEST, SIX_POINTED_STARS, VERTICAL_LINES.
735    """
736
737    BRICKS = "bricks"
738    CHECKERBOARD = "checkerboard"
739    CROSSHATCH = "crosshatch"
740    CROSSHATCH_DOTS = "crosshatch dots"
741    DOTS = "dots"
742    FIVE_POINTED_STARS = "fivepointed stars"
743    GRID = "grid"
744    HORIZONTAL_LINES = "horizontal lines"
745    NORTHEAST = "north east lines"
746    NORTHWEST = "north west lines"
747    SIX_POINTED_STARS = "sixpointed stars"
748    VERTICAL_LINES = "vertical lines"

PatternType is used to set the type of pattern. Used with closed shapes and Tag objects.

Valid values are: BRICKS, CHECKERBOARD, CROSSHATCH, CROSSHATCH_DOTS, DOTS, FIVE_POINTED_STARS, GRID, HORIZONTAL_LINES, NORTHEAST, NORTHWEST, SIX_POINTED_STARS, VERTICAL_LINES.

BRICKS = <PatternType.BRICKS: 'bricks'>
CHECKERBOARD = <PatternType.CHECKERBOARD: 'checkerboard'>
CROSSHATCH = <PatternType.CROSSHATCH: 'crosshatch'>
CROSSHATCH_DOTS = <PatternType.CROSSHATCH_DOTS: 'crosshatch dots'>
DOTS = <PatternType.DOTS: 'dots'>
FIVE_POINTED_STARS = <PatternType.FIVE_POINTED_STARS: 'fivepointed stars'>
GRID = <PatternType.GRID: 'grid'>
HORIZONTAL_LINES = <PatternType.HORIZONTAL_LINES: 'horizontal lines'>
NORTHEAST = <PatternType.NORTHEAST: 'north east lines'>
NORTHWEST = <PatternType.NORTHWEST: 'north west lines'>
SIX_POINTED_STARS = <PatternType.SIX_POINTED_STARS: 'sixpointed stars'>
VERTICAL_LINES = <PatternType.VERTICAL_LINES: 'vertical lines'>
class Placement(strenum.StrEnum):
751class Placement(StrEnum):
752    """Placement is used to set the placement of the tags
753    relative to another object.
754
755    Valid values are: ABOVE, ABOVE_LEFT, ABOVE_RIGHT, BELOW, BELOW_LEFT, BELOW_RIGHT, CENTERED, INSIDE,
756    LEFT, OUTSIDE, RIGHT.
757    """
758
759    ABOVE = "above"
760    ABOVE_LEFT = "above left"
761    ABOVE_RIGHT = "above right"
762    BELOW = "below"
763    BELOW_LEFT = "below left"
764    BELOW_RIGHT = "below right"
765    CENTERED = "centered"
766    INSIDE = "inside"
767    LEFT = "left"
768    OUTSIDE = "outside"
769    RIGHT = "right"

Placement is used to set the placement of the tags relative to another object.

Valid values are: ABOVE, ABOVE_LEFT, ABOVE_RIGHT, BELOW, BELOW_LEFT, BELOW_RIGHT, CENTERED, INSIDE, LEFT, OUTSIDE, RIGHT.

ABOVE = <Placement.ABOVE: 'above'>
ABOVE_LEFT = <Placement.ABOVE_LEFT: 'above left'>
ABOVE_RIGHT = <Placement.ABOVE_RIGHT: 'above right'>
BELOW = <Placement.BELOW: 'below'>
BELOW_LEFT = <Placement.BELOW_LEFT: 'below left'>
BELOW_RIGHT = <Placement.BELOW_RIGHT: 'below right'>
CENTERED = <Placement.CENTERED: 'centered'>
INSIDE = <Placement.INSIDE: 'inside'>
LEFT = <Placement.LEFT: 'left'>
OUTSIDE = <Placement.OUTSIDE: 'outside'>
RIGHT = <Placement.RIGHT: 'right'>
class Render(strenum.StrEnum):
772class Render(StrEnum):
773    """Render is used to set the type of rendering.
774
775    Valid values are: EPS, PDF, SVG, TEX.
776    """
777
778    EPS = "EPS"
779    PDF = "PDF"
780    SVG = "SVG"
781    TEX = "TEX"

Render is used to set the type of rendering.

Valid values are: EPS, PDF, SVG, TEX.

EPS = <Render.EPS: 'EPS'>
PDF = <Render.PDF: 'PDF'>
SVG = <Render.SVG: 'SVG'>
TEX = <Render.TEX: 'TEX'>
class Result(strenum.StrEnum):
784class Result(StrEnum):
785    """Result is used for the return values of the functions.
786
787    Valid values are: FAILURE, GO, NOPAGES, OVERWRITE, SAVED, STOP, SUCCESS.
788    """
789
790    FAILURE = "FAILURE"
791    GO = "GO"
792    NOPAGES = "NO_PAGES"
793    OVERWRITE = "OVERWRITE"
794    SAVED = "SAVED"
795    STOP = "STOP"
796    SUCCESS = "SUCCESS"

Result is used for the return values of the functions.

Valid values are: FAILURE, GO, NOPAGES, OVERWRITE, SAVED, STOP, SUCCESS.

FAILURE = <Result.FAILURE: 'FAILURE'>
GO = <Result.GO: 'GO'>
NOPAGES = <Result.NOPAGES: 'NO_PAGES'>
OVERWRITE = <Result.OVERWRITE: 'OVERWRITE'>
SAVED = <Result.SAVED: 'SAVED'>
STOP = <Result.STOP: 'STOP'>
SUCCESS = <Result.SUCCESS: 'SUCCESS'>
class ShadeType(strenum.StrEnum):
799class ShadeType(StrEnum):
800    """ShadeType is used to set the type of shading.
801
802    Valid values are: AXIS_LEFT_RIGHT, AXIS_TOP_BOTTOM, AXIS_LEFT_MIDDLE, AXIS_RIGHT_MIDDLE, AXIS_TOP_MIDDLE,
803    AXIS_BOTTOM_MIDDLE, BALL, BILINEAR, COLORWHEEL, COLORWHEEL_BLACK, COLORWHEEL_WHITE, RADIAL_INNER,
804    RADIAL_OUTER, RADIAL_INNER_OUTER.
805    """
806
807    AXIS_LEFT_RIGHT = "axis left right"
808    AXIS_TOP_BOTTOM = "axis top bottom"
809    AXIS_LEFT_MIDDLE = "axis left middle"
810    AXIS_RIGHT_MIDDLE = "axis right middle"
811    AXIS_TOP_MIDDLE = "axis top middle"
812    AXIS_BOTTOM_MIDDLE = "axis bottom middle"
813    BALL = "ball"
814    BILINEAR = "bilinear"
815    COLORWHEEL = "color wheel"
816    COLORWHEEL_BLACK = "color wheel black center"
817    COLORWHEEL_WHITE = "color wheel white center"
818    RADIAL_INNER = "radial inner"
819    RADIAL_OUTER = "radial outer"
820    RADIAL_INNER_OUTER = "radial inner outer"

ShadeType is used to set the type of shading.

Valid values are: AXIS_LEFT_RIGHT, AXIS_TOP_BOTTOM, AXIS_LEFT_MIDDLE, AXIS_RIGHT_MIDDLE, AXIS_TOP_MIDDLE, AXIS_BOTTOM_MIDDLE, BALL, BILINEAR, COLORWHEEL, COLORWHEEL_BLACK, COLORWHEEL_WHITE, RADIAL_INNER, RADIAL_OUTER, RADIAL_INNER_OUTER.

AXIS_LEFT_RIGHT = <ShadeType.AXIS_LEFT_RIGHT: 'axis left right'>
AXIS_TOP_BOTTOM = <ShadeType.AXIS_TOP_BOTTOM: 'axis top bottom'>
AXIS_LEFT_MIDDLE = <ShadeType.AXIS_LEFT_MIDDLE: 'axis left middle'>
AXIS_RIGHT_MIDDLE = <ShadeType.AXIS_RIGHT_MIDDLE: 'axis right middle'>
AXIS_TOP_MIDDLE = <ShadeType.AXIS_TOP_MIDDLE: 'axis top middle'>
AXIS_BOTTOM_MIDDLE = <ShadeType.AXIS_BOTTOM_MIDDLE: 'axis bottom middle'>
BALL = <ShadeType.BALL: 'ball'>
BILINEAR = <ShadeType.BILINEAR: 'bilinear'>
COLORWHEEL = <ShadeType.COLORWHEEL: 'color wheel'>
COLORWHEEL_BLACK = <ShadeType.COLORWHEEL_BLACK: 'color wheel black center'>
COLORWHEEL_WHITE = <ShadeType.COLORWHEEL_WHITE: 'color wheel white center'>
RADIAL_INNER = <ShadeType.RADIAL_INNER: 'radial inner'>
RADIAL_OUTER = <ShadeType.RADIAL_OUTER: 'radial outer'>
RADIAL_INNER_OUTER = <ShadeType.RADIAL_INNER_OUTER: 'radial inner outer'>
class Side(strenum.StrEnum):
824class Side(StrEnum):
825    """Side is used to with boundary box offset lines.
826    They determine the position of the offset lines.
827
828    Valid values are: BASE, BOTTOM, DIAGONAL1, DIAGONAL2, H_CENTERLINE, LEFT, MID, RIGHT, TOP, V_CENTERLINE.
829    """
830
831    BASE = "BASE"
832    BOTTOM = "BOTTOM"
833    DIAGONAL1 = "DIAGONAL1"
834    DIAGONAL2 = "DIAGONAL2"
835    H_CENTERLINE = "H_CENTERLINE"
836    LEFT = "LEFT"
837    MID = "MID"
838    RIGHT = "RIGHT"
839    TOP = "TOP"
840    V_CENTERLINE = "V_CENTERLINE"

Side is used to with boundary box offset lines. They determine the position of the offset lines.

Valid values are: BASE, BOTTOM, DIAGONAL1, DIAGONAL2, H_CENTERLINE, LEFT, MID, RIGHT, TOP, V_CENTERLINE.

BASE = <Side.BASE: 'BASE'>
BOTTOM = <Side.BOTTOM: 'BOTTOM'>
DIAGONAL1 = <Side.DIAGONAL1: 'DIAGONAL1'>
DIAGONAL2 = <Side.DIAGONAL2: 'DIAGONAL2'>
H_CENTERLINE = <Side.H_CENTERLINE: 'H_CENTERLINE'>
LEFT = <Side.LEFT: 'LEFT'>
MID = <Side.MID: 'MID'>
RIGHT = <Side.RIGHT: 'RIGHT'>
TOP = <Side.TOP: 'TOP'>
V_CENTERLINE = <Side.V_CENTERLINE: 'V_CENTERLINE'>
class State(strenum.StrEnum):
843class State(StrEnum):
844    """State is used for modifiers.
845    Not implemented yet.
846
847    Valid values are: INITIAL, PAUSED, RESTARTING, RUNNING, STOPPED.
848    """
849
850    INITIAL = "INITIAL"
851    PAUSED = "PAUSED"
852    RESTARTING = "RESTARTING"
853    RUNNING = "RUNNING"
854    STOPPED = "STOPPED"

State is used for modifiers. Not implemented yet.

Valid values are: INITIAL, PAUSED, RESTARTING, RUNNING, STOPPED.

INITIAL = <State.INITIAL: 'INITIAL'>
PAUSED = <State.PAUSED: 'PAUSED'>
RESTARTING = <State.RESTARTING: 'RESTARTING'>
RUNNING = <State.RUNNING: 'RUNNING'>
STOPPED = <State.STOPPED: 'STOPPED'>
class TexLoc(strenum.StrEnum):
857class TexLoc(StrEnum):
858    """TexLoc is used to set the location of the TeX related
859    objects.
860
861    Valid values are: DOCUMENT, PICTURE, PREAMBLE, NONE.
862    """
863
864    DOCUMENT = "DOCUMENT"  # BETWEEN \BEGIN{DOCUMENT} AND \BEGIN{TIKZPICTURE}
865    PICTURE = "PICTURE"  # AFTER \BEGIN{PICTURE}
866    PREAMBLE = "PREAMBLE"  # BEFORE \BEGIN{DOCUMENT}
867    NONE = "NONE"  # Anywhere in the picture.

TexLoc is used to set the location of the TeX related objects.

Valid values are: DOCUMENT, PICTURE, PREAMBLE, NONE.

DOCUMENT = <TexLoc.DOCUMENT: 'DOCUMENT'>
PICTURE = <TexLoc.PICTURE: 'PICTURE'>
PREAMBLE = <TexLoc.PREAMBLE: 'PREAMBLE'>
NONE = <TexLoc.NONE: 'NONE'>
class Topology(strenum.StrEnum):
870class Topology(StrEnum):
871    """Topology is used for geometry classification.
872
873    Valid values are: CLOSED, COLLINEAR, CONGRUENT, FOLDED, INTERSECTING, OPEN, SELF_INTERSECTING, SIMPLE,
874    YJOINT.
875    """
876
877    CLOSED = "CLOSED"
878    COLLINEAR = "COLLINEAR"
879    CONGRUENT = "CONGRUENT"
880    FOLDED = "FOLDED"
881    INTERSECTING = "INTERSECTING"
882    OPEN = "OPEN"
883    SELF_INTERSECTING = "SELF_INTERSECTING"
884    SIMPLE = "SIMPLE"
885    YJOINT = "YJOINT"

Topology is used for geometry classification.

Valid values are: CLOSED, COLLINEAR, CONGRUENT, FOLDED, INTERSECTING, OPEN, SELF_INTERSECTING, SIMPLE, YJOINT.

CLOSED = <Topology.CLOSED: 'CLOSED'>
COLLINEAR = <Topology.COLLINEAR: 'COLLINEAR'>
CONGRUENT = <Topology.CONGRUENT: 'CONGRUENT'>
FOLDED = <Topology.FOLDED: 'FOLDED'>
INTERSECTING = <Topology.INTERSECTING: 'INTERSECTING'>
OPEN = <Topology.OPEN: 'OPEN'>
SELF_INTERSECTING = <Topology.SELF_INTERSECTING: 'SELF_INTERSECTING'>
SIMPLE = <Topology.SIMPLE: 'SIMPLE'>
YJOINT = <Topology.YJOINT: 'YJOINT'>
class Transformation(strenum.StrEnum):
888class Transformation(StrEnum):
889    """Transformation is used to set the type of a transformation.
890
891    Valid values are: GLIDE, MIRROR, ROTATE, SCALE, SHEAR, TRANSFORM, TRANSLATE.
892    """
893
894    GLIDE = "GLIDE"
895    MIRROR = "MIRROR"
896    ROTATE = "ROTATE"
897    SCALE = "SCALE"
898    SHEAR = "SHEAR"
899    TRANSFORM = "TRANSFORM"
900    TRANSLATE = "TRANSLATE"

Transformation is used to set the type of a transformation.

Valid values are: GLIDE, MIRROR, ROTATE, SCALE, SHEAR, TRANSFORM, TRANSLATE.

GLIDE = <Transformation.GLIDE: 'GLIDE'>
MIRROR = <Transformation.MIRROR: 'MIRROR'>
ROTATE = <Transformation.ROTATE: 'ROTATE'>
SCALE = <Transformation.SCALE: 'SCALE'>
SHEAR = <Transformation.SHEAR: 'SHEAR'>
TRANSFORM = <Transformation.TRANSFORM: 'TRANSFORM'>
TRANSLATE = <Transformation.TRANSLATE: 'TRANSLATE'>
class Types(strenum.StrEnum):
 903class Types(StrEnum):
 904    """All objects in simetri.graphics has type and subtype properties.
 905    Types are mostly Batch and Shape,  and subtypes are listed here.
 906    """
 907
 908    ANGULAR_DIMENSION = "ANGULAR DIMENSION"
 909    ANNOTATION = "ANNOTATION"
 910    ARC = "ARC"
 911    ARC_ARROW = "ARC_ARROW"
 912    ARC_SKETCH = "ARC_SKETCH"
 913    ARROW = "ARROW"
 914    ARROW_HEAD = "ARROW_HEAD"
 915    AXIS = "AXIS"
 916    BATCH = "BATCH"
 917    BATCH_SKETCH = "BATCH_SKETCH"
 918    BEZIER = "BEZIER"
 919    BEZIER_SKETCH = "BEZIER_SKETCH"
 920    BBOX_SKETCH = "BBOX_SKETCH"
 921    BOUNDING_BOX = "BOUNDING_BOX"
 922    BRACE = "BRACE"
 923    CANVAS = "CANVAS"
 924    CIRCLE = "CIRCLE"
 925    CIRCLE_SKETCH = "CIRCLE_SKETCH"
 926    CIRCULAR_GRID = "CIRCULAR_GRID"
 927    COLOR = "COLOR"
 928    CS = "CS"
 929    CURVE = "CURVE"
 930    CURVE_SKETCH = "CURVE_SKETCH"
 931    DIMENSION = "DIMENSION"
 932    DIRECTED = "DIRECTED_GRAPH"
 933    DIVISION = "DIVISION"
 934    DOT = "DOT"
 935    DOTS = "DOTS"
 936    EDGE = "EDGE"
 937    ELLIPSE = "ELLIPSE"
 938    ELLIPSE_SKETCH = "ELLIPSE_SKETCH"
 939    ELLIPTIC_ARC = "ELLIPTIC_ARC"
 940    FILL_STYLE = "FILL_STYLE"
 941    FONT = "FONT"
 942    FONT_SKETCH = "FONT_SKETCH"
 943    FONT_STYLE = "FONT_STYLE"
 944    FRAGMENT = "FRAGMENT"
 945    FRAGMENT_SKETCH = "FRAGMENT_SKETCH"
 946    FRAME = "FRAME"
 947    FRAME_SKETCH = "FRAME_SKETCH"
 948    FRAME_STYLE = "FRAME_STYLE"
 949    GRADIENT = "GRADIENT"
 950    GRID = "GRID"
 951    GRID_STYLE = "GRID_STYLE"
 952    HANDLE = "HANDLE"
 953    HEXAGONAL = "HEXAGONAL"
 954    HEX_GRID = "HEX_GRID"
 955    ICANVAS = "ICANVAS"
 956    INTERSECTION = "INTERSECTION"
 957    LABEL = "LABEL"
 958    LACE = "LACE"
 959    LACESKETCH = "LACE_SKETCH"
 960    LINE = "LINE"
 961    LINEAR = "LINEAR"
 962    LINE_SKETCH = "LINE_SKETCH"
 963    LINE_STYLE = "LINE_STYLE"
 964    LINPATH = "LINPATH"
 965    LOOM = "LOOM"
 966    MARKER = "MARKER"
 967    MARKER_STYLE = "MARKER_STYLE"
 968    MASK = "MASK"
 969    MIXED_GRID = "MIXED_GRID"
 970    NONE = "NONE"
 971    OBLIQUE = "OBLIQUE"
 972    OUTLINE = "OUTLINE"
 973    OVERLAP = "OVERLAP"
 974    PAGE = "PAGE"
 975    PAGE_GRID = "PAGE_GRID"
 976    PARALLEL_POLYLINE = "PARALLEL_POLYLINE"
 977    PART = "PART"
 978    PATH_OPERATION = "PATH_OPERATION"
 979    PATH_SKETCH = "PATH_SKETCH"
 980    PATTERN = "PATTERN"
 981    PATTERN_SKETCH = "PATTERN_SKETCH"
 982    PATTERN_STYLE = "PATTERN_STYLE"
 983    PETAL = "PETAL"
 984    PLAIT = "PLAIT"
 985    PLAIT_SKETCH = "PLAIT_SKETCH"
 986    POINT = "POINT"
 987    POINTS = "POINTS"
 988    POLYLINE = "POLYLINE"
 989    Q_BEZIER = "Q_BEZIER"
 990    RADIAL = "RADIAL"
 991    RECT_SKETCH = "RECT_SKETCH"
 992    RECTANGLE = "RECTANGLE"
 993    RECTANGULAR = "RECTANGULAR"
 994    REG_POLY = "REGPOLY"
 995    REG_POLY_SKETCH = "REGPOLY_SKETCH"
 996    REGULAR_POLYGON = "REGULAR_POLYGON"
 997    RHOMBIC = "RHOMBIC"
 998    SECTION = "SECTION"
 999    SEGMENT = "SEGMENT"
1000    SEGMENTS = "SEGMENTS"
1001    SHADE_STYLE = "SHADE_STYLE"
1002    SHAPE = "SHAPE"
1003    SHAPE_SKETCH = "SHAPE_SKETCH"
1004    SHAPE_STYLE = "SHAPE_STYLE"
1005    SINE_WAVE = "SINE_WAVE"
1006    SKETCH = "SKETCH"
1007    SKETCH_STYLE = "SKETCH_STYLE"
1008    SQUARE = "SQUARE"
1009    SQUARE_GRID = "SQUARE_GRID"
1010    STAR = "STAR"
1011    STYLE = "STYLE"
1012    SVG_PATH = "SVG_PATH"
1013    SVG_PATH_SKETCH = "SVG_PATH_SKETCH"
1014    TAG = "TAG"
1015    TAG_SKETCH = "TAG_SKETCH"
1016    TAG_STYLE = "TAG_STYLE"
1017    TEX = "TEX"  # USED FOR GENERATING OUTPUTFILE.TEX
1018    TEX_SKETCH = "TEX_SKETCH"
1019    TEXT = "TEXT"
1020    TEXTANCHOR = "TEXT_ANCHOR"
1021    TEXT_ANCHOR_LINE = "TEXT_ANCHORLINE"
1022    TEXT_ANCHOR_POINT = "TEXT_ANCHORPOINT"
1023    THREAD = "THREAD"
1024    TRANSFORM = "TRANSFORM"
1025    TRANSFORMATION = "TRANSFORMATION"
1026    TRIANGLE = "TRIANGLE"
1027    TURTLE = "TURTLE"
1028    UNDIRECTED = "UNDIRECTED_GRAPH"
1029    VERTEX = "VERTEX"
1030    WARP = "WARP"
1031    WEFT = "WEFT"
1032    WEIGHTED = "WEIGHTED_GRAPH"

All objects in simetri.graphics has type and subtype properties. Types are mostly Batch and Shape, and subtypes are listed here.

ANGULAR_DIMENSION = <Types.ANGULAR_DIMENSION: 'ANGULAR DIMENSION'>
ANNOTATION = <Types.ANNOTATION: 'ANNOTATION'>
ARC = <Types.ARC: 'ARC'>
ARC_ARROW = <Types.ARC_ARROW: 'ARC_ARROW'>
ARC_SKETCH = <Types.ARC_SKETCH: 'ARC_SKETCH'>
ARROW = <Types.ARROW: 'ARROW'>
ARROW_HEAD = <Types.ARROW_HEAD: 'ARROW_HEAD'>
AXIS = <Types.AXIS: 'AXIS'>
BATCH = <Types.BATCH: 'BATCH'>
BATCH_SKETCH = <Types.BATCH_SKETCH: 'BATCH_SKETCH'>
BEZIER = <Types.BEZIER: 'BEZIER'>
BEZIER_SKETCH = <Types.BEZIER_SKETCH: 'BEZIER_SKETCH'>
BBOX_SKETCH = <Types.BBOX_SKETCH: 'BBOX_SKETCH'>
BOUNDING_BOX = <Types.BOUNDING_BOX: 'BOUNDING_BOX'>
BRACE = <Types.BRACE: 'BRACE'>
CANVAS = <Types.CANVAS: 'CANVAS'>
CIRCLE = <Types.CIRCLE: 'CIRCLE'>
CIRCLE_SKETCH = <Types.CIRCLE_SKETCH: 'CIRCLE_SKETCH'>
CIRCULAR_GRID = <Types.CIRCULAR_GRID: 'CIRCULAR_GRID'>
COLOR = <Types.COLOR: 'COLOR'>
CS = <Types.CS: 'CS'>
CURVE = <Types.CURVE: 'CURVE'>
CURVE_SKETCH = <Types.CURVE_SKETCH: 'CURVE_SKETCH'>
DIMENSION = <Types.DIMENSION: 'DIMENSION'>
DIRECTED = <Types.DIRECTED: 'DIRECTED_GRAPH'>
DIVISION = <Types.DIVISION: 'DIVISION'>
DOT = <Types.DOT: 'DOT'>
DOTS = <Types.DOTS: 'DOTS'>
EDGE = <Types.EDGE: 'EDGE'>
ELLIPSE = <Types.ELLIPSE: 'ELLIPSE'>
ELLIPSE_SKETCH = <Types.ELLIPSE_SKETCH: 'ELLIPSE_SKETCH'>
ELLIPTIC_ARC = <Types.ELLIPTIC_ARC: 'ELLIPTIC_ARC'>
FILL_STYLE = <Types.FILL_STYLE: 'FILL_STYLE'>
FONT = <Types.FONT: 'FONT'>
FONT_SKETCH = <Types.FONT_SKETCH: 'FONT_SKETCH'>
FONT_STYLE = <Types.FONT_STYLE: 'FONT_STYLE'>
FRAGMENT = <Types.FRAGMENT: 'FRAGMENT'>
FRAGMENT_SKETCH = <Types.FRAGMENT_SKETCH: 'FRAGMENT_SKETCH'>
FRAME = <Types.FRAME: 'FRAME'>
FRAME_SKETCH = <Types.FRAME_SKETCH: 'FRAME_SKETCH'>
FRAME_STYLE = <Types.FRAME_STYLE: 'FRAME_STYLE'>
GRADIENT = <Types.GRADIENT: 'GRADIENT'>
GRID = <Types.GRID: 'GRID'>
GRID_STYLE = <Types.GRID_STYLE: 'GRID_STYLE'>
HANDLE = <Types.HANDLE: 'HANDLE'>
HEXAGONAL = <Types.HEXAGONAL: 'HEXAGONAL'>
HEX_GRID = <Types.HEX_GRID: 'HEX_GRID'>
ICANVAS = <Types.ICANVAS: 'ICANVAS'>
INTERSECTION = <Types.INTERSECTION: 'INTERSECTION'>
LABEL = <Types.LABEL: 'LABEL'>
LACE = <Types.LACE: 'LACE'>
LACESKETCH = <Types.LACESKETCH: 'LACE_SKETCH'>
LINE = <Types.LINE: 'LINE'>
LINEAR = <Types.LINEAR: 'LINEAR'>
LINE_SKETCH = <Types.LINE_SKETCH: 'LINE_SKETCH'>
LINE_STYLE = <Types.LINE_STYLE: 'LINE_STYLE'>
LINPATH = <Types.LINPATH: 'LINPATH'>
LOOM = <Types.LOOM: 'LOOM'>
MARKER = <Types.MARKER: 'MARKER'>
MARKER_STYLE = <Types.MARKER_STYLE: 'MARKER_STYLE'>
MASK = <Types.MASK: 'MASK'>
MIXED_GRID = <Types.MIXED_GRID: 'MIXED_GRID'>
NONE = <Types.NONE: 'NONE'>
OBLIQUE = <Types.OBLIQUE: 'OBLIQUE'>
OUTLINE = <Types.OUTLINE: 'OUTLINE'>
OVERLAP = <Types.OVERLAP: 'OVERLAP'>
PAGE = <Types.PAGE: 'PAGE'>
PAGE_GRID = <Types.PAGE_GRID: 'PAGE_GRID'>
PARALLEL_POLYLINE = <Types.PARALLEL_POLYLINE: 'PARALLEL_POLYLINE'>
PART = <Types.PART: 'PART'>
PATH_OPERATION = <Types.PATH_OPERATION: 'PATH_OPERATION'>
PATH_SKETCH = <Types.PATH_SKETCH: 'PATH_SKETCH'>
PATTERN = <Types.PATTERN: 'PATTERN'>
PATTERN_SKETCH = <Types.PATTERN_SKETCH: 'PATTERN_SKETCH'>
PATTERN_STYLE = <Types.PATTERN_STYLE: 'PATTERN_STYLE'>
PETAL = <Types.PETAL: 'PETAL'>
PLAIT = <Types.PLAIT: 'PLAIT'>
PLAIT_SKETCH = <Types.PLAIT_SKETCH: 'PLAIT_SKETCH'>
POINT = <Types.POINT: 'POINT'>
POINTS = <Types.POINTS: 'POINTS'>
POLYLINE = <Types.POLYLINE: 'POLYLINE'>
Q_BEZIER = <Types.Q_BEZIER: 'Q_BEZIER'>
RADIAL = <Types.RADIAL: 'RADIAL'>
RECT_SKETCH = <Types.RECT_SKETCH: 'RECT_SKETCH'>
RECTANGLE = <Types.RECTANGLE: 'RECTANGLE'>
RECTANGULAR = <Types.RECTANGULAR: 'RECTANGULAR'>
REG_POLY = <Types.REG_POLY: 'REGPOLY'>
REG_POLY_SKETCH = <Types.REG_POLY_SKETCH: 'REGPOLY_SKETCH'>
REGULAR_POLYGON = <Types.REGULAR_POLYGON: 'REGULAR_POLYGON'>
RHOMBIC = <Types.RHOMBIC: 'RHOMBIC'>
SECTION = <Types.SECTION: 'SECTION'>
SEGMENT = <Types.SEGMENT: 'SEGMENT'>
SEGMENTS = <Types.SEGMENTS: 'SEGMENTS'>
SHADE_STYLE = <Types.SHADE_STYLE: 'SHADE_STYLE'>
SHAPE = <Types.SHAPE: 'SHAPE'>
SHAPE_SKETCH = <Types.SHAPE_SKETCH: 'SHAPE_SKETCH'>
SHAPE_STYLE = <Types.SHAPE_STYLE: 'SHAPE_STYLE'>
SINE_WAVE = <Types.SINE_WAVE: 'SINE_WAVE'>
SKETCH = <Types.SKETCH: 'SKETCH'>
SKETCH_STYLE = <Types.SKETCH_STYLE: 'SKETCH_STYLE'>
SQUARE = <Types.SQUARE: 'SQUARE'>
SQUARE_GRID = <Types.SQUARE_GRID: 'SQUARE_GRID'>
STAR = <Types.STAR: 'STAR'>
STYLE = <Types.STYLE: 'STYLE'>
SVG_PATH = <Types.SVG_PATH: 'SVG_PATH'>
SVG_PATH_SKETCH = <Types.SVG_PATH_SKETCH: 'SVG_PATH_SKETCH'>
TAG = <Types.TAG: 'TAG'>
TAG_SKETCH = <Types.TAG_SKETCH: 'TAG_SKETCH'>
TAG_STYLE = <Types.TAG_STYLE: 'TAG_STYLE'>
TEX = <Types.TEX: 'TEX'>
TEX_SKETCH = <Types.TEX_SKETCH: 'TEX_SKETCH'>
TEXT = <Types.TEXT: 'TEXT'>
TEXTANCHOR = <Types.TEXTANCHOR: 'TEXT_ANCHOR'>
TEXT_ANCHOR_LINE = <Types.TEXT_ANCHOR_LINE: 'TEXT_ANCHORLINE'>
TEXT_ANCHOR_POINT = <Types.TEXT_ANCHOR_POINT: 'TEXT_ANCHORPOINT'>
THREAD = <Types.THREAD: 'THREAD'>
TRANSFORM = <Types.TRANSFORM: 'TRANSFORM'>
TRANSFORMATION = <Types.TRANSFORMATION: 'TRANSFORMATION'>
TRIANGLE = <Types.TRIANGLE: 'TRIANGLE'>
TURTLE = <Types.TURTLE: 'TURTLE'>
UNDIRECTED = <Types.UNDIRECTED: 'UNDIRECTED_GRAPH'>
VERTEX = <Types.VERTEX: 'VERTEX'>
WARP = <Types.WARP: 'WARP'>
WEFT = <Types.WEFT: 'WEFT'>
WEIGHTED = <Types.WEIGHTED: 'WEIGHTED_GRAPH'>
drawable_types = [<Types.ARC: 'ARC'>, <Types.ARC_ARROW: 'ARC_ARROW'>, <Types.ARROW: 'ARROW'>, <Types.ARROW_HEAD: 'ARROW_HEAD'>, <Types.BATCH: 'BATCH'>, <Types.BEZIER: 'BEZIER'>, <Types.BOUNDING_BOX: 'BOUNDING_BOX'>, <Types.CIRCLE: 'CIRCLE'>, <Types.CIRCULAR_GRID: 'CIRCULAR_GRID'>, <Types.DIMENSION: 'DIMENSION'>, <Types.DIVISION: 'DIVISION'>, <Types.DOT: 'DOT'>, <Types.DOTS: 'DOTS'>, <Types.EDGE: 'EDGE'>, <Types.ELLIPSE: 'ELLIPSE'>, <Types.FRAGMENT: 'FRAGMENT'>, <Types.HEX_GRID: 'HEX_GRID'>, <Types.INTERSECTION: 'INTERSECTION'>, <Types.LACE: 'LACE'>, <Types.LINPATH: 'LINPATH'>, <Types.MIXED_GRID: 'MIXED_GRID'>, <Types.OUTLINE: 'OUTLINE'>, <Types.OVERLAP: 'OVERLAP'>, <Types.PARALLEL_POLYLINE: 'PARALLEL_POLYLINE'>, <Types.PATTERN: 'PATTERN'>, <Types.PLAIT: 'PLAIT'>, <Types.POLYLINE: 'POLYLINE'>, <Types.Q_BEZIER: 'Q_BEZIER'>, <Types.RECTANGLE: 'RECTANGLE'>, <Types.SECTION: 'SECTION'>, <Types.SEGMENT: 'SEGMENT'>, <Types.SHAPE: 'SHAPE'>, <Types.SINE_WAVE: 'SINE_WAVE'>, <Types.SQUARE_GRID: 'SQUARE_GRID'>, <Types.STAR: 'STAR'>, <Types.SVG_PATH: 'SVG_PATH'>, <Types.TAG: 'TAG'>, <Types.TURTLE: 'TURTLE'>]
shape_types = [<Types.ARC: 'ARC'>, <Types.ARROW_HEAD: 'ARROW_HEAD'>, <Types.BEZIER: 'BEZIER'>, <Types.BRACE: 'BRACE'>, <Types.CIRCLE: 'CIRCLE'>, <Types.CURVE: 'CURVE'>, <Types.DIVISION: 'DIVISION'>, <Types.ELLIPSE: 'ELLIPSE'>, <Types.FRAME: 'FRAME'>, <Types.INTERSECTION: 'INTERSECTION'>, <Types.LINE: 'LINE'>, <Types.POLYLINE: 'POLYLINE'>, <Types.Q_BEZIER: 'Q_BEZIER'>, <Types.SECTION: 'SECTION'>, <Types.SHAPE: 'SHAPE'>, <Types.SINE_WAVE: 'SINE_WAVE'>]
batch_types = [<Types.ANGULAR_DIMENSION: 'ANGULAR DIMENSION'>, <Types.ANNOTATION: 'ANNOTATION'>, <Types.ARC_ARROW: 'ARC_ARROW'>, <Types.ARROW: 'ARROW'>, <Types.BATCH: 'BATCH'>, <Types.CIRCULAR_GRID: 'CIRCULAR_GRID'>, <Types.DIMENSION: 'DIMENSION'>, <Types.DOTS: 'DOTS'>, <Types.HEX_GRID: 'HEX_GRID'>, <Types.LACE: 'LACE'>, <Types.LINPATH: 'LINPATH'>, <Types.MARKER: 'MARKER'>, <Types.MIXED_GRID: 'MIXED_GRID'>, <Types.OVERLAP: 'OVERLAP'>, <Types.PARALLEL_POLYLINE: 'PARALLEL_POLYLINE'>, <Types.PATTERN: 'PATTERN'>, <Types.SQUARE_GRID: 'SQUARE_GRID'>, <Types.STAR: 'STAR'>, <Types.SVG_PATH: 'SVG_PATH'>, <Types.TURTLE: 'TURTLE'>]
Drawable: typing_extensions.TypeAlias = typing.Union[ForwardRef(<Types.ARC: 'ARC'>), ForwardRef(<Types.ARC_ARROW: 'ARC_ARROW'>), ForwardRef(<Types.ARROW: 'ARROW'>), ForwardRef(<Types.ARROW_HEAD: 'ARROW_HEAD'>), ForwardRef(<Types.BATCH: 'BATCH'>), ForwardRef(<Types.CIRCLE: 'CIRCLE'>), ForwardRef(<Types.CIRCULAR_GRID: 'CIRCULAR_GRID'>), ForwardRef(<Types.DIMENSION: 'DIMENSION'>), ForwardRef(<Types.DOT: 'DOT'>), ForwardRef(<Types.DOTS: 'DOTS'>), ForwardRef(<Types.EDGE: 'EDGE'>), ForwardRef(<Types.ELLIPSE: 'ELLIPSE'>), ForwardRef(<Types.FRAGMENT: 'FRAGMENT'>), ForwardRef(<Types.HEX_GRID: 'HEX_GRID'>), ForwardRef(<Types.INTERSECTION: 'INTERSECTION'>), ForwardRef(<Types.LACE: 'LACE'>), ForwardRef(<Types.LINPATH: 'LINPATH'>), ForwardRef(<Types.MIXED_GRID: 'MIXED_GRID'>), ForwardRef(<Types.OUTLINE: 'OUTLINE'>), ForwardRef(<Types.OVERLAP: 'OVERLAP'>), ForwardRef(<Types.PARALLEL_POLYLINE: 'PARALLEL_POLYLINE'>), ForwardRef(<Types.PATTERN: 'PATTERN'>), ForwardRef(<Types.PLAIT: 'PLAIT'>), ForwardRef(<Types.POLYLINE: 'POLYLINE'>), ForwardRef(<Types.RECTANGLE: 'RECTANGLE'>), ForwardRef(<Types.SECTION: 'SECTION'>), ForwardRef(<Types.SEGMENT: 'SEGMENT'>), ForwardRef(<Types.SHAPE: 'SHAPE'>), ForwardRef(<Types.SINE_WAVE: 'SINE_WAVE'>), ForwardRef(<Types.SQUARE_GRID: 'SQUARE_GRID'>), ForwardRef(<Types.STAR: 'STAR'>), ForwardRef(<Types.SVG_PATH: 'SVG_PATH'>), ForwardRef(<Types.TAG: 'TAG'>), ForwardRef(<Types.TURTLE: 'TURTLE'>)]
anchors = ['southeast', 'southwest', 'northeast', 'northwest', 'south', 'north', 'east', 'west', 'center', 'midpoint', 'left', 'right', 'top', 'bottom', 'diagonal1', 'diagonal2', 'horiz_centerline', 'vert_centerline', 'left_of', 'right_of', 'above', 'below', 'above_left', 'above_right', 'below_left', 'below_right', 'centered', 'polar_pos', 's', 'n', 'e', 'w', 'sw', 'se', 'nw', 'ne', 'c', 'd1', 'd', 'corners', 'all_anchors', 'width', 'height']