Heim >Backend-Entwicklung >Python-Tutorial >Ein praktischer Ansatz für TOML-Dateien und Remote-Zweigstellenverwaltung

Ein praktischer Ansatz für TOML-Dateien und Remote-Zweigstellenverwaltung

Susan Sarandon
Susan SarandonOriginal
2024-10-05 08:09:29927Durchsuche

A Practical Approach to TOML Files and Remote Branch Management

Diese Woche hatte ich die Gelegenheit, an TOML-Konfigurationsdateien zu arbeiten und eine an meinem Repository vorgenommene Änderung zu überprüfen, indem ich die Änderungen lokal aus einem Zweig meines Projekts zog

Was sind TOML-Dateien?

TOML (Tom's Obvious Minimal Language) ist ein Konfigurationsdateiformat, das ein einfaches Schlüssel-Wert-Paar verwendet, um die Konfigurationsvariablen zu definieren, die in einem Programm verwendet werden sollen

Eine TOML-Datei könnte so aussehen


[dependencies]
requests = ">=2.25.0"
flask = { version = "2.0.1", optional = true }


[database]
type = "postgres"
host = "localhost"
port = 5432
username = "admin"
password = "password123"

[database.settings]
pool_size = 5
timeout = 30



Diese Dateien funktionieren, indem ein Parser verwendet wird, um den Inhalt der TOML-Datei zu analysieren und dann die Variablen im Programm zu verwenden

Der Grund dafür, dass es gegenüber JSON oder YAML bevorzugt wird, liegt darin, dass es für einen Menschen leicht zu schreiben und zu verstehen ist und sich beim Konfigurationsmanagement bewährt.

Mein Anwendungsfall von TOML

Diese Woche hatte ich die Gelegenheit, an einem großartigen Projekt zu arbeiten, Addcom. Dabei handelt es sich um ein CLI-Tool, das Beispieldateien aufnimmt und Inline-Kommentare für die Dateien generiert. Es nutzt die Groq-API, um die Kommentare für die Datei zu generieren

Jetzt kann der Benutzer beim Aufrufen des CLI-Tools einige optionale Argumente definieren, die beim Senden einer API-Anfrage an Groq verwendet werden können, nämlich die folgenden

  • Modell – das Modell, das für die Groq-API verwendet werden soll
  • stream – Dies ist ein boolescher Wert, der angibt, ob die Ausgabe gestreamt werden soll oder nicht
  • api_key – der API-Schlüssel, der für den Groq
  • verwendet werden soll
  • Kontext – Pfad zur Datei, die dem LLM Kontext bereitstellen würde

Nun wäre es für den Benutzer wirklich frustrierend, im CLI-Tool immer wieder denselben Argumentwert anzugeben. Um dies zu vermeiden, habe ich eine TOML-Datei implementiert, die alle zu verwendenden Konfigurationseinstellungen und -werte enthält, sodass das nicht der Fall ist Anstatt die Konfigurationseinstellungen wiederholt anzugeben, kann das Programm einfach in die TOML-Datei schauen und die relevanten Einstellungen anwenden.

Der logische Ablauf für das Programm wäre wie folgt

1) Das CLI-Tool wird im Terminal aufgerufen
2) Wenn keine Argumente vorhanden sind, werden die Variablen aus der TOML-Datei verwendet
3) Wenn die Variablen in der TOML-Datei falsch sind, werden sie nicht verwendet und das Programm wird mit dem Fehlercode 0
beendet 4) Wenn der Benutzer zusammen mit der TOML-Datei auch die Befehlszeilenargumente bereitstellt, werden die Befehlszeilenargumente verwendet
5) Die Operation wird mit den richtigen Argumenten ausgeführt

Um eine beschreibende Übersicht über das Problem zu finden, das ich im Repo angesprochen habe, klicken Sie hier

Um die entsprechende PR zu finden, klicken Sie hier

Arbeiten mit Git-Remotes

Bisher musste ich jedes Mal, wenn ich eine PR zusammenführen musste, dies über Github tun, aber dieses Mal habe ich eine wirklich spannende Möglichkeit gefunden, dasselbe lokal zu tun

Ich hatte jemanden, der an der Implementierung einer Funktion für mein CLI-Tool arbeitete. Dieselbe Person erstellte einen Zweig meiner Codebasis und begann mit der Implementierung der Funktion. Sobald sie implementiert war, schob sie den Code in ihren Themenzweig auf ihrem Zweig.

Bevor ich die Änderungen nun genehmigen kann, musste ich die Codeänderungen überprüfen und sicherstellen, dass sie funktionierten und keine beispiellosen Probleme verursachten

Um dies zu erreichen, habe ich die folgenden Schritte implementiert


git remote add <user_name> <user_name/fork>



Der obige Befehl würde eine Remote-Verbindung zu einem Zweig meiner Codebasis hinzufügen


git fetch <user_name/fork>


Dadurch würden alle neuen Zweige aus dem Remote-Repository abgerufen und mein lokaler .git-Ordner aktualisiert


git checkout -b review-change <user_name/fork>


Dadurch würde ein neuer Zweig namens „review-change“ erstellt, der auf dem Themenzweig aufgebaut wäre, um die von der Person vorgenommenen Änderungen überprüfen zu können

Sobald ich die Änderungen überprüft habe, werde ich Folgendes tun


git checkout main
git merge review-change


Dadurch würde eine Zusammenführung im Schnellvorlauf erfolgen, da auf meinem lokalen Hauptserver keine Änderungen vorgenommen wurden


git push origin main


Dieser Befehl würde ausgeführt, um die zusammengeführten Änderungen in mein Remote-Repository zu übertragen, wodurch dann automatisch die PR geschlossen würde, die die Person geöffnet hatte.

Abschluss

Diese Woche habe ich wertvolle Erfahrungen bei der Arbeit mit TOML-Konfigurationsdateien und der Verwaltung von Git-Workflows für Codebeiträge gesammelt. Durch die Implementierung von TOML konnten Benutzer wiederverwendbare Konfigurationseinstellungen für das Addcom-Projekt definieren, was die Verwendung des CLI-Tools vereinfachte und den Benutzerkomfort erhöhte. Darüber hinaus habe ich gelernt, wie man Änderungen aus dem Fork eines Mitwirkenden lokal überprüft und zusammenführt, indem man dessen Remote-Repository hinzufügt, die Änderungen abruft und eine Zusammenführung im Schnellvorlauf durchführt.

Das obige ist der detaillierte Inhalt vonEin praktischer Ansatz für TOML-Dateien und Remote-Zweigstellenverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Git-Remote-ZweigeNächster Artikel:Git-Remote-Zweige