my_project.fileManager

  1import pandas as pd
  2
  3class FileManager():
  4    """
  5    A simple file manager.
  6        
  7    Parameters
  8    ----------
  9    format_ : str, optional
 10        Initial format of the files its managing
 11    
 12    Attributes
 13    ----------
 14    format : str | None
 15        Format of the files its managing
 16        
 17    Examples
 18    --------
 19    >>> fm = FileManager()
 20    >>> fm.set_format("parquet")
 21    >>> df = fm.read("parquet_data")
 22    
 23    >>> fm = FileManager("csv")
 24    >>> df = fm.read("csv_data")
 25    """
 26        
 27    formats = {
 28        'csv': {'write': lambda df, f: df.to_csv(f, index=False), 'read': pd.read_csv, 'ext': '.csv'},
 29        'parquet': {'write': lambda df, f: df.to_parquet(f), 'read': pd.read_parquet, 'ext': '.parquet'},
 30        'feather': {'write': lambda df, f: df.to_feather(f), 'read': pd.read_feather, 'ext': '.feather'},
 31        'pickle': {'write': lambda df, f: df.to_pickle(f), 'read': pd.read_pickle, 'ext': '.pkl'}
 32    }
 33
 34    def __init__(self,*, format_: str | None = None):
 35        self.format = None
 36        if format_ is not None:
 37            self.set_format(format_)
 38        
 39    @staticmethod
 40    def avalible_formats() -> list[str]:
 41        """
 42        Static method. Obtains the supported file formats.
 43        
 44        Returns
 45        -------
 46        list[str]
 47            List of strings, each a supported format
 48        
 49        Examples
 50        --------
 51        >>> formats = FileManager.avalible_formats()
 52        """
 53        
 54        return list(FileManager.formats.keys())
 55        
 56    @staticmethod
 57    def is_format(format_: str) -> bool:
 58        """
 59        Static method. Checks if a file format is supported.
 60        
 61        Parameters
 62        ----------
 63        format_ : str
 64            File format to check
 65        
 66        Returns
 67        -------
 68        bool
 69            True if it is supported
 70        
 71        Examples
 72        --------
 73        >>> csv_supported = FileManager.is_format("csv")
 74        """
 75        
 76        return (format_ in FileManager.formats.keys())
 77
 78    def set_format(self, format_: str) -> None:
 79        """
 80        Sets the file format of the files to manage.
 81        
 82        Parameters
 83        ----------
 84        format_ : str
 85            File format to use
 86        
 87        Examples
 88        --------
 89        >>> fm.set_format("csv")
 90
 91        Raises
 92        ------
 93        Exception
 94            If the format is not supported
 95        """
 96        
 97        if not self.is_format(format_):
 98            raise f"{format_} format not supported. Avalible formats: {self.avalible_formats()}"
 99        self.format = format_
