anacreonlib.types package#

Module contents#

This package contains all of the Pydantic models that are used to interact with the Anacreon API

Because all of the types are Pydantic models, they come with handy methods that can serialize/deserialize to JSON. You can read more about Pydantic on their documentation website.

anacreonlib.types.request_datatypes module#

class anacreonlib.types.request_datatypes.AbortAttack(*, battleFieldID: int)#

Bases: SerializableDataclass

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.

battlefield_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'battlefield_id': FieldInfo(annotation=int, required=True, alias='battleFieldID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.AbortAttackRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, battleFieldID: int)#

Bases: AbortAttack, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'battlefield_id': FieldInfo(annotation=int, required=True, alias='battleFieldID', alias_priority=2), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.AlterImprovement(*, sourceObjID: int, improvementID: int)#

Bases: SerializableDataclass

Used to both build and destroy improvements

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.

improvement_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'improvement_id': FieldInfo(annotation=int, required=True, alias='improvementID', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

source_obj_id: int#
class anacreonlib.types.request_datatypes.AlterImprovementRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, sourceObjID: int, improvementID: int)#

Bases: AlterImprovement, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'improvement_id': FieldInfo(annotation=int, required=True, alias='improvementID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.AnacreonApiRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None)#

Bases: SerializableDataclass

Base class for request bodies to most of the endpoints for the Anacreon API

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.

auth_token: str#
game_id: str#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

sequence: int | None#
sovereign_id: int#
class anacreonlib.types.request_datatypes.Attack(*, attackerObjID: int, battlePlan: BattlePlan)#

Bases: SerializableDataclass

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.

attacker_obj_id: int#
battle_plan: BattlePlan#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'attacker_obj_id': FieldInfo(annotation=int, required=True, alias='attackerObjID', alias_priority=1), 'battle_plan': FieldInfo(annotation=BattlePlan, required=True, alias='battlePlan', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.AttackRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, attackerObjID: int, battlePlan: BattlePlan)#

Bases: Attack, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'attacker_obj_id': FieldInfo(annotation=int, required=True, alias='attackerObjID', alias_priority=1), 'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'battle_plan': FieldInfo(annotation=BattlePlan, required=True, alias='battlePlan', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.AuthenticationRequest(*, username: str, password: str, actual: bool = True)#

Bases: SerializableDataclass

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.

actual: bool#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'actual': FieldInfo(annotation=bool, required=False, default=True, alias='actual', alias_priority=1), 'password': FieldInfo(annotation=str, required=True, alias='password', alias_priority=1), 'username': FieldInfo(annotation=str, required=True, alias='username', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

password: str#
username: str#
class anacreonlib.types.request_datatypes.BattlePlan(*, battleFieldID: int, objective: BattleObjective, enemySovereignIDs: List[int])#

Bases: SerializableDataclass

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.

battlefield_id: int#
enemy_sovereign_ids: List[int]#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'battlefield_id': FieldInfo(annotation=int, required=True, alias='battleFieldID', alias_priority=2), 'enemy_sovereign_ids': FieldInfo(annotation=List[int], required=True, alias='enemySovereignIDs', alias_priority=2), 'objective': FieldInfo(annotation=BattleObjective, required=True, alias='objective', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

objective: BattleObjective#
class anacreonlib.types.request_datatypes.BuyItem(*, sourceObjID: int, itemID: int, itemCount: int)#

Bases: SerializableDataclass

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.

item_count: int#
item_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'item_count': FieldInfo(annotation=int, required=True, alias='itemCount', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'item_id': FieldInfo(annotation=int, required=True, alias='itemID', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

source_obj_id: int#
class anacreonlib.types.request_datatypes.BuyItemRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, sourceObjID: int, itemID: int, itemCount: int)#

Bases: BuyItem, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'item_count': FieldInfo(annotation=int, required=True, alias='itemCount', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'item_id': FieldInfo(annotation=int, required=True, alias='itemID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.DeployFleet(*, sourceObjID: int, resources: List[int])#

Bases: SerializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'resources': FieldInfo(annotation=List[Annotated[int, PlainSerializer, BeforeValidator]], required=True, alias='resources', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

resources: List[int]#
source_obj_id: int#
class anacreonlib.types.request_datatypes.DeployFleetRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, sourceObjID: int, resources: List[int])#

Bases: DeployFleet, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'resources': FieldInfo(annotation=List[Annotated[int, PlainSerializer, BeforeValidator]], required=True, alias='resources', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.DesignateWorld(*, sourceObjID: int, newDesignation: int)#

Bases: SerializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'new_designation': FieldInfo(annotation=int, required=True, alias='newDesignation', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

new_designation: int#
source_obj_id: int#
class anacreonlib.types.request_datatypes.DesignateWorldRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, sourceObjID: int, newDesignation: int)#

Bases: DesignateWorld, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'new_designation': FieldInfo(annotation=int, required=True, alias='newDesignation', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.DisbandFleet(*, fleetObjID: int, destObjID: int)#

Bases: SerializableDataclass

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.

dest_obj_id: int#
fleet_obj_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'dest_obj_id': FieldInfo(annotation=int, required=True, alias='destObjID', alias_priority=1), 'fleet_obj_id': FieldInfo(annotation=int, required=True, alias='fleetObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.DisbandFleetRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, fleetObjID: int, destObjID: int)#

Bases: DisbandFleet, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'dest_obj_id': FieldInfo(annotation=int, required=True, alias='destObjID', alias_priority=1), 'fleet_obj_id': FieldInfo(annotation=int, required=True, alias='fleetObjID', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.GetTactical(*, objID: int)#

Bases: SerializableDataclass

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.

battlefield_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'battlefield_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.GetTacticalRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int)#

Bases: GetTactical, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'battlefield_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.LaunchJumpMissile(*, objID: int, targetObjID: int)#

Bases: SerializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'source_obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'target_obj_id': FieldInfo(annotation=int, required=True, alias='targetObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

source_obj_id: int#
target_obj_id: int#
class anacreonlib.types.request_datatypes.LaunchJumpMissileRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, targetObjID: int)#

Bases: LaunchJumpMissile, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'source_obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'target_obj_id': FieldInfo(annotation=int, required=True, alias='targetObjID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.RenameObject(*, objID: int, name: str)#

Bases: SerializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
obj_id: int#
class anacreonlib.types.request_datatypes.RenameObjectRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, name: str)#

Bases: RenameObject, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SellFleet(*, objID: int, buyerObjID: int, resources: List[int])#

Bases: SerializableDataclass

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.

buyer_obj_id: int#
fleet_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'buyer_obj_id': FieldInfo(annotation=int, required=True, alias='buyerObjID', alias_priority=1), 'fleet_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'resources': FieldInfo(annotation=List[Annotated[int, PlainSerializer, BeforeValidator]], required=True, alias='resources', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

resources: List[int]#
class anacreonlib.types.request_datatypes.SellFleetRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, buyerObjID: int, resources: List[int])#

Bases: SellFleet, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'buyer_obj_id': FieldInfo(annotation=int, required=True, alias='buyerObjID', alias_priority=1), 'fleet_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'resources': FieldInfo(annotation=List[Annotated[int, PlainSerializer, BeforeValidator]], required=True, alias='resources', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SendMessage(*, recipientID: int, messageText: str)#

Bases: SerializableDataclass

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.

message_text: str#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'message_text': FieldInfo(annotation=str, required=True, alias='messageText', alias_priority=1), 'recipient_id': FieldInfo(annotation=int, required=True, alias='recipientID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

recipient_id: int#
class anacreonlib.types.request_datatypes.SendMessageRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, recipientID: int, messageText: str)#

Bases: SendMessage, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'message_text': FieldInfo(annotation=str, required=True, alias='messageText', alias_priority=1), 'recipient_id': FieldInfo(annotation=int, required=True, alias='recipientID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SerializableDataclass#

Bases: BaseModel

Base class for a serializable Anacreon request object. Contains common Pydantic config settings.

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SetFleetDestination(*, objID: int, dest: int)#

Bases: SerializableDataclass

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.

dest: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'dest': FieldInfo(annotation=int, required=True, alias='dest', alias_priority=1), 'obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

obj_id: int#
class anacreonlib.types.request_datatypes.SetFleetDestinationRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, dest: int)#

Bases: SetFleetDestination, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'dest': FieldInfo(annotation=int, required=True, alias='dest', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SetHistoryRead(*, historyID: int)#

Bases: SerializableDataclass

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.

history_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'history_id': FieldInfo(annotation=int, required=True, alias='historyID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SetHistoryReadRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, historyID: int)#

Bases: SetHistoryRead, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'history_id': FieldInfo(annotation=int, required=True, alias='historyID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SetIndustryAlloc(*, objID: int, industryID: int, allocValue: int | float)#

Bases: SerializableDataclass

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.

alloc_value: int | float#
industry_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'alloc_value': FieldInfo(annotation=Union[int, float], required=True, alias='allocValue', alias_priority=1, metadata=[Ge(ge=0), Le(le=100)]), 'industry_id': FieldInfo(annotation=int, required=True, alias='industryID', alias_priority=1), 'world_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

world_id: int#
class anacreonlib.types.request_datatypes.SetIndustryAllocRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, industryID: int, allocValue: int | float)#

Bases: SetIndustryAlloc, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'alloc_value': FieldInfo(annotation=Union[int, float], required=True, alias='allocValue', alias_priority=1, metadata=[Ge(ge=0), Le(le=100)]), 'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'industry_id': FieldInfo(annotation=int, required=True, alias='industryID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'world_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SetProductAlloc(*, objID: int, industryID: int, alloc: List[int | float])#

Bases: SerializableDataclass

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.

alloc: List[int | float]#
industry_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'alloc': FieldInfo(annotation=List[Union[int, float]], required=True, alias='alloc', alias_priority=1), 'industry_id': FieldInfo(annotation=int, required=True, alias='industryID', alias_priority=1), 'world_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

world_id: int#
class anacreonlib.types.request_datatypes.SetProductAllocRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, industryID: int, alloc: List[int | float])#

Bases: SetProductAlloc, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'alloc': FieldInfo(annotation=List[Union[int, float]], required=True, alias='alloc', alias_priority=1), 'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'industry_id': FieldInfo(annotation=int, required=True, alias='industryID', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'world_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.SetTradeRoute(*, objID: int, sourceObjID: int, allocType: TradeRouteTypes | str, allocValue: str | float | None = None, resType: int | None = None)#

Bases: SerializableDataclass

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.

alloc_type: TradeRouteTypes | str#
alloc_value: str | float | None#
exporter_id: int#
importer_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'alloc_type': FieldInfo(annotation=Union[TradeRouteTypes, str], required=True, alias='allocType', alias_priority=1), 'alloc_value': FieldInfo(annotation=Union[str, float, NoneType], required=False, alias='allocValue', alias_priority=1), 'exporter_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=2), 'importer_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'res_type_id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='resType', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

res_type_id: int | None#
class anacreonlib.types.request_datatypes.SetTradeRouteRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, sourceObjID: int, allocType: TradeRouteTypes | str, allocValue: str | float | None = None, resType: int | None = None)#

Bases: SetTradeRoute, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'alloc_type': FieldInfo(annotation=Union[TradeRouteTypes, str], required=True, alias='allocType', alias_priority=1), 'alloc_value': FieldInfo(annotation=Union[str, float, NoneType], required=False, alias='allocValue', alias_priority=1), 'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'exporter_id': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=2), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'importer_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'res_type_id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='resType', alias_priority=2), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.StopTradeRoute(*, objID: int, sourceObjID: int)#

Bases: SerializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'planet_id_a': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'planet_id_b': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

planet_id_a: int#
planet_id_b: int#
class anacreonlib.types.request_datatypes.StopTradeRouteRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, sourceObjID: int)#

Bases: StopTradeRoute, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'planet_id_a': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'planet_id_b': FieldInfo(annotation=int, required=True, alias='sourceObjID', alias_priority=2), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.TacticalOrder(*, objID: int, order: TacticalOrderType | str, tacticalID: int, orbit: float | None = None)#

Bases: SerializableDataclass

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.

battlefield_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'battlefield_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'orbit': FieldInfo(annotation=Union[float, NoneType], required=False, alias='orbit', alias_priority=1), 'order': FieldInfo(annotation=Union[TacticalOrderType, str], required=True, alias='order', alias_priority=1), 'squadron_id': FieldInfo(annotation=int, required=True, alias='tacticalID', alias_priority=2), 'tactical_id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='tacticalID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

orbit: float | None#
order: TacticalOrderType | str#
squadron_id: int#
tactical_id: int | None#
class anacreonlib.types.request_datatypes.TacticalOrderRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, objID: int, order: TacticalOrderType | str, tacticalID: int, orbit: float | None = None)#

Bases: TacticalOrder, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'battlefield_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=2), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'orbit': FieldInfo(annotation=Union[float, NoneType], required=False, alias='orbit', alias_priority=1), 'order': FieldInfo(annotation=Union[TacticalOrderType, str], required=True, alias='order', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'squadron_id': FieldInfo(annotation=int, required=True, alias='tacticalID', alias_priority=2), 'tactical_id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='tacticalID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class anacreonlib.types.request_datatypes.TacticalOrderType(value)#

Bases: str, Enum

An enumeration.

LAND = 'land'#
ORBIT = 'orbit'#
TARGET = 'target'#
class anacreonlib.types.request_datatypes.TradeRouteTypes(value)#

Bases: str, Enum

An enumeration.

ADD_EXPORT_ROUTE = 'addExportRoute'#
CONSUMPTION = 'consumption'#
DEFAULT = 'addDefaultRoute'#
SET_EXPORT_QUOTA = 'setExportQuota'#
TECH = 'tech'#
class anacreonlib.types.request_datatypes.TransferFleet(*, fleetObjID: int, destObjID: int, resources: List[int])#

Bases: SerializableDataclass

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.

dest_obj_id: int#
fleet_obj_id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'dest_obj_id': FieldInfo(annotation=int, required=True, alias='destObjID', alias_priority=1), 'fleet_obj_id': FieldInfo(annotation=int, required=True, alias='fleetObjID', alias_priority=1), 'resources': FieldInfo(annotation=List[Annotated[int, PlainSerializer, BeforeValidator]], required=True, alias='resources', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

resources: List[int]#
class anacreonlib.types.request_datatypes.TransferFleetRequest(*, authToken: str, gameID: str, sovereignID: int, sequence: int | None = None, fleetObjID: int, destObjID: int, resources: List[int])#

Bases: TransferFleet, AnacreonApiRequest

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'dest_obj_id': FieldInfo(annotation=int, required=True, alias='destObjID', alias_priority=1), 'fleet_obj_id': FieldInfo(annotation=int, required=True, alias='fleetObjID', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'resources': FieldInfo(annotation=List[Annotated[int, PlainSerializer, BeforeValidator]], required=True, alias='resources', alias_priority=1), 'sequence': FieldInfo(annotation=Union[Annotated[int, PlainSerializer, BeforeValidator], NoneType], required=False, alias='sequence', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)])}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

anacreonlib.types.response_datatypes module#

class anacreonlib.types.response_datatypes.AnacreonObject(*, object_class: str)#

Bases: DeserializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'object_class': FieldInfo(annotation=str, required=True, alias='class', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: str#
class anacreonlib.types.response_datatypes.AnacreonObjectWithId(*, object_class: str, id: int)#

Bases: AnacreonObject

Not all anacreon objects have an ID, most notably, UpdateObject

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.

id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'object_class': FieldInfo(annotation=str, required=True, alias='class', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: ObjectClass[str]#
class anacreonlib.types.response_datatypes.AuthenticationResponse(*, authToken: str, rights: List[str], scopedCredentials: int, username: str)#

Bases: DeserializableDataclass

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.

auth_token: str#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'auth_token': FieldInfo(annotation=str, required=True, alias='authToken', alias_priority=1), 'rights': FieldInfo(annotation=List[str], required=True, alias='rights', alias_priority=1), 'scoped_credentials': FieldInfo(annotation=int, required=True, alias='scopedCredentials', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'username': FieldInfo(annotation=str, required=True, alias='username', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

rights: List[str]#
scoped_credentials: int#
username: str#
class anacreonlib.types.response_datatypes.BattlePlanDetails(*, enemySovereignIDs: List[int] | None = None, objective: BattleObjective, sovereignID: int, status: str)#

Bases: DeserializableDataclass

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.

enemy_sovereign_ids: List[int] | None#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'enemy_sovereign_ids': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='enemySovereignIDs', alias_priority=2), 'objective': FieldInfo(annotation=BattleObjective, required=True, alias='objective', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1), 'status': FieldInfo(annotation=str, required=True, alias='status', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

objective: BattleObjective#
sovereign_id: int#
status: str#
classmethod validate_enemy_sovereign_ids(values: Dict[str, Any]) Dict[str, Any]#
class anacreonlib.types.response_datatypes.BattlePlanObject(*, object_class: Literal['battlePlan'], id: int, battlePlan: BattlePlanDetails)#

Bases: AnacreonObjectWithId

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.

battle_plan: BattlePlanDetails#
id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'battle_plan': FieldInfo(annotation=BattlePlanDetails, required=True, alias='battlePlan', alias_priority=1), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['battlePlan'], required=True, alias='class', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: Literal['battlePlan']#
class anacreonlib.types.response_datatypes.DestroyedSpaceObject(*, object_class: Literal['destroyedSpaceObject'], id: int)#

Bases: AnacreonObjectWithId

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.

id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['destroyedSpaceObject'], required=True, alias='class', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: Literal['destroyedSpaceObject']#
class anacreonlib.types.response_datatypes.ExplorationGrid(*, radius: float, exploredOutline: List[List[float]])#

Bases: DeserializableDataclass

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.

explored_outline: List[List[float]]#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'explored_outline': FieldInfo(annotation=List[List[float]], required=True, alias='exploredOutline', alias_priority=1), 'radius': FieldInfo(annotation=float, required=True, alias='radius', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

radius: float#
class anacreonlib.types.response_datatypes.Fleet(*, object_class: Literal['fleet'], id: int, ftlType: str, name: str, sovereignID: int, resources: List[int], news: List[News] | None = None, anchorObjID: int | None = None, battlePlan: BattlePlanDetails | None = None, pos: Tuple[float, float], dest: Tuple[float, float] | None = None, destID: int | None = None, eta: int | None = None, region: NebulaType = NebulaType.CLEAR_SPACE)#

Bases: AnacreonObjectWithId

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.

anchor_obj_id: int | None#

None if this fleet is not currently stationed at a world. Otherwise, this is the ID of the world where this fleet is stationed.

battle_plan: BattlePlanDetails | None#
dest_id: int | None#
destination: Tuple[float, float] | None#
eta: int | None#

If not None, corresponds to the UpdateObject.update on which this fleet will arrive at its destination.

ftl_type: str#

Whether this is a jumpship fleet, starship/ramship fleet, or explorer fleet

id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'anchor_obj_id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='anchorObjID', alias_priority=1), 'battle_plan': FieldInfo(annotation=Union[BattlePlanDetails, NoneType], required=False, alias='battlePlan', alias_priority=1), 'dest_id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='destID', alias_priority=1), 'destination': FieldInfo(annotation=Union[Tuple[float, float], NoneType], required=False, alias='dest', alias_priority=2), 'eta': FieldInfo(annotation=Union[int, NoneType], required=False, alias='eta', alias_priority=1), 'ftl_type': FieldInfo(annotation=str, required=True, alias='ftlType', alias_priority=1), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'news': FieldInfo(annotation=Union[List[News], NoneType], required=False, alias='news', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['fleet'], required=True, alias='class', alias_priority=2), 'pos': FieldInfo(annotation=Tuple[float, float], required=True, alias='pos', alias_priority=1), 'region': FieldInfo(annotation=NebulaType, required=False, default=<NebulaType.CLEAR_SPACE: 1>, alias='region', alias_priority=1), 'resources': FieldInfo(annotation=List[int], required=True, alias='resources', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
news: List[News] | None#

For fleets, you might get news if they were attacked by jumpmissiles

object_class: Literal['fleet']#
pos: Tuple[float, float]#
region: NebulaType#
resources: List[int]#
sovereign_id: int#
class anacreonlib.types.response_datatypes.History(*, object_class: Literal['history'], history: List[HistoryElement])#

Bases: AnacreonObject

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.

history: List[HistoryElement]#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'history': FieldInfo(annotation=List[HistoryElement], required=True, alias='history', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['history'], required=True, alias='class', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: Literal['history']#
class anacreonlib.types.response_datatypes.HistoryElement(*, id: int, objID: int, subject: int, text: str)#

Bases: DeserializableDataclass

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.

id: int#

ID of this history element, which can be passed to the setHistoryRead endpoint to clear this message

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'obj_id': FieldInfo(annotation=int, required=True, alias='objID', alias_priority=1), 'subject': FieldInfo(annotation=int, required=True, alias='subject', alias_priority=1), 'text': FieldInfo(annotation=str, required=True, alias='text', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

obj_id: int#

ID of the object this message applies to

subject: int#
text: str#
class anacreonlib.types.response_datatypes.MesophonTrait(*, buyPrices: List[int | float], sellPrices: List[int | float], traitID: int)#

Bases: DeserializableDataclass

Trait applied to the Mesophon sovereign (NPE trading empire that players can buy ships from)

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.

buy_prices: List[int | float]#

A list which alternates between resource ID and the number of aes this empire is willing to pay per unit (they are the buyer)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'buy_prices': FieldInfo(annotation=List[Union[int, float]], required=True, alias='buyPrices', alias_priority=1), 'sell_prices': FieldInfo(annotation=List[Union[int, float]], required=True, alias='sellPrices', alias_priority=1), 'trait_id': FieldInfo(annotation=int, required=True, alias='traitID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

sell_prices: List[int | float]#

A list which alternates between resource ID and the number of aes this empire is willing to accept per unit (they are the seller)

trait_id: int#
class anacreonlib.types.response_datatypes.NebulaType(value)#

Bases: int, Enum

Enum of types of space regions a world can be in

(technically, a world cannot be in a RIFT_ZONE) (these values are a guess)

CLEAR_SPACE = 1#
DARK_NEBULA = 3#
LIGHT_NEBULA = 2#
RIFT_ZONE = 4#
class anacreonlib.types.response_datatypes.News(*, subject: int, text: str)#

Bases: DeserializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'subject': FieldInfo(annotation=int, required=True, alias='subject', alias_priority=1), 'text': FieldInfo(annotation=str, required=True, alias='text', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

subject: int#
text: str#
class anacreonlib.types.response_datatypes.OwnSovereign(*, object_class: Literal['sovereign'], id: int, imperialMight: int, name: str, relationship: SovereignRelationship | None = None, doctrine: int | None = None, traits: List[MesophonTrait] | None = None, capitalID: int, stats: SovereignStats, foundedOn: int | None = None, territory: List[Tuple[float, float, float] | Tuple[float, float, float, float, float]] | None = None, adminRange: List[Tuple[float, float, float] | Tuple[float, float, float, float, float]], explorationGrid: ExplorationGrid, funds: List[int | float], secessionChance: float)#

Bases: ReigningSovereign

Represents the sovereign belonging to the user who is currently logged in

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.

admin_range: List[Tuple[float, float, float] | Tuple[float, float, float, float, float]]#
capital_id: int#
doctrine: int | None#
exploration_grid: ExplorationGrid#
founded_on: int | None#
funds: List[int | float]#

Alternating list between resource ID and resource quantity As long as is only one currency (aes), this list will only have 2 elements max

id: int#
imperial_might: int#

A measure of the empire’s strength relative to you

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'admin_range': FieldInfo(annotation=List[Union[Tuple[float, float, float], Tuple[float, float, float, float, float]]], required=True, alias='adminRange', alias_priority=1), 'capital_id': FieldInfo(annotation=int, required=True, alias='capitalID', alias_priority=1), 'doctrine': FieldInfo(annotation=Union[int, NoneType], required=False, alias='doctrine', alias_priority=1), 'exploration_grid': FieldInfo(annotation=ExplorationGrid, required=True, alias='explorationGrid', alias_priority=1), 'founded_on': FieldInfo(annotation=Union[int, NoneType], required=False, alias='foundedOn', alias_priority=1), 'funds': FieldInfo(annotation=List[Union[int, float]], required=True, alias='funds', alias_priority=1), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'imperial_might': FieldInfo(annotation=int, required=True, alias='imperialMight', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['sovereign'], required=True, alias='class', alias_priority=2), 'relationship': FieldInfo(annotation=Union[SovereignRelationship, NoneType], required=False, alias='relationship', alias_priority=1), 'secession_chance': FieldInfo(annotation=float, required=True, alias='secessionChance', alias_priority=1), 'stats': FieldInfo(annotation=SovereignStats, required=True, alias='stats', alias_priority=1), 'territory': FieldInfo(annotation=Union[List[Union[Tuple[float, float, float], Tuple[float, float, float, float, float]]], NoneType], required=False, alias='territory', alias_priority=1), 'traits': FieldInfo(annotation=Union[List[MesophonTrait], NoneType], required=False, alias='traits', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
object_class: ObjectClass[Literal['sovereign']]#
relationship: SovereignRelationship | None#
secession_chance: float#
stats: SovereignStats#
territory: List[Circle | Arc] | None#
traits: List[MesophonTrait] | None#
class anacreonlib.types.response_datatypes.OwnedWorld(*, object_class: Literal['world'], id: int, culture: int, designation: int, efficiency: float, name: str, nearObjIDs: List[int] | None = None, orbit: List[float], population: int, pos: Tuple[float, float], resources: List[int] | None = None, sovereignID: int, techLevel: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], traits: List[int | Trait | Rebellion], worldClass: int, tradeRoutes: List[TradeRoute] | None = None, revIndex: RevIndex, battlePlan: BattlePlanDetails | None = None, targetTechLevel: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | None = None, targetPopulation: int | None = None, region: NebulaType = NebulaType.CLEAR_SPACE, baseConsumption: List[int | None], news: List[News] | None = None, tradeRouteMax: int | None = None)#

Bases: World

This is a world we know belongs to the current user because you are guaranteed to see certain fields

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.

base_consumption: List[int | None]#
battle_plan: BattlePlanDetails | None#
culture: int#

This is a trait ID that represents something intrinsic about the world’s population

designation: int#

This trait ID corresponds to which designation the world has

efficiency: float#
id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'base_consumption': FieldInfo(annotation=List[Union[int, NoneType]], required=True, alias='baseConsumption', alias_priority=1), 'battle_plan': FieldInfo(annotation=Union[BattlePlanDetails, NoneType], required=False, alias='battlePlan', alias_priority=1), 'culture': FieldInfo(annotation=int, required=True, alias='culture', alias_priority=1), 'designation': FieldInfo(annotation=int, required=True, alias='designation', alias_priority=1), 'efficiency': FieldInfo(annotation=float, required=True, alias='efficiency', alias_priority=1, metadata=[Ge(ge=0), Le(le=100)]), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'near_obj_ids': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='nearObjIDs', alias_priority=2), 'news': FieldInfo(annotation=Union[List[News], NoneType], required=False, alias='news', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['world'], required=True, alias='class', alias_priority=2), 'orbit': FieldInfo(annotation=List[float], required=True, alias='orbit', alias_priority=1), 'population': FieldInfo(annotation=int, required=True, alias='population', alias_priority=1), 'pos': FieldInfo(annotation=Tuple[float, float], required=True, alias='pos', alias_priority=1), 'region': FieldInfo(annotation=NebulaType, required=False, default=<NebulaType.CLEAR_SPACE: 1>, alias='region', alias_priority=1), 'resources': FieldInfo(annotation=Union[List[Annotated[int, PlainSerializer, BeforeValidator]], NoneType], required=False, alias='resources', alias_priority=1), 'rev_index': FieldInfo(annotation=RevIndex, required=True, alias='revIndex', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1), 'target_population': FieldInfo(annotation=Union[int, NoneType], required=False, alias='targetPopulation', alias_priority=1), 'target_tech_level': FieldInfo(annotation=Union[Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], NoneType], required=False, alias='targetTechLevel', alias_priority=1), 'tech_level': FieldInfo(annotation=Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], required=True, alias='techLevel', alias_priority=1), 'trade_route_max': FieldInfo(annotation=Union[int, NoneType], required=False, alias='tradeRouteMax', alias_priority=1), 'trade_routes': FieldInfo(annotation=Union[List[TradeRoute], NoneType], required=False, alias='tradeRoutes', alias_priority=1), 'traits': FieldInfo(annotation=List[Union[int, Trait, Rebellion]], required=True, alias='traits', alias_priority=1), 'world_class': FieldInfo(annotation=int, required=True, alias='worldClass', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
near_obj_ids: List[int] | None#

This is a list of IDs of fleets that are stationed at this world

news: List[News] | None#
object_class: ObjectClass[Literal['world']]#
orbit: List[float]#
population: int#
pos: Location#
region: NebulaType#
resources: List[LargeInt] | None#

This is a list alternating between resource ID and quantity stockpiled on the world

rev_index: RevIndex#
sovereign_id: int#
target_population: int | None#

If the population is going to change, the value of this field is what the planet is heading towards

Unit is millions of people

target_tech_level: TechLevel | None#

If the world is going to change tech levels soon, the value of this field is the target tech level

tech_level: TechLevel#
trade_route_max: int | None#
trade_routes: List[TradeRoute] | None#
traits: List[int | Trait | Rebellion]#
world_class: int#
class anacreonlib.types.response_datatypes.Rebellion(*, popularSupport: float, rebelForces: float, rebellionStart: int, traitID: int)#

Bases: DeserializableDataclass

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'popular_support': FieldInfo(annotation=float, required=True, alias='popularSupport', alias_priority=1), 'rebel_forces': FieldInfo(annotation=float, required=True, alias='rebelForces', alias_priority=1), 'rebellion_start': FieldInfo(annotation=int, required=True, alias='rebellionStart', alias_priority=1), 'trait_id': FieldInfo(annotation=int, required=True, alias='traitID', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

popular_support: float#

if popular support is greater than 0`, it indicates rebel support if it is less than 0`, it indicates imperial support

rebel_forces: float#
rebellion_start: int#
trait_id: int#
class anacreonlib.types.response_datatypes.RegionObject(*, object_class: Literal['region'], id: int, shape: List[RegionShape], type: int)#

Bases: AnacreonObjectWithId

Typically used to encode the location of nebulas, rift zones, and clear space

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.

id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['region'], required=True, alias='class', alias_priority=2), 'shape': FieldInfo(annotation=List[RegionShape], required=True, alias='shape', alias_priority=1), 'type': FieldInfo(annotation=int, required=True, alias='type', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: Literal['region']#
shape: List[RegionShape]#
type: int#

Corresponds to the ScenarioInfoElement for this region type

class anacreonlib.types.response_datatypes.RegionShape(*, holes: List[List[float]] | None = None, outline: List[float])#

Bases: DeserializableDataclass

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.

holes: List[List[float]] | None#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'holes': FieldInfo(annotation=Union[List[List[float]], NoneType], required=False, alias='holes', alias_priority=1), 'outline': FieldInfo(annotation=List[float], required=True, alias='outline', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

outline: List[float]#
class anacreonlib.types.response_datatypes.ReigningSovereign(*, object_class: Literal['sovereign'], id: int, imperialMight: int, name: str, relationship: SovereignRelationship | None = None, doctrine: int | None = None, traits: List[MesophonTrait] | None = None, capitalID: int, stats: SovereignStats, foundedOn: int | None = None, territory: List[Tuple[float, float, float] | Tuple[float, float, float, float, float]] | None = None)#

Bases: Sovereign

Some Sovereigns are abdicated. This class is only for sovereigns currently playing the game.

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.

capital_id: int#
doctrine: int | None#
founded_on: int | None#
id: int#
imperial_might: int#

A measure of the empire’s strength relative to you

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'capital_id': FieldInfo(annotation=int, required=True, alias='capitalID', alias_priority=1), 'doctrine': FieldInfo(annotation=Union[int, NoneType], required=False, alias='doctrine', alias_priority=1), 'founded_on': FieldInfo(annotation=Union[int, NoneType], required=False, alias='foundedOn', alias_priority=1), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'imperial_might': FieldInfo(annotation=int, required=True, alias='imperialMight', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['sovereign'], required=True, alias='class', alias_priority=2), 'relationship': FieldInfo(annotation=Union[SovereignRelationship, NoneType], required=False, alias='relationship', alias_priority=1), 'stats': FieldInfo(annotation=SovereignStats, required=True, alias='stats', alias_priority=1), 'territory': FieldInfo(annotation=Union[List[Union[Tuple[float, float, float], Tuple[float, float, float, float, float]]], NoneType], required=False, alias='territory', alias_priority=1), 'traits': FieldInfo(annotation=Union[List[MesophonTrait], NoneType], required=False, alias='traits', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
object_class: ObjectClass[Literal['sovereign']]#
relationship: SovereignRelationship | None#
stats: SovereignStats#
territory: List[Tuple[float, float, float] | Tuple[float, float, float, float, float]] | None#
traits: List[MesophonTrait] | None#
class anacreonlib.types.response_datatypes.Relationship(*, object_class: Literal['relationship'], id: int, relationship: SovereignRelationship)#

Bases: AnacreonObjectWithId

Partial update for sovereigns

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.

id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['relationship'], required=True, alias='class', alias_priority=2), 'relationship': FieldInfo(annotation=SovereignRelationship, required=True, alias='relationship', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: Literal['relationship']#
relationship: SovereignRelationship#
class anacreonlib.types.response_datatypes.RevIndex(value)#

Bases: str, Enum

Enum of social orders a world can have

AGGRIEVED = 'aggrieved'#
CIVIL_WAR = 'civil war'#
CONTENT = 'content'#
DISSATISFIED = 'dissatisfied'#
HAPPY = 'happy'#
REBELLING = 'rebelling'#
RIOTING = 'rioting'#
class anacreonlib.types.response_datatypes.Selection(*, object_class: Literal['selection'], id: int)#

Bases: AnacreonObjectWithId

The API returns this object if it wants the UI to select something as a result of the API request

For example, when you deploy a fleet, the API returns one of these objects in order to signal that the new fleet should be selected.

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.

id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['selection'], required=True, alias='class', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

object_class: Literal['selection']#
class anacreonlib.types.response_datatypes.Siege(*, object_class: Literal['siege'], id: int, anchorObjID: int, attackForces: float, defenseForces: float, name: str, news: List[News] | None = None, pos: Tuple[float, float], resources: List[float] | None = None, sovereignID: int, status: SiegeStatus | None = None, timeleft: int | None = None)#

Bases: AnacreonObjectWithId

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.

anchor_obj_id: int#
attack_forces: float#
defense_forces: float#
id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'anchor_obj_id': FieldInfo(annotation=int, required=True, alias='anchorObjID', alias_priority=1), 'attack_forces': FieldInfo(annotation=float, required=True, alias='attackForces', alias_priority=1), 'defense_forces': FieldInfo(annotation=float, required=True, alias='defenseForces', alias_priority=1), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'news': FieldInfo(annotation=Union[List[News], NoneType], required=False, alias='news', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['siege'], required=True, alias='class', alias_priority=2), 'pos': FieldInfo(annotation=Tuple[float, float], required=True, alias='pos', alias_priority=1), 'resources': FieldInfo(annotation=Union[List[float], NoneType], required=False, alias='resources', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1), 'status': FieldInfo(annotation=Union[SiegeStatus, NoneType], required=False, alias='status', alias_priority=1), 'timeLeft': FieldInfo(annotation=Union[int, NoneType], required=False, alias='timeleft', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
news: List[News] | None#
object_class: Literal['siege']#
pos: Tuple[float, float]#
resources: List[float] | None#
sovereign_id: int#
status: SiegeStatus | None#
timeLeft: int | None#
class anacreonlib.types.response_datatypes.Sovereign(*, object_class: Literal['sovereign'], id: int, imperialMight: int, name: str, relationship: SovereignRelationship | None = None, doctrine: int | None = None, traits: List[MesophonTrait] | None = None)#

Bases: AnacreonObjectWithId

Any sovereign that has ever played in the current game

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.

doctrine: int | None#
id: int#
imperial_might: int#

A measure of the empire’s strength relative to you

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'doctrine': FieldInfo(annotation=Union[int, NoneType], required=False, alias='doctrine', alias_priority=1), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'imperial_might': FieldInfo(annotation=int, required=True, alias='imperialMight', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['sovereign'], required=True, alias='class', alias_priority=2), 'relationship': FieldInfo(annotation=Union[SovereignRelationship, NoneType], required=False, alias='relationship', alias_priority=1), 'traits': FieldInfo(annotation=Union[List[MesophonTrait], NoneType], required=False, alias='traits', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
object_class: Literal['sovereign']#
relationship: SovereignRelationship | None#
traits: List[MesophonTrait] | None#
class anacreonlib.types.response_datatypes.SovereignActions(*, attacksInitiated: int, offensivesInitiated: int, worldsConquered: int)#

Bases: DeserializableDataclass

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.

attacks_initiated: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'attacks_initiated': FieldInfo(annotation=int, required=True, alias='attacksInitiated', alias_priority=1), 'offensives_initiated': FieldInfo(annotation=int, required=True, alias='offensivesInitiated', alias_priority=1), 'worlds_conquered': FieldInfo(annotation=int, required=True, alias='worldsConquered', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

offensives_initiated: int#
worlds_conquered: int#
class anacreonlib.types.response_datatypes.SovereignRelationship(*, firstContact: int, ourActions: SovereignActions, theirActions: SovereignActions)#

Bases: DeserializableDataclass

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.

first_contact: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'first_contact': FieldInfo(annotation=int, required=True, alias='firstContact', alias_priority=1), 'our_actions': FieldInfo(annotation=SovereignActions, required=True, alias='ourActions', alias_priority=1), 'their_actions': FieldInfo(annotation=SovereignActions, required=True, alias='theirActions', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

our_actions: SovereignActions#
their_actions: SovereignActions#
class anacreonlib.types.response_datatypes.SovereignStats(*, fleets: int, population: int, resources: List[int] | None = None, techLevel: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], worlds: int)#

Bases: DeserializableDataclass

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.

fleets: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'fleets': FieldInfo(annotation=int, required=True, alias='fleets', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'population': FieldInfo(annotation=int, required=True, alias='population', alias_priority=1), 'resources': FieldInfo(annotation=Union[List[Annotated[int, PlainSerializer, BeforeValidator]], NoneType], required=False, alias='resources', alias_priority=1), 'tech_level': FieldInfo(annotation=Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], required=True, alias='techLevel', alias_priority=1), 'worlds': FieldInfo(annotation=int, required=True, alias='worlds', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

population: int#
resources: List[int] | None#
tech_level: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]#
worlds: int#
class anacreonlib.types.response_datatypes.TradeRoute(*, imports: List[float | None] | None = None, exports: List[float | None] | None = None, importTech: Tuple[int, int] | Tuple[int, int, Any] | None = None, exportTech: Tuple[int, int] | Tuple[int, int, Any] | None = None, partnerObjID: int, reciprocal: bool | None = None)#

Bases: DeserializableDataclass

Variables:
  • import_tech – tuple of the desired tech level to acheive, and how many levels uplifted the planet actually is

  • reciprocal – if true, the data for this trade route is attached to the partner object.

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.

export_tech: Tuple[int, int] | Tuple[int, int, Any] | None#
exports: List[float | None] | None#
import_tech: Tuple[int, int] | Tuple[int, int, Any] | None#

Third tuple element is usually not present. If present, it indicates why the world cannot be uplifted to the desired tech level.

imports: List[float | None] | None#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'export_tech': FieldInfo(annotation=Union[Tuple[int, int], Tuple[int, int, Any], NoneType], required=False, alias='exportTech', alias_priority=1), 'exports': FieldInfo(annotation=Union[List[Union[float, NoneType]], NoneType], required=False, alias='exports', alias_priority=1), 'import_tech': FieldInfo(annotation=Union[Tuple[int, int], Tuple[int, int, Any], NoneType], required=False, alias='importTech', alias_priority=1), 'imports': FieldInfo(annotation=Union[List[Union[float, NoneType]], NoneType], required=False, alias='imports', alias_priority=1), 'partner_obj_id': FieldInfo(annotation=int, required=True, alias='partnerObjID', alias_priority=1), 'reciprocal': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='return', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

partner_obj_id: int#
reciprocal: bool | None#
class anacreonlib.types.response_datatypes.Trait(*, allocation: float, buildData: List[float | None | List[Any]], isPrimary: bool | None = None, productionData: List[float | None] | None = None, isFixed: bool | None = None, targetAllocation: float, traitID: int, buildComplete: int | None = None, workUnits: float)#

Bases: DeserializableDataclass

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.

allocation: float#
build_complete: int | None#
build_data: List[float | None | List[Any]]#
is_fixed: bool | None#
is_primary: bool | None#

True` if this structure is the primary industry on the world (i.e it belongs to the designation)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'allocation': FieldInfo(annotation=float, required=True, alias='allocation', alias_priority=1), 'build_complete': FieldInfo(annotation=Union[int, NoneType], required=False, alias='buildComplete', alias_priority=1), 'build_data': FieldInfo(annotation=List[Union[float, NoneType, List[Any]]], required=True, alias='buildData', alias_priority=1), 'is_fixed': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='isFixed', alias_priority=1), 'is_primary': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='isPrimary', alias_priority=1), 'production_data': FieldInfo(annotation=Union[List[Union[float, NoneType]], NoneType], required=False, alias='productionData', alias_priority=1), 'target_allocation': FieldInfo(annotation=float, required=True, alias='targetAllocation', alias_priority=1), 'trait_id': FieldInfo(annotation=int, required=True, alias='traitID', alias_priority=1), 'work_units': FieldInfo(annotation=float, required=True, alias='workUnits', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

production_data: List[float | None] | None#
target_allocation: float#
trait_id: int#
work_units: float#
class anacreonlib.types.response_datatypes.UpdateObject(*, object_class: Literal['update'], nextUpdateTime: int, sequence: int, update: float, year0: int)#

Bases: AnacreonObject

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.

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'next_update_time': FieldInfo(annotation=int, required=True, alias='nextUpdateTime', alias_priority=1), 'object_class': FieldInfo(annotation=Literal['update'], required=True, alias='class', alias_priority=2), 'sequence': FieldInfo(annotation=int, required=True, alias='sequence', alias_priority=1, metadata=[PlainSerializer(func=<function _convert_int_to_aeon_ipinteger>, return_type=PydanticUndefined, when_used='json-unless-none'), BeforeValidator(func=<function _convert_aeon_ipinteger_to_int>)]), 'update': FieldInfo(annotation=float, required=True, alias='update', alias_priority=1), 'year0': FieldInfo(annotation=int, required=True, alias='year0', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

next_update_time: int#

Number of milliseconds until the next watch update happens on the server

object_class: Literal['update']#
sequence: int#

This is a unique ID associated with each state update. Using this number, the Anacreon server can know exactly what data it needs to send us in order to catch us up to speed with what changed since we last talked.

update: float#

Number of watches that have occured since the game started

year0: int#

The in-game calendar year in which the game started (e.g 4021)

class anacreonlib.types.response_datatypes.World(*, object_class: Literal['world'], id: int, culture: int, designation: int, efficiency: float, name: str, nearObjIDs: List[int] | None = None, orbit: List[float], population: int, pos: Tuple[float, float], resources: List[int] | None = None, sovereignID: int, techLevel: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], traits: List[int | Trait | Rebellion], worldClass: int, tradeRoutes: List[TradeRoute] | None = None, revIndex: RevIndex | None = None, battlePlan: BattlePlanDetails | None = None, targetTechLevel: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | None = None, targetPopulation: int | None = None, region: NebulaType = NebulaType.CLEAR_SPACE)#

Bases: AnacreonObjectWithId

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.

battle_plan: BattlePlanDetails | None#
culture: int#

This is a trait ID that represents something intrinsic about the world’s population

designation: int#

This trait ID corresponds to which designation the world has

efficiency: float#
id: int#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'battle_plan': FieldInfo(annotation=Union[BattlePlanDetails, NoneType], required=False, alias='battlePlan', alias_priority=1), 'culture': FieldInfo(annotation=int, required=True, alias='culture', alias_priority=1), 'designation': FieldInfo(annotation=int, required=True, alias='designation', alias_priority=1), 'efficiency': FieldInfo(annotation=float, required=True, alias='efficiency', alias_priority=1, metadata=[Ge(ge=0), Le(le=100)]), 'id': FieldInfo(annotation=int, required=True, alias='id', alias_priority=1), 'name': FieldInfo(annotation=str, required=True, alias='name', alias_priority=1), 'near_obj_ids': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='nearObjIDs', alias_priority=2), 'object_class': FieldInfo(annotation=Literal['world'], required=True, alias='class', alias_priority=2), 'orbit': FieldInfo(annotation=List[float], required=True, alias='orbit', alias_priority=1), 'population': FieldInfo(annotation=int, required=True, alias='population', alias_priority=1), 'pos': FieldInfo(annotation=Tuple[float, float], required=True, alias='pos', alias_priority=1), 'region': FieldInfo(annotation=NebulaType, required=False, default=<NebulaType.CLEAR_SPACE: 1>, alias='region', alias_priority=1), 'resources': FieldInfo(annotation=Union[List[Annotated[int, PlainSerializer, BeforeValidator]], NoneType], required=False, alias='resources', alias_priority=1), 'rev_index': FieldInfo(annotation=Union[RevIndex, NoneType], required=False, alias='revIndex', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1), 'target_population': FieldInfo(annotation=Union[int, NoneType], required=False, alias='targetPopulation', alias_priority=1), 'target_tech_level': FieldInfo(annotation=Union[Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], NoneType], required=False, alias='targetTechLevel', alias_priority=1), 'tech_level': FieldInfo(annotation=Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], required=True, alias='techLevel', alias_priority=1), 'trade_routes': FieldInfo(annotation=Union[List[TradeRoute], NoneType], required=False, alias='tradeRoutes', alias_priority=1), 'traits': FieldInfo(annotation=List[Union[int, Trait, Rebellion]], required=True, alias='traits', alias_priority=1), 'world_class': FieldInfo(annotation=int, required=True, alias='worldClass', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str#
near_obj_ids: List[int] | None#

This is a list of IDs of fleets that are stationed at this world

object_class: Literal['world']#
orbit: List[float]#
population: int#
pos: Tuple[float, float]#
region: NebulaType#
property resource_dict: Dict[int, float]#

A dict mapping from resource ID to resource qty on the world

resources: List[int] | None#

This is a list alternating between resource ID and quantity stockpiled on the world

rev_index: RevIndex | None#
sovereign_id: int#
property squashed_trait_dict: Dict[int, int | Trait]#

Return a dict mapping from trait ID to either trait ID or trait object

target_population: int | None#

If the population is going to change, the value of this field is what the planet is heading towards

Unit is millions of people

target_tech_level: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | None#

If the world is going to change tech levels soon, the value of this field is the target tech level

tech_level: Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]#
property trade_route_partners: Dict[int, TradeRoute] | None#

Returns a set of all of the trade route partners of this world

trade_routes: List[TradeRoute] | None#
traits: List[int | Trait | Rebellion]#
world_class: int#

anacreonlib.types.scenario_info_datatypes module#

class anacreonlib.types.scenario_info_datatypes.Category(value)#

Bases: str, Enum

An enumeration.

BUREAU_OF_TRADE = 'bureauOfTrade'#
COMMODITY = 'commodity'#
CULTURE = 'culture'#
DESIGNATION = 'designation'#
DOCTRINE = 'doctrine'#
FEATURE = 'feature'#
FIXED_UNIT = 'fixedUnit'#
GROUND_UNIT = 'groundUnit'#
IMPROVEMENT = 'improvement'#
INDUSTRY = 'industry'#
LAM_UNIT = 'LAMUnit'#
MANEUVERING_UNIT = 'maneuveringUnit'#
ORBITAL_UNIT = 'orbitalUnit'#
REBELLION = 'rebellion'#
WORLD_CLASS = 'worldClass'#
class anacreonlib.types.scenario_info_datatypes.Role(value)#

Bases: str, Enum

An enumeration.

ACADEMY = 'academy'#
ACADEMY_INDUSTRY = 'academyIndustry'#
ADMINISTRATION = 'administration'#
CITADEL = 'citadel'#
CITADEL_INDUSTRY = 'citadelIndustry'#
COMPONENT_INDUSTRY = 'componentIndustry'#
CONSUMER_GOODS_INDUSTRY = 'consumerGoodsIndustry'#
ENERGY_INDUSTRY = 'energyIndustry'#
FOUNDATION = 'foundation'#
GROUND_DEFENSE_INDUSTRY = 'groundDefenseIndustry'#
IMPERIAL_CAPITAL = 'imperialCapital'#
LIFE_SUPPORT = 'lifeSupport'#
ORBITAL_DEFENSE_INDUSTRY = 'orbitalDefenseIndustry'#
RAW_MATERIAL_INDUSTRY = 'rawMaterialIndustry'#
SECTOR_CAPITAL = 'sectorCapital'#
SHIPYARD = 'shipyard'#
SHIPYARD_INDUSTRY = 'shipyardIndustry'#
SPACEPORT = 'spaceport'#
TECH_ADVANCE = 'techAdvance'#
TRADING_HUB = 'tradingHub'#
UNIVERSITY = 'university'#
class anacreonlib.types.scenario_info_datatypes.ScenarioInfo(*, scenarioInfo: List[ScenarioInfoElement], sovereigns: List[ReigningSovereign | Sovereign], userInfo: UserInfo)#

Bases: DeserializableDataclass

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.

find_by_unid(unid: str) ScenarioInfoElement#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'scenario_info': FieldInfo(annotation=List[ScenarioInfoElement], required=True, alias='scenarioInfo', alias_priority=1), 'sovereigns': FieldInfo(annotation=List[Union[ReigningSovereign, Sovereign]], required=True, alias='sovereigns', alias_priority=1), 'user_info': FieldInfo(annotation=UserInfo, required=True, alias='userInfo', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

scenario_info: List[ScenarioInfoElement]#
sovereigns: List[ReigningSovereign | Sovereign]#
user_info: UserInfo#
class anacreonlib.types.scenario_info_datatypes.ScenarioInfoClass(value)#

Bases: str, Enum

An enumeration.

CURRENCY_TYPE = 'currencyType'#
IMAGE = 'image'#
REGION_TYPE = 'regionType'#
RESOURCE_TYPE = 'resourceType'#
SCENARIO = 'scenario'#
SOVEREIGN_TYPE = 'sovereignType'#
TRAIT = 'trait'#
class anacreonlib.types.scenario_info_datatypes.ScenarioInfoElement(*, isCargo: bool | None = None, playerAlloc: bool | None = None, playerProductAlloc: bool | None = None, imageLabel: int | None = None, hidden: bool | None = None, designationOnly: bool | None = None, npeOnly: bool | None = None, isJumpBeacon: bool | None = None, canLand: bool | None = None, category: Category | None = None, scenarioInfoClass: ScenarioInfoClass | None = None, id: int | None = None, imageLarge: List[int] | None = None, imageSmall: List[int] | None = None, mass: float | None = None, nameDesc: str | None = None, unid: str | None = None, attackValue: int | None = None, shortName: str | None = None, stats: List[int | str] | None = None, buildTime: int | None = None, description: str | None = None, imageMedium: List[int] | None = None, minTechLevel: int | None = None, role: Role | None = None, buildUpgrade: List[int] | None = None, inheritFrom: List[int] | None = None, exports: List[int] | None = None, maxTechLevel: int | None = None, primaryIndustry: int | None = None, requirements: List[int] | None = None, buildExclusions: List[int] | None = None, techLevelAdvance: int | None = None, backgroundColor: List[int] | None = None, backgroundImage: List[int] | None = None, backgroundImageLowDetail: List[int] | None = None, backgroundImageTactical: List[int] | None = None, exclusions: List[int] | None = None, ftl: int | None = None, capitalIndustry: int | None = None, capitalType: int | None = None, buildRequirements: List[int] | None = None, cargoSpace: int | None = None, mapFeatureSize: int | None = None, mapSize: List[int] | None = None, name: str | None = None)#

Bases: DeserializableDataclass

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.

attack_value: int | None#
background_color: List[int] | None#
background_image: List[int] | None#
background_image_low_detail: List[int] | None#
background_image_tactical: List[int] | None#
build_exclusions: List[int] | None#
build_requirements: List[int] | None#
build_time: int | None#
build_upgrade: List[int] | None#
can_land: bool | None#
capital_industry: int | None#
capital_type: int | None#
cargo_space: int | None#
category: Category | None#
description: str | None#
designation_only: bool | None#
exclusions: List[int] | None#
exports: List[int] | None#
ftl: int | None#
hidden: bool | None#
id: int | None#
image_label: int | None#
image_large: List[int] | None#
image_medium: List[int] | None#
image_small: List[int] | None#
inherit_from: List[int] | None#
is_cargo: bool | None#
is_jump_beacon: bool | None#
map_feature_size: int | None#
map_size: List[int] | None#
mass: float | None#
max_tech_level: int | None#
min_tech_level: int | None#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_value': FieldInfo(annotation=Union[int, NoneType], required=False, alias='attackValue', alias_priority=1), 'background_color': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='backgroundColor', alias_priority=1), 'background_image': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='backgroundImage', alias_priority=1), 'background_image_low_detail': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='backgroundImageLowDetail', alias_priority=1), 'background_image_tactical': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='backgroundImageTactical', alias_priority=1), 'build_exclusions': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='buildExclusions', alias_priority=1), 'build_requirements': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='buildRequirements', alias_priority=1), 'build_time': FieldInfo(annotation=Union[int, NoneType], required=False, alias='buildTime', alias_priority=1), 'build_upgrade': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='buildUpgrade', alias_priority=1), 'can_land': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='canLand', alias_priority=1), 'capital_industry': FieldInfo(annotation=Union[int, NoneType], required=False, alias='capitalIndustry', alias_priority=1), 'capital_type': FieldInfo(annotation=Union[int, NoneType], required=False, alias='capitalType', alias_priority=1), 'cargo_space': FieldInfo(annotation=Union[int, NoneType], required=False, alias='cargoSpace', alias_priority=1), 'category': FieldInfo(annotation=Union[Category, NoneType], required=False, alias='category', alias_priority=1), 'description': FieldInfo(annotation=Union[str, NoneType], required=False, alias='description', alias_priority=1), 'designation_only': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='designationOnly', alias_priority=1), 'exclusions': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='exclusions', alias_priority=1), 'exports': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='exports', alias_priority=1), 'ftl': FieldInfo(annotation=Union[int, NoneType], required=False, alias='ftl', alias_priority=1), 'hidden': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='hidden', alias_priority=1), 'id': FieldInfo(annotation=Union[int, NoneType], required=False, alias='id', alias_priority=1), 'image_label': FieldInfo(annotation=Union[int, NoneType], required=False, alias='imageLabel', alias_priority=1), 'image_large': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='imageLarge', alias_priority=1), 'image_medium': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='imageMedium', alias_priority=1), 'image_small': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='imageSmall', alias_priority=1), 'inherit_from': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='inheritFrom', alias_priority=1), 'is_cargo': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='isCargo', alias_priority=1), 'is_jump_beacon': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='isJumpBeacon', alias_priority=1), 'map_feature_size': FieldInfo(annotation=Union[int, NoneType], required=False, alias='mapFeatureSize', alias_priority=1), 'map_size': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='mapSize', alias_priority=1), 'mass': FieldInfo(annotation=Union[float, NoneType], required=False, alias='mass', alias_priority=1), 'max_tech_level': FieldInfo(annotation=Union[int, NoneType], required=False, alias='maxTechLevel', alias_priority=1), 'min_tech_level': FieldInfo(annotation=Union[int, NoneType], required=False, alias='minTechLevel', alias_priority=1), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name', alias_priority=1), 'name_desc': FieldInfo(annotation=Union[str, NoneType], required=False, alias='nameDesc', alias_priority=1), 'npe_only': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='npeOnly', alias_priority=1), 'player_alloc': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='playerAlloc', alias_priority=1), 'player_product_alloc': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='playerProductAlloc', alias_priority=1), 'primary_industry': FieldInfo(annotation=Union[int, NoneType], required=False, alias='primaryIndustry', alias_priority=1), 'requirements': FieldInfo(annotation=Union[List[int], NoneType], required=False, alias='requirements', alias_priority=1), 'role': FieldInfo(annotation=Union[Role, NoneType], required=False, alias='role', alias_priority=1), 'scenario_info_class': FieldInfo(annotation=Union[ScenarioInfoClass, NoneType], required=False, alias='scenarioInfoClass', alias_priority=1), 'short_name': FieldInfo(annotation=Union[str, NoneType], required=False, alias='shortName', alias_priority=1), 'stats': FieldInfo(annotation=Union[List[Union[int, str]], NoneType], required=False, alias='stats', alias_priority=1), 'tech_level_advance': FieldInfo(annotation=Union[int, NoneType], required=False, alias='techLevelAdvance', alias_priority=1), 'unid': FieldInfo(annotation=Union[str, NoneType], required=False, alias='unid', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

name: str | None#
name_desc: str | None#
npe_only: bool | None#
player_alloc: bool | None#
player_product_alloc: bool | None#
primary_industry: int | None#
requirements: List[int] | None#
role: Role | None#
scenario_info_class: ScenarioInfoClass | None#
short_name: str | None#
stats: List[int | str] | None#
tech_level_advance: int | None#
unid: str | None#
class anacreonlib.types.scenario_info_datatypes.UserInfo(*, capitalObjID: int, gameID: str, mapBookmarks: List[Tuple[float, float]], sovereignID: int, uiOptions: Any = None, username: str)#

Bases: DeserializableDataclass

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.

capital_obj_id: int#
game_id: str#
map_bookmarks: List[Tuple[float, float]]#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function _snake_case_to_lower_camel>, 'ignored_types': (<class 'functools.cached_property'>, <class 'set'>)}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'capital_obj_id': FieldInfo(annotation=int, required=True, alias='capitalObjID', alias_priority=1), 'game_id': FieldInfo(annotation=str, required=True, alias='gameID', alias_priority=1), 'map_bookmarks': FieldInfo(annotation=List[Tuple[float, float]], required=True, alias='mapBookmarks', alias_priority=1), 'sovereign_id': FieldInfo(annotation=int, required=True, alias='sovereignID', alias_priority=1), 'ui_options': FieldInfo(annotation=Any, required=False, alias='uiOptions', alias_priority=1), 'username': FieldInfo(annotation=str, required=True, alias='username', alias_priority=1)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

sovereign_id: int#
ui_options: Any#
username: str#

anacreonlib.types.type_hints module#

anacreonlib.types.type_hints.Arc#

An Arc is a tuple of 5 numbers: - x pos of center - y pos of center - radius, in light years - starting angle in radians - ending angle in radians

alias of Tuple[float, float, float, float, float]

class anacreonlib.types.type_hints.BattleObjective(value)#

Bases: str, Enum

An enumeration.

INVASION = 'invasion'#
REINFORCE_SIEGE = 'reinforceSiege'#
SPACE_SUPREMACY = 'spaceSupremacy'#
anacreonlib.types.type_hints.Circle#

A Circle is a tuple of 3 numbers: - x pos of center - y pos of center - radius, in lightyears

alias of Tuple[float, float, float]

anacreonlib.types.type_hints.Location#

A location is a tuple of 2 numbers - x pos - y pos

alias of Tuple[float, float]

class anacreonlib.types.type_hints.SiegeStatus(value)#

Bases: str, Enum

An enumeration.

ATTACK_FAILING = 'attackFailing'#
ATTACK_WINNING = 'attackWinning'#
DEFENSE_FALIING = 'defenseFailing'#
DEFENSE_WINNING = 'defenseWinning'#