stravalib.model.SegmentEffortAchievement#

pydantic model stravalib.model.SegmentEffortAchievement[source]#

An undocumented structure being returned for segment efforts.

Notes

Undocumented Strava elements can change at any time without notice.

Show JSON schema
{
   "title": "SegmentEffortAchievement",
   "description": "An undocumented structure being returned for segment efforts.\n\nNotes\n-----\nUndocumented Strava elements can change at any time without notice.",
   "type": "object",
   "properties": {
      "rank": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Rank"
      },
      "type": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Type"
      },
      "type_id": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Type Id"
      },
      "effort_count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Effort Count"
      }
   }
}

Fields:
classmethod construct(_fields_set: set[str] | None = None, **values: Any) Self#
copy(*, include: AbstractSetIntStr | MappingIntStrAny | None = None, exclude: AbstractSetIntStr | MappingIntStrAny | None = None, update: Dict[str, Any] | None = None, deep: bool = False) Self#

Returns a copy of the model.

!!! warning โ€œDeprecatedโ€

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`python {test="skip" lint="skip"} data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include โ€“ Optional set or mapping specifying which fields to include in the copied model.

  • exclude โ€“ Optional set or mapping specifying which fields to exclude in the copied model.

  • update โ€“ Optional dictionary of field-value pairs to override field values in the copied model.

  • deep โ€“ If True, the values of fields that are Pydantic models will be deep-copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

dict(*, include: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) Dict[str, Any]#
field effort_count: int | None = None#
classmethod from_orm(obj: Any) Self#
json(*, include: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Callable[[Any], Any] | None = PydanticUndefined, models_as_dict: bool = PydanticUndefined, **dumps_kwargs: Any) str#
classmethod model_construct(_fields_set: set[str] | None = None, **values: Any) Self#

Creates a new instance of the Model class with validated data.

Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.

!!! note

model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == โ€˜allowโ€™, then all extra passed values are added to the model instanceโ€™s __dict__ and __pydantic_extra__ fields. If model_config.extra == โ€˜ignoreโ€™ (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == โ€˜forbidโ€™ does not result in an error if extra values are passed, but they will be ignored.

Parameters:
  • _fields_set โ€“ A set of field names that were originally explicitly set during instantiation. If provided, this is directly used for the [model_fields_set][pydantic.BaseModel.model_fields_set] attribute. Otherwise, the field names from the values argument will be used.

  • values โ€“ Trusted or pre-validated data dictionary.

Returns:

A new instance of the Model class with validated data.

model_copy(*, update: Mapping[str, Any] | None = None, deep: bool = False) Self#

Usage docs: https://docs.pydantic.dev/2.10/concepts/serialization/#model_copy

Returns a copy of the model.

Parameters:
  • update โ€“ Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep โ€“ Set to True to make a deep copy of the model.

Returns:

New model instance.

model_dump(*, mode: Literal['json', 'python'] | str = 'python', include: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, context: Any | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool | Literal['none', 'warn', 'error'] = True, serialize_as_any: bool = False) dict[str, Any]#

Usage docs: https://docs.pydantic.dev/2.10/concepts/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode โ€“ The mode in which to_python should run. If mode is โ€˜jsonโ€™, the output will only contain JSON serializable types. If mode is โ€˜pythonโ€™, the output may contain non-JSON-serializable Python objects.

  • include โ€“ A set of fields to include in the output.

  • exclude โ€“ A set of fields to exclude from the output.

  • context โ€“ Additional context to pass to the serializer.

  • by_alias โ€“ Whether to use the fieldโ€™s alias in the dictionary key if defined.

  • exclude_unset โ€“ Whether to exclude fields that have not been explicitly set.

  • exclude_defaults โ€“ Whether to exclude fields that are set to their default value.

  • exclude_none โ€“ Whether to exclude fields that have a value of None.

  • round_trip โ€“ If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings โ€“ How to handle serialization errors. False/โ€noneโ€ ignores them, True/โ€warnโ€ logs errors, โ€œerrorโ€ raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any โ€“ Whether to serialize fields with duck-typing serialization behavior.

Returns:

A dictionary representation of the model.

model_dump_json(*, indent: int | None = None, include: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, exclude: Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None = None, context: Any | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, round_trip: bool = False, warnings: bool | Literal['none', 'warn', 'error'] = True, serialize_as_any: bool = False) str#

Usage docs: https://docs.pydantic.dev/2.10/concepts/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydanticโ€™s to_json method.

Parameters:
  • indent โ€“ Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include โ€“ Field(s) to include in the JSON output.

  • exclude โ€“ Field(s) to exclude from the JSON output.

  • context โ€“ Additional context to pass to the serializer.

  • by_alias โ€“ Whether to serialize using field aliases.

  • exclude_unset โ€“ Whether to exclude fields that have not been explicitly set.

  • exclude_defaults โ€“ Whether to exclude fields that are set to their default value.

  • exclude_none โ€“ Whether to exclude fields that have a value of None.

  • round_trip โ€“ If True, dumped values should be valid as input for non-idempotent types such as Json[T].

  • warnings โ€“ How to handle serialization errors. False/โ€noneโ€ ignores them, True/โ€warnโ€ logs errors, โ€œerrorโ€ raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].

  • serialize_as_any โ€“ Whether to serialize fields with duck-typing serialization behavior.

Returns:

A JSON string representation of the model.

property model_extra: dict[str, Any] | None#

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to โ€œallowโ€.

property model_fields_set: set[str]#

Returns the set of fields that have been explicitly set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[~pydantic.json_schema.GenerateJsonSchema] = <class 'pydantic.json_schema.GenerateJsonSchema'>, mode: ~typing.Literal['validation', 'serialization'] = 'validation') dict[str, Any]#

Generates a JSON schema for a model class.

Parameters:
  • by_alias โ€“ Whether to use attribute aliases or not.

  • ref_template โ€“ The reference template.

  • schema_generator โ€“ To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications

  • mode โ€“ The mode in which to generate the schema.

Returns:

The JSON schema for the given model class.

classmethod model_parametrized_name(params: tuple[type[Any], ...]) str#

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params โ€“ Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError โ€“ Raised when trying to generate concrete names for non-generic models.

model_post_init(_BaseModel__context: Any) None#

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

classmethod model_rebuild(*, force: bool = False, raise_errors: bool = True, _parent_namespace_depth: int = 2, _types_namespace: MappingNamespace | None = None) bool | None#

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force โ€“ Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors โ€“ Whether to raise errors, defaults to True.

  • _parent_namespace_depth โ€“ The depth level of the parent namespace, defaults to 2.

  • _types_namespace โ€“ The types namespace, defaults to None.

Returns:

Returns None if the schema is already โ€œcompleteโ€ and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

classmethod model_validate(obj: Any, *, strict: bool | None = None, from_attributes: bool | None = None, context: Any | None = None) Self#

Validate a pydantic model instance.

Parameters:
  • obj โ€“ The object to validate.

  • strict โ€“ Whether to enforce types strictly.

  • from_attributes โ€“ Whether to extract data from object attributes.

  • context โ€“ Additional context to pass to the validator.

Raises:

ValidationError โ€“ If the object could not be validated.

Returns:

The validated model instance.

classmethod model_validate_json(json_data: str | bytes | bytearray, *, strict: bool | None = None, context: Any | None = None) Self#

Usage docs: https://docs.pydantic.dev/2.10/concepts/json/#json-parsing

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data โ€“ The JSON data to validate.

  • strict โ€“ Whether to enforce types strictly.

  • context โ€“ Extra variables to pass to the validator.

Returns:

The validated Pydantic model.

Raises:

ValidationError โ€“ If json_data is not a JSON string or the object could not be validated.

classmethod model_validate_strings(obj: Any, *, strict: bool | None = None, context: Any | None = None) Self#

Validate the given object with string data against the Pydantic model.

Parameters:
  • obj โ€“ The object containing string data to validate.

  • strict โ€“ Whether to enforce types strictly.

  • context โ€“ Extra variables to pass to the validator.

Returns:

The validated Pydantic model.

classmethod parse_file(path: str | Path, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self#
classmethod parse_obj(obj: Any) Self#
classmethod parse_raw(b: str | bytes, *, content_type: str | None = None, encoding: str = 'utf8', proto: DeprecatedParseProtocol | None = None, allow_pickle: bool = False) Self#
field rank: int | None = None#

Rank in segment (either overall leader board, or pr rank)

classmethod schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}') Dict[str, Any]#
classmethod schema_json(*, by_alias: bool = True, ref_template: str = '#/$defs/{model}', **dumps_kwargs: Any) str#
field type: str | None = None#

The type of achievement โ€“ e.g. โ€˜year_prโ€™ or โ€˜overallโ€™

field type_id: int | None = None#

Numeric ID for type of achievement? (6 = year_pr, 2 = overall ??? other?)

classmethod update_forward_refs(**localns: Any) None#
classmethod validate(value: Any) Self#