|
- # -*- coding: utf-8 -*-
- #pylint: disable=deprecated-module
- import csv
- import codecs
- import io
- import typing
- import warnings
-
- _reader = codecs.getreader('utf-8')
- _writer = codecs.getwriter('utf-8')
-
-
- def csv_reader(stream, **params):
- warnings.warn("Deprecated since Odoo 18.0: can just use `csv.reader` with a text stream or use `TextIOWriter` or `codec.getreader` to transcode.", DeprecationWarning, 2)
- assert not isinstance(stream, io.TextIOBase),\
- "For cross-compatibility purposes, csv_reader takes a bytes stream"
- return csv.reader(_reader(stream), **params)
-
-
- def csv_writer(stream, **params):
- warnings.warn("Deprecated since Odoo 18.0: can just use `csv.writer` with a text stream or use `TextIOWriter` or `codec.getwriter` to transcode.", DeprecationWarning, 2)
- assert not isinstance(stream, io.TextIOBase), \
- "For cross-compatibility purposes, csv_writer takes a bytes stream"
- return csv.writer(_writer(stream), **params)
-
-
- def to_text(source: typing.Any) -> str:
- """ Generates a text value from an arbitrary source.
-
- * False and None are converted to empty strings
- * text is passed through
- * bytes are decoded as UTF-8
- * rest is textified
- """
- warnings.warn("Deprecated since Odoo 18.0.", DeprecationWarning, 2)
- if source is None or source is False:
- return ''
-
- if isinstance(source, bytes):
- return source.decode()
-
- if isinstance(source, str):
- return source
-
- return str(source)
|