eve-esi-link package.
CLI and library interface for working with EVE Online ESI.
For library usage, EsiLink is the primary entrypoint.
EsiLink
¶
Execute ESI request groups with schema validation and runtime services.
This class must be used as an async context manager so request and auth backends are initialized and cleaned up correctly.
Source code in src/pfmsoft/eve_link/esi_link.py
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 | |
__aenter__() -> Self
async
¶
Initialize API requester and auth manager resources.
Returns:
| Type | Description |
|---|---|
Self
|
The initialized EsiLink instance. |
Source code in src/pfmsoft/eve_link/esi_link.py
__aexit__(exc_type: type[BaseException] | None, exc_value: BaseException | None, traceback: TracebackType | None)
async
¶
Release API requester and auth manager resources.
Source code in src/pfmsoft/eve_link/esi_link.py
__init__(auth_manager_db_path: Path, web_cache_path: Path, max_rate: float = 20.0, time_period: float = 1.0)
¶
Configure an EsiLink instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
auth_manager_db_path
|
Path
|
Path to the SqliteAuthManager database. |
required |
web_cache_path
|
Path
|
Path to the HTTP response cache database. |
required |
max_rate
|
float
|
Maximum number of requests per rate-limit window. |
20.0
|
time_period
|
float
|
Window duration in seconds for rate limiting. |
1.0
|
Source code in src/pfmsoft/eve_link/esi_link.py
from_settings(settings: EsiLinkSettings) -> Self
classmethod
¶
Create an EsiLink instance from EsiLinkSettings.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
EsiLinkSettings
|
EsiLinkSettings object containing configuration parameters. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EsiLink |
Self
|
An initialized EsiLink instance. |
Source code in src/pfmsoft/eve_link/esi_link.py
make_request(esi_request: EsiRequest, schema: EsiSchema) -> EsiResponse | FailedEsiResponse
async
¶
Validate, execute, and return a single ESI request response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
esi_request
|
EsiRequest
|
The ESI request to execute. |
required |
schema
|
EsiSchema
|
Schema used for operation lookup and validation. |
required |
Returns:
| Type | Description |
|---|---|
EsiResponse | FailedEsiResponse
|
EsiResponse | FailedEsiResponse: The response for the ESI request. |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If EsiLink is used outside async context manager scope. |
EsiRequestValidationErrors
|
If the request fails schema validation. |
Exception
|
Any backend execution exception from request or auth layers. |
Source code in src/pfmsoft/eve_link/esi_link.py
make_requests(esi_requests: EsiRequestGroup, schema: EsiSchema) -> EsiResponseGroup
async
¶
Validate, execute, and group responses for an ESI request batch.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
esi_requests
|
EsiRequestGroup
|
ESI requests to execute. |
required |
schema
|
EsiSchema
|
Schema used for operation lookup and validation. |
required |
Returns:
| Type | Description |
|---|---|
EsiResponseGroup
|
Grouped successful and failed responses keyed by runtime request key. |
Raises:
| Type | Description |
|---|---|
RuntimeError
|
If EsiLink is used outside async context manager scope. |
EsiRequestValidationErrors
|
If any request fails schema validation. |
Exception
|
Any backend execution exception from request or auth layers. |
Source code in src/pfmsoft/eve_link/esi_link.py
validate_request(esi_request: EsiRequest, schema: EsiSchema) -> None
staticmethod
¶
Validate one ESI request against the provided schema.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
esi_request
|
EsiRequest
|
The ESI request to validate. |
required |
schema
|
EsiSchema
|
Schema used for validation rules. |
required |
Raises:
| Type | Description |
|---|---|
EsiRequestValidationErrors
|
If request data violates schema-derived rules. |
Source code in src/pfmsoft/eve_link/esi_link.py
EsiLinkSettings
dataclass
¶
Configuration settings for the Eve ESI Link application.
Source code in src/pfmsoft/eve_link/settings.py
EsiRequest
dataclass
¶
Represents a single ESI request to be executed.
Can be loaded from a file or created programmatically. The request_id is used to identify the request.
Requests can be be contained in a RequestGroup, and the request_id is used to link the Request to its RuntimeRequest, and to the final EsiResponse.
Source code in src/pfmsoft/eve_link/esi_request/models.py
auth_character_id: int | None = None
class-attribute
instance-attribute
¶
The character ID used for authorization.
auth_credential_id: UUID | None = None
class-attribute
instance-attribute
¶
The credential ID for authorization. This is used to link the authorization to the credential that was used to obtain it. This UUID is obtained from the credential manager that provides the access token.
authorization_slug: UUID
property
¶
Get the authorization slug for the authorization.
This is a UUID that is generated from the character ID and credential ID, and is used as part of the cache key to differentiate between different cached authorized requests.
Returns:
| Type | Description |
|---|---|
UUID
|
The authorization slug for the authorization. |
description: str | None = None
class-attribute
instance-attribute
¶
An optional description of the request. This is used for documentation purposes, and can be used to provide context for the request when viewing it in a UI or in logs.
has_authorization: bool
property
¶
Check if the request has an authorization.
header_parameters: dict[str, str] = field(default_factory=dict[str, str])
class-attribute
instance-attribute
¶
The header parameters for the request, if applicable.
Acceptable headers are: - Accept-Language - X-Tenant - X-Compatibility-Date
Do not use this to set:
- If-None-Match
- If-Modified-Since headers.
Those are set at runtime during HTTP execution.
name: str | None = None
class-attribute
instance-attribute
¶
An optional name for the request. This is used for documentation purposes, and can be used to provide context for the request when viewing it in a UI or in logs.
operation_id: str
instance-attribute
¶
The operation ID of the request, corresponding to the operationId in the ESI OpenAPI schema.
path_parameters: dict[str, str | int | float] = field(default_factory=dict[str, str | int | float])
class-attribute
instance-attribute
¶
The path parameters for the request, if applicable. This is used to fill in the path parameters in the URL template.
query_parameters: dict[str, str | int | float] = field(default_factory=dict[str, str | int | float])
class-attribute
instance-attribute
¶
The query parameters for the request, if applicable.
This is used to fill in the query parameters in the URL template.
The page parameter is handled automatically by eve-link, and should not
be set manually. If it is set, it will raise a validation error. This is to help normalize cache keys, which rely on predictable parameters.
request_body: Any | None = None
class-attribute
instance-attribute
¶
The JSON payload of the request, if applicable. This is used for POST, PUT, and PATCH requests.
request_id: UUID = field(default_factory=uuid4)
class-attribute
instance-attribute
¶
The unique identifier for the request. This is used to link the request to various objects during the request lifecycle.
EsiRequestGroup
dataclass
¶
Source code in src/pfmsoft/eve_link/esi_request/models.py
description: str | None = None
class-attribute
instance-attribute
¶
An optional description of this group of runtime ESI requests.
name: str | None = None
class-attribute
instance-attribute
¶
The name of this group of runtime ESI requests.
requests: dict[UUID, EsiRequest] = field(default_factory=dict[UUID, EsiRequest])
class-attribute
instance-attribute
¶
The dict of ESI requests in this group.
EsiResponse
dataclass
¶
Source code in src/pfmsoft/eve_link/esi_request/models.py
esi_request: EsiRequest
instance-attribute
¶
The request that generated this response.
esi_runtime_request: RuntimeEsiRequest
instance-attribute
¶
The request that generated this response.
expires_at_instant: Instant | None
property
¶
Return the instant at which the response expires, if any.
received_at_instant: Instant
property
¶
Return the instant at which the response was received.
response: Response
instance-attribute
¶
The response associated with this EsiResponse.
response_data: Any
property
¶
Return the JSON response data associated with this EsiResponse.
serialize(indent: int | None = None) -> str
¶
simple_response() -> SimplifiedEsiResponse
¶
Return a simplified version of this EsiResponse.
This is useful for serialization and deserialization, as it removes the response metadata and other details that are not needed for most use cases.
Source code in src/pfmsoft/eve_link/esi_request/models.py
EsiResponseGroup
dataclass
¶
Source code in src/pfmsoft/eve_link/esi_request/models.py
description: str | None = None
class-attribute
instance-attribute
¶
An optional description of this group of runtime ESI responses.
failed_responses: dict[UUID, FailedEsiResponse] = field(default_factory=dict[UUID, FailedEsiResponse])
class-attribute
instance-attribute
¶
The dict of failed ESI responses in this group.
name: str | None = None
class-attribute
instance-attribute
¶
The name of this group of runtime ESI responses.
successful_responses: dict[UUID, EsiResponse] = field(default_factory=dict[UUID, EsiResponse])
class-attribute
instance-attribute
¶
The dict of successful ESI responses in this group.
serialize(indent: int | None = None) -> str
¶
Purge secrets and serialize the EsiResponseGroup to a JSON string.
EsiSchema
dataclass
¶
Represents the schema payload used for operation-level lookups.
Can have an optional timestamp associated with it, representing the timestamp when the schema was fetched in nanoseconds.
The model builds operation and tag indexes during initialization.
Source code in src/pfmsoft/eve_link/schema/models.py
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 | |
base_url: str
property
¶
Get the base URL for the ESI API from the servers section of the schema.
compatibility_date: str
property
¶
Get compatibility date, currently sourced from info.version.
content_languages: set[str]
property
¶
Get the content languages supported by the ESI API from the schema.
operations: dict[str, SchemaOperation]
property
¶
Get a dictionary of all operations in the schema, keyed by operation ID.
operations_id_by_tag: dict[str, list[str]]
property
¶
Get a dictionary mapping tags to lists of operation IDs.
timestamp: str | None = None
class-attribute
instance-attribute
¶
The timestamp associated with the schema, representing the timestamp when the schema was fetched as an ISO 8601 string. This field is optional and can be None if the timestamp is not available or not applicable.
timestamp_instant: Instant | None
property
¶
Get the timestamp as an Instant object, if available.
version: str
property
¶
Get the version of the ESI schema based on the compatibility date.
__post_init__() -> None
¶
Ensure that the schema is valid.
Source code in src/pfmsoft/eve_link/schema/models.py
deserialize(json_str: str) -> EsiSchema
classmethod
¶
Deserialize an EsiSchema compatible JSON string into an EsiSchema instance.
from_raw_schema(raw_schema: dict[str, Any], timestamp: str | None = None) -> Self
classmethod
¶
Factory method to create an EsiSchema instance from a raw OpenAPI schema.
This method resolves internal $ref values before creating EsiSchema.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
raw_schema
|
dict[str, Any]
|
The raw OpenAPI schema as a dictionary. |
required |
timestamp
|
str | None
|
The timestamp associated with the schema, representing the timestamp when the schema was fetched as an ISO 8601 string. This field is optional and can be None if the timestamp is not available or not applicable. |
None
|
Returns:
| Type | Description |
|---|---|
Self
|
An instance of EsiSchema with the dereferenced schema. |
Source code in src/pfmsoft/eve_link/schema/models.py
operation_url(operation_id: str) -> str
¶
Get full URL template for an operation ID.
Raises:
| Type | Description |
|---|---|
ValueError
|
If operation_id is not present in the schema. |
Source code in src/pfmsoft/eve_link/schema/models.py
serialize(indent: int | None = None) -> str
¶
Serialize as an EsiSchemaTD-compatible JSON string.
Output keys: - dereferenced_schema - timestamp
Source code in src/pfmsoft/eve_link/schema/models.py
FailedEsiResponse
dataclass
¶
Source code in src/pfmsoft/eve_link/esi_request/models.py
esi_request: EsiRequest
instance-attribute
¶
The request that generated this failed response.
esi_runtime_request: RuntimeEsiRequest
instance-attribute
¶
The request that generated this failed response.
failed_response: FailedResponse
instance-attribute
¶
The failed response associated with this FailedEsiResponse.
serialize(indent: int | None = None) -> str
¶
SchemaCacheManager
¶
Manage persisted ESI schema cache files in a single directory.
The cache manager handles reading and writing schema files, as well as maintaining a list of valid compatibility dates. It provides methods to fetch and cache schemas for all known compatibility dates.
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 | |
cache_directory: Path
property
¶
Return the configured cache directory path.
valid_compatibility_dates: tuple[str, ...]
property
¶
__init__(*, cache_directory: Path) -> None
¶
Initialize a cache manager.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cache_directory
|
Path
|
Directory containing cached schema JSON files. |
required |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
clear_all() -> int
¶
Delete all recognized cached schema files.
Returns:
| Type | Description |
|---|---|
int
|
Number of deleted files. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
clear_date(*, compatibility_date: str) -> int
¶
Delete cached schema file(s) for one compatibility date.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
compatibility_date
|
str
|
Date key in YYYY-MM-DD format. |
required |
Returns:
| Type | Description |
|---|---|
int
|
Number of deleted files. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
fetch_updates(session: Client) -> None
¶
Fetch and cache schemas by compatibility date, replacing existing cached files.
This method ensures the latest available compatibility dates are fetched and cached, and then fetches and caches any missing schemas from the EVE Online API for those dates.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session
|
Client
|
An instance of httpx2.Client for making HTTP requests. |
required |
Raises:
| Type | Description |
|---|---|
httpx2.HTTPError
|
If any HTTP request fails. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
latest_entry() -> SchemaCacheEntry
¶
Return the latest cached schema entry by compatibility date.
Returns:
| Type | Description |
|---|---|
SchemaCacheEntry
|
The latest SchemaCacheEntry. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If no cached schema entries exist. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
latest_schema() -> EsiSchema
¶
Return the latest cached schema by compatibility date.
Returns:
| Type | Description |
|---|---|
EsiSchema
|
The latest EsiSchema. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If no cached schema entries exist. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
list_entries() -> list[SchemaCacheEntry]
¶
List all cached schema entries.
Returns:
| Type | Description |
|---|---|
list[SchemaCacheEntry]
|
Sorted list of cache entries by compatibility_date then timestamp. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
load(*, compatibility_date: str) -> EsiSchema
¶
Load a cached schema by compatibility date.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
compatibility_date
|
str
|
Date key in YYYY-MM-DD format. |
required |
Returns:
| Type | Description |
|---|---|
EsiSchema
|
Loaded EsiSchema. |
Raises:
| Type | Description |
|---|---|
FileNotFoundError
|
If no cached schema exists for the date. |
ValueError
|
If multiple cached files exist for the same date. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
save(*, schema: EsiSchema) -> SchemaCacheEntry
¶
Save a schema to cache, replacing any existing entry for its date.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
schema
|
EsiSchema
|
Schema to cache. |
required |
Returns:
| Type | Description |
|---|---|
SchemaCacheEntry
|
Metadata for the saved cache entry. |
Source code in src/pfmsoft/eve_link/schema/cache/schema_cache_disk.py
SimpleRequests
¶
Source code in src/pfmsoft/eve_link/esi_link.py
342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | |
__init__(settings: EsiLinkSettings) -> None
¶
A simple wrapper for executing ESI requests with schema validation.
The only state saved by this class is the EsiLinkSettings object, which is used to configure the EsiLink instance and schema cache manager. While the factory functions for creating EsiLink and SchemaCacheManager instances are useful for all situations, the other functions are intended for one-off scripts or commands that need to execute a single request or a small batch of requests without managing the EsiLink context directly.
Longer lived applications that execute multiple requests should use the SchemaCacheManager and EsiLink class directly, as it is more efficient to keep the EsiLink instance open and reuse it for multiple requests.
Source code in src/pfmsoft/eve_link/esi_link.py
esi_link_factory() -> EsiLink
¶
Factory function to create an instance of EsiLink from settings.
Returns:
| Name | Type | Description |
|---|---|---|
EsiLink |
EsiLink
|
An instance of the EsiLink class. |
Source code in src/pfmsoft/eve_link/esi_link.py
get_schema(compatibility_date: str | None = None) -> EsiSchema
¶
Fetches an ESI schema from the EsiLink schema cache.
This function retrieves the ESI schema from the local cache managed by the SchemaCacheManager. If a compatibility date is provided, it fetches the schema corresponding to that date; otherwise, it retrieves the latest available schema.
This function will check for new schema updates from the ESI schema repository once per downtime before returning the schema.
It is suitable for one-off scripts or commands. When executing multiple requests, consider using SchemaCacheManager directly to avoid repeated cache lookups.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
compatibility_date
|
str | None
|
Optional compatibility date in YYYY-MM-DD format. If not provided, the latest schema is fetched. |
None
|
Returns:
| Type | Description |
|---|---|
EsiSchema
|
The EsiSchema object for the specified compatibility date or the latest schema if no date is provided. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If no cached schema entries exist. |
Source code in src/pfmsoft/eve_link/esi_link.py
make_request(esi_request: EsiRequest, schema: EsiSchema) -> EsiResponse | FailedEsiResponse
async
¶
Validate, execute, and return a single ESI request response.
This function wraps the EsiLink class to provide a simple interface for executing a single ESI request. It creates a temporary EsiLink instance, validates the request against the provided schema, and executes it. The response is returned as either an EsiResponse or a FailedEsiResponse, depending on the outcome of the request.
When used in situations where multiple requests need to be executed, consider using the EsiLink class directly to avoid the overhead of creating and closing multiple instances with their associated resources.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
esi_request
|
EsiRequest
|
The ESI request to execute. |
required |
schema
|
EsiSchema
|
The ESI schema for validation. |
required |
Returns:
| Type | Description |
|---|---|
EsiResponse | FailedEsiResponse
|
EsiResponse if the request is successful, otherwise FailedEsiResponse. |
Source code in src/pfmsoft/eve_link/esi_link.py
make_requests(esi_requests: EsiRequestGroup, schema: EsiSchema) -> EsiResponseGroup
async
¶
Validate, execute, and return a group of ESI request responses.
This function wraps the EsiLink class to provide a simple interface for executing a group of ESI requests. It creates a temporary EsiLink instance, validates the requests against the provided schema, and executes them. The responses are returned as an EsiResponseGroup, containing both successful and failed responses.
When used in situations where multiple requests need to be executed, consider using the EsiLink class directly to avoid the overhead of creating and closing multiple instances.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
esi_requests
|
EsiRequestGroup
|
The group of ESI requests to execute. |
required |
schema
|
EsiSchema
|
The ESI schema for validation. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
EsiResponseGroup |
EsiResponseGroup
|
The group of ESI request responses. |
Source code in src/pfmsoft/eve_link/esi_link.py
schema_cache_manager_factory() -> SchemaCacheManager
¶
Factory function to create an instance of SchemaCacheManager from settings.
Returns:
| Name | Type | Description |
|---|---|---|
SchemaCacheManager |
SchemaCacheManager
|
An instance of the SchemaCacheManager class. |
Source code in src/pfmsoft/eve_link/esi_link.py
get_settings(application_directory: Path | None = None) -> EsiLinkSettings
¶
Build runtime settings from a Pydantic settings model or application directory.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
application_directory
|
Path | None
|
Optional application directory path. If not provided, the default application directory is used. |
None
|
Returns:
| Type | Description |
|---|---|
EsiLinkSettings
|
Runtime settings dataclass used by the application. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the provided application directory exists but is not a directory. |