Metadata-Version: 1.1
Name: csv2odoo
Version: 0.7.4
Summary: Python CSV to Odoo importation library
Home-page: https://bitbucket.org/StefMangin/python-csv2odoo
Author: Stéphane Mangin
Author-email: stephane.mangin@freesbee.fr
License: LGPLv3+
Description: ********************************
        Welcome to csv2odoo's repository
        ********************************
        
        `csv2odoo` is a Python converter from the `csv` format to `OpenObject` data
         models.
        
        `csv2odoo` is an easy way to import records from heterogeneous datas by editing
        a simple script as the manner of `Odoo` data model.
        You can specify pre-treatment(s) before any records insertions, you can also,
        according to criteria, omit the insertion of an entire record, mofify it or just
        create it (CRUD abilities).
        
        Some features of `csv2odoo` include abilities of Python `csv` module to specify
        input file configuration. It also include some useful functions to make
        specific value operations on each individual columns (See `callbacks` for more
        informations).
        
        ===========
        Quick start
        ===========
        
        Sample::
            
            #!/usr/bin/env python
            #.. your_script.py
            from csv2odoo import Model, Field, Odoo, Session
        
            #
            # Configure Odoo connection
            #
        
            odoo = Odoo(
                host='198.168.0.1', port=8069,
                user='admin', pwd='admin', dbname='database', 
                lang'fr_FR')
        
            #
            # Create a new importation instance::
            #
        
            session = Session(
                'file.csv', delimiter=';', quotechar='"', encoding='utf-8',
                offset=1, limit=10)
            
            #
            # Define your mapping to link both csv and Odoo::
            #
        
            # res.partner is unique by siren and will not be updated if exists
            res_partner = Model('res.partner', fields=[
                    Field('name', columns=[1]),
                    Field('siren', columns=[2]),
                    Field('website', columns=[16]),
                ], update=False, search=['siren'])
            
            # res.country is unique by code and name and will not be updated if exists
            res_country = Model('res.country', fields=[ 
                    Field('code', columns=[13], default='FR'),
                    Field('name', columns=[13], default='FRANCE'),
                ], update=False, search=['code', 'name'])
        
            # res.partner.address is unique by type and partner_id
            res_partner_address = Model('res.partner.address', fields=[
        
                    # Simple fields, some with default value and some unique between records
                    Field('zip', columns=[9], default='35000'),
                    Field('city', columns=[10], default='RENNES'),
                    Field('phone', column=[14]),
                    Field('fax', columns=[15]),
                    Field('email', columns=[17], unique=True, ignore=True),
                    Field('cedex', columns=[68]),
        
                    # Mixing columns (by concatenation or selection)
                    Field('street', columns=[7, 6], method='selection'),
                    Field('street2', columns=[8, 5], method='concatenate'),
        
                    # Model's relations with res.partner which must exists
                    Field('country_id', relation=res_country),
                    Field('partner_id', relation=res_partner, required=True),
        
                    # Adding a custom value to a missing field in the `csv` file
                    Field('type', custom='delivery'),
                ], search=['type', 'partner_id'])
        
            #
            # Finally join objects to the session which starts the import process
            #
        
            # There is no particular needs to also inject res.partner model, as it's 
            # already contained as a relation of res.partner.address
            session.bind(odoo, [res_partner_address, ])
        
            #
            # Optionaly: show statistics of records's activities during the importation process
            #
        
            csv2odoo.show_stats()
        
        =========================
        Supported Python versions
        =========================
        
        `csv2odoo` support Python versions 2.7.
        
        =======
        License
        =======
        
        This software is made available under the LGPLv3 license.
        
        ===================
        Bugs or suggestions
        ===================
        
        Please, feel free to report bugs or suggestions in the `Bug Tracker
        <https://bitbucket.org/StefMangin/python-csv2odoo/issues?status=new&status=open>`_!
        
        
Keywords: Odoo import csv data importation migration xml xml-rpc xmlrpc rpc json
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
