bw_processing.indexing ====================== .. py:module:: bw_processing.indexing Functions --------- .. autoapisummary:: bw_processing.indexing._get_csv_data bw_processing.indexing.reindex bw_processing.indexing.reset_index Module Contents --------------- .. py:function:: _get_csv_data(datapackage: Union[bw_processing.datapackage.Datapackage, fsspec.AbstractFileSystem], metadata_name: str) -> (bw_processing.datapackage.Datapackage, pandas.DataFrame, dict, List[numpy.ndarray], List[int]) Utility function to get CSV data from datapackage. :param \* datapackage: datapackage or `Filesystem`. Input to `load_datapackage` function. :param \* metadata_name: Name identifying a CSV metadata resource in ``datapackage`` :raises \* KeyError: ``metadata_name`` is not in ``datapackage`` :raises \* ValueError: ``metadata_name`` is not CSV metadata. :raises \* KeyError: Resource referenced by CSV ``valid_for`` not in ``datapackage`` :returns: * datapackage object * pandas DataFrame with CSV data * metadata (dict) stored with dataframe * list of indices arrays reference by CSV data * indices of arrays .. py:function:: reindex(datapackage: Union[bw_processing.datapackage.Datapackage, fsspec.AbstractFileSystem], metadata_name: str, data_iterable: collections.abc.Iterable, fields: List[str] = None, id_field_datapackage: str = 'id', id_field_destination: str = 'id') -> None Use the metadata to set the integer indices in ``datapackage`` to those used in ``data_iterable``. Used in data exchange. Often, the integer ids provided in the data package are arbitrary, and need to be mapped to the values present in your database. Updates the datapackage in place. :param \* datapackage: datapackage of `Filesystem`. Input to `load_datapackage` function. :param \* metadata_name: Name identifying a CSV metadata resource in ``datapackage`` :param \* data_iterable: Iterable which returns objects that support ``.get()``. :param \* fields: Optional list of fields to use while matching :param \* id_field_datapackage: String identifying the column providing an integer id in the datapackage :param \* id_field_destination: String identifying the column providing an integer id in ``data_iterable`` :raises \* KeyError: ``data_iterable`` is missing ``id_field_destination`` field :raises \* KeyError: ``metadata_name`` is missing ``id_field_datapackage`` field :raises \* NonUnique: Multiple objects found in ``data_iterable`` which matches fields in ``datapackage`` :raises \* KeyError: ``metadata_name`` is not in ``datapackage`` :raises \* KeyError: No object found in ``data_iterable`` which matches fields in ``datapackage`` :raises \* ValueError: ``metadata_name`` is not CSV metadata. :raises \* ValueError: The resources given for ``metadata_name`` are not present in this ``datapackage`` :raises \* AttributeError: ``data_iterable`` doesn't support field retrieval using ``.get()``. :returns: Datapackage instance with modified data .. py:function:: reset_index(datapackage: Union[bw_processing.datapackage.Datapackage, fsspec.AbstractFileSystem], metadata_name: str) -> bw_processing.datapackage.Datapackage Reset the numerical indices in ``datapackage`` to sequential integers starting from zero. Updates the datapackage in place. :param \* datapackage: datapackage or `Filesystem`. Input to `load_datapackage` function. :param \* metadata_name: Name identifying a CSV metadata resource in ``datapackage`` :returns: Datapackage instance with modified data