SYMBOL INDEX (74 symbols across 7 files) FILE: pyhunter/_core.py function parse_data_payload (line 4) | def parse_data_payload(response, endpoint, method): FILE: pyhunter/async_pyhunter.py class AsyncPyHunter (line 14) | class AsyncPyHunter: method __init__ (line 15) | def __init__(self, api_key, timeout=10, max_retries=2, retry_backoff=0.5, method base_params (line 26) | def base_params(self): method __aenter__ (line 29) | async def __aenter__(self): method __aexit__ (line 32) | async def __aexit__(self, exc_type, exc, tb): method aclose (line 35) | async def aclose(self): method _query_hunter (line 39) | async def _query_hunter(self, endpoint, params, request_type='get', method domain_search (line 93) | async def domain_search(self, domain=None, company=None, limit=None, method email_finder (line 122) | async def email_finder(self, domain=None, company=None, first_name=None, method email_verifier (line 153) | async def email_verifier(self, email, raw=False): method email_count (line 158) | async def email_count(self, domain=None, company=None, raw=False): method account_information (line 171) | async def account_information(self, raw=False): method logo (line 180) | async def logo(self, domain, raw=False): FILE: pyhunter/exceptions.py class PyhunterError (line 1) | class PyhunterError(Exception): class MissingCompanyError (line 8) | class MissingCompanyError(PyhunterError): class MissingNameError (line 12) | class MissingNameError(PyhunterError): class HunterApiError (line 16) | class HunterApiError(PyhunterError): method __init__ (line 20) | def __init__(self, message='Hunter API request failed', status_code=None, class HunterTransportError (line 30) | class HunterTransportError(PyhunterError): method __init__ (line 34) | def __init__(self, message='Hunter API transport failed', endpoint=None, FILE: pyhunter/pyhunter.py class PyHunter (line 14) | class PyHunter: method __init__ (line 15) | def __init__(self, api_key, timeout=10, max_retries=2, retry_backoff=0.5, method base_params (line 25) | def base_params(self): method _query_hunter (line 28) | def _query_hunter(self, endpoint, params, request_type='get', method domain_search (line 92) | def domain_search(self, domain=None, company=None, limit=None, offset=... method email_finder (line 163) | def email_finder(self, domain=None, company=None, first_name=None, method email_verifier (line 235) | def email_verifier(self, email, raw=False): method email_count (line 251) | def email_count(self, domain=None, company=None, raw=False): method account_information (line 282) | def account_information(self, raw=False): method email_enrichment (line 306) | def email_enrichment(self, email=None, linkedin_handle=None, method company_enrichment (line 341) | def company_enrichment(self, domain, clearbit_format=None, raw=False): method combined_enrichment (line 362) | def combined_enrichment(self, email, clearbit_format=None, raw=False): method discover (line 389) | def discover(self, query=None, organization=None, similar_to=None, method get_leads (line 476) | def get_leads(self, offset=None, limit=None, lead_list_id=None, method get_lead (line 552) | def get_lead(self, lead_id): method create_lead (line 566) | def create_lead(self, first_name, last_name, email=None, position=None, method upsert_lead (line 628) | def upsert_lead(self, email, first_name=None, last_name=None, method update_lead (line 690) | def update_lead(self, lead_id, first_name=None, last_name=None, email=... method delete_lead (line 754) | def delete_lead(self, lead_id): method get_leads_lists (line 772) | def get_leads_lists(self, offset=None, limit=None): method get_leads_list (line 793) | def get_leads_list(self, leads_list_id): method create_leads_list (line 810) | def create_leads_list(self, name, team_id=None): method update_leads_list (line 830) | def update_leads_list(self, leads_list_id, name, team_id=None): method delete_leads_list (line 853) | def delete_leads_list(self, leads_list_id): method get_leads_custom_attributes (line 874) | def get_leads_custom_attributes(self, raw=False): method get_leads_custom_attribute (line 888) | def get_leads_custom_attribute(self, attribute_id, raw=False): method create_leads_custom_attribute (line 906) | def create_leads_custom_attribute(self, label, raw=False): method update_leads_custom_attribute (line 924) | def update_leads_custom_attribute(self, attribute_id, label, raw=False): method delete_leads_custom_attribute (line 946) | def delete_leads_custom_attribute(self, attribute_id): method get_campaigns (line 967) | def get_campaigns(self, started=None, archived=None, limit=None, method get_campaign_recipients (line 999) | def get_campaign_recipients(self, campaign_id, limit=None, offset=None, method add_campaign_recipients (line 1027) | def add_campaign_recipients(self, campaign_id, emails=None, method cancel_campaign_recipients (line 1057) | def cancel_campaign_recipients(self, campaign_id, emails, raw=False): method start_campaign (line 1079) | def start_campaign(self, campaign_id, raw=False): method logo (line 1101) | def logo(self, domain, raw=False): FILE: tests/test_async_client.py function test_async_domain_search_requires_domain_or_company (line 11) | async def test_async_domain_search_requires_domain_or_company(): function test_async_email_finder_requires_name_when_no_linkedin (line 19) | async def test_async_email_finder_requires_name_when_no_linkedin(): function test_async_email_finder_returns_tuple (line 27) | async def test_async_email_finder_returns_tuple(): function test_async_account_information_adds_calls_left (line 37) | async def test_async_account_information_adds_calls_left(): function test_async_invalid_payload_raises_api_error (line 48) | async def test_async_invalid_payload_raises_api_error(): function test_async_logo_returns_content_bytes (line 60) | async def test_async_logo_returns_content_bytes(): FILE: tests/test_parity.py function test_sync_async_domain_search_parity (line 10) | async def test_sync_async_domain_search_parity(): function test_sync_async_errors_match_for_missing_company (line 27) | async def test_sync_async_errors_match_for_missing_company(): FILE: tests/test_sync_client.py function _mock_response (line 10) | def _mock_response(payload, status_code=200): function test_domain_search_requires_domain_or_company (line 19) | def test_domain_search_requires_domain_or_company(): function test_email_finder_requires_name_when_no_linkedin (line 25) | def test_email_finder_requires_name_when_no_linkedin(): function test_domain_search_includes_offset_zero (line 31) | def test_domain_search_includes_offset_zero(): function test_email_finder_returns_tuple (line 41) | def test_email_finder_returns_tuple(): function test_account_information_adds_calls_left (line 49) | def test_account_information_adds_calls_left(): function test_query_hunter_raises_hunter_api_error_on_invalid_payload (line 58) | def test_query_hunter_raises_hunter_api_error_on_invalid_payload(): function test_query_hunter_wraps_http_error (line 67) | def test_query_hunter_wraps_http_error(): function test_major_categories_call_query_hunter (line 81) | def test_major_categories_call_query_hunter(): function test_logo_returns_content_bytes (line 93) | def test_logo_returns_content_bytes():