Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found

Cible

Sélectionner le projet cible
  • fossardchristophe/nsilo
  • kuniansamuel/nsi
  • Lycee-Cezanne-NSI/nsi-projet-site
  • nsiforges76/swc-pnav
  • nsi-p-corneille/pyodide-mkdocs-theme-review
  • fjunier/snt
  • avenel_sylvain/test-forge-sa
  • jcottin/eval-nsi
  • deleuphilippe/test-phi
  • chardine_marc_aurelien/nsi-premiere-chardine
  • maybeflush/site-de-maybeflush
  • nsicurie/exercices-experts
  • amislanghe/nsi-terminale
  • pdupuits/1-nsi-lakanal
  • profjahier/pyxel
  • max_cholley/enessite
  • moyivan/pyodide-mkdocs-theme-review
  • profpabloneruda/pablo-neruda-nsi
  • doduyrat/cpge-mpi
  • mbloch/python-pyodide-mkdocs
  • le-coin-de-rapha-l/essai-de-raphael
  • aimeeric/pyodide-mkdocs-theme-review
  • agostinoluca/pyodide-mkdocs-theme-review
  • vroullier/2024-intro-forge
  • mkdocs-david/site-web-version-pyodide-mkdocs-theme
  • nsicurie/nsi
  • cournill/nsi-lycee-prevert-pont-audemer
  • docs/modeles/pyodide-mkdocs-theme-review
  • rthibaudeau/site
  • azzizaxavier/pyodide-mkdocs-theme-review
  • dominguezanne/site-modele-forge
  • fjunier/qcm-nsi-snt-maths
  • nativelfabrice/info-cpge
  • mezeray-nsi/site-web-formation-nsi
  • bergson-paris/pyodide-mkdocs-theme-review
  • cyril.thuillier-hamel/term-nsi-honfleur
  • jdleroy/mon-essai-de-site-web
  • delphine-nunez/terminales-maths
  • dkany/site-daphne-kany
  • nsi-cornat/essai-fork
  • janson-paris/sbt-nsi-1-ere
  • nsi-guehenno/cours-nsi
  • thirionlaurent/nsi-lycee-jean-hyppolite-jonzac
  • nsinormandie/exemplej1
  • jmdemouy/cours
  • ydyd/cours-nsi
  • profjahier_test_01/site-test-01
  • initpoo/decouverte-de-la-programmation-orientee-objet
  • devedeud/essai-forge-dd
  • stvalnsi/mon-projet
  • llaadu/lla_ex
  • spy/snt-nsi
  • mcoilhac/site-demo
  • glc-nsi/cours-avec-exercices-python
  • Lycee-Cezanne-NSI/nsi-projet
  • laura-fleron/ros-docu
  • initpoo/pyodide-mkdocs-theme-review
  • charpentierronan/pyodide-mkdocs-theme-review
  • mezeray-nsi/formation-nsi-copie-du-site
  • nsi-fresnel/nsi_fresnel
  • nsinormandie/2024-intro-forge
  • test01072024/test-01072020-d-apres-pyodide-mkdocs-theme
  • madeceric/site-avec-pyodide-mkdocs-theme
  • sekowskijean-jacques/python-cours-et-exercices
  • profjahier/nsi-terminale
  • profjahier/nsi-premiere
  • BenDup/traitement-d-image-python
  • essais/term-nsi-honfleur
  • mcoilhac/sio-2-maths-approfondies
  • lefebvre05/cours-de-nsi-rey
  • tfontanet/terminale
  • ybousba/snt-en-egypte
  • olaf_le_viking/nsi-anguier
  • nieduziakamaury/ansi
  • lycee_pgdg_paris/pyodide-mkdocs-theme-review
  • profpabloneruda/tnsi-lycee-pablo-neruda
  • delphine-nunez/2-gt-maths-snt
  • mcoilhac/sio-1-maths-approfondies
  • lp-ameublement-revel/ERA-TMA-TFBMA
79 résultats
Afficher les modifications
Ce diff est replié.
# Modified version of Brython's SVG module
# Author: Romain Casati
# License: GPL v3 or higher
from __future__ import annotations
_svg_ns = "http://www.w3.org/2000/svg"
_xlink_ns = "http://www.w3.org/1999/xlink"
_svg_tags = [
"a",
"altGlyph",
"altGlyphDef",
"altGlyphItem",
"animate",
"animateColor",
"animateMotion",
"animateTransform",
"circle",
"clipPath",
"color_profile", # instead of color-profile
"cursor",
"defs",
"desc",
"ellipse",
"feBlend",
"foreignObject", # patch to enable foreign objects
"g",
"image",
"line",
"linearGradient",
"marker",
"mask",
"path",
"pattern",
"polygon",
"polyline",
"radialGradient",
"rect",
"set",
"stop",
"svg",
"text",
"tref",
"tspan",
"use",
]
class Element:
def __init__(self, tag: str, ns=None, value=None):
self._tag = tag
self._value = value
self._ns = ns
self._attributes: dict[str, str] = {}
self._children: list[Element] = []
# this is mandatory to display svg properly
if tag == "svg" and ns is not None:
self.setAttribute("xmlns", ns)
def setAttribute(self, attribute: str, value: str):
self.setAttributeNS(None, attribute, value)
def setAttributeNS(self, ns: str | None, attribute: str, value: str):
key = attribute
if ns is not None:
key = f"{ns}:{key}"
self._attributes[key] = value
def appendChild(self, child: Element):
self._children.append(child)
def removeChild(self, other: Element):
self._children.remove(other)
def addEventListener(self, event, callback):
pass
def render_attributes(self) -> str:
# remove .0 part for int
def filter(x):
if isinstance(x, float) and int(x) == x:
x = int(x)
return x
return " ".join(f'{k}="{filter(v)}"' for k, v in self._attributes.items())
def __str__(self) -> str:
open_tag = f"<{self._tag} {self.render_attributes()}>"
close_tag = f"</{self._tag}>"
content = "".join(str(e) for e in self._children)
if self._value is not None:
content += self._value
return f"{open_tag}{content}{close_tag}"
def reduire_animation(self):
if "dur" in self._attributes: # On réduit le temps de l'animation
self._attributes["dur"] = " 1ms"
for elem in self._children:
elem.reduire_animation()
def _tag_func(tag):
def func(*args, **kwargs):
node = Element(tag, ns=_svg_ns)
for arg in args:
if isinstance(arg, (str, int, float)):
arg = Element("text", value=str(arg))
node.appendChild(arg)
for key, value in kwargs.items():
key = key.lower()
if key[0:2] == "on":
# Event binding passed as argument "onclick", "onfocus"...
# Better use method bind of DOMNode objects
node.addEventListener(key[2:], value)
elif key == "style":
node.setAttribute(
"style", ";".join(f"{k}: {v}" for k, v in value.items())
)
elif "href" in key:
node.setAttributeNS(_xlink_ns, "href", value)
elif value is not False:
# option.selected=false sets it to true :-)
node.setAttributeNS(None, key.replace("_", "-"), value)
return node
return func
for tag in _svg_tags:
vars()[tag] = _tag_func(tag)