⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.184
Server IP:
65.21.180.239
Server:
Linux gowhm.eplangoweb.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.0.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
mysqlsh
/
lib
/
python3.8
/
site-packages
/
svg
/
View File Name :
elements.py
from __future__ import annotations from dataclasses import dataclass from enum import Enum from typing import TYPE_CHECKING, Any, ClassVar from . import _mixins as m from ._path import PathData from ._transforms import Transform from ._types import Length, Number, PreserveAspectRatio, ViewBoxSpec if TYPE_CHECKING: from typing_extensions import Literal @dataclass class Element: """ https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/Core """ element_name: ClassVar[str] elements: list[Element] | None = None text: str | None = None id: str | None = None tabindex: int | None = None lang: str | None = None transform_origin: str | None = None style: str | None = None data: dict | None = None extra: dict[str, str] | None = None """Any extra attributes to add to the element. Useful for HTMX and other HTML frameworks. Use with caution. """ @classmethod def _as_str(cls, val: Any) -> str: if val is None: return "" if isinstance(val, Element): return str(val) if isinstance(val, Enum): return val.value if isinstance(val, bool): return str(val).lower() if isinstance(val, (list, tuple)): return " ".join(cls._as_str(v) for v in val) return str(val) def as_dict(self) -> dict[str, str]: result = {} for key, val in vars(self).items(): if val is None: continue if key in ("elements", "text", "data", "attributes"): continue key = key.rstrip("_") key = key.replace("__", ":") key = key.replace("_", "-") result[key] = self._as_str(val) return result def as_str(self) -> str: props = " ".join(f'{k}="{v}"' for k, v in self.as_dict().items()) if self.data: if props: props += " " props += " ".join(f'data-{k}="{v}"' for k, v in self.data.items()) if self.extra: if props: props += " " props += " ".join(f'{k}="{v}"' for k, v in self.extra.items()) if props: props = " " + props if self.text: return f"<{self.element_name}{props}>{self.text}</{self.element_name}>" if self.elements: content = "".join(self._as_str(e) for e in self.elements) return f"<{self.element_name}{props}>{content}</{self.element_name}>" return f"<{self.element_name}{props}/>" def __str__(self) -> str: return self.as_str() @dataclass class SVG( Element, m.GraphicsElementEvents, m.Color, m.Graphics, ): """The svg element is a container that defines a new coordinate system and viewport. It is used as the outermost element of SVG documents, but it can also be used to embed an SVG fragment inside an SVG or HTML document. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg """ element_name = "svg" xmlns: str | None = "http://www.w3.org/2000/svg" viewBox: ViewBoxSpec | None = None preserveAspectRatio: PreserveAspectRatio | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None class_: list[str] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None onunload: str | None = None onabort: str | None = None onerror: str | None = None onresize: str | None = None onscroll: str | None = None onzoom: str | None = None @dataclass class G( Element, m.GraphicsElementEvents, m.Color, m.Graphics, m.FillStroke, ): """The <g> SVG element is a container used to group other SVG elements. Transformations applied to the <g> element are performed on its child elements, and its attributes are inherited by its children. It can also group multiple elements to be referenced later with the <use> element. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/g """ element_name = "g" transform: list[Transform] | None = None class_: list[str] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Defs( Element, m.Color, m.GraphicsElementEvents, ): """The <defs> is used to store graphical objects that will be used at a later time. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs """ element_name = "defs" transform: list[Transform] | None = None class_: list[str] | None = None pointer_events: str | None = None # TODO @dataclass class Desc(Element, m.GraphicsElementEvents): """The <desc> element provides an accessible, long-text description of any element. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/desc """ element_name = "desc" content: str | None = None class_: list[str] | None = None @dataclass class Title(Element, m.GraphicsElementEvents): """The <title> element provides an accessible, short-text description of any element. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title """ element_name = "title" content: str | None = None class_: list[str] | None = None @dataclass class Symbol( Element, m.GraphicsElementEvents, m.Color, m.Graphics, ): """The <symbol> is used to define template objects which can be used by a <use> element. The use of <symbol> elements for graphics that are used multiple times in the same document adds structure and semantics. Documents that are rich in structure may be rendered graphically, as speech, or as Braille, and thus promote accessibility. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/symbol """ element_name = "symbol" viewBox: ViewBoxSpec | None = None preserveAspectRatio: PreserveAspectRatio | None = None refX: Length | Number | None = None refY: Length | Number | None = None x: Length | Number | None = None y: Length | Number | None = None class_: list[str] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None @dataclass class Image( Element, m.Color, m.Graphics, m.GraphicsElementEvents, ): """The <image> SVG element includes images inside SVG documents. The only image formats SVG software must support are JPEG, PNG, and other SVG files. Animated GIF behavior is undefined. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image """ element_name = "image" href: str | None = None transform: list[Transform] | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None preserveAspectRatio: PreserveAspectRatio | None = None image_rendering: Literal["auto", "optimizeSpeed", "optimizeQuality"] | None = None class_: list[str] | None = None vector_effect: Literal["none", "non-scaling-stroke", "non-scaling-size", "non-rotation", "fixed-position"] | None = None visibility: Literal["visible", "hidden", "inherit"] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None @dataclass class Switch(Element, m.Color, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/switch """ element_name = "switch" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None opacity: Number | None = None class_: list[str] | None = None pointer_events: str | None = None # TODO @dataclass class Style(Element, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/style """ element_name = "style" type: str | None = None media: list[str] | None = None title: str | None = None @dataclass class _FigureElement(m.Color, m.GraphicsElementEvents, m.Graphics, m.FillStroke): pathLength: float | None = None paint_order: Literal["normal", "fill", "stroke", "markers"] | None = None shape_rendering: Literal["auto", "optimizeSpeed", "crispEdges", "geometricPrecision", "inherit"] | None = None class_: list[str] | None = None vector_effect: Literal["none", "non-scaling-stroke", "non-scaling-size", "non-rotation", "fixed-position"] | None = None visibility: Literal["visible", "hidden", "inherit"] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None @dataclass class Path(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path """ element_name = "path" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None d: list[PathData] | None = None marker_start: str | None = None marker_mid: str | None = None marker_end: str | None = None stroke_linecap: Literal["butt", "round", "square", "inherit"] | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Rect(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect """ element_name = "rect" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None rx: Length | Number | None = None ry: Length | Number | None = None marker_start: str | None = None marker_mid: str | None = None marker_end: str | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Circle(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle """ element_name = "circle" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None cx: Length | Number | None = None cy: Length | Number | None = None r: Length | Number | None = None marker_mid: str | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Ellipse(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse """ element_name = "ellipse" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None cx: Length | Number | None = None cy: Length | Number | None = None rx: Length | Number | None = None ry: Length | Number | None = None marker_start: str | None = None marker_mid: str | None = None marker_end: str | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Line(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line """ element_name = "line" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None x1: Length | Number | None = None y1: Length | Number | None = None x2: Length | Number | None = None y2: Length | Number | None = None marker_start: str | None = None marker_mid: str | None = None marker_end: str | None = None stroke_linecap: Literal["butt", "round", "square", "inherit"] | None = None @dataclass class Polyline(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline """ element_name = "polyline" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None points: list[Number] | None = None marker_start: str | None = None marker_mid: str | None = None marker_end: str | None = None stroke_linecap: Literal["butt", "round", "square", "inherit"] | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Polygon(Element, _FigureElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon """ element_name = "polygon" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None points: list[Number] | None = None marker_start: str | None = None marker_mid: str | None = None marker_end: str | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class _TextElement( m.FontSpecification, m.TextContentElements, m.Color, m.GraphicsElementEvents, m.Graphics, m.FillStroke, ): paint_order: Literal["normal", "fill", "stroke", "markers"] | None = None class_: list[str] | None = None vector_effect: Literal["none", "non-scaling-stroke", "non-scaling-size", "non-rotation", "fixed-position"] | None = None visibility: Literal["visible", "hidden", "inherit"] | None = None fill_opacity: Number | None = None fill: str | None = None @dataclass class Text(Element, _TextElement): """The SVG <text> element draws a graphics element consisting of text. It's possible to apply a gradient, pattern, clipping path, mask, or filter to <text>, like any other SVG graphics element. https://developer.mozilla.org/en-US/docs/Web/SVG/Element/text """ element_name = "text" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None x: Length | Number | None = None y: Length | Number | None = None dx: Length | Number | None = None dy: Length | Number | None = None textLength: Length | Number | None = None lengthAdjust: Literal["spacing", "spacingAndGlyphs"] | None = None writing_mode: Literal["horizontal-tb", "vertical-rl", "vertical-lr"] | None = None text_rendering: Literal["auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"] | None = None stroke_linecap: Literal["butt", "round", "square", "inherit"] | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None @dataclass class TSpan(Element, _TextElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/tspan """ element_name = "tspan" externalResourcesRequired: bool | None = None x: Length | Number | None = None y: Length | Number | None = None dx: Length | Number | None = None dy: Length | Number | None = None textLength: Length | Number | None = None lengthAdjust: Literal["spacing", "spacingAndGlyphs"] | None = None writing_mode: Literal["horizontal-tb", "vertical-rl", "vertical-lr"] | None = None alignment_baseline: None | Literal[ "baseline", "top", "before-edge", "text-top", "text-before-edge", "middle", "bottom", "after-edge", "text-bottom", "text-after-edge", "ideographic", "lower", "hanging", "mathematical", "inherit", ] = None baseline_shift: Literal["baseline", "sub", "super", "inherit"] | None = None stroke_linecap: Literal["butt", "round", "square", "inherit"] | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None opacity: Number | None = None @dataclass class TextPath(Element, _TextElement): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath """ element_name = "textPath" externalResourcesRequired: bool | None = None startOffset: str | None = None textLength: Length | Number | None = None lengthAdjust: Literal["spacing", "spacingAndGlyphs"] | None = None method: Literal["align", "stretch"] | None = None spacing: Literal["auto", "exact"] | None = None href: str | None = None path: str | None = None side: Literal["left", "right"] | None = None writing_mode: Literal["horizontal-tb", "vertical-rl", "vertical-lr"] | None = None alignment_baseline: None | Literal[ "baseline", "top", "before-edge", "text-top", "text-before-edge", "middle", "bottom", "after-edge", "text-bottom", "text-after-edge", "ideographic", "lower", "hanging", "mathematical", "inherit", ] = None baseline_shift: Literal["baseline", "sub", "super", "inherit"] | None = None stroke_linecap: Literal["butt", "round", "square", "inherit"] | None = None stroke_linejoin: Literal["miter", "round", "bevel", "inherit"] | None = None stroke_miterlimit: Number | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None opacity: Number | None = None @dataclass class Marker(Element, m.Color, m.GraphicsElementEvents, m.Graphics): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/marker """ element_name = "marker" externalResourcesRequired: bool | None = None viewBox: ViewBoxSpec | None = None preserveAspectRatio: PreserveAspectRatio | None = None refX: Length | Number | None = None refY: Length | Number | None = None markerUnits: Literal["strokeWidth", "userSpaceOnUse", "userSpace"] | None = None markerWidth: Length | Number | None = None markerHeight: Length | Number | None = None orient: str | None = None opacity: Number | None = None clip_path: str | None = None class_: list[str] | None = None mask: str | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None @dataclass class ColorProfile(Element): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/color """ element_name = "color-profile" local: str | None = None @dataclass class _Gradient: externalResourcesRequired: bool | None = None gradientUnits: Literal["userSpaceOnUse", "objectBoundingBox"] | None = None gradientTransform: list[Transform] | None = None spreadMethod: Literal["pad", "reflect", "repeat"] | None = None href: str | None = None class_: list[str] | None = None @dataclass class LinearGradient(Element, _Gradient, m.Color, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient """ element_name = "linearGradient" x1: Length | Number | None = None y1: Length | Number | None = None x2: Length | Number | None = None y2: Length | Number | None = None @dataclass class RadialGradient(Element, _Gradient, m.Color, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient """ element_name = "radialGradient" cx: Length | Number | None = None cy: Length | Number | None = None r: Length | Number | None = None fr: Length | Number | None = None fx: Length | Number | None = None fy: Length | Number | None = None @dataclass class Stop(Element, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop """ element_name = "stop" offset: Length | Number | None = None stop_opacity: Number | None = None stop_color: str | None = None class_: list[str] | None = None @dataclass class Pattern(Element, m.Color, m.GraphicsElementEvents, m.Graphics): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/pattern """ element_name = "pattern" externalResourcesRequired: bool | None = None viewBox: ViewBoxSpec | None = None preserveAspectRatio: PreserveAspectRatio | None = None patternUnits: Literal["userSpaceOnUse", "objectBoundingBox"] | None = None patternTransform: list[Transform] | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None patternContentUnits: Literal["userSpaceOnUse", "objectBoundingBox"] | None = None href: str | None = None class_: list[str] | None = None mask: str | None = None clip_path: str | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None @dataclass class ClipPath(Element, m.Color, m.Graphics): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/clipPath """ element_name = "clipPath" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None clipPathUnits: Literal["userSpaceOnUse", "objectBoundingBox"] | None = None class_: list[str] | None = None mask: str | None = None clip_path: str | None = None @dataclass class Mask(Element, m.Color, m.Graphics): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mask """ element_name = "mask" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None maskUnits: Literal["userSpaceOnUse", "objectBoundingBox"] | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None maskContentUnits: Literal["userSpaceOnUse", "objectBoundingBox"] | None = None class_: list[str] | None = None mask: str | None = None clip_path: str | None = None @dataclass class A(Element, m.Color, m.GraphicsElementEvents, m.Graphics): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/a """ element_name = "a" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None target: Literal["_self", "_parent", "_top", "_blank"] | None = None href: str | None = None class_: list[str] | None = None visibility: Literal["visible", "hidden", "inherit"] | None = None mask: str | None = None opacity: Number | None = None clip_path: str | None = None @dataclass class View(Element, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/view """ element_name = "view" externalResourcesRequired: bool | None = None viewBox: ViewBoxSpec | None = None preserveAspectRatio: PreserveAspectRatio | None = None @dataclass class Script(Element, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script """ element_name = "script" externalResourcesRequired: bool | None = None type: str | None = None href: str | None = None @dataclass class Animate(Element, m.Animation, m.Color, m.AnimationTiming, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animate """ element_name = "animate" externalResourcesRequired: bool | None = None keyPoints: str | None = None attributeName: str | None = None @dataclass class Set(Element, m.AnimationTiming, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/set """ element_name = "set" externalResourcesRequired: bool | None = None to: str | None = None min: str | None = None keyPoints: str | None = None attributeName: str | None = None href: str | None = None @dataclass class AnimateMotion(Element, m.Animation, m.AnimationTiming, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animateMotion """ element_name = "animateMotion" externalResourcesRequired: bool | None = None path: str | None = None keyPoints: str | None = None rotate: str | None = None origin: str | None = None @dataclass class MPath(Element, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mpath """ element_name = "mpath" externalResourcesRequired: bool | None = None href: str | None = None @dataclass class AnimateTransform(Element, m.Animation, m.AnimationTiming, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animateTransform """ element_name = "animateTransform" externalResourcesRequired: bool | None = None type: Literal["translate", "scale", "rotate", "skewX", "skewY"] | None = None keyPoints: str | None = None attributeName: str | None = None @dataclass class DefinitionSrc(Element): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/definition """ element_name = "definition-src" pass @dataclass class Metadata(Element, m.GraphicsElementEvents): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/metadata """ element_name = "metadata" pass @dataclass class ForeignObject(Element, m.Color, m.GraphicsElementEvents, m.Graphics): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject """ element_name = "foreignObject" externalResourcesRequired: bool | None = None transform: list[Transform] | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None content: str | None = None class_: list[str] | None = None vector_effect: Literal["none", "non-scaling-stroke", "non-scaling-size", "non-rotation", "fixed-position"] | None = None visibility: Literal["visible", "hidden", "inherit"] | None = None opacity: Number | None = None overflow: Literal["visible", "hidden", "scroll", "auto", "inherit"] | None = None @dataclass class Use(Element, m.GraphicsElementEvents, m.Color, m.Graphics, m.FillStroke): """ https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use """ element_name = "use" href: str | None = None class_: list[str] | None = None style: str | None = None transform: list[Transform] | None = None x: Length | Number | None = None y: Length | Number | None = None width: Length | Number | None = None height: Length | Number | None = None vector_effect: Literal["none", "non-scaling-stroke", "non-scaling-size", "non-rotation", "fixed-position"] | None = None opacity: Number | None = None clip_path: str | None = None mask: str | None = None fill_rule: Literal["evenodd", "nonzero", "inherit"] | None = None fill_opacity: Number | None = None fill: str | None = None