diff --git a/Computerkram/Python/argpase.md b/Computerkram/Python/argpase.md deleted file mode 100644 index 49a4864..0000000 --- a/Computerkram/Python/argpase.md +++ /dev/null @@ -1,385 +0,0 @@ -# argpase - ---- - -## 1. Grundidee von `argparse` - -`argparse` ist das Standardmodul in Python, um Kommandozeilen-Argumente zu definieren, zu parsen und automatisch Hilfe-/Usage-Texte zu erzeugen. - -Minimalbeispiel: - -```python -import argparse - -parser = argparse.ArgumentParser(description="Ein kleines Beispiel-CLI") -parser.add_argument("datei", help="Pfad zur Eingabedatei") -args = parser.parse_args() - -print(args.datei) -``` - -Aufruf: - -```bash -python script.py meine_datei.txt -``` - ---- - -## 2. Argumente definieren: `ArgumentParser.add_argument` - -### 2.1 Positionsargumente - -- Werden ohne führende `-` oder `--` angegeben. -- Reihenfolge ist relevant. - -```python -parser.add_argument("quelle", help="Quellpfad") -parser.add_argument("ziel", help="Zielpfad") -``` - -Aufruf: - -```bash -python script.py input.txt output.txt -``` - -Use-Case: - -- Pflichtwerte, die immer gebraucht werden (z.B. Eingabe- und Ausgabedatei). - ---- - -### 2.2 Optionale Argumente (Flags / Optionen) - -- Beginnen mit `-` bzw. `--`. -- Reihenfolge ist egal. -- Können Standardwerte haben. - -```python -parser.add_argument( - "-v", "--verbose", - action="store_true", - help="Ausführliche Ausgabe aktivieren" -) - -parser.add_argument( - "-n", "--anzahl", - type=int, - default=10, - help="Anzahl der Elemente (Standard: 10)" -) -``` - -Aufruf: - -```bash -python script.py input.txt --verbose --anzahl 5 -# oder kurz: -python script.py input.txt -v -n 5 -``` - -Use-Case: - -- Konfiguration, optionales Verhalten, Debug/Verbose-Flags, Parameter mit Default. - ---- - -## 3. Wichtige Parameter von `add_argument` - -### 3.1 `name` / `flags` - -- Beispiel: - - Positional: `"datei"` - - Optional: `"-v", "--verbose"` - -```python -parser.add_argument("datei") -parser.add_argument("-v", "--verbose") -``` - ---- - -### 3.2 `type` - -- Convertiert Eingabe in Typ. -- Validiert automatisch (bei falschem Typ Fehler + Hilfe). - -```python -parser.add_argument("--port", type=int, default=8080) -parser.add_argument("--faktor", type=float) -``` - -Use-Case: - -- Numerische Werte, Pfade, eigene Typen (z.B. `Path` aus `pathlib`). - ---- - -### 3.3 `default` - -- Standardwert, wenn Argument nicht übergeben wird. - -```python -parser.add_argument("--log-level", default="INFO") -``` - -Use-Case: - -- Sinnvolle Defaults, um CLI kompakt zu halten. - ---- - -### 3.4 `required` - -- Macht optionale Argumente zwingend erforderlich. - -```python -parser.add_argument("--config", required=True) -``` - -Use-Case: - -- Flags/Optionen, die zwingend gesetzt werden müssen (z.B. API-Key, Konfigdatei). - ---- - -### 3.5 `help` - -- Beschreibung für die `--help`-Ausgabe. - -```python -parser.add_argument("--mode", help="Betriebsmodus: fast oder safe") -``` - -Use-Case: - -- Dokumentation der Optionen (sehr wichtig für Benutzerfreundlichkeit). - ---- - -### 3.6 `choices` - -- Schränkt erlaubte Werte ein. - -```python -parser.add_argument( - "--mode", - choices=["fast", "safe"], - default="safe", - help="fast = schneller, safe = sicherer" -) -``` - -Use-Case: - -- Enum-ähnliche Optionen (z.B. `debug/info/warn/error`, `json/text`). - ---- - -### 3.7 `action` - -Steuert, was passiert, wenn das Argument gesetzt wird. - -Häufige Actions: - -1. `store` (Standard) - Speichert den Wert (z.B. `--port 8000` → `args.port = 8000`). -2. `store_true` / `store_false` - Boolean-Flag, das `True`/`False` setzt. - - ```python - parser.add_argument("-v", "--verbose", action="store_true") - ``` -3. `append` - Fügt mehrere Werte in eine Liste ein. - - ```python - parser.add_argument( - "-t", "--tag", - action="append", - help="Kann mehrfach verwendet werden" - ) - # Aufruf: --tag a --tag b -> args.tag = ["a", "b"] - ``` -4. `count` - Zählt, wie oft ein Flag verwendet wurde. - - ```python - parser.add_argument( - "-v", "--verbose", - action="count", - default=0, - help="Mehrfach verwenden für mehr Details" - ) - # -v -> 1, -vv -> 2 ... - ``` - -Use-Case: - -- Flags (bool), Mehrfachangaben (Listen), Verbosity-Level etc. - ---- - -### 3.8 `nargs` - -Gibt an, wie viele Werte zu einem Argument gehören. - -Typische Varianten: - -- `nargs=1` → eine Liste mit einem Element -- `nargs=2` → genau 2 Werte -- `nargs="+"` → mindestens ein Wert -- `nargs="*"` → beliebig viele (auch 0) - -```python -parser.add_argument("dateien", nargs="+", help="Eine oder mehrere Dateien") -parser.add_argument("--koordinaten", nargs=2, type=float, help="x y") -``` - -Use-Case: - -- Mehrere Dateien, Koordinaten, Listen von Werten. - ---- - -### 3.9 `metavar` - -- Steuert, wie das Argument im Help-Text angezeigt wird. - -```python -parser.add_argument( - "--output", - metavar="DATEI", - help="Ausgabedatei" -) -``` - -Use-Case: - -- Schöner formatierte Hilfe (statt generischer Namen). - ---- - -### 3.10 `dest` - -- Name des Attributes in `args`. - -```python -parser.add_argument("-o", "--output", dest="ausgabedatei") -# args.ausgabedatei -``` - -Use-Case: - -- Lesbare/konfliktfreie Python-Bezeichner, wenn CLI-Namen nicht ideal sind. - ---- - -## 4. Subkommandos: `subparsers` - -Für CLI-Tools mit mehreren Befehlen (ähnlich `git commit`, `git status`). - -```python -import argparse - -parser = argparse.ArgumentParser(prog="tool") -subparsers = parser.add_subparsers(dest="command", required=True) - -# Subkommando: "run" -run_parser = subparsers.add_parser("run", help="Job ausführen") -run_parser.add_argument("job_id", type=int) - -# Subkommando: "list" -list_parser = subparsers.add_parser("list", help="Jobs auflisten") -list_parser.add_argument("--status", choices=["open", "done"]) - -args = parser.parse_args() - -if args.command == "run": - print(f"Starte Job {args.job_id}") -elif args.command == "list": - print(f"Liste Jobs mit Status {args.status}") -``` - -Aufrufe: - -```bash -tool run 42 -tool list --status open -``` - -Use-Case: - -- Umfangreiche Tools mit verschiedenen Befehlen (z.B. Admin-Tools, Deployment-CLI). - ---- - -## 5. Automatische Hilfe und Usage - -`argparse` erzeugt automatisch `-h` / `--help`: - -```bash -python script.py --help -``` - -Du bekommst: - -- Beschreibung (`description`) -- Liste aller Argumente -- Default-Werte (wenn konfiguriert) -- Subkommandos (falls vorhanden) - -Beispiel: - -```python -parser = argparse.ArgumentParser( - description="Konvertiert Dateien in andere Formate." -) -``` - ---- - -## 6. Minimaler „Best-Practice“-Skeleton - -```python -import argparse - -def parse_args(): - parser = argparse.ArgumentParser( - description="Beispiel-Tool für argparse" - ) - - # Positionsargumente - parser.add_argument("eingabe", help="Eingabedatei") - - # Optionale Argumente - parser.add_argument( - "-o", "--output", - help="Ausgabedatei (Standard: stdout)" - ) - parser.add_argument( - "-v", "--verbose", - action="store_true", - help="Ausführliche Ausgabe" - ) - parser.add_argument( - "--mode", - choices=["fast", "safe"], - default="safe", - help="Verarbeitungsmodus (Standard: safe)" - ) - - return parser.parse_args() - -def main(): - args = parse_args() - if args.verbose: - print(f"Starte in Modus {args.mode} mit Eingabe {args.eingabe}") - # weitere Logik… - -if __name__ == "__main__": - main() -``` - ---- \ No newline at end of file diff --git a/Computerkram/Docker.md b/Docker.md similarity index 100% rename from Computerkram/Docker.md rename to Docker.md diff --git a/Computerkram/JavaScript/JavaScript Tutorial.md b/JavaScript/JavaScript Tutorial.md similarity index 100% rename from Computerkram/JavaScript/JavaScript Tutorial.md rename to JavaScript/JavaScript Tutorial.md diff --git a/Computerkram/KI Prompt Templates/Notiz (anbei) überarbeiten.md b/KI Prompt Templates/Notiz (anbei) überarbeiten.md similarity index 100% rename from Computerkram/KI Prompt Templates/Notiz (anbei) überarbeiten.md rename to KI Prompt Templates/Notiz (anbei) überarbeiten.md diff --git a/Computerkram/LibrechatAI.md b/LibrechatAI.md similarity index 100% rename from Computerkram/LibrechatAI.md rename to LibrechatAI.md diff --git a/Computerkram/Linux/AppImage Programme einrichten.md b/Linux/AppImage Programme einrichten.md similarity index 100% rename from Computerkram/Linux/AppImage Programme einrichten.md rename to Linux/AppImage Programme einrichten.md diff --git a/Computerkram/Linux/BASH Basics/BASH Basics.md b/Linux/BASH Basics/BASH Basics.md similarity index 100% rename from Computerkram/Linux/BASH Basics/BASH Basics.md rename to Linux/BASH Basics/BASH Basics.md diff --git a/Computerkram/Linux/BASH Basics/BASH Funktionen.md b/Linux/BASH Basics/BASH Funktionen.md similarity index 100% rename from Computerkram/Linux/BASH Basics/BASH Funktionen.md rename to Linux/BASH Basics/BASH Funktionen.md diff --git a/Computerkram/Linux/BASH Basics/Dateiberechtigungen.md b/Linux/BASH Basics/Dateiberechtigungen.md similarity index 100% rename from Computerkram/Linux/BASH Basics/Dateiberechtigungen.md rename to Linux/BASH Basics/Dateiberechtigungen.md diff --git a/Computerkram/Linux/BASH Basics/PATH und Alias.md b/Linux/BASH Basics/PATH und Alias.md similarity index 100% rename from Computerkram/Linux/BASH Basics/PATH und Alias.md rename to Linux/BASH Basics/PATH und Alias.md diff --git a/Computerkram/Linux/BASH Basics/Symlinks.md b/Linux/BASH Basics/Symlinks.md similarity index 100% rename from Computerkram/Linux/BASH Basics/Symlinks.md rename to Linux/BASH Basics/Symlinks.md diff --git a/Computerkram/Linux/BASH Basics/awk.md b/Linux/BASH Basics/awk.md similarity index 100% rename from Computerkram/Linux/BASH Basics/awk.md rename to Linux/BASH Basics/awk.md diff --git a/Computerkram/Linux/BASH Basics/find.md b/Linux/BASH Basics/find.md similarity index 100% rename from Computerkram/Linux/BASH Basics/find.md rename to Linux/BASH Basics/find.md diff --git a/Computerkram/Linux/BASH Basics/fstab Credentials.md b/Linux/BASH Basics/fstab Credentials.md similarity index 100% rename from Computerkram/Linux/BASH Basics/fstab Credentials.md rename to Linux/BASH Basics/fstab Credentials.md diff --git a/Computerkram/Linux/BASH Basics/grep.md b/Linux/BASH Basics/grep.md similarity index 100% rename from Computerkram/Linux/BASH Basics/grep.md rename to Linux/BASH Basics/grep.md diff --git a/Computerkram/Linux/BASH Basics/ls.md b/Linux/BASH Basics/ls.md similarity index 100% rename from Computerkram/Linux/BASH Basics/ls.md rename to Linux/BASH Basics/ls.md diff --git a/Computerkram/Linux/BASH Basics/lsblk.md b/Linux/BASH Basics/lsblk.md similarity index 100% rename from Computerkram/Linux/BASH Basics/lsblk.md rename to Linux/BASH Basics/lsblk.md diff --git a/Computerkram/Linux/BASH Basics/rsync.md b/Linux/BASH Basics/rsync.md similarity index 100% rename from Computerkram/Linux/BASH Basics/rsync.md rename to Linux/BASH Basics/rsync.md diff --git a/Computerkram/Linux/BASH Basics/sed.md b/Linux/BASH Basics/sed.md similarity index 100% rename from Computerkram/Linux/BASH Basics/sed.md rename to Linux/BASH Basics/sed.md diff --git a/Computerkram/Linux/BASH Basics/tar.md b/Linux/BASH Basics/tar.md similarity index 100% rename from Computerkram/Linux/BASH Basics/tar.md rename to Linux/BASH Basics/tar.md diff --git a/Computerkram/Linux/BASH Skripte/BASH Skript mit Argumenten und Weiterleitung.md b/Linux/BASH Skripte/BASH Skript mit Argumenten und Weiterleitung.md similarity index 100% rename from Computerkram/Linux/BASH Skripte/BASH Skript mit Argumenten und Weiterleitung.md rename to Linux/BASH Skripte/BASH Skript mit Argumenten und Weiterleitung.md diff --git a/Computerkram/Linux/BASH Skripte/Zugriff auf den Skript-Pfad in BASH.md b/Linux/BASH Skripte/Zugriff auf den Skript-Pfad in BASH.md similarity index 100% rename from Computerkram/Linux/BASH Skripte/Zugriff auf den Skript-Pfad in BASH.md rename to Linux/BASH Skripte/Zugriff auf den Skript-Pfad in BASH.md diff --git a/Computerkram/Linux/Boot Menü anpassen.md b/Linux/Boot Menü anpassen.md similarity index 100% rename from Computerkram/Linux/Boot Menü anpassen.md rename to Linux/Boot Menü anpassen.md diff --git a/Computerkram/Linux/Bootfähigen USB-Stick mit `dd` erstellen.md b/Linux/Bootfähigen USB-Stick mit `dd` erstellen.md similarity index 100% rename from Computerkram/Linux/Bootfähigen USB-Stick mit `dd` erstellen.md rename to Linux/Bootfähigen USB-Stick mit `dd` erstellen.md diff --git a/Computerkram/Linux/Disable KVM for VirtualBox.md b/Linux/Disable KVM for VirtualBox.md similarity index 100% rename from Computerkram/Linux/Disable KVM for VirtualBox.md rename to Linux/Disable KVM for VirtualBox.md diff --git a/Computerkram/Linux/Displaylink Installation.md b/Linux/Displaylink Installation.md similarity index 100% rename from Computerkram/Linux/Displaylink Installation.md rename to Linux/Displaylink Installation.md diff --git a/Computerkram/Linux/Hyprland/Stow mit Logik.md b/Linux/Hyprland/Stow mit Logik.md similarity index 100% rename from Computerkram/Linux/Hyprland/Stow mit Logik.md rename to Linux/Hyprland/Stow mit Logik.md diff --git a/Computerkram/Linux/Linux .desktop Dateien.md b/Linux/Linux .desktop Dateien.md similarity index 100% rename from Computerkram/Linux/Linux .desktop Dateien.md rename to Linux/Linux .desktop Dateien.md diff --git a/Computerkram/Linux/Linux Drum Plugins.md b/Linux/Linux Drum Plugins.md similarity index 100% rename from Computerkram/Linux/Linux Drum Plugins.md rename to Linux/Linux Drum Plugins.md diff --git a/Computerkram/Linux/Linux Konsole Zeichen löschen.md b/Linux/Linux Konsole Zeichen löschen.md similarity index 100% rename from Computerkram/Linux/Linux Konsole Zeichen löschen.md rename to Linux/Linux Konsole Zeichen löschen.md diff --git a/Computerkram/Linux/Linux Musikprogramme.md b/Linux/Linux Musikprogramme.md similarity index 100% rename from Computerkram/Linux/Linux Musikprogramme.md rename to Linux/Linux Musikprogramme.md diff --git a/Computerkram/Linux/Linux Terminal Shortcut.md b/Linux/Linux Terminal Shortcut.md similarity index 100% rename from Computerkram/Linux/Linux Terminal Shortcut.md rename to Linux/Linux Terminal Shortcut.md diff --git a/Computerkram/Linux/Linux.md b/Linux/Linux.md similarity index 100% rename from Computerkram/Linux/Linux.md rename to Linux/Linux.md diff --git a/Computerkram/Linux/Meine Config.md b/Linux/Meine Config.md similarity index 100% rename from Computerkram/Linux/Meine Config.md rename to Linux/Meine Config.md diff --git a/Computerkram/Linux/Navidrome mit Strawberry.md b/Linux/Navidrome mit Strawberry.md similarity index 100% rename from Computerkram/Linux/Navidrome mit Strawberry.md rename to Linux/Navidrome mit Strawberry.md diff --git a/Computerkram/Linux/Navidrome.md b/Linux/Navidrome.md similarity index 100% rename from Computerkram/Linux/Navidrome.md rename to Linux/Navidrome.md diff --git a/Computerkram/Linux/Paketinstallation in Linux-Distributionen.md b/Linux/Paketinstallation in Linux-Distributionen.md similarity index 100% rename from Computerkram/Linux/Paketinstallation in Linux-Distributionen.md rename to Linux/Paketinstallation in Linux-Distributionen.md diff --git a/Computerkram/Linux/SSH Verbindung in Linux.md b/Linux/SSH Verbindung in Linux.md similarity index 100% rename from Computerkram/Linux/SSH Verbindung in Linux.md rename to Linux/SSH Verbindung in Linux.md diff --git a/Computerkram/Linux/SSH-Schlüssel erzeugen.md b/Linux/SSH-Schlüssel erzeugen.md similarity index 100% rename from Computerkram/Linux/SSH-Schlüssel erzeugen.md rename to Linux/SSH-Schlüssel erzeugen.md diff --git a/Computerkram/Linux/Strawberry.md b/Linux/Strawberry.md similarity index 100% rename from Computerkram/Linux/Strawberry.md rename to Linux/Strawberry.md diff --git a/Computerkram/Linux/Subsonic-API.md b/Linux/Subsonic-API.md similarity index 100% rename from Computerkram/Linux/Subsonic-API.md rename to Linux/Subsonic-API.md diff --git a/Computerkram/Linux/Synchronisation & Backup.md b/Linux/Synchronisation & Backup.md similarity index 100% rename from Computerkram/Linux/Synchronisation & Backup.md rename to Linux/Synchronisation & Backup.md diff --git a/Computerkram/Linux/Timeshift.md b/Linux/Timeshift.md similarity index 100% rename from Computerkram/Linux/Timeshift.md rename to Linux/Timeshift.md diff --git a/Computerkram/Linux/USB-Stick unter Linux per Bash formatieren.md b/Linux/USB-Stick unter Linux per Bash formatieren.md similarity index 100% rename from Computerkram/Linux/USB-Stick unter Linux per Bash formatieren.md rename to Linux/USB-Stick unter Linux per Bash formatieren.md diff --git a/Computerkram/Linux/VIM Cheat Sheet.md b/Linux/VIM Cheat Sheet.md similarity index 100% rename from Computerkram/Linux/VIM Cheat Sheet.md rename to Linux/VIM Cheat Sheet.md diff --git a/Computerkram/Linux/Wine.md b/Linux/Wine.md similarity index 100% rename from Computerkram/Linux/Wine.md rename to Linux/Wine.md diff --git a/Computerkram/Linux/mein fstab.md b/Linux/mein fstab.md similarity index 100% rename from Computerkram/Linux/mein fstab.md rename to Linux/mein fstab.md diff --git a/Computerkram/Linux/snapper.md b/Linux/snapper.md similarity index 100% rename from Computerkram/Linux/snapper.md rename to Linux/snapper.md diff --git a/Computerkram/Open WebUI.md b/Open WebUI.md similarity index 100% rename from Computerkram/Open WebUI.md rename to Open WebUI.md diff --git a/Computerkram/Webseiten, selbstgehostet/Build a Scalable Flask Web Project From Scratch (Real Python).md b/Webseiten, selbstgehostet/Build a Scalable Flask Web Project From Scratch (Real Python).md similarity index 100% rename from Computerkram/Webseiten, selbstgehostet/Build a Scalable Flask Web Project From Scratch (Real Python).md rename to Webseiten, selbstgehostet/Build a Scalable Flask Web Project From Scratch (Real Python).md diff --git a/Computerkram/Webseiten, selbstgehostet/Flask Dummy Webseite über WWW (Chatbot Session).md b/Webseiten, selbstgehostet/Flask Dummy Webseite über WWW (Chatbot Session).md similarity index 100% rename from Computerkram/Webseiten, selbstgehostet/Flask Dummy Webseite über WWW (Chatbot Session).md rename to Webseiten, selbstgehostet/Flask Dummy Webseite über WWW (Chatbot Session).md diff --git a/Computerkram/Webseiten, selbstgehostet/Webdesign Start - aller Anfang ist schwer.md b/Webseiten, selbstgehostet/Webdesign Start - aller Anfang ist schwer.md similarity index 100% rename from Computerkram/Webseiten, selbstgehostet/Webdesign Start - aller Anfang ist schwer.md rename to Webseiten, selbstgehostet/Webdesign Start - aller Anfang ist schwer.md diff --git a/glossar/ACID-Transaktionen.md b/datenbanken/ACID-Transaktionen.md old mode 100755 new mode 100644 similarity index 100% rename from glossar/ACID-Transaktionen.md rename to datenbanken/ACID-Transaktionen.md diff --git a/glossar/CTEs.md b/datenbanken/CTEs.md old mode 100755 new mode 100644 similarity index 100% rename from glossar/CTEs.md rename to datenbanken/CTEs.md diff --git a/glossar/MVCC.md b/datenbanken/MVCC.md old mode 100755 new mode 100644 similarity index 100% rename from glossar/MVCC.md rename to datenbanken/MVCC.md diff --git a/glossar/Materialized Views.md b/datenbanken/Materialized Views.md old mode 100755 new mode 100644 similarity index 100% rename from glossar/Materialized Views.md rename to datenbanken/Materialized Views.md diff --git a/Computerkram/Navidrome Rescan.md b/etc/Navidrome Rescan.md similarity index 100% rename from Computerkram/Navidrome Rescan.md rename to etc/Navidrome Rescan.md diff --git a/Computerkram/etc/fstab - Bsp buntes_monster.md b/etc/fstab - Bsp buntes_monster.md similarity index 100% rename from Computerkram/etc/fstab - Bsp buntes_monster.md rename to etc/fstab - Bsp buntes_monster.md diff --git a/Computerkram/git/Git_Fork_Guide.md b/git/Git_Fork_Guide.md similarity index 100% rename from Computerkram/git/Git_Fork_Guide.md rename to git/Git_Fork_Guide.md diff --git a/Computerkram/git/Ignore & Untrack.md b/git/Ignore & Untrack.md similarity index 100% rename from Computerkram/git/Ignore & Untrack.md rename to git/Ignore & Untrack.md diff --git a/Computerkram/neovim-setup.md b/neovim-setup.md similarity index 100% rename from Computerkram/neovim-setup.md rename to neovim-setup.md diff --git a/sync-at-work.sh b/sync-at-work.sh index e226039..7f8b7ef 100755 --- a/sync-at-work.sh +++ b/sync-at-work.sh @@ -1 +1,6 @@ -unison "$HOME/links/mathias_dfine_vault/Know-How/" "$HOME/it-know-how/" -perms 0 +unison \ + "$HOME/links/mathias_dfine_vault/Know-How/" \ + "$HOME/it-know-how/" \ + -perms 0 \ + -ignore 'Path .git' \ + -ignore 'Regex .*\.sh$'