5/25/2013

Travis CI oraz PyPI badges

Jeżeli korzystasz z Travis-CI do testowania swojego repozytorium na githubie oraz trzymasz paczkę na pypi, możesz w łatwy i prosty sposób dodać informacje na temat statusu do pliku README. Dzięki temu userzy będą widzieć czy wszystkie testy przeszły pomyślnie, jaka jest aktualna wersja paczki oraz jaka jest ilość ściągnięć. U mnie dla repo RandomWords wygląda to tak:

Travis-CI

W dokumentacji travis-ci znajdziesz informacje o tym co musisz umiejscowić w odpowiednim pliku.

PyPI

Osobiście korzystam z dwóch formatów. Markdown dla github oraz reStructuredText dla PyPI.

Markdown:
[![PyPi version](https://pypip.in/v/$REPO-NAME/badge.png)](https://crate.io/packages/$REPO-NAME/)
[![PyPi downloads](https://pypip.in/d/$REPO-NAME/badge.png)](https://crate.io/packages/$REPO-NAME/)
reStructuredText:
.. image:: https://pypip.in/v/$REPO-NAME/badge.png
    :target: https://crate.io/packages/$REPO-NAME/
    :alt: Latest PyPI version

.. image:: https://pypip.in/d/$REPO-NAME/badge.png
    :target: https://crate.io/packages/$REPO-NAME/
    :alt: Number of PyPI downloads
Przykład dla markdown znajdziesz tutaj, a dla reStructuredText tutaj. Zachęcam do używania.

RandomWords 0.1.8

Wrzuciłem przed chwilą poprawkę do biblioteki RandomWords. Od dzisiaj działa pod pythonem 2.6, 2.7, 3.2 oraz 3.3. Można to sprawdzić tutaj.

5/22/2013

gift

Stworzyłem skrypt do pobierania obrazków z tumblera, znajdziesz go w repo gift (get images from tumblr). Pobieranie informacji na temat danego bloga opiera się o tumblerowe API, więc musisz mieć swoją appkę. Tutaj możesz ją szybko założyć. Obrazki są zapisywane w katalogu images/nazwa-bloga.

Instalacja

Repo ściągasz poleceniem:
git clone https://github.com/tomislater/gift.git
Wchodzisz do katalogu gift i instalujesz zależności:
pip install -r requirements.txt

Jak używać

Po założeniu aplikacji w pliku config.cfg podajesz swój consumer key:
[tumblr]
consumer_key = your_consumer_key
Jak korzystać ze skryptu najlepiej dowiesz się wpisując w konsoli:
python gift.py -h

Poniżej kilka screenów:
python gift.py perfectboard

python gift.py joeyxbadass

./gift skate--n--surf -l 100

5/17/2013

TFDPronunciation nowa wersja (progressbar)

Dodałem dzisiaj do skryptu TFDProunciation progressbar. Czasami strasznie mi muli net i fajnie mniej więcej wiedzieć kiedy skrypt skończy się wykonywać.



bpython i dzielenie się kodem

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).