ANN: PyDDF Python Herbst Sprint 2025

eGenix Team <[email protected]> Mon, 3 Nov 2025 14:35:51 +0100
Newsgroups gmane.comp.python.egenix.user
Organization eGenix.com
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============7161817679951536083==
Content-Type: multipart/alternative;
 boundary="------------XcOv5vkm9q1QNnQTOl12SSf4"
Content-Language: en-US, de-DE

This is a multi-part message in MIME format.
--------------XcOv5vkm9q1QNnQTOl12SSf4
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


/This announcement is in German since it targets a local user 
group//meeting in Düsseldorf, Germany/


    Ankündigung

Python Meeting Herbst Sprint 2025 
<https://www.meetup.com/python-meeting-dusseldorf/events/311837125/> in
Düsseldorf <http://www.duesseldorf.de/>

Samstag, 15.11.2025, 10:00-18:00 Uhr
Sonntag, 16.11.2025. 10:00-18:00 Uhr

/Atos Information Technology GmbH <https://atos.net/de/deutschland>/, Am 
Seestern 1, 40547 Düsseldorf


    Informationen

Das Python Meeting Düsseldorf (PyDDF) <http://pyddf.de/> veranstaltet 
mit freundlicher Unterstützung von Atos Deutschland 
<https://eviden.com/de-de/>ein Python Sprint Wochenende.

Der Sprint findet am Wochenende 15/16.11.2025 in der Atos Niederlassung, 
Am Seestern 1, in Düsseldorf statt.

  * Sprint Ort in Google Maps <https://goo.gl/maps/urWcf3HxXuXxQskf7>

Folgende Themengebiete sind als Anregung bereits angedacht:

  * *AI/ML:* Text to Speech lokal umsetzen
  * *AI/ML:* pydantic-ai mit lokalen Modellen laufen lassen
  * *eRechnung:* Fakur-X Bibliothek weiterentwickeln
  * *DevOps / Home Automation:* Ansible und Home Assistant
  * *Spotify2Deezer:* Konverter für den Umstieg von Spotify auf Deezer
  * *Neue Web UIs / RAD Tools:* NiceGUI, Lona, Air ausprobieren und
    vergleichen

Natürlich können die Teilnehmenden weitere Themen vorschlagen und umsetzen.


    Anmeldung, Kosten und weitere Infos

Alles weitere und die Anmeldung findet Ihr auf der Meetup Sprint Seite:

  * *Python Herbst Sprint & Hackathon in Düsseldorf*
    <https://www.meetup.com/python-meeting-dusseldorf/events/311837125/>

*WICHTIG*: Ohne Anmeldung können wir den Gebäudezugang nicht 
vorbereiten. Eine spontane Anmeldung am Sprint Tag wird daher vermutlich 
nicht funktionieren.

Teilnehmer sollten sich zudem in der PyDDF Telegram Gruppe registrieren, 
da wir uns dort koordinieren:

  * *PyDDF Telegram Gruppe <https://t.me/pyddf>*


    Über das Python Meeting Düsseldorf

Das Python Meeting Düsseldorf <http://pyddf.de/> ist eine regelmäßige 
Veranstaltung in Düsseldorf, die sich an Python-Begeisterte aus der 
Region wendet.

Einen guten Überblick über die Vorträge bietet unser PyDDF YouTube-Kanal 
<http://www.youtube.com/pyddf/>, auf dem wir Videos der Vorträge nach 
den Meetings veröffentlichen.

Veranstaltet wird das Meeting von der eGenix.com GmbH 
<https://www.egenix.com/>, Langenfeld, in Zusammenarbeit mit Clark 
Consulting & Research <http://www.clark-consulting.eu/>, Düsseldorf.

