Exceptions

pyvergeos defines a hierarchy of exceptions for error handling.

Exception Classes

Custom exceptions for pyvergeos.

Note: Exception names are prefixed with ‘Verge’ to avoid shadowing Python builtins (ConnectionError, TimeoutError).

exception pyvergeos.exceptions.VergeError[source]

Bases: Exception

Base exception for all pyvergeos errors.

exception pyvergeos.exceptions.VergeConnectionError[source]

Bases: VergeError

Connection to VergeOS failed.

exception pyvergeos.exceptions.NotConnectedError[source]

Bases: VergeError

Operation attempted without an active connection.

exception pyvergeos.exceptions.VergeTimeoutError[source]

Bases: VergeError

Request timed out.

exception pyvergeos.exceptions.APIError[source]

Bases: VergeError

Base class for API errors.

__init__(message, status_code=None)[source]
Parameters:
  • message (str)

  • status_code (int | None)

Return type:

None

exception pyvergeos.exceptions.AuthenticationError[source]

Bases: APIError

Authentication failed (401/403).

exception pyvergeos.exceptions.NotFoundError[source]

Bases: APIError

Resource not found (404).

exception pyvergeos.exceptions.ConflictError[source]

Bases: APIError

Resource conflict (409).

exception pyvergeos.exceptions.ValidationError[source]

Bases: APIError

Validation error (422).

exception pyvergeos.exceptions.TaskError[source]

Bases: VergeError

Task execution failed.

__init__(message, task_id=None)[source]
Parameters:
  • message (str)

  • task_id (int | None)

Return type:

None

exception pyvergeos.exceptions.TaskTimeoutError[source]

Bases: TaskError

Task wait timed out.

Filters

OData-style filter expression builder for VergeOS API queries.

class pyvergeos.filters.FilterOperator[source]

Bases: Enum

Supported filter operators.

EQ = 'eq'
NE = 'ne'
LT = 'lt'
GT = 'gt'
LE = 'le'
GE = 'ge'
LIKE = 'like'
IN = 'in'
class pyvergeos.filters.Filter[source]

Bases: object

OData-style filter expression builder.

Example

>>> f = Filter()
>>> f.eq("status", "running").and_().like("name", "web*")
>>> str(f)
"status eq 'running' and name like 'web%'"
__init__()[source]
Return type:

None

eq(field, value)[source]

Add equals condition.

Parameters:
Return type:

Filter

ne(field, value)[source]

Add not equals condition.

Parameters:
Return type:

Filter

lt(field, value)[source]

Add less than condition.

Parameters:
Return type:

Filter

gt(field, value)[source]

Add greater than condition.

Parameters:
Return type:

Filter

le(field, value)[source]

Add less than or equal condition.

Parameters:
Return type:

Filter

ge(field, value)[source]

Add greater than or equal condition.

Parameters:
Return type:

Filter

like(field, pattern)[source]

Add LIKE pattern condition. Use * for wildcard.

Parameters:
Return type:

Filter

in_(field, values)[source]

Add IN condition.

Parameters:
Return type:

Filter

and_()[source]

Add explicit AND connector (usually not needed, AND is implicit).

Return type:

Filter

or_()[source]

Add OR connector (must be explicit, unlike AND).

Return type:

Filter

pyvergeos.filters.build_filter(**kwargs)[source]

Build a filter string from keyword arguments.

Supports:
  • Simple equality: name=”value”

  • Wildcards: name=”prefix*” (converted to LIKE)

  • Lists: status=[“running”, “stopped”] (converted to IN)

Parameters:

**kwargs (Any) – Field-value pairs for filtering.

Returns:

OData filter string.

Return type:

str

Example

>>> build_filter(status="running", name="web*")
"status eq 'running' and name like 'web%'"