class_docstr: Base class for an Adapter.
  
  There are two types of adapters:
  
  - :class:`.BaseSyncAdapter` -- synchronous adapter,
  - :class:`.BaseAsyncAdapter` -- asynchronous (asyncio) adapter.
  
  Concrete adapter implementations must extend one of the two
  base adapters above.
  
  See :attr:`geopy.geocoders.options.default_adapter_factory`
  for details on how to specify an adapter to be used by geocoders.
docstr: Initialize adapter.
  
  :param dict proxies: An urllib-style proxies dict, e.g.
      ``{"http": "192.0.2.0:8080", "https": "192.0.2.0:8080"}``,
      ``{"https": "http://user:passw0rd@192.0.2.0:8080""}``.
      See :attr:`geopy.geocoders.options.default_proxies` (note
      that Adapters always receive a dict: the string proxy
      is transformed to dict in the base
      :class:`geopy.geocoders.base.Geocoder` class.).
  
  :type ssl_context: :class:`ssl.SSLContext`
  :param ssl_context:
      See :attr:`geopy.geocoders.options.default_ssl_context`.
docstr_tok: ["Initialize","adapter",".",":","param","dict","proxies",":","An","urllib-style","proxies","dict",",","e.g",".","``","{","``","http","''",":","``","192.0.2.0:8080","''",",","``","https","''",":","``","192.0.2.0:8080","''","}","``",",","``","{","``","https","''",":","``","http",":","\/\/user",":","passw0rd","@","192.0.2.0:8080","''","''","}","``",".","See",":","attr",":","`","geopy.geocoders.options.default_proxies","`","(","note","that","Adapters","always","receive","a","dict",":","the","string","proxy","is","transformed","to","dict","in","the","base",":","class",":","`","geopy.geocoders.base.Geocoder","`","class.",")",".",":","type","ssl_context",":",":","class",":","`","ssl.SSLContext","`",":","param","ssl_context",":","See",":","attr",":","`","geopy.geocoders.options.default_ssl_context","`","."]
code: def __init__(self, *, proxies, ssl_context):
      """Initialize adapter.
  
      :param dict proxies: An urllib-style proxies dict, e.g.
          ``{"http": "192.0.2.0:8080", "https": "192.0.2.0:8080"}``,
          ``{"https": "http://user:passw0rd@192.0.2.0:8080""}``.
          See :attr:`geopy.geocoders.options.default_proxies` (note
          that Adapters always receive a dict: the string proxy
          is transformed to dict in the base
          :class:`geopy.geocoders.base.Geocoder` class.).
  
      :type ssl_context: :class:`ssl.SSLContext`
      :param ssl_context:
          See :attr:`geopy.geocoders.options.default_ssl_context`.
  
      """
  
imports: import abc
  import asyncio
  import contextlib
  import email
  import json
  import ssl
  import time
  import warnings
  from socket import timeout
  from ssl import SSLError
  from urllib.error import HTTPError
  from urllib.parse import urlparse
  from urllib.request import HTTPSHandler, ProxyHandler, Request, URLError, build_opener, getproxies
  from geopy.exc import GeocoderParseError, GeocoderServiceError, GeocoderTimedOut, GeocoderUnavailable, GeopyError
  from geopy.util import logger
label_desc: Use image node_id 1 to create a new BaseAdapter object from inherited base classes: abc with example: obj = BaseAdapter()