Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Extract python code, use IDE to modify (as it should be) & overwrite python code in dynamo file

License

NotificationsYou must be signed in to change notification settings

eraschle/pydyn

Repository files navigation

Dear English speaking user.My English is not the best, which is why I wrote the text in German.Whether you or I click on Google Translate, the result is the same

InDynamo BIM kann durch Verbinden von Blöcken und darin enthaltenen Funktionen Skripts erstellt werden. Man kann auch Python-Code schreiben und verwenden. Der integrierte Python-Editor ermöglicht lediglich die farbliche Hervorhebung einiger Python-Keywords wie def, class usw. So schnell wird es auch keine IDE-Funktionalitäten geben, welche vor allem bei der Suche nach Fehlern schmerzlich vermisst werden. Es ist möglich, eine Dynamo-Datei, eine JSON-Datei mit modifizierter Extension, in jedem Editor zu öffnen. Durch dasMaskieren vonSteuerzeichen vor dem Einfügen in die Datei ist eine Bearbeitung direkt in der Dynamo-Datei nicht möglich. Da Dynamo vonIronPython 2.7 aufPython 3.8 gewechselt hat und zeitnahIronPython 2.7 nicht mehr unterstützt wird, ist eine Überarbeitung vom Python Code unausweichlich. Der Druck und die Vorstellung, dieseSisyphusarbeit im integrierten Editor zu erledigen, brachten mich auf dievon hinten durch Brust ins Auge Lösung aus folgenden Punkten:

  1. Dynamo-Dateien können immer verändert und geändert werden.
  2. Konvertierung von Python-Code aus Dynamo-Datei in eine Python-Datei
    • Information der Quelle speichern
    • Aufbereiten vom Code ermöglichen.
  3. Überarbeitung vom Code
    • Vorgabe: Erste Zeile für die Angaben der Quelle reserviert
  4. Konvertierten Code aus der Python-Datei in die Quelle einfügen.
    • Bereinigung von Python-Kommentaren (Formatierung & Type-Check)

Warum nicht VS Code

Es hätte eine VS Code Extension oder etwas wahrscheinlicher ein Python-Skript werden, Wenn ich nicht von einerIDE gelesen hätte, die Namensgeber einerVerletzung ist und, kaum zu glauben, eine Partei imKrieg der Editoren ist. Ich wollte/musste einfach mehr darüber erfahren.

  1. die Verletzung existiert, kann aber einfach vermieden werden.
  2. der Krieg hat sich bis heute fortgesetzt.
  3. Emacs beeindruckte durch die vielenPackages und die Möglichkeiten, die daraus resultieren.
    • VerwendetLisp für Installation und Konfiguration.
  4. VIM überzeugte vor allem durch dasbesondere Konzept, auf dem Navigation und Bearbeiten von Text basiert.
    • VerwendetVimscript für Installation und Konfiguration
  5. Evil-Mode ermöglicht VIM Funktionen in Emacs anzuwenden.
  6. Gemeinsamkeit von Emacs und VIM:
    • Beide werden ausschliesslich mit der Tastatur bedient
    • Stammen aus einem anderen Jahrtausend

Obwohl die Vorgeschichte bereits ein paar Jahre her ist, faszinieren mich die beiden Editoren immer noch. DankWSL kann Emacs unterLinux installiert werden. Lösungen für Probleme lassen sichschnell finden und können oft durch Kopieren von Befehlen angewendet werden. Das Frameworkdoomemacs erlaubt die Installation von vorkonfigurierten Modulen. Module lassen sich nach der Installation meist ohne oder mit sehr wenig Konfiguration verwenden.Um mehr in die Welt von Doom/Emacs einzutauchen und beim Schreiben von Lisp Code Fortschritte zu machen, habe ich die Idee in meinem ersten Emacs-Package verwirklicht.

Beschreibung

Im Paket gibt es je einenMinor-Mode fürDynamo- oderPython-Dateien. Neben verschiedenen Optionen für Import bzw. Export gibt es in jedem Mode zusätzliche Funktionen, um die Bearbeitung und den Prozess zu unterstützen. Nachdem der Entschluss gefasst wurde, das Package zu veröffentlichen. Musste die Konfigurationen vonLSP,Stubs Dateien, usw. aus dem Package entfernen werden, um die Abhängigkeiten zu verringern. Eine neue Seite derHooks wurde ersichtlich. Diese nicht nur für die Konfiguration nützlich, sondern haben Einfluss auf die Implementierung der Minor Mode. Ein Hook und die registrierten Funktionen werden beim Aktivieren oder Deaktivieren von Mode’s ausgeführt. Durch eine neue Funktion und die Registrierung der Funktion beim Hook vom Minor-Mode, konnte der Code aus dem Package in die Funktion verschoben werden. Bei der Überarbeitung konnten die Abhängigkeit von anderen Packages auf ein Minimum reduziert werden und in den beiden Minor Mode’s sind nur noch die notwendigen Funktionen enthalten. Das Package befolgt somit die Unix-PhilosophienDo One Thing and Do It Well undKeep it Simple, Stupid.

Durch Minor-Mode für Dynamo- und Python-Dateien zusammen mit den DOOM vorkonfigurierten Packages wieMagit,ORG und dem Python Module mit den IDE-Funktionen, ermöglichen den ganzen Prozess zum Bearbeiten von Dynamo-Dateien ausschliesslich in EMACS und keinem weiterem Programm abzuarbeiten.

