"""1NFER catalogue check. One GET; no generation, payment or retries."""
import getpass,json
from urllib.request import Request,build_opener,ProxyHandler,HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
 def redirect_request(self,*args,**kwargs):raise ValueError('Redirect refused')
def check(key):
 request=Request('https://1nfer.net/v1/models',headers={'Authorization':'Bearer '+key},method='GET')
 with build_opener(ProxyHandler({}),NoRedirect()).open(request,timeout=20) as response:
  data=json.loads(response.read(524288))
 return [item['id'] for item in data.get('data',[]) if isinstance(item,dict) and isinstance(item.get('id'),str)]
if __name__=='__main__':
 key=getpass.getpass('Your 1NFER API key (hidden, not saved): ')
 try:
  models=check(key)
  print('Available model IDs:');print('\n'.join(models))
 except Exception:print('Connection check failed. Verify your key and current service status. No automatic retry.')
 finally:key=None
