proxywhirl.premium_sources

ProxyWhirl data sources with comprehensive validation.

This module extends the existing built-in sources with additional premium providers and validation using Pydantic.

Classes

PremiumProxyConfig

Validated proxy source configuration for premium providers.

ProxySourceList

Collection of validated proxy sources.

Functions

create_premium_proxy_source(provider, username, password)

Create a validated proxy source from a premium provider.

list_premium_providers()

List all available premium proxy providers.

Module Contents

class proxywhirl.premium_sources.PremiumProxyConfig(/, **data)[source]

Bases: pydantic.BaseModel

Validated proxy source configuration for premium providers.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

classmethod validate_protocol(v)[source]

Validate protocol type.

Parameters:

v (str | None)

Return type:

str | None

classmethod validate_region(v)[source]

Validate region is a known region code.

Parameters:

v (str | None)

Return type:

str | None

class proxywhirl.premium_sources.ProxySourceList(/, **data)[source]

Bases: pydantic.BaseModel

Collection of validated proxy sources.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

add_source(url, **kwargs)[source]

Add a validated proxy source.

Parameters:
  • url (str)

  • kwargs (Any)

Return type:

None

get_by_protocol(protocol)[source]

Get proxies by protocol type.

Parameters:

protocol (str)

Return type:

list[PremiumProxyConfig]

get_by_provider(provider)[source]

Get proxies from a specific provider.

Parameters:

provider (str)

Return type:

list[PremiumProxyConfig]

get_by_region(region)[source]

Get proxies for a specific region.

Parameters:

region (str)

Return type:

list[PremiumProxyConfig]

proxywhirl.premium_sources.create_premium_proxy_source(provider, username, password, region=None)[source]

Create a validated proxy source from a premium provider.

Parameters:
  • provider (str) – Provider name (e.g., ‘brightdata’, ‘oxylabs’, ‘smartproxy’)

  • username (str) – Provider username

  • password (str) – Provider password

  • region (str | None) – Optional geographic region

Returns:

Validated PremiumProxyConfig

Raises:

ValueError – If provider is unknown

Return type:

PremiumProxyConfig

Examples

>>> source = create_premium_proxy_source(
...     'brightdata',
...     'myuser',
...     'mypass',
...     region='US-EAST'
... )
proxywhirl.premium_sources.list_premium_providers()[source]

List all available premium proxy providers.

Returns:

Dictionary of provider information

Return type:

dict[str, dict[str, str]]