hexagonal architecture folder structure python