mirror of
https://github.com/keanuplayz/dotfiles.git
synced 2024-08-15 02:33:12 +00:00
Merge pull request #241 from dmitmel/master
[pull] master from dmitmel:master
This commit is contained in:
commit
c1e451b5ce
4 changed files with 39 additions and 16 deletions
|
@ -375,8 +375,9 @@
|
|||
" }}}
|
||||
|
||||
" Python {{{
|
||||
hi! link pythonBuiltinType Type
|
||||
hi! link pythonExClass Type
|
||||
hi! link pythonClass Type
|
||||
hi! link pythonBuiltinType pythonClass
|
||||
hi! link pythonExClass pythonClass
|
||||
hi! link pythonBuiltinObj pythonFunction
|
||||
hi! link pythonClassVar Variable
|
||||
" }}}
|
||||
|
|
|
@ -14,7 +14,11 @@
|
|||
endif
|
||||
Plug 'Raimondi/delimitMate'
|
||||
Plug 'tpope/vim-repeat'
|
||||
Plug 'tpope/vim-commentary'
|
||||
" if g:vim_ide
|
||||
Plug 'tomtom/tcomment_vim'
|
||||
" else
|
||||
" Plug 'tpope/vim-commentary'
|
||||
" endif
|
||||
Plug 'tpope/vim-surround'
|
||||
Plug 'Yggdroot/indentLine'
|
||||
Plug 'idbrii/detectindent'
|
||||
|
|
|
@ -233,6 +233,18 @@ set commentstring=//%s
|
|||
noremap <leader>s s
|
||||
noremap <leader>S S
|
||||
|
||||
" Remove the mappings that I won't use
|
||||
let g:tcomment_maps = 0
|
||||
|
||||
nmap <silent> gc <Plug>TComment_gc
|
||||
nmap <silent> gcc <Plug>TComment_gcc
|
||||
nmap <silent> gC <Plug>TComment_gcb
|
||||
" The default block commenting mapping refuses to work on a single line, as
|
||||
" a workaround I give it another empty one to work with.
|
||||
nmap <silent> gCC m'o<Esc>''<Plug>TComment_gcb+
|
||||
xnoremap <silent> gc :TCommentMaybeInline<CR>
|
||||
xnoremap <silent> gC :TCommentBlock<CR>
|
||||
|
||||
" }}}
|
||||
|
||||
|
||||
|
|
|
@ -8,36 +8,42 @@ from sys import stdout
|
|||
import base64
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
"--encode",
|
||||
"-e",
|
||||
choices=["utf8", "base16", "base32", "base64", "base85"],
|
||||
default="utf8",
|
||||
)
|
||||
encoding_names = ["utf8", "base16", "base32", "base64", "base85"]
|
||||
parser.add_argument("--encoding", "-e", choices=encoding_names, default="utf8")
|
||||
parser.add_argument("--key-encoding", choices=encoding_names, default=None)
|
||||
parser.add_argument("--value-encoding", choices=encoding_names, default=None)
|
||||
parser.add_argument("db_path", type=Path)
|
||||
cli_args = parser.parse_args()
|
||||
|
||||
|
||||
def bytes_to_json(b: bytes) -> Union[str, list[int]]:
|
||||
if cli_args.encode == "utf8":
|
||||
def bytes_to_json(b: bytes, encoding: str) -> Union[str, list[int]]:
|
||||
if encoding == "utf8":
|
||||
try:
|
||||
return b.decode("utf8")
|
||||
except UnicodeDecodeError:
|
||||
return list(b)
|
||||
elif cli_args.encode == "base16":
|
||||
elif encoding == "base16":
|
||||
return base64.b16encode(b).decode("ascii")
|
||||
elif cli_args.encode == "base32":
|
||||
elif encoding == "base32":
|
||||
return base64.b32encode(b).decode("ascii")
|
||||
elif cli_args.encode == "base64":
|
||||
elif encoding == "base64":
|
||||
return base64.b64encode(b).decode("ascii")
|
||||
elif cli_args.encode == "base85":
|
||||
elif encoding == "base85":
|
||||
return base64.b85encode(b).decode("ascii")
|
||||
else:
|
||||
assert False
|
||||
|
||||
|
||||
key_encoding: str = cli_args.key_encoding or cli_args.encoding
|
||||
value_encoding: str = cli_args.value_encoding or cli_args.encoding
|
||||
db = plyvel.DB(str(cli_args.db_path), create_if_missing=False)
|
||||
with db.iterator() as iterator:
|
||||
for key, value in iterator:
|
||||
json.dump({"key": bytes_to_json(key), "value": bytes_to_json(value)}, stdout)
|
||||
json.dump(
|
||||
{
|
||||
"key": bytes_to_json(key, key_encoding),
|
||||
"value": bytes_to_json(value, value_encoding),
|
||||
},
|
||||
stdout,
|
||||
)
|
||||
stdout.write("\n")
|
||||
|
|
Loading…
Reference in a new issue