Tento projekt slouží jako šablona pro vytvoření nového datového zdroje pro nástroj ODNES. Díky modulární architektuře je rozšíření systému o vlastní datasource snadné a nevyžaduje žádné zásahy do jádra aplikace.
- Python 3.9+
- Poetry pro správu balíčků a závislostí
V adresáři src/odnes/datasources/ se nachází ukázkový soubor example.py. Tento soubor slouží jako výchozí šablona. Přejmenujte jej podle vašeho zdroje, např.:
mv src/odnes/datasources/example.py src/odnes/datasources/dnsdb.pyUvnitř nového souboru přejmenujte třídu Example na název odpovídající vašemu zdroji, např. DNSDB. Třída musí dědit ze základní třídy Datasource a implementovat metodu:
async def search(self, domain: str) -> list[DatasourceObject]:
...Pokud chcete nový datasource distribuovat jako samostatný balíček, upravte v souboru pyproject.toml název projektu, například:
name = "odnes-indexer-dnsdb"Doporučuje se aktualizovat i popis, autora, verzi atd.
Pomocí Poetry můžete balíček sestavit a nainstalovat:
poetry build -f wheel
pip install dist/odnes_indexer_dnsdb-*.whlAlternativně lze balíček nainstalovat přímo ze zdrojového adresáře:
pip install .ODNES při spuštění automaticky načte všechny třídy dědící z Datasource — není tedy nutné upravovat žádný registr ani konfiguraci. Název třídy slouží jako identifikátor zdroje (např. pro CLI přepínač -D DNSDB).
Každý nový datasource může využívat vlastní závislosti definované v pyproject.toml, a být distribuován jako samostatný plugin. Tím je zajištěna čistá oddělenost jednotlivých komponent.