Viel Spaß !

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Experts (#1, Nov 03 2025)
>>> Python Projects, Coaching and Support ...    https://www.egenix.com/
>>> Python Product Development ...        https://consulting.egenix.com/
________________________________________________________________________

::: We implement business ideas - efficiently in both time and costs :::
     
    eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
     D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
            Registered at Amtsgericht Duesseldorf: HRB 46611
                https://www.egenix.com/company/contact/
                      https://www.malemburg.com/

--------------XcOv5vkm9q1QNnQTOl12SSf4
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF=
-8">
  </head>
  <body>
    <br>
    <i>This announcement is in German since it targets a local user
      group</i><i> meeting in D=C3=BCsseldorf, Germany</i><br>
    <br>
    <h2>Ank=C3=BCndigung</h2>
    <p style=3D"text-align: center; font-size: 1.5em;"><a
href=3D"https://www.meetup.com/python-meeting-dusseldorf/events/311837125=
/"
        moz-do-not-send=3D"true">Python Meeting Herbst Sprint 2025</a> in=
<br>
      <a href=3D"http://www.duesseldorf.de/" moz-do-not-send=3D"true">D=C3=
=BCsseldorf</a><br>
    </p>
    <p style=3D"text-align: center; font-weight: bold;">Samstag,
      15.11.2025, 10:00-18:00 Uhr<br>
      Sonntag, 16.11.2025. 10:00-18:00 Uhr</p>
    <p style=3D"text-align: center; font-weight: bold;" align=3D"left"> <=
em><a
          href=3D"https://atos.net/de/deutschland" target=3D"_blank"
          class=3D"link" rel=3D"nofollow ugc" moz-do-not-send=3D"true">At=
os
          Information Technology GmbH</a></em>, Am Seestern 1, 40547
      D=C3=BCsseldorf</p>
    <h2>Informationen</h2>
    Das <a href=3D"http://pyddf.de/" moz-do-not-send=3D"true">Python
      Meeting D=C3=BCsseldorf (PyDDF)</a> veranstaltet mit freundlicher
    Unterst=C3=BCtzung von <a href=3D"https://eviden.com/de-de/"
      moz-do-not-send=3D"true">Atos Deutschland </a>ein Python Sprint
    Wochenende.<br>
    <br>
    Der Sprint findet am Wochenende 15/16.11.2025 in der Atos
    Niederlassung, Am Seestern 1, in D=C3=BCsseldorf statt.
    <ul>
      <li><a href=3D"https://goo.gl/maps/urWcf3HxXuXxQskf7"
          moz-do-not-send=3D"true">Sprint Ort in Google Maps</a><br>
      </li>
    </ul>
    Folgende Themengebiete sind als Anregung bereits angedacht:<br>
    <ul>
      <li
style=3D"box-sizing: border-box; border: 0px solid currentcolor; --tw-tra=
nslate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-sk=
ew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var=
(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rot=
ate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-sca=
le-x)) scaleY(var(--tw-scale-y)); --tw-ring-inset: var(--tw-empty,/*!*/ /=
*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ri=
ng-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-r=
ing-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #=
0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-e=
mpty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grays=
cale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ =
/*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw=
-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-s=
hadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-=
brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) v=
ar(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);=
 --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightnes=
s: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*=
!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-ba=
ckdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var=
(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!=
*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-s=
epia: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-filter: var(--tw-backdro=
p-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--t=
w-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-inv=
ert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-back=
drop-sepia);"><b>AI/ML:</b>
        Text to Speech lokal umsetzen</li>
      <li
style=3D"box-sizing: border-box; border: 0px solid currentcolor; --tw-tra=
nslate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-sk=
ew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var=
(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rot=
ate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-sca=
le-x)) scaleY(var(--tw-scale-y)); --tw-ring-inset: var(--tw-empty,/*!*/ /=
*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ri=
ng-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-r=
ing-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #=
0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-e=
mpty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grays=
cale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ =
/*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw=
-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-s=
hadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-=
brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) v=
ar(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);=
 --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightnes=
s: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*=
!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-ba=
ckdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var=
(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!=
*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-s=
epia: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-filter: var(--tw-backdro=
p-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--t=
w-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-inv=
ert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-back=
drop-sepia);"><b>AI/ML:</b>
        pydantic-ai mit lokalen Modellen laufen lassen</li>
      <li
style=3D"box-sizing: border-box; border: 0px solid currentcolor; --tw-tra=
nslate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-sk=
ew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var=
(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rot=
ate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-sca=
le-x)) scaleY(var(--tw-scale-y)); --tw-ring-inset: var(--tw-empty,/*!*/ /=
*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ri=
ng-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-r=
ing-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #=
0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-e=
mpty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grays=
cale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ =
/*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw=
-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-s=
hadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-=
brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) v=
ar(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);=
 --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightnes=
s: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*=
!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-ba=
ckdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var=
(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!=
*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-s=
epia: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-filter: var(--tw-backdro=
p-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--t=
w-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-inv=
ert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-back=
drop-sepia);"><b>eRechnung:</b>
        Fakur-X Bibliothek weiterentwickeln</li>
      <li
style=3D"box-sizing: border-box; border: 0px solid currentcolor; --tw-tra=
nslate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-sk=
ew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var=
(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rot=
ate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-sca=
le-x)) scaleY(var(--tw-scale-y)); --tw-ring-inset: var(--tw-empty,/*!*/ /=
*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ri=
ng-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-r=
ing-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #=
0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-e=
mpty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grays=
cale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ =
/*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw=
-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-s=
hadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-=
brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) v=
ar(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);=
 --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightnes=
s: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*=
!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-ba=
ckdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var=
(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!=
*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-s=
epia: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-filter: var(--tw-backdro=
p-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--t=
w-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-inv=
ert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-back=
drop-sepia);"><b>DevOps
          / Home Automation:</b> Ansible und Home Assistant</li>
      <li
style=3D"box-sizing: border-box; border: 0px solid currentcolor; --tw-tra=
nslate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-sk=
ew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var=
(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rot=
ate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-sca=
le-x)) scaleY(var(--tw-scale-y)); --tw-ring-inset: var(--tw-empty,/*!*/ /=
*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ri=
ng-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-r=
ing-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #=
0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-e=
mpty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grays=
cale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ =
/*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw=
-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-s=
hadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-=
brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) v=
ar(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);=
 --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightnes=
s: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*=
!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-ba=
ckdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var=
(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!=
*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-s=
epia: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-filter: var(--tw-backdro=
p-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--t=
w-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-inv=
ert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-back=
drop-sepia);"><b>Spotify2Deezer:</b>
        Konverter f=C3=BCr den Umstieg von Spotify auf Deezer</li>
      <li
style=3D"box-sizing: border-box; border: 0px solid currentcolor; --tw-tra=
nslate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-sk=
ew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-transform: translateX(var=
(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rot=
ate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-sca=
le-x)) scaleY(var(--tw-scale-y)); --tw-ring-inset: var(--tw-empty,/*!*/ /=
*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ri=
ng-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-r=
ing-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #=
0000; --tw-blur: var(--tw-empty,/*!*/ /*!*/); --tw-brightness: var(--tw-e=
mpty,/*!*/ /*!*/); --tw-contrast: var(--tw-empty,/*!*/ /*!*/); --tw-grays=
cale: var(--tw-empty,/*!*/ /*!*/); --tw-hue-rotate: var(--tw-empty,/*!*/ =
/*!*/); --tw-invert: var(--tw-empty,/*!*/ /*!*/); --tw-saturate: var(--tw=
-empty,/*!*/ /*!*/); --tw-sepia: var(--tw-empty,/*!*/ /*!*/); --tw-drop-s=
hadow: var(--tw-empty,/*!*/ /*!*/); --tw-filter: var(--tw-blur) var(--tw-=
brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) v=
ar(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);=
 --tw-backdrop-blur: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-brightnes=
s: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-contrast: var(--tw-empty,/*=
!*/ /*!*/); --tw-backdrop-grayscale: var(--tw-empty,/*!*/ /*!*/); --tw-ba=
ckdrop-hue-rotate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-invert: var=
(--tw-empty,/*!*/ /*!*/); --tw-backdrop-opacity: var(--tw-empty,/*!*/ /*!=
*/); --tw-backdrop-saturate: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-s=
epia: var(--tw-empty,/*!*/ /*!*/); --tw-backdrop-filter: var(--tw-backdro=
p-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--t=
w-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-inv=
ert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-back=
drop-sepia);"><b>Neue
          Web UIs / RAD Tools:</b> NiceGUI, Lona, Air ausprobieren und
        vergleichen<br>
      </li>
    </ul>
    Nat=C3=BCrlich k=C3=B6nnen die Teilnehmenden weitere Themen vorschlag=
en und
    umsetzen.
    <h2>Anmeldung, Kosten und weitere Infos<br>
    </h2>
    <p>Alles weitere und die Anmeldung findet Ihr auf der Meetup Sprint
      Seite:</p>
    <p> </p>
    <ul>
      <li><a
href=3D"https://www.meetup.com/python-meeting-dusseldorf/events/311837125=
/"
          moz-do-not-send=3D"true"><b>Python Herbst Sprint &amp; Hackatho=
n
            in D=C3=BCsseldorf</b></a><br>
      </li>
    </ul>
    <b>WICHTIG</b>: Ohne Anmeldung k=C3=B6nnen wir den Geb=C3=A4udezugang=
 nicht
    vorbereiten. Eine spontane Anmeldung am Sprint Tag wird daher
    vermutlich nicht funktionieren.<br>
    <br>
    Teilnehmer sollten sich zudem in der PyDDF Telegram Gruppe
    registrieren, da wir uns dort koordinieren:<br>
    <ul>
      <li><b><a href=3D"https://t.me/pyddf" moz-do-not-send=3D"true">PyDD=
F
            Telegram Gruppe</a></b></li>
    </ul>
    <h2>=C3=9Cber das Python Meeting D=C3=BCsseldorf</h2>
    <p>Das <a href=3D"http://pyddf.de/" moz-do-not-send=3D"true">Python
        Meeting D=C3=BCsseldorf</a> ist eine regelm=C3=A4=C3=9Fige Verans=
taltung in
      D=C3=BCsseldorf, die sich an Python-Begeisterte aus der Region wend=
et.</p>
    Einen guten =C3=9Cberblick =C3=BCber die Vortr=C3=A4ge bietet unser <=
a
      style=3D"font-weight: bold;" href=3D"http://www.youtube.com/pyddf/"=

      moz-do-not-send=3D"true">PyDDF YouTube-Kanal</a>, auf dem wir Video=
s
    der Vortr=C3=A4ge nach den Meetings ver=C3=B6ffentlichen.<br>
    <p>Veranstaltet wird das Meeting von der <a
        href=3D"https://www.egenix.com/" moz-do-not-send=3D"true">eGenix.=
com
        GmbH</a>, Langenfeld, in Zusammenarbeit mit <a
        href=3D"http://www.clark-consulting.eu/" moz-do-not-send=3D"true"=
>Clark
        Consulting &amp; Research</a>, D=C3=BCsseldorf.<br>
    </p>
    Viel Spa=C3=9F !
    <pre class=3D"moz-signature" cols=3D"72">--=20
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Experts (#1, Nov 03 2025)
&gt;&gt;&gt; Python Projects, Coaching and Support ...    <a
    class=3D"moz-txt-link-freetext" href=3D"https://www.egenix.com/"
    moz-do-not-send=3D"true">https://www.egenix.com/</a>
&gt;&gt;&gt; Python Product Development ...        <a
    class=3D"moz-txt-link-freetext" href=3D"https://consulting.egenix.com=
/"
    moz-do-not-send=3D"true">https://consulting.egenix.com/</a>
________________________________________________________________________

::: We implement business ideas - efficiently in both time and costs :::
   =20
   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               <a class=3D"moz-txt-link-freetext"
    href=3D"https://www.egenix.com/company/contact/"
    moz-do-not-send=3D"true">https://www.egenix.com/company/contact/</a>
                     <a class=3D"moz-txt-link-freetext"
    href=3D"https://www.malemburg.com/" moz-do-not-send=3D"true">https://=
www.malemburg.com/</a>

</pre>
  </body>
</html>

--------------XcOv5vkm9q1QNnQTOl12SSf4--


--===============7161817679951536083==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


_______________________________________________________________________
eGenix.com User Mailing List                     http://www.egenix.com/
https://lists.egenix.com/mailman/listinfo/egenix-users

--===============7161817679951536083==--