Exceptions
Exception hierarchy (base: NaminterError). See API Reference for each class.
Core Exceptions
Base Exception
naminter.core.exceptions.NaminterError
Bases: Exception
Base exception class for Naminter errors.
| PARAMETER | DESCRIPTION |
|---|---|
message
|
Error message describing what went wrong.
TYPE:
|
Network/HTTP Errors
naminter.core.exceptions.HttpError
Bases: NaminterError
Raised when network-related errors occur.
This includes connection failures, DNS resolution errors, and other network-level issues.
naminter.core.exceptions.HttpSessionError
Bases: HttpError
Raised when HTTP session creation or management fails.
This includes session initialization errors, authentication failures, and session state management issues.
Data Processing Errors
naminter.core.exceptions.WMNDataError
Bases: NaminterError
Raised when there are issues with WMN data processing or validation.
This includes malformed data, parsing errors, and data integrity issues.
naminter.core.exceptions.WMNUninitializedError
Bases: WMNDataError
Raised when WMN data is not initialized or missing.
This occurs when operations require WMN data but it hasn't been provided or loaded yet.
naminter.core.exceptions.WMNUnknownSiteError
Bases: WMNDataError
Raised when a requested site name doesn't exist in the WMN dataset.
| ATTRIBUTE | DESCRIPTION |
|---|---|
site_names |
List of unknown site names that were requested.
TYPE:
|
Initialize WMNUnknownSiteError.
| PARAMETER | DESCRIPTION |
|---|---|
message
|
Error message describing what went wrong.
TYPE:
|
site_names
|
List of unknown site names that were requested.
TYPE:
|
naminter.core.exceptions.WMNUnknownCategoriesError
Bases: WMNDataError
Raised when requested categories don't exist in the WMN dataset.
| ATTRIBUTE | DESCRIPTION |
|---|---|
categories |
List of unknown category names that were requested.
TYPE:
|
Initialize WMNUnknownCategoriesError.
| PARAMETER | DESCRIPTION |
|---|---|
message
|
Error message describing what went wrong.
TYPE:
|
categories
|
List of unknown category names that were requested.
TYPE:
|
naminter.core.exceptions.WMNSchemaError
naminter.core.exceptions.WMNValidationError
Bases: WMNDataError
Raised when WMN dataset validation fails.
| ATTRIBUTE | DESCRIPTION |
|---|---|
schema_errors |
List of JSON schema validation errors.
TYPE:
|
dataset_errors |
List of custom dataset validation errors (license, authors, categories, duplicates, and site configurations).
TYPE:
|
Initialize WMNValidationError.
| PARAMETER | DESCRIPTION |
|---|---|
message
|
Error message describing what went wrong.
TYPE:
|
schema_errors
|
List of JSON schema validation errors.
TYPE:
|
dataset_errors
|
List of custom dataset validation errors.
TYPE:
|
naminter.core.exceptions.WMNArgumentError
Bases: WMNDataError
Raised when invalid arguments are passed to Naminter core APIs.
This is used for programmer / caller mistakes such as providing an empty username list where at least one username is required.
naminter.core.exceptions.WMNEnumerationError
Bases: WMNDataError
Raised when site enumeration fails due to configuration errors.
This includes invalid headers, strip_bad_char configuration errors, and other site-specific configuration issues.
naminter.core.exceptions.WMNFormatError
Bases: WMNDataError
Raised when WMN data formatting fails.
This includes JSON serialization errors, invalid data structure, and other formatting-related issues.
Common Exception Patterns
Handling Network Errors
from naminter.core.exceptions import HttpError, HttpSessionError
try:
# Network operation
pass
except HttpSessionError:
# Handle session issues specifically
pass
except HttpError:
# Handle any other HTTP error
pass
Handling Data Errors
from naminter.core.exceptions import (
WMNDataError,
WMNUninitializedError,
WMNUnknownSiteError,
WMNValidationError,
)
try:
# WMN data operation
pass
except WMNUninitializedError:
# Data not loaded
pass
except WMNUnknownSiteError as e:
# Access unknown site names
print(f"Unknown sites: {e.site_names}")
except WMNValidationError as e:
# Access validation errors
for error in e.schema_errors:
print(f"Schema error: {error}")
for error in e.dataset_errors:
print(f"Dataset error: {error}")
except WMNDataError:
# Handle any other data error
pass