Doporučení pro přispěvatele

V této části dokumentace uvádím návody a doporučení pro ty, kteří by měli zájem o rozšíření knihovny flexipy. Za každou pomoc budu jen rád :) a jsem otevřen jakýmkoliv návrhům na zlepšení. Navíc když jsem začal tuto knihovnu psát, bylo mi jasné, že nebudu schopen v krátké době implementovat podporu pro práci se všemi evidencemi a využívání všech možností Flexibe. Proto budu vděčný za pomoc s implementací dalších funkcionalit.

Coding style

Doporučuji dodržovat Django coding style.

PEP8 je oficiální přiručka pro psaní Python kódu a proto doporučuji všem potenciálním přispěvatům si ji alespoň zběžně pročíst.

Přídaní nové evidence

Pokus chcete přidat funkcionalitu do flexipy, která bude sloužit k obsluze evidence ve Flexibee, která jesšte není zde implementovaná dodržujte prosím následující pravidla.

  1. Všechnu funkcionalitu, která nějakým způsobem souvisí s danou evidencí umístěte do souboru <jmeno_evidence>.py. Například pro adresář je to adresar.py.

2. V tomto vytvořeném modulu vytvořte třídu, která bude mít jměno evidence například pro adresar je to Adresar. Tato třída by měla být potomkem třídy Flexipy, která obsahuje obecné metody pro práci s Flexibee. Tyto metody nejsou uživatelem knihony volány a správně by ani neměl být schopen přistoupit k třídě Flexipy, ale k pouze ke konkrétním potomkům jako například třída Adresar. Potomci tříy Flexipy již mají konkrétní metody přizpůsobené pro danou evidenci. Doporučuji se podívat jak je napsána třída Faktura v modulu faktura.py

2. Snažte se maximálně využívat jiř připravených metod z modulu main.py a třídy Flexipy. Například pro získání instance evidence zavolejte z třídy Flexipy metodu get_evidence_item a pouze ošetřete nebo upravte věci, které vyžadujte pro danou evidenci.

  1. Pro ošetřování chyb doporučuji používat systém, který je vidět v modulu faktura, kde se vyhazuje vyjímka FlexipyException v případě chyby nebo neočekávaného stavu. Případně do modulu exceptions přidejte vlastní vyjímku, která bude dědit od FlexipyException.
  2. Obecně by se dalo říci, že ideálně se stačí podívat na již implementovaný modul faktura a z něj vyjít při implementaci vlastního modulu.

Testování

Flexipy využívá pytest proto doporučuji projít si dokumentaci, která je na oficiálních stránkách projektu. Testy jsou izolovány pro každý modul, tzn. že pro modul invoice je testovací modul test_invoice. Pro psaní testů lze z výhodou použít knihovnu requests, kterou flexipy využívá. Pro spouštění testů je vytvořen paver task, takže stačí zavolat z rootu projektu příkaz:

$ paver test

Doporučuji pro testy použít jiný konfigurační soubor, například skrze třídu TestingConfig v modulu config. Ta defaultně využívá konfigurační soubor testing_flexipy.conf. Ttto samozřejmě můžete jednoduše změnit.

Table Of Contents