doc/api/dataimport.rst
author Denis Laxalde <denis.laxalde@logilab.fr>
Tue, 06 Aug 2019 14:26:17 +0200
branch3.26
changeset 12719 9fb4a71f119d
parent 10495 5bd914ebf3ae
child 12814 75e0377ed3c2
permissions -rw-r--r--
[py3] Pass bytes as "msg" to smtplib.SMTP.sendmail() When passing a unicode string to smtplib.SMTP.sendmail() as "msg" argument, there is an implicit bytes encoding using "ascii" encoding in python3. Of course this does not work if the string contains non-ASCII characters. In fact, config's sendmails method intent to pass bytes to smtplib.SMTP.sendmail() as it uses msg.as_string() method. Unfortunately, in python3, this method returns a unicode string whereas it returns a bytes string in python2; we thus fix this by calling as_bytes() method on python3. As there is no "as_bytes" method in python2, we need to handle python2 compatibility by hand and either call as_string() or as_bytes(). In testlib, where we mock smtplib.SMTP, we need to keep the "msg" argument of Email class (defined in testlib as well) a unicode string. Otherwise, it fails to be parsed by email.message_from_string() (from stdlib) if it is bytes on python3.

.. _dataimport_module:

:mod:`cubicweb.dataimport`
==========================

.. automodule:: cubicweb.dataimport

    Utilities
    ---------

    .. autofunction:: count_lines

    .. autofunction:: ucsvreader_pb

    .. autofunction:: ucsvreader

    .. autofunction:: callfunc_every

    .. autofunction:: lazytable

    .. autofunction:: lazydbtable

    .. autofunction:: mk_entity

    Sanitizing/coercing functions
    -----------------------------

    .. autofunction:: optional
    .. autofunction:: required
    .. autofunction:: todatetime
    .. autofunction:: call_transform_method
    .. autofunction:: call_check_method

    Integrity functions
    -------------------

    .. autofunction:: check_doubles
    .. autofunction:: check_doubles_not_none

    Object Stores
    -------------

    .. autoclass:: ObjectStore
        :members:

    .. autoclass:: RQLObjectStore
        :show-inheritance:
        :members:

    .. autoclass:: NoHookRQLObjectStore
        :show-inheritance:
        :members:

    .. autoclass:: SQLGenObjectStore
        :show-inheritance:
        :members:

    Import Controller
    -----------------

    .. autoclass:: CWImportController
        :show-inheritance:
        :members: