Source code for neuroconv.datainterfaces.text.excel.exceltimeintervalsinterface

import warnings

import pandas as pd
from pydantic import FilePath, validate_call

from ..timeintervalsinterface import TimeIntervalsInterface


[docs] class ExcelTimeIntervalsInterface(TimeIntervalsInterface): """Interface for adding data from an Excel file to NWB as a TimeIntervals object.""" display_name = "Excel time interval table" associated_suffixes = (".xlsx", ".xls", ".xlsm") info = "Interface for writing a time intervals table from an excel file." @validate_call def __init__( self, file_path: FilePath, *args, # TODO: change to * (keyword only) on or after August 2026 read_kwargs: dict | None = None, verbose: bool = False, ): """ Parameters ---------- file_path : FilePath read_kwargs : dict, optional Passed to pandas.read_excel() verbose : bool, default: False """ # Handle deprecated positional arguments if args: parameter_names = [ "read_kwargs", "verbose", ] num_positional_args_before_args = 1 # file_path if len(args) > len(parameter_names): raise TypeError( f"__init__() takes at most {len(parameter_names) + num_positional_args_before_args + 1} positional arguments but " f"{len(args) + num_positional_args_before_args + 1} were given. " "Note: Positional arguments are deprecated and will be removed on or after August 2026. " "Please use keyword arguments." ) positional_values = dict(zip(parameter_names, args)) passed_as_positional = list(positional_values.keys()) warnings.warn( f"Passing arguments positionally to ExcelTimeIntervalsInterface.__init__() is deprecated " f"and will be removed on or after August 2026. " f"The following arguments were passed positionally: {passed_as_positional}. " "Please use keyword arguments instead.", FutureWarning, stacklevel=2, ) read_kwargs = positional_values.get("read_kwargs", read_kwargs) verbose = positional_values.get("verbose", verbose) super().__init__(file_path=file_path, read_kwargs=read_kwargs, verbose=verbose) def _read_file(self, file_path: FilePath, **read_kwargs): return pd.read_excel(file_path, **read_kwargs)