Wie nennen-Modul geschrieben mit argparse in iPython notebook
Ich versuche mich zu übergeben BioPython-Sequenzen zu Ilja Stepanov Umsetzung von Ukkonen ' s suffix-Baum-Algorithmus in iPython-notebook-Umgebung. Ich bin stolpern auf der argparse-Komponente.
Habe ich nie zu tun hatte, die direkt mit argparse vor. Wie kann ich diese ohne umschreiben von main()?
Durch die durch, dieses Dokument von Ukkonen ' s Algorithmus ist fantastisch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe ein ähnliches problem vor, aber mit
optparse
stattargparse
.Brauchen Sie nicht, etwas zu ändern in der original-Skript, weisen Sie einfach eine neue Liste zu
sys.argv
etwa so:sys.argv
funktioniert wiesys.argv = ['foo']
.Alternative zu verwenden argparse in Ipython-notebooks ist die übergabe eines string:
args = parser.parse_args()
(Linie 303 aus dem git repo Sie verwiesen wird.)
Wäre so etwas wie:
und
args = parser.parse_args("AAA --file /path/to/sequences.txt".split())
Edit: Es funktioniert
args = parser.parse_args(['--file', '/path/to/sequences.txt'])
, d.h. Sie müssen übergeben Sie ein array von strings, wobei jeder element ist ein argument, das normalerweise durch ein Leerzeichen getrennt in der Kommandozeile.shlex.split
:args = parser.parse_args(shlex.split("AAA --file /path/to/sequences.txt"))
Landete ich mit BioPython zu extrahieren Sie die Sequenzen und dann Bearbeiten Ilja Steanov Umsetzung zum entfernen des argparse-Methoden.
Für den Algorithmus, ich hatte
main()
nehmen Sie ein argument, seinestrings
variable, aber dieses sendet der Algorithmus eine Liste von speziellen BioPython-Sequenz-Objekte, die das re-Modul nicht mag. So hatte ich zum extrahieren der Sequenzzu
scheint irgendwie spröde, aber das ist alles für jetzt.
Ich vor einem ähnlichen problem mit der Anrufung argsparse der string '-f' - war dieses problem verursacht. Nur das entfernen, die von sys.srgv funktioniert der trick.
Wenn Sie iPython für die Prüfung, die Umwandlung argparse in Klasse format können Sie eine schnelle dummy-Lösung.
Github-Seite
repo bietet transformation web-service. http://35.192.144.192:8000/arg2cls.html
Ich hoffe, dass es hilfreich wäre für deine Prüfung. Jan 9/19 viele bugs behoben sind.
Transformation script. Python ist3 erforderlich ist.
dann copy & paste-Klasse-format zu ersetzen argparse Funktionen.