Wpis z mikrobloga

Chciałbym się pochwalić małym skryptem który napisałem dla programistów pythona (w przyszłości można zrobić coś podobnego dla innych języków/technologii, jeżeli znalazło by się zainteresowanie) ( ͡º ͜ʖ͡º)

Zdażyło Ci się kiedyś, że chciałeś użyć nowej biblioteki, jednak nie byłeś pewien czy łatwo będzie ją podłączyć do już istniejących modułów używających innych bibliotek?

A może używasz biblioteki, która ma dość skąpą dokumentacje i przydało by Ci kilka innych projektów jej używającej, pokazujące jej praktyczne użycie?

W obu tych przypadkach pomoże Ci malutki skrypcik find-similar-projects.py, któremu możesz dokładnie powiedzieć, jakich pakietów ma szukać w otwarto źródłowych projektach na githubie :)

W obrazku jest PNG, link do filmiku tutaj


To jest wersja Proof Of Concept. Spełnia moje niewygórowane wymagania i już pomogła mi znaleźć kilka fajnych projektów na których mogę się wzorcować robiąc kolejne :) Wszelkie pomysły, bugi, etc, możliwe są do zgłoszenia na githubie: https://github.com/noisy/find-similar-projects

PS. początkowo chciałem zrobić wersję online, jednak z powodu limitów na requesty, byłoby to zbyt trudne, by zrobić to w sposób mogący obsłużyć równolegle kilku użytkowników w szybki sposób. A ściąganie 70 mln plików requirements.txt na serwer, by wyszukiwanie było natychmiastowe, na razie nie wchodzi w gre ;)

Ale kto wie... może w przyszłości ;)


#programowanie #python #webdev (może w przyszłości także #javascript - można zrobić coś podobnego dla package.json, itd)
Pobierz
źródło: comment_YGWECDXqU1ltpfhI6QyxQfHdrPxSFszn.jpg
  • 11
@noisy: Zajebisty pomysł :D

Do tego można go rozbudować o sortowanie (chociaż spory problem mógłby być z kryteriami) i ograniczenie liczby wyników.

Dla mnie też trochę za dużo outputu, takie zabawki lubię mieć kompaktowe (np. tylko linki do projektów) - do tego przede wszystkim przydałoby się sortowanie, a więcej informacji mogłoby wypluwać z parametrem --verbose.
@notanumber: problem w tym, że na razie cieżko sortować, skoro nie ma wszystkich danych. Github pozwala zrobić średnio jakichś 10 requestów, po czym muszę odczekać minutę. W tym czasie mogę wyświetlić już dane które mam... albo czekać bezczynnie. Więc wyświetlam co jest.

Niestety wyszukiwarka githubowa nie jest w stanie uchwycić tak dokładnych zapytań z numerami wersji pakietów, stąd najpierw odpytuje, które repozytoria mają pliki z owymi pakietami w sobie, a potem
@noisy: Według mnie jako standardowy output wystarczyłyby adresy do repo i lista bibliotek, a przy --verbose tak jak jest teraz (dodatkowo plik i status), przy czym na liście bibliotek, jeśli projekt którejś z wykorzystywanych bibliotek nie używa, wyświetlałbym ją na czerwono (o ile taka sytuacja może zajść - nie zagłębiałem się zbytnio w kod).

Dodatkowo, plik można wyświetlać jako adres do niego na gh.
@noisy: btw. jak walnąłeś już to w paczkę to dodaj jeszcze .editorconfiga:

# http://editorconfig.org

root = true


[*]

indentstyle = space

indentsize = 4

trimtrailingwhitespace = true

insertfinalnewline = true

charset = utf-8

endofline = lf


[LICENSE]

insertfinalnewline = false


Dodatkowo: AUTHORS, LICENSE, CONTRIBUTING

W setup.cfg dorzuć jeszcze że wheel=1 tak 'na przyszłość'

No i pacnij jeszcze pobieranie danych z requirementsów w