100
101    def _get_name(self, input_filename: str) -> str:
102        """
103        Adds the apropiate extension to the filename.
104        
105        Parameters
106        ----------
107        input_filename : str
108            Filename without extension
109        
110        Returns
111        -------
112        str
113            Filename with the extension of the current format
114        
115        Examples
116        --------
117        >>> fm.set_format("csv")
118        >>> csv_filename = fm._get_name("name")
119        """
120        
121        filename = f'{input_filename}{self.formats[self.format]["ext"]}'
122        return filename
123        
124    def read(self, input_filename: str) -> pd.DataFrame:
125        """
126        Reads from the selected file.
127        
128        Parameters
129        ----------
130        input_filename : str
131            Filename without extension
132        
133        Returns
134        -------
135        pd.DataFrame
136            Dataframe with the content read from the selected file
137        
138        Examples
139        --------
140        >>> fm.set_format("csv")
141        >>> df = fm.read("csv_file")
142        """
143        
144        filename = self._get_name(input_filename)
145        return self.formats[self.format]["read"](filename)
146        
147    def write(self, df: pd.DataFrame, input_filename: str) -> str | None:
148        """
149        Writes to the selected file.
150        
151        Parameters
152        ----------
153        df : pd.DataFrame
154            Dataframe containg the content to write
155        input_filename : str
156            Filename without extension
157        
158        Returns
159        -------
160        str | None
161            Passes the return of the apropiate write call
162        
163        Examples
164        --------
165        >>> fm.set_format("csv")
166        >>> fm.write(df, "csv_file")
167        """
168        
169        filename = self._get_name(input_filename)
170        return self.formats[self.format]["write"](df, filename)
class FileManager:
  4class FileManager():
  5    """
  6    A simple file manager.
  7        
  8    Parameters
  9    ----------
 10    format_ : str, optional
 11        Initial format of the files its managing
 12    
 13    Attributes
 14    ----------
 15    format : str | None
 16        Format of the files its managing
 17        
 18    Examples
 19    --------
 20    >>> fm = FileManager()
 21    >>> fm.set_format("parquet")
 22    >>> df = fm.read("parquet_data")
 23    
 24    >>> fm = FileManager("csv")
 25    >>> df = fm.read("csv_data")
 26    """
 27        
 28    formats = {
 29        'csv': {'write': lambda df, f: df.to_csv(f, index=False), 'read': pd.read_csv, 'ext': '.csv'},
 30        'parquet': {'write': lambda df, f: df.to_parquet(f), 'read': pd.read_parquet, 'ext': '.parquet'},
 31        'feather': {'write': lambda df, f: df.to_feather(f), 'read': pd.read_feather, 'ext': '.feather'},
 32        'pickle': {'write': lambda df, f: df.to_pickle(f), 'read': pd.read_pickle, 'ext': '.pkl'}
 33    }
 34
 35    def __init__(self,*, format_: str | None = None):
 36        self.format = None
 37        if format_ is not None:
 38            self.set_format(format_)
 39        
 40    @staticmethod
 41    def avalible_formats() -> list[str]:
 42        """
 43        Static method. Obtains the supported file formats.
 44        
 45        Returns
 46        -------
 47        list[str]
 48            List of strings, each a supported format
 49        
 50        Examples
 51        --------
 52        >>> formats = FileManager.avalible_formats()
 53        """
 54        
 55        return list(FileManager.formats.keys())
 56        
 57    @staticmethod
 58    def is_format(format_: str) -> bool:
 59        """
 60        Static method. Checks if a file format is supported.
 61        
 62        Parameters
 63        ----------
 64        format_ : str
 65            File format to check
 66        
 67        Returns
 68        -------
 69        bool
 70            True if it is supported
 71        
 72        Examples
 73        --------
 74        >>> csv_supported = FileManager.is_format("csv")
 75        """
 76        
 77        return (format_ in FileManager.formats.keys())
 78
 79    def set_format(self, format_: str) -> None:
 80        """
 81        Sets the file format of the files to manage.
 82        
 83        Parameters
 84        ----------
 85        format_ : str
 86            File format to use
 87        
 88        Examples
 89        --------
 90        >>> fm.set_format("csv")
 91
 92        Raises
 93        ------
 94        Exception
 95            If the format is not supported
 96        """
 97        
 98        if not self.is_format(format_):
 99            raise f"{format_} format not supported. Avalible formats: {self.avalible_formats()}"
100        self.format = format_
101
102    def _get_name(self, input_filename: str) -> str:
103        """
104        Adds the apropiate extension to the filename.
105        
106        Parameters
107        ----------
108        input_filename : str
109            Filename without extension
110        
111        Returns
112        -------
113        str
114            Filename with the extension of the current format
115        
116        Examples
117        --------
118        >>> fm.set_format("csv")
119        >>> csv_filename = fm._get_name("name")
120        """
121        
122        filename = f'{input_filename}{self.formats[self.format]["ext"]}'
123        return filename
124        
125    def read(self, input_filename: str) -> pd.DataFrame:
126        """
127        Reads from the selected file.
128        
129        Parameters
130        ----------
131        input_filename : str
132            Filename without extension
133        
134        Returns
135        -------
136        pd.DataFrame
137            Dataframe with the content read from the selected file
138        
139        Examples
140        --------
141        >>> fm.set_format("csv")
142        >>> df = fm.read("csv_file")
143        """
144        
145        filename = self._get_name(input_filename)
146        return self.formats[self.format]["read"](filename)
147        
148    def write(self, df: pd.DataFrame, input_filename: str) -> str | None:
149        """
150        Writes to the selected file.
151        
152        Parameters
153        ----------
154        df : pd.DataFrame
155            Dataframe containg the content to write
156        input_filename : str
157            Filename without extension
158        
159        Returns
160        -------
161        str | None
162            Passes the return of the apropiate write call
163        
164        Examples
165        --------
166        >>> fm.set_format("csv")
167        >>> fm.write(df, "csv_file")
168        """
169        
170        filename = self._get_name(input_filename)
171        return self.formats[self.format]["write"](df, filename)

A simple file manager.

Parameters
  • format_ (str, optional): Initial format of the files its managing
Attributes
  • format (str | None): Format of the files its managing
