docstr: Logs a series of values by appending the provided collection of values to the end of the series.
  
  Available for the following series field types:
  
      * `FloatSeries` - series of float values
      * `StringSeries` - series of strings
      * `FileSeries` - series of files
  
  When you log the first value, the type of the value determines what type of field is created.
  To learn more about field types, see the docs: https://docs.neptune.ai/api/field_types
  
  Args:
      values: Values to be added to the series field, as a dictionary or collection.
      steps: Optional collection of indeces for the entries being appended. Must be strictly increasing.
      timestamps: Optional collection of time indeces for the entries being appended, in Unix time format.
          If None, the current time (obtained with `time.time()`) is used.
      wait: If True, the client sends all tracked metadata to the server before executing the call.
          For details, see https://docs.neptune.ai/api/universal/#wait
  
  Example:
      The following example reads a CSV file into a pandas DataFrame and extracts the values
      to create a Neptune series:
      >>> import neptune
      >>> run = neptune.init_run()
      >>> for epoch in range(n_epochs):
      ...     df = pandas.read_csv("time_series.csv")
      ...     ys = df["value"]
      ...     ts = df["timestamp"]
      ...     run["data/example_series"].extend(ys, timestamps=ts)
docstr_tok: ["Logs","a","series","of","values","by","appending","the","provided","collection","of","values","to","the","end","of","the","series",".","Available","for","the","following","series","field","types",":","*","`","FloatSeries","`","-","series","of","float","values","*","`","StringSeries","`","-","series","of","strings","*","`","FileSeries","`","-","series","of","files","When","you","log","the","first","value",",","the","type","of","the","value","determines","what","type","of","field","is","created",".","To","learn","more","about","field","types",",","see","the","docs",":","https",":","\/\/docs.neptune.ai\/api\/field_types","Args",":","values",":","Values","to","be","added","to","the","series","field",",","as","a","dictionary","or","collection",".","steps",":","Optional","collection","of","indeces","for","the","entries","being","appended",".","Must","be","strictly","increasing",".","timestamps",":","Optional","collection","of","time","indeces","for","the","entries","being","appended",",","in","Unix","time","format",".","If","None",",","the","current","time","(","obtained","with","`","time.time","(",")","`",")","is","used",".","wait",":","If","True",",","the","client","sends","all","tracked","metadata","to","the","server","before","executing","the","call",".","For","details",",","see","https",":","\/\/docs.neptune.ai\/api\/universal\/","#","wait","Example",":","The","following","example","reads","a","CSV","file","into","a","pandas","DataFrame","and","extracts","the","values","to","create","a","Neptune","series",":",">",">",">","import","neptune",">",">",">","run","=","neptune.init_run","(",")",">",">",">","for","epoch","in","range","(","n_epochs",")",":","...","df","=","pandas.read_csv","(","``","time_series.csv","''",")","...","ys","=","df","[","``","value","''","]","...","ts","=","df","[","``","timestamp","''","]","...","run","[","``","data\/example_series","''","]",".extend","(","ys",",","timestamps=ts",")"]
code: def extend(
      self,
      values: ExtendDictT,
      *,
      steps: Optional[Collection[float]] = None,
      timestamps: Optional[Collection[float]] = None,
      wait: bool = False,
      **kwargs,
  ) -> None:
      """Logs a series of values by appending the provided collection of values to the end of the series.
  
      Available for the following series field types:
  
          * `FloatSeries` - series of float values
          * `StringSeries` - series of strings
          * `FileSeries` - series of files
  
      When you log the first value, the type of the value determines what type of field is created.
      To learn more about field types, see the docs: https://docs.neptune.ai/api/field_types
  
      Args:
          values: Values to be added to the series field, as a dictionary or collection.
          steps: Optional collection of indeces for the entries being appended. Must be strictly increasing.
          timestamps: Optional collection of time indeces for the entries being appended, in Unix time format.
              If None, the current time (obtained with `time.time()`) is used.
          wait: If True, the client sends all tracked metadata to the server before executing the call.
              For details, see https://docs.neptune.ai/api/universal/#wait
  
      Example:
          The following example reads a CSV file into a pandas DataFrame and extracts the values
          to create a Neptune series:
          >>> import neptune
          >>> run = neptune.init_run()
          >>> for epoch in range(n_epochs):
          ...     df = pandas.read_csv("time_series.csv")
          ...     ys = df["value"]
          ...     ts = df["timestamp"]
          ...     run["data/example_series"].extend(ys, timestamps=ts)
      """
      ExtendUtils.validate_values_for_extend(values, steps, timestamps)
  
      with self._container.lock():
          attr = self._container.get_attribute(self._path)
          if attr is None:
              neptune_value = cast_value_for_extend(values)
              if neptune_value is None:
                  warn_about_unsupported_type(
                      type_str=str(type(values))
                  )
                  return None
  
              attr = ValueToAttributeVisitor(
                  self._container, parse_path(self._path)
              ).visit(neptune_value)
              self._container.set_attribute(self._path, attr)
  
          attr.extend(
              values,
              steps=steps,
              timestamps=timestamps,
              wait=wait,
              **kwargs,
          )
  
imports: from functools import wraps
  from typing import TYPE_CHECKING, Any, Collection, Dict, Iterable, Iterator, List, NewType, Optional, Union
  from neptune.api.dtos import FileEntry
  from neptune.attributes import File
  from neptune.attributes.atoms.artifact import Artifact
  from neptune.attributes.constants import SYSTEM_STAGE_ATTRIBUTE_PATH
  from neptune.attributes.file_set import FileSet
  from neptune.attributes.namespace import Namespace
  from neptune.attributes.series import FileSeries
  from neptune.attributes.series.float_series import FloatSeries
  from neptune.attributes.series.string_series import StringSeries
  from neptune.attributes.sets.string_set import StringSet
  from neptune.common.warnings import warn_about_unsupported_type
  from neptune.exceptions import MissingFieldException, NeptuneCannotChangeStageManually, NeptuneUserApiInputException
  from neptune.internal.artifacts.types import ArtifactFileData
  from neptune.internal.types.stringify_value import StringifyValue
  from neptune.internal.utils import is_collection, is_dict_like, is_float, is_float_like, is_string, is_stringify_value, verify_collection_type, verify_type
  from neptune.internal.utils.paths import join_paths, parse_path
  from neptune.internal.value_to_attribute_visitor import ValueToAttributeVisitor
  from neptune.metadata_containers.abstract import SupportsNamespaces
  from neptune.types.atoms.file import File
  from neptune.types.type_casting import cast_value_for_extend
  from neptune.types.value_copy import ValueCopy
  from neptune.utils import stringify_unsupported
label_desc: Use image node_id 15 for calling the Handler obj's underlying member method code with example usage: obj.extend(values) and returns: None