** Hinweis: Dieser Artikel ist eine anständige Nische **
Ich wollte unbedingt eine Funktion, die nicht in dem von mir verwendeten Python-Paket enthalten war. Manchmal müssen Forscher Dinge vorbereiten, die andere nicht benutzen. Die Funktion ist jedoch eine Nische, und [^ douki] kann nicht als Pull-Anforderung empfangen werden. Also habe ich einen Patch gemacht.
Wie Sie wissen, gibt es in der UNIX-Serie einen Befehl namens patch. Benutze das. Es ist okay mit git, aber ** Ich wollte in die Zeitung schreiben "Ich habe keine merkwürdigen Änderungen vorgenommen. Der Unterschied ist nur hier." (Wichtig). ** **.
Sie können die vorgenommenen Änderungen mit git diff ausgeben. Verwenden Sie also git, um den Patch zu erstellen. Es ist auch gut, die Geschichte zurückspulen zu können. Also benutze ich doch git.
Zuerst musste ich zum Quellcode des Pakets springen, mit dem ich es bearbeitet hatte. Egal wo Sie sich in der virtuellen Umgebung befinden, Sie können mit einem Liner arbeiten. Ich schrieb den folgenden Hoge um und flog davon.
cd $(python -c "import hoge as target; from pathlib import Path; print(Path(target.__file__).parent)")
Verwalten Sie git vor dem Bearbeiten vorerst.
git init
git add *
git commit
git branch patch
git checkout patch
vim hoge.py
Nun, git add * kann sogar den Cache enthalten, das ist also angemessen. Ich bin ein Vimmer, also bearbeite ich mit Vim, aber natürlich muss es nicht Vim sein. Diff, wenn Sie alle Änderungen vorgenommen haben.
mkdir ~/warui_patch
git diff > ~/warui_patch/complex.patch
Damit ist die Patch-Erstellung abgeschlossen.
Unten finden Sie ein Shell-Skript zum Anwenden des vorherigen Patches auf das Paket. Im Folgenden wird das zuvor erstellte complex.patch auf das mne-Paket angewendet. Ich habe einige Optionen.
--- R: Patch zurücksetzen --- p: Zeigt den Pfad des entsprechenden Pakets an --- h: Hilfe
Der Pfad dieses Pakets wird angezeigt, wenn ich etwas bearbeiten möchte
cd $(sh ./patcher -p)
Optional können Sie unter das Paket springen. Selbst in einer virtuellen Umgebung wird es natürlich mit dem Willen des Eisens fliegen.
#!/usr/bin/env sh
OPT=$1
PACKAGE='mne'
PATCH='complex.patch'
make_python_path_code () {
echo "import $PACKAGE; from pathlib import Path; print(Path($1.__file__).parent)"
}
make_python_path () {
echo "$(python -c "$(make_python_path_code $1)")/"
}
patch_python () {
patch $OPT -u -p 1 -d $(make_python_path $1) < $2
}
if [ "$1" = "-h" ]; then
echo Patch script for python.
echo ========================
echo -h: Show this message
echo -R: Reverse patch
echo -p: Print script dir
exit
fi
if [ "$1" = "-p" ]; then
echo $(make_python_path $PACKAGE)
exit
fi
patch_python $PACKAGE $PATCH
Ich möchte das Paket nicht wirklich umschreiben, auch nicht zu Forschungszwecken. Würzig ... (´ ・ ω ・ `)
[^ douki]: Ich wollte Gehirnwellen von Wavelet transformieren, um den Durchschnitt der Absolutwerte aus komplexen Zahlen zu berechnen und die Größe der Gehirnwellen im Gehirn zu schätzen, aber ich wollte komplexe Zahlen anstelle von durchschnittlichen Absolutwerten. Es ist. Die Berechnungskosten werden gefährlich, weil sie nicht gemittelt werden.
Recommended Posts