Du bist ungefähr so ​​wie ich, „Aufschub“ könnte genauso intestine dein zweiter Vorname sein. Es gibt immer ein quälendes Zögern, bevor man ein neues Projekt startet. Allein der Gedanke daran, die Projektstruktur einzurichten, eine Dokumentation zu erstellen oder eine anständige README-Datei zu schreiben, reicht aus, um ein Gähnen auszulösen. Es fühlt sich an, als würde man auf eine leere Seite eines gefürchteten Schulaufsatzes starren. Aber erinnern Sie sich, wie viel einfacher es wird, wenn ein hilfreiches LLM (wie ChatGPT) eine Startvorlage bereitstellt? Die gleiche Magie kann auf Ihre Codierungsprojekte angewendet werden. Hier kommt Cookiecutter ins Spiel.

Was ist Cookiecutter?

Ausstecher ist ein Open-Supply-Device, das Sie bei der Erstellung von Projektvorlagen unterstützt. Es ist sprachunabhängig und funktioniert mit praktisch jeder Programmiersprache (oder sogar außerhalb der Codierung, falls Sie eine standardisierte Ordner- und Dateistruktur benötigen). Mit Cookiecutter können Sie alle Boilerplate-Dateien (wie READMEs, Dockerfiles, Projektverzeichnisse oder alles andere) einrichten und dann schnell neue Projekte basierend auf dieser Struktur generieren.

Der Cookiecutter-Workflow besteht aus drei Hauptschritten:

  1. Sie definieren Ihre Projektvorlage.
  2. Der Benutzer gibt Werte für die von Ihnen angegebenen Variablen ein.
  3. Cookiecutter generiert ein neues Projekt und füllt automatisch Dateien, Ordner und Variablenwerte basierend auf den Eingaben des Benutzers aus.

Das folgende Bild veranschaulicht diesen Vorgang:

Workflow einer Cookie-Cutter-Vorlage zum „Backen“ neuer Projekte gemäß der vordefinierten Vorlage. Bild vom Autor

1. Grundlegende Computereinrichtung

Für die Set up und Verwendung von Cookiecutter sind nur minimale Programmierkenntnisse erforderlich. Wenn Sie ein Befehlszeilenfenster öffnen können, können Sie loslegen.

• Geben Sie unter Home windows „cmd“ in die Suchleiste ein und öffnen Sie die „Eingabeaufforderung“.

• Falls Sie es noch nicht getan haben, installieren Sie pipx mit:

pip set up pipx

Testen Sie Ihre Set up, indem Sie Folgendes ausführen:

pipx --version

Wenn Sie die Fehlermeldung „Befehl nicht gefunden“ erhalten, fügen Sie pipx zu Ihrem PATH hinzu. Finden Sie zunächst heraus, wo pipx installiert wurde: python -m web site –user-base.

Dies könnte etwas wie /dwelling/username/.native zurückgeben. Suchen Sie nach dem Ordner, der pipx.exe (unter Home windows) oder pipx (unter macOS oder Linux) enthält. Wenn Sie keine Administratorrechte haben, lautet das Verzeichnis möglicherweise C:BenutzerBenutzernameAppDataRoamingPythonPythonxxxScripts.

Ich musste pipx zu meinem Pfad hinzufügen und wenn Sie keine Administratorrechte haben, müssen Sie dies jedes Mal tun, wenn Sie ein neues Terminalfenster starten. Es wird daher empfohlen, den Standort dauerhaft zu Ihren Umgebungsvariableneinstellungen hinzuzufügen. Wenn diese Einstellung jedoch hinter den Administratorrechten liegt, können Sie sie trotzdem hinzufügen

set PATH=C:UsersusernameAppDataRoamingPythonPythonxxxScripts;%PATH%

Oder

set PATH=/dwelling/username/.native/bin;%PATH%

Hoffentlich erhalten Sie eine aussagekräftige Antwort pipx --version Jetzt.

2. Cookiecutter installieren und einrichten

Cookiecutter wird als Python-Paket verteilt, sodass Sie es mit pipx installieren können:

pipx set up cookiecutter

Oder führen Sie es einfach spontan aus mit:

pipx run cookiecutter ...

Lassen Sie uns durch die Erstellung einer Projektvorlage gehen. In diesem Beispiel richten wir eine Vorlage für Streamlit-Apps ein (cookiecutter_streamlit_ml).

3. Erstellen der Vorlagenstruktur

In Ihrem cookiecutter_streamlit_ml-Ordner benötigen Sie diese beiden Schlüsselkomponenten:

• cookiecutter.json – eine JSON-Datei, die die Variablen definiert, die Benutzer ausfüllen sollen (Projektname, Autor, Python-Model usw.).

• {{ cookiecutter.directory_name }} – Ein Platzhalter-Ordnername, der mit geschweiften Klammern definiert wird. Dieses Verzeichnis enthält die Struktur und Dateien Ihres Projekts. Wenn der Benutzer ein neues Projekt aus Ihrer Vorlage erstellt, ersetzt Cookiecutter diesen Platzhalter durch den von ihm angegebenen Namen. Achten Sie darauf, die geschweiften Klammern beizubehalten!

Beispielinhalt eines Cookiecutter-Vorlagenordners. Bild vom Autor

Ihre cookiecutter.json könnte etwa so aussehen:

Beispieldatei cookiecutter.json. Bild vom Autor

Zunächst definieren Sie Variablen in cookiecutter.json, die im gesamten generierten Projekt verwendet werden. Sie benötigen mindestens eine Variable für den Projektnamen.

Beispielsweise verweise ich in der Dokumentation häufig auf mein GitHub-Repository. Anstatt sie wiederholt einzugeben, lege ich eine Variable einmal fest und lasse Cookiecutter jede Instanz automatisch füllen. Ebenso möchte ich meinen Namen nicht in jeder Readme-Datei oder Dokumentationsdatei ausschreiben, additionally setze ich ihn am Anfang.

Um Probleme mit Docker zu vermeiden und sicherzustellen, dass die richtige Python-Model angegeben ist, frage ich bei der Projekterstellung nach der Python-Model und stelle sicher, dass sie in der generierten Docker-Datei verwendet wird.

Sie können für jedes Feld in cookiecutter.json Standardwerte definieren. Cookiecutter ersetzt automatisch jede Instanz von {{ cookiecutter.variable }} in Ihren Vorlagendateien durch die Eingabe des Benutzers. Sie können auch Transformationen wie „decrease()“ oder „change(“, „_“) verwenden, um Probleme mit Leerzeichen in Verzeichnisnamen zu vermeiden.

In meiner Vorlage gebe ich den Benutzern lieber detaillierte Anweisungen, anstatt Standardwerte festzulegen. Dies hilft denjenigen, die möglicherweise das Lesen der README-Datei überspringen und direkt mit der Projekterstellung beginnen möchten.

4. Erstellen Sie Ihre Vorlage

Jetzt beginnt der spaßige Teil, nämlich die Definition Ihrer Vorlage. Da Sie es ein für alle Mal tun, lohnt es sich, etwas Zeit damit zu verbringen, was die Einrichtungszeit Ihres Projekts auf lange Sicht drastisch reduzieren wird.

Erstellen Sie zunächst die Ordnerstruktur für Ihr Projekt. Dazu gehört die Erstellung aller Ordner, die Sie in Ihrem Projekt verwenden möchten. Keine Sorge, was fehlt oder sich als überflüssig erweist, kann im eigentlichen Projekt bearbeitet werden. Im Second erstellen Sie lediglich die Blaupause; Die Pfeifen und Glocken werden projektspezifisch sein.

Beispiel einer vordefinierten Ordnerstruktur für zukünftige Projekte. Diese Ordnerstruktur und alle Dateien werden instanziiert, sobald der Benutzer den Cookiecutter-Befehl ausführt. Bild vom Autor

Sobald Sie Ihre Ordner bereit haben, können Sie sie mit Dateien füllen. Diese können entweder leer sein oder sogar Inhalte enthalten, die Sie andernfalls ständig aus anderen Dokumenten kopieren und einfügen würden. Verweisen Sie in diesen Dateien überall dort auf Ihre Cookie-Cutter-Variablen, wo etwas dynamisch festgelegt werden muss (z. B. der Projektname oder das GitHub-Repo). Cookiecutter ersetzt diese Platzhalter automatisch durch Benutzereingaben, die während der Projekteinrichtung abgefragt werden. Dies erspart Ihnen viel mühsames Kopieren und Einfügen, insbesondere in Ihren Dokumentationsdateien.

Teil des Inhalts der Readme-Datei, der instanziiert wird, wenn Sie Ihre Cookie-Cutter-Vorlage im Projekt „auspacken“. Im Spinoff-Projekt werden die Felder {{ cookiecutter. }} mit den beim „Unboxing“ bereitgestellten Werten gefüllt. Bild vom Autor

Abschließend legen Sie den gesamten Ordner cookiecutter_py_streamlit in Ihrem GitHub-Konto ab, komprimieren Sie ihn oder lassen Sie ihn unverändert. So oder so, Sie können jetzt …

5. Verwenden Sie Ihre Vorlage

Sobald Ihre Vorlage fertig ist, wird das Erstellen eines neuen Projekts zum Kinderspiel:

1. Öffnen Sie Ihr Terminal und navigieren Sie zu der Stelle, an der Sie das Projekt erstellen möchten.

2. Führen Sie einen der folgenden Befehle aus:

• Von GitHub:

pipx run cookiecutter gh:ElenJ/cookiecutter_streamlit_ml  (change along with your repo)

• Aus einem lokalen Ordner:

pipx run cookiecutter /path/to/template_folder

• Von einer Postleitzahl:

pipx run cookiecutter /path/to/template.zip

3. Cookiecutter stellt Ihnen die in cookiecutter.json definierten Fragen. Geben Sie Antworten ein – oder drücken Sie einfach die Eingabetaste, wenn Sie Standardwerte festgelegt haben.

Sie werden gebeten, Antworten auf die Fragen zu geben, die Sie in der Cookie-Cutter-Vorlage definiert haben. Die von Ihnen bereitgestellten Antworten werden als entsprechende Variablen in den durch {{ cookiecutter.variable }} definierten Feldern verwendet. Bild vom Autor

4. Voilà 🎉 Ihr neuer Projektordner wird erstellt, komplett mit Ordnern, Dateien und Referenzen, die an Ihre Eingaben angepasst sind.

Instanziierte Readme-Datei mit Variablen, die der Benutzer während des Setups bereitgestellt hat. Bild vom Autor

Sie können Ihr neues Projekt mit GitHub synchronisieren, indem Sie es entweder direkt über die integrierte Git-Funktionalität Ihrer IDE übertragen oder indem Sie ein neues Repo auf GitHub erstellen (stellen Sie sicher, dass es leer ist und keine Readme-Datei enthält) und dann Ihren generierten Projektordner dorthin verschieben.

Und das ist es! Sie haben aus einer früher eintägigen Aufgabe einen schnellen Prozess gemacht und sofort viele Dateien erstellt, die darauf warten, mit Ihren Ideen ausgefüllt zu werden. Wenn Sie sich das neue Projekt ansehen, sollten Sie auf jeden Fall das Gefühl eines produktiven Tages haben. Wenn Sie noch auf der Suche nach Anleitungen zu Finest Practices sind, schauen Sie sich die offizielle Seite an Cookie-Cutter-Vorlagen hier.

Und wie immer: Viel Spaß beim Codieren!

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert