Przy codziennej pracy z pythonem moimi ulubionymi konsolami są
bpython (szybkość) i
IPython (kombajn). Dzisiaj będzie krótko na temat jednej z funkcji jaką oferuje bpython, a chodzi tutaj o wrzucenie kodu z konsoli do internetu ;)
bpaste
Aby wysłać kod z konsoli bpython wystarczy wcisnąć
F8 i potwierdzić to klawiszem
y. Domyślnie kod jest wysyłany na
bpaste i z poziomu konsoli wygląda to mniej więcej tak:
|
http://bpaste.net/show/cVuvrhTrBZB8ZSM9DVxP/ |
I to tyle jeśli chodzi o wrzucanie na bpaste.
gist
Ale co jeśli, chcę szybko umieścić kod na
gist? Oczywiście da się, lecz trzeba poczynić kilka kroków. Pierwsze co musisz zrobić to stworzyć plik konfiguracyjny dla bpythona w którym zamieścisz informację, jakiego skryptu ma używać do wypychania kodu. Jeśli nie masz pliku
~/.config/bpython/config to go stwórz i dodaj w sekcji
general linijkę: pastebin_helper = do_gist_json. Przykładowo u mnie wygląda to tak:
Nazwa
do_gist_json to oczywiście nazwa skryptu, który będzie miał się wykonać po wciśnięciu F8 (domyślnie jest to
pastebinit, dlatego też leci na bpaste). Czas na napisanie skryptu. Zaraz! Jak pisać?! Spokojnie, poniżej zamieszczam kod; musisz tylko podmienić dane
user i
pass na swoje jeśli chcesz, aby kod wrzucał się na twoje konto. Jeśli nie chcesz, możesz usunąć argument
auth:
#!/usr/bin/env python
import sys
import json
import requests
def do_gist_json(s):
gist_url = 'https://api.github.com/gists'
data = {'description': "Gist from BPython",
'public': True,
'files': {
'sample.py': {'content': None}
}}
data['files']['sample.py']['content'] = s
res = requests.post(gist_url,
data=json.dumps(data),
auth=("user", "pass"))
return res.json()["html_url"]
if __name__ == "__main__":
s = sys.stdin.read()
print do_gist_json(s)
Domyślnie wysyłany kod jest publiczny, jeśli tego nie chcesz to już pewnie zauważyłeś, którą linijkę musisz zmienić :). Plik do pobrania jest
tutaj. Ściągnij/skopiuj gdzieś na dysk i nazwij go tak jak podałeś w pliku
~/.config/bpython/config. Następnie musisz nadać skryptowi prawa do wykonywania, czyli wpisujesz w konsoli:
chmod +x do_gist_json
i kopiujesz do
/usr/bin/
sudo cp do_gist_json /usr/bin/
I już, teraz po odpaleniu bpythona i wciśnięciu klawisza
F8 program będzie wiedział, że kod ma wysłać na gist, a nie na bpaste.
|
https://gist.github.com/tomislater/5595417 |
EDIT:
Skrypt korzysta z biblioteki
requests, więc musisz ją mieć u siebie (sudo pip install requests).
Comments
Post a Comment