import exceptions urls = { 'root': '/api/', 'articles-list': '/api/cotisations/articles/', 'articles-details': '/api/cotisations/articles/{pk}/', 'banques-list': '/api/cotisations/banques/', 'banques-details': '/api/cotisations/banques/{pk}/', 'cotisations-list': '/api/cotisations/cotisations/', 'cotisations-details': '/api/cotisations/cotisations/{pk}/', 'factures-list': '/api/cotisations/factures/', 'factures-details': '/api/cotisations/factures/{pk}/', 'paiments-list': '/api/cotisations/paiements/', 'paiements-details': '/api/cotisations/paiements/{pk}/', 'ventes-list': '/api/cotisations/ventes/', 'ventes-details': '/api/cotisations/ventes/{pk}/', 'domains-list': '/api/machines/domains/', 'domains-details': '/api/machines/domains/{pk}/', 'extensions-list': '/api/machines/extensions/', 'extensions-details': '/api/machines/extensions/{pk}/', 'interfaces-list': '/api/machines/interfaces/', 'interfaces-details': '/api/machines/interfaces/{pk}/', 'iplists-list': '/api/machines/iplists/', 'iplists-details': '/api/machines/iplists/{pk}/', 'iptypes-list': '/api/machines/iptypes/', 'iptypes-details': '/api/machines/iptypes/{pk}/', 'ipv6lists-list': '/api/machines/ipv6lists/', 'ipv6lists-details': '/api/machines/ipv6lists/{pk}/', 'machines-list': '/api/machines/machines/', 'machines-details': '/api/machines/machines/{pk}/', 'machinetypes-list': '/api/machines/machinetypes/', 'machinetypes-details': '/api/machines/machinetypes/{pk}/', 'mx-list': '/api/machines/mx/', 'mx-details': '/api/machines/mx/{pk}/', 'nas-list': '/api/machines/nas/', 'nas-details': '/api/machines/nas/{pk}/', 'ns-list': '/api/machines/ns/', 'ns-details': '/api/machines/ns/{pk}/', 'ouvertureportlists-list': '/api/machines/ouvertureportlists/', 'ouvertureportlists-details': '/api/machines/ouvertureportlists/{pk}/', 'ouvertureports-list': '/api/machines/ouvertureports/', 'ouvertureports-details': '/api/machines/ouvertureports/{pk}/', 'servicelinks-list': '/api/machines/servicelinks/', 'servicelinks-details': '/api/machines/servicelinks/{pk}/', 'services-list': '/api/machines/services/', 'services-details': '/api/machines/services/{pk}/', 'soa-list': '/api/machines/soa/', 'soa-details': '/api/machines/soa/{pk}/', 'srv-list': '/api/machines/srv/', 'srv-details': '/api/machines/srv/{pk}/', 'txt-list': '/api/machines/txt/', 'txt-details': '/api/machines/txt/{pk}/', 'vlans-list': '/api/machines/vlans/', 'vlans-details': '/api/machines/vlans/{pk}', 'accesspoint-list': '/api/topologie/acesspoint/', 'accesspoint-details': '/api/topologie/acesspoint/{pk}/', 'building-list': '/api/topologie/building/', 'building-details': '/api/topologie/building/{pk}/', 'constructorswitch-list': '/api/topologie/constructorswitch/', 'contructorswitch-details': '/api/topologie/constructorswitch/{pk}/', 'modelswitch-list': '/api/topologie/modelswitch/', 'modelswitch-details': '/api/topologie/modelswitch/{pk}/', 'room-list': '/api/topologie/room/', 'room-details': '/api/topologie/room/{pk}/', 'stack-list': '/api/topologie/stack/', 'stack-details': '/api/topologie/stack/{pk}/', 'switch-list': '/api/topologie/switch/', 'switch-details': '/api/topologie/switch/{pk}/', 'switchbay-list': '/api/topologie/switchbay/', 'switchbay-details': '/api/topologie/switchbay/{pk}/', 'switchport-list': '/api/topologie/switchport/', 'switchport-details': '/api/topologie/switchport/{pk}/', 'adherents-list': '/api/users/adherents/', 'adherents-details': '/api/users/adherents/{pk}/', 'bans-list': '/api/users/bans/', 'bans-details': '/api/users/bans/{pk}/', 'clubs-list': '/api/users/clubs/', 'clubs-details': '/api/users/clubs/{pk}/', 'listrights-list': '/api/users/listrights/', 'listrights-details': '/api/users/listrights/{pk}/', 'schools-list': '/api/users/schools/', 'schools-details': '/api/users/schools/{pk}/', 'serviceusers-list': '/api/users/serviceusers/', 'serviceusers-details': '/api/users/serviceusers/{pk}/', 'shells-list': '/api/users/shells/', 'shells-details': '/api/users/shells/{pk}/', 'users-list': '/api/users/users/', 'users-details': '/api/users/users/{pk}/', 'whitelists-list': '/api/users/whitelists/', 'whitelists-details': '/api/users/whitelists/{pk}/', 'token': '/api/token-auth/', } def get_names(): return urls.keys() def get_endpoint_for(name, **kwargs): try: url=urls[name] except KeyError as e: raise exceptions.URLNameNotExists(name) else: try: return url.format_map(kwargs) except KeyError as e: raise exceptions.URLParameterMissing(e)