HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Lib/site-packages/intake/source/csv.py
# -----------------------------------------------------------------------------
# Copyright (c) 2012 - 2018, Anaconda, Inc. and Intake contributors
# All rights reserved.
#
# The full license is in the LICENSE file, distributed with this software.
# -----------------------------------------------------------------------------
from __future__ import annotations

from intake.source.base import DataSource
from intake.readers.datatypes import CSV
from intake.readers.readers import DaskCSV, PandasCSV, SparkDataFrame


class CSVSource(DataSource):
    """Read CSV files into dataframes

    Backward compatibility for V1 catalogs.
    """

    name = "csv"
    container = "dataframe"

    def __init__(self, urlpath, storage_options=None, metadata=None, **kwargs):
        super().__init__(metadata=metadata)
        self.data = CSV(url=urlpath, storage_options=storage_options, metadata=metadata)
        self.kwargs = kwargs

    def discover(self):
        return PandasCSV(self.data).discover(**self.kwargs)

    def to_dask(self):
        return DaskCSV(self.data).read(**self.kwargs)

    def read(self):
        return PandasCSV(self.data).read(**self.kwargs)

    def to_spark(self):
        return SparkDataFrame(self.data).read(**self.kwargs)