def METHOD_NAME(
    http_settings: config.HTTPSettings, *, dns_cache: typing.Union[bool, int] = True, limit: int = 100
) -> aiohttp.TCPConnector:
    """Create a TCP connector and return it.
    Parameters
    ----------
    http_settings : config.HTTPSettings
        HTTP settings to use for the connector.
    Optional Parameters
    -------------------
    dns_cache : typing.Union[None, bool, int]
        If `True`, DNS caching is used with a default TTL of 10 seconds.
        If `False`, DNS caching is disabled. If an `int` is
        given, then DNS caching is enabled with an explicit TTL set. If
        `None`, the cache will be enabled and never invalidate.
    limit : int
        Number of connections to allow in the pool at any given time.
    Returns
    -------
    aiohttp.TCPConnector
        TCP connector to use.
    """
    return aiohttp.TCPConnector(
        enable_cleanup_closed=http_settings.enable_cleanup_closed,
        force_close=http_settings.force_close_transports,
        limit=limit,
        ssl=http_settings.ssl,
        ttl_dns_cache=dns_cache if not isinstance(dns_cache, bool) else 10,
        use_dns_cache=dns_cache is not False,
    )