Merge pull request #2689 from cortesi/grideditor.save

console.grideditor.save
This commit is contained in:
Aldo Cortesi 2017-12-17 13:09:29 +13:00 committed by GitHub
commit 33585bd2a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,4 @@
import csv
import typing import typing
from mitmproxy import ctx from mitmproxy import ctx
@ -417,6 +418,20 @@ class ConsoleAddon:
""" """
self._grideditor().cmd_read_file_escaped(path) self._grideditor().cmd_read_file_escaped(path)
@command.command("console.grideditor.save")
def grideditor_save(self, path: command.Path) -> None:
"""
Save data to file as a CSV.
"""
rows = self._grideditor().value
with open(path, "w", newline='', encoding="utf8") as fp:
writer = csv.writer(fp)
for row in rows:
writer.writerow(
[strutils.always_str(x) or "" for x in row] # type: ignore
)
ctx.log.alert("Saved %s rows as CSV." % (len(rows)))
@command.command("console.grideditor.editor") @command.command("console.grideditor.editor")
def grideditor_editor(self) -> None: def grideditor_editor(self) -> None:
""" """

View File

@ -156,6 +156,12 @@ def map(km):
"Load a Python-style escaped string into the current cell from file" "Load a Python-style escaped string into the current cell from file"
) )
km.add("e", "console.grideditor.editor", ["grideditor"], "Edit in external editor") km.add("e", "console.grideditor.editor", ["grideditor"], "Edit in external editor")
km.add(
"w",
"console.command console.grideditor.save ",
["grideditor"],
"Save data to file as CSV"
)
km.add("z", "eventstore.clear", ["eventlog"], "Clear") km.add("z", "eventstore.clear", ["eventlog"], "Clear")