Keine Doom/Emacs Erfahrung?

Um den Einstieg zu vereinfachen, hier ein paar - hoffentlich nützliche - Information

  1. WSL Installation
  2. Anleitung für WSL mit
    • node-js
    • pyenv
    • pyright
    • Emacs
    • DOOM
  3. Konfiguration-Vorlage für
    • Aktivierung virtueller Python-Umgebung
    • Einrichten vonpyright (Bsp: Stubs)
    • Konfiguration vonautopep8 - Formatter
    • DOOM-Tastenkombination Localleader (SPC-m)

Python

Konvertierung zu Dynamo

  1. Datei lesen
    • Information Source-Datei/Block
    • Code kopieren
  2. Leere Zeilen vor und nach dem Code entfernen.
    • Information Source-Datei/Block
  3. Kommentare entfernen
    • Type Checker
    • Formatierung
  4. Einrückung in TAB umwandeln
  5. Codierung für JSON-String
  6. String im Python-Block ersetzten.

Funktionen

  • pydyn-python-mode-on

    Aktiviert den Python Minor Mode

  • pydyn-python-mode-off

    Deaktiviert den Python Minor Mode

  • pydyn-python-goto-dynamo-node

    Öffnet die Dynamo-Datei und verschiebt den Cursor zum Python-Block auf die Zeile, in der sich der Code befindet.

  • pydyn-python-if-remove-bracket

    Löscht unnötige Klammern in if Statements. Das Ersetzen muss vom Benutzer bestätigt werden.

  • pydyn-python-to-dynamo-node

    Konvertiert und ersetzt den Code aus der aktuellen Datei im Python-Block.

  • pydyn-python-to-dynamo-script

    Konvertiert und ersetzt den Code aus den Python-Dateien in allen Python-Blöcken des ausgewählten Skripts.

  • pydyn-python-to-dynamo-folder

    Konvertiert und ersetzt den Code aus den Python-Dateien in allen Python-Blöcken in allen Dynamo-Dateien innerhalb des ausgewählten Ordners und Unterordners.

  • pydyn-python-ignore-toggle

    Erstellt oder löscht den Type-Checker-Kommentar in der Zeile, in der sich der Cursor befindet.

  • pydyn-python-ignore-to-inputs

    Fügt die Type-Checker-Kommentare zu allen Dynamo-Inputs. Das ist Bestandteil der Dynamo-zu-Python-Konvertierung.

  • pydyn-python-ignore-to-errors

    Fügt Type-Checker-Kommentare zu allen bekannten Type-Checker Fehler ein. Weil diese Fehler keine Fehler sind und/oder diese nicht gelöst werden können, wird diese nicht mehr als Fehler angezeigt

  • pydyn-python-backslash-ensure

    Überprüft die Anzahl der Backslashs in einem String.

  • pydyn-python-formatter-disable

    Deaktiviert das Formatieren für die aktivierte Region

  • pydyn-python-formatter-enable

    Aktiviert das Formatieren durch Löschen der Python-Kommentare, sofern sich der Cursor innerhalb eines deaktivierten Bereichs befindet.

Dynamo

Konvertierung zu Python

  1. Code aus Python-Block auslesen
  2. Decodieren des Strings
  3. Datei erstellen/überschreiben
    • Information zum Zurückschreiben
    • Code einfügen
  4. Einrückung anpassen (IronPython: TAB / Python 3: Space)
  5. Optional
    • Kommentare vom Python Template entfernen:
    • Type-Checker Kommentare bei bekannten Fehlern einfügen

Funktionen

  • pydyn-dynamo-mode-on

    Aktiviert Dynamo Minor Mode

  • pydyn-dynamo-mode-off

    Deaktiviert Dynamo Minor Mode

  • pydyn-dynamo-jump-to-node

    Verschiebt den Cursor zum ausgewählten Python-Block.

  • pydyn-dynamo-goto-python

    Öffnet die Python-Datei, sofern sich der Cursor innerhalb eines Python-Blocks befindet

  • pydyn-dynamo-at-point-to-python

    Konvertiert den Code in eine Python-Datei, sofern sich der Cursor innerhalb eines Python-Blocks befindet.

  • pydyn-dynamo-script-to-python

    Konvertiert alle Python-Blöcke der ausgewählten Dynamo-Datei

  • pydyn-dynamo-folder-to-python

    Konvertiert alle Python-Blöcke aus allen Dynamo-Dateien innerhalb eines Ordners und Unterordner

  • pydyn-dynamo-clean-orphan-code-file

    Löscht alle Python-Dateien, wenn der Python-Block nicht mehr in der aktuellen Dynamo-Datei befindet.

  • pydyn-dynamo-clean-orphan-code-folder

    Überprüft alle Dynamo-Dateien im ausgewählten Ordner und Unterordner. Dabei werden Python-Dateien gelöscht, wenn der Python-Block nicht mehr in der aktuellen Dynamo-Datei befindet.

  • pydyn-dynamo-python-code-preview (under construction)

    Zeigt den Code in einem Fenster an, sofern sich der Cursor innerhalb eines Python-Blocks befindet. Es wird aber keine Python-Datei erstellt.

About

Extract python code, use IDE to modify (as it should be) & overwrite python code in dynamo file

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp