Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: formulation template name #132

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open

Conversation

janbritz
Copy link
Contributor

@janbritz janbritz commented Oct 29, 2024

Fixes #130.

PS: Ein git pull reicht nicht aus, damit der create-Befehl die Änderungen zeigt. Es muss vorher noch poetry install ausgeführt werden, damit die minimal_example.zip neu generiert wird.

Copy link
Contributor

@larsbonczek larsbonczek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ich bin mir nicht sicher, ob es sinnvoll ist, das so zu lösen. Das minimal example soll ja als Orientierung für Paketentwickler*innen dienen. Aber ist das mit diesen automatisch berechneten Konstanten wirklich das, was wir als Standard-Vorgehen im QuestionPy-Ökosystem sehen wollen? Ich denke es wäre besser wenn entweder

  • der Namespace und Kurzname beim Erzeugen des Beispiel-Pakets in der entsprechenden Zeile eingefügt werden (das klappt im Manifest ja auch), oder
  • die get_template-Funktion ohne Angabe des Namespace und Kurznamen aufgerufen werden kann und dann per Default im Template-Verzeichnis des eigenen Pakets sucht.

# Rename template name.
with FileInput(short_name_folder / "question_type.py", inplace=True) as file:
for line in file:
if file.filelineno() == 20: # noqa: PLR2004
Copy link
Contributor

@tumidi tumidi Oct 31, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die Zeilennr. hardcoden kann's irgendwie nicht sein. Das geht kaputt sobald jemand die Datei question_type.py mal anfassen muss.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sehe ich auch so.

@tumidi
Copy link
Contributor

tumidi commented Oct 31, 2024

Meine 2 Cents zu dem Thema: Ich würde ja das project scaffolding komplett von den examples trennen. Dafür gibt's ja eigentlich ganz gute Lösungen: z.B. Cookiecutter. Da schreibt man letztendlich jinja2-Templates.

  • Da programmatisch die Zip-Datei zu entpacken und text replacement auf Zeilenebene zu machen ist im besten Fall hacky, geht aber spätestens dann kaputt wenn jemand das nächste Mal die Datei question_type.py editiert.
  • Den Hack mit build.py und minimal_example.zip wären wir dann auch endlich los.
  • Ließe sich btw auch unabhängig vom SDK verwenden: pipx run cookiecutter gh:questionpy-org/cookiecutter-foo
  • Im SDK würde dascreate-Kommando intern die Cookiecutter-Python-API nutzen.

# Rename template name.
with FileInput(short_name_folder / "question_type.py", inplace=True) as file:
for line in file:
if file.filelineno() == 20: # noqa: PLR2004
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sehe ich auch so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fehlende Ersetzung des Paketnamens im Beispiel-Paket
3 participants