import requests
import sys
def flush_api_output(endpoint, params=None, method='GET'):
"""
Flushes output from an API endpoint with limited memory usage.
Args:
endpoint (str): The API endpoint URL.
params (dict, optional): Query parameters. Defaults to None.
method (str, optional): HTTP method (GET, POST, etc.). Defaults to 'GET'.
"""
try:
response = requests.request(method, endpoint, params=params, stream=True) # stream=True for memory efficiency
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
for line in response.iter_lines(): # Iterate over lines instead of reading the whole content
if line: # Avoid printing empty lines
sys.stdout.write(line.decode('utf-8')) #Decode bytes to string
except requests.exceptions.RequestException as e:
print(f"API request failed: {e}", file=sys.stderr) # Print errors to stderr
except Exception as e:
print(f"An unexpected error occurred: {e}", file=sys.stderr)
Add your comment