Examples
>>> fm = FileManager()
>>> fm.set_format("parquet")
>>> df = fm.read("parquet_data")
>>> fm = FileManager("csv")
>>> df = fm.read("csv_data")
FileManager(*, format_: str | None = None)
35    def __init__(self,*, format_: str | None = None):
36        self.format = None
37        if format_ is not None:
38            self.set_format(format_)
formats = {'csv': {'write': <function FileManager.<lambda>>, 'read': <function read_csv>, 'ext': '.csv'}, 'parquet': {'write': <function FileManager.<lambda>>, 'read': <function read_parquet>, 'ext': '.parquet'}, 'feather': {'write': <function FileManager.<lambda>>, 'read': <function read_feather>, 'ext': '.feather'}, 'pickle': {'write': <function FileManager.<lambda>>, 'read': <function read_pickle>, 'ext': '.pkl'}}
format
@staticmethod
def avalible_formats() -> list[str]:
40    @staticmethod
41    def avalible_formats() -> list[str]:
42        """
43        Static method. Obtains the supported file formats.
44        
45        Returns
46        -------
47        list[str]
48            List of strings, each a supported format
49        
50        Examples
51        --------
52        >>> formats = FileManager.avalible_formats()
53        """
54        
55        return list(FileManager.formats.keys())

Static method. Obtains the supported file formats.

Returns
  • list[str]: List of strings, each a supported format
Examples
@staticmethod
def is_format(format_: str) -> bool:
57    @staticmethod
58    def is_format(format_: str) -> bool:
59        """
60        Static method. Checks if a file format is supported.
61        
62        Parameters
63        ----------
64        format_ : str
65            File format to check
66        
67        Returns
68        -------
69        bool
70            True if it is supported
71        
72        Examples
73        --------
74        >>> csv_supported = FileManager.is_format("csv")
75        """
76        
77        return (format_ in FileManager.formats.keys())

Static method. Checks if a file format is supported.

Parameters
  • format_ (str): File format to check
Returns
  • bool: True if it is supported
Examples
>>> csv_supported = FileManager.is_format("csv")
def set_format(self, format_: str) -> None:
 79    def set_format(self, format_: str) -> None:
 80        """
 81        Sets the file format of the files to manage.
 82        
 83        Parameters
 84        ----------
 85        format_ : str
 86            File format to use
 87        
 88        Examples
 89        --------
 90        >>> fm.set_format("csv")
 91
 92        Raises
 93        ------
 94        Exception
 95            If the format is not supported
 96        """
 97        
 98        if not self.is_format(format_):
 99            raise f"{format_} format not supported. Avalible formats: {self.avalible_formats()}"
100        self.format = format_

Sets the file format of the files to manage.

Parameters
  • format_ (str): File format to use
Examples
>>> fm.set_format("csv")
Raises
  • Exception: If the format is not supported
def read(self, input_filename: str) -> pandas.core.frame.DataFrame:
125    def read(self, input_filename: str) -> pd.DataFrame:
126        """
127        Reads from the selected file.
128        
129        Parameters
130        ----------
131        input_filename : str
132            Filename without extension
133        
134        Returns
135        -------
136        pd.DataFrame
137            Dataframe with the content read from the selected file
138        
139        Examples
140        --------
141        >>> fm.set_format("csv")
142        >>> df = fm.read("csv_file")
143        """
144        
145        filename = self._get_name(input_filename)
146        return self.formats[self.format]["read"](filename)

Reads from the selected file.

Parameters
  • input_filename (str): Filename without extension
Returns
  • pd.DataFrame: Dataframe with the content read from the selected file
Examples
>>> fm.set_format("csv")
>>> df = fm.read("csv_file")
def write(self, df: pandas.core.frame.DataFrame, input_filename: str) -> str | None:
148    def write(self, df: pd.DataFrame, input_filename: str) -> str | None:
149        """
150        Writes to the selected file.
151        
152        Parameters
153        ----------
154        df : pd.DataFrame
155            Dataframe containg the content to write
156        input_filename : str
157            Filename without extension
158        
159        Returns
160        -------
161        str | None
162            Passes the return of the apropiate write call
163        
164        Examples
165        --------
166        >>> fm.set_format("csv")
167        >>> fm.write(df, "csv_file")
168        """
169        
170        filename = self._get_name(input_filename)
171        return self.formats[self.format]["write"](df, filename)

Writes to the selected file.

Parameters
  • df (pd.DataFrame): Dataframe containg the content to write
  • input_filename (str): Filename without extension
Returns
  • str | None: Passes the return of the apropiate write call
Examples
>>> fm.set_format("csv")
>>> fm.write(df, "csv_file")