Metadata-Version: 2.0
Name: csb43
Version: 0.8
Summary: Spanish banks' CSB norm 43 converter to OFX, Homebank, json, yaml, xls, xlsx, ods, csv, tsv
Home-page: https://bitbucket.org/wmj/csb43
Author: wmj
Author-email: wmj.py@gmx.com
License: LGPL
Keywords: csb csb43 aeb aeb43 homebank ofx Spanish bank ods tsv xls xlsx excel yaml json html
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Topic :: Utilities
Classifier: Topic :: Office/Business :: Financial
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Requires-Dist: pycountry (>=16.10.23rc1)
Provides-Extra: all
Requires-Dist: PyYAML; extra == 'all'
Requires-Dist: openpyxl (<2.5.0); extra == 'all'
Requires-Dist: tablib; extra == 'all'
Provides-Extra: babel
Requires-Dist: Babel; extra == 'babel'
Provides-Extra: formats
Requires-Dist: openpyxl (<2.5.0); extra == 'formats'
Requires-Dist: tablib; extra == 'formats'
Provides-Extra: yaml
Requires-Dist: PyYAML; extra == 'yaml'

csb43
=====


Español
-------

Herramientas para convertir ficheros en formato usado por múltiples
bancos españoles (**norma 43 del Consejo Superior Bancario** [*CSB43*]
/ **Asociación Española de Banca** [*AEB43*]) a otros formatos.


csb2format
~~~~~~~~~~

Conversor de ficheros en **CSB/AEB norma 43** a otros formatos.

Formatos soportados:

-  `OFX XML <http://www.ofx.net>`_ v1.0.3 & v2.1.1
-  `HomeBank CSV <http://homebank.free.fr/help/06csvformat.html>`_
-  *HTML*
-  *JSON*
-  *ODS*: hoja de cálculo OpenDocument
-  *CSV*, *TSV*: valores separados por coma o tabulador
-  *XLS*: hoja de cálculo de Microsoft Excel
-  *XLSX*: hoja de cálculo OOXML
-  *YAML*


Instalación:
^^^^^^^^^^^^

Todos los formatos disponibles:

::

    pip install csb43[all]


Formatos internos (ofx, ofx1, homebank) más YAML:

::

    pip install csb43[yaml]


Formatos internos (ofx, ofx1, homebank) más formatos del paquete `tablib`:

::

    pip install csb43[formats]


Opciones:
^^^^^^^^^


::

    usage: csb2format [-h] [-s] [-df] [-d DECIMAL] [-e ENCODING] [--use-float]
                    [-V]
                    [-f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}]
                    [-v]
                    csbFile convertedFile

    Convierte un fichero CSB43 a otro formato

    optional arguments:
    -h, --help            show this help message and exit
    -v, --version         show program's version number and exit

    csb43 arguments:
    csbFile               fichero csb43 ('-' para entrada estándar)
    -s, --strict          modo estricto (por defecto: False)
    -df, --dayfirst       usa DDMMYY -día, mes, año- como formato de fecha al
                            interpretar los datos del fichero csb43 en lugar de
                            YYMMDD -año, mes, día- (por defecto: True)
    -d DECIMAL, --decimal DECIMAL
                            establece el número de dígitos decimales a considerar
                            en el tipo de divisa (por defecto: 2)
    -e ENCODING, --encoding ENCODING
                            establece la codificación de entrada ('cp850' para
                            fichero AEB estándar, por defecto: 'latin1')
    --use-float           exporta cantidades monetarias usando números binarios
                            en punto flotante como último recurso (default: False)
    -V, --verbose         mostrar avisos de csb43

    output arguments:
    convertedFile         fichero de destino ('-' para salida estándar)
    -f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}, --format {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}
                        Formato del fichero de salida (por defecto: ofx)





Ejemplos
^^^^^^^^

-  Convertir a formato OFX:

   ::

       $ csb2format transactions.csb transactions.ofx

       $ csb2format --format ofx transactions.csb transactions.ofx

   o bien

   ::

       $ csb2format transactions.csb - > transactions.ofx

   Desde una aplicación de recuperación de datos a otro fichero

   ::

       $ get_my_CSB_transactions | csb2format - transactions.ofx

-  Convertir a hoja de cálculo XLSX (Excel):

   ::

       $ csb2format --format xlsx transactions.csb transactions.xlsx

- Usando cp850 como codificación de entrada:

    ::

        $ csb2format --encoding cp850 --format xlsx transactions.csb transactions.xlsx


Hojas de cálculo
^^^^^^^^^^^^^^^^


Los ficheros en *ODS*, *XLS* y *XLSX* se generan a modo de libro, conteniendo
la primera hoja la información relativa a las cuentas, y las hojas
siguientes conteniendo cada una los movimientos de cada cuenta.



En Python
~~~~~~~~~


Lee un archivo *CSB43* e imprime el contenido equivalente en *OFX*

::

    :::python

    # OFX
    from csb43 import csb43, ofx

    csbFile = csb43.File(open("movimientos.csb"), strict=False)

    # imprime a stdout
    print ofx.convertFromCsb(csbFile)

Lee un archivo *CSB* e imprime el contenido equivalente a *CSV* de
*Homebank*

::

    :::python

    # OFX
    from csb43 import csb43, homebank

    csbFile = csb43.File(open("movimientos.csb"), strict=False)

    # imprime a stdout
    for line in homebank.convertFromCsb(csbFile):
        print line

Lee un archivo *CSB* e imprime el equivalente en un archivo de formato
tabular o de diccionario

::

    :::python

    # OFX
    from csb43 import csb43, formats

    csbFile = csb43.File(open("movimientos.csb"), strict=False)

    # imprime formato 'yaml' a stdout
    o = format.convertFromCsb(csbFile, 'yaml')
    print o.yaml

    # escribe a archivo en formato 'xlsx'
    o = format.convertFromCsb(csbFile, 'xlsx')
    with open("movimientos.xlsx", "wb") as f:
        f.write(o.xlsx)


--------------



English
-------

Tools for converting from the Spanish banks' format **CSB norm 43**
(*CSB43*).


csb2format
~~~~~~~~~~

Convert a **CSB/AEB norm 43** file to other file formats.

Supported formats:

- OFX v1.0.3 (SGML) & v2.1.1 (XML)
- `HomeBank CSV <http://homebank.free.fr/help/06csvformat.html>`_
- *HTML*
- *JSON*
- *ODS*: OpenDocument spreadsheet
- *CSV*, *TSV*: comma- or tab- separated values
- *XLS*: Microsoft Excel spreadsheet
- *XLSX*: OOXML spreadsheet
- *YAML*


Installing:
^^^^^^^^^^^^

All the available formats:

::

    pip install csb43[all]

Built-in formats (ofx, ofx1, homebank) plus YAML:

::

    pip install csb43[yaml]

Built-in formats (ofx, ofx1, homebank) plus formats provided by the package
`tablib`:

::

    pip install csb43[formats]


Options:
^^^^^^^^

::

    usage: csb2format [-h] [-s] [-df] [-d DECIMAL] [-e ENCODING] [--use-float]
                     [-V]
                     [-f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}]
                     [-v]
                     csbFile convertedFile

    Convert a CSB43 file to another format

    optional arguments:
    -h, --help            show this help message and exit
    -v, --version         show program's version number and exit

    csb43 arguments:
    csbFile               a csb43 file ('-' for stdin)
    -s, --strict          strict mode (default: False)
    -df, --dayfirst       use DDMMYY as date format while parsing the csb43 file
                            instead of YYMMDD (default: True)
    -d DECIMAL, --decimal DECIMAL
                            set the number of decimal places for the currency type
                            (default: 2)
    -e ENCODING, --encoding ENCODING
                            set the input encoding ('cp850' for standard AEB file,
                            default: 'latin1')
    --use-float           export monetary amounts using binary floating point
                            numbers as a fallback (default: False)
    -V, --verbose         show csb43 warnings

    output arguments:
    convertedFile         destination file ('-' for stdout)
    -f {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}, --format {csv,dbf,df,homebank,html,json,latex,ods,ofx,ofx1,tsv,xls,xlsx,yaml}
                            Format of the output file (default: ofx)





Examples
^^^^^^^^

- Converting to OFX format:

    ::

        $ csb2format transactions.csb transactions.ofx

        $ csb2format --format ofx transactions.csb transactions.ofx

    or

    ::

        $ csb2format transactions.csb - > transactions.ofx

    From another app to file

    ::

        $ get_my_CSB_transactions | csb2format - transactions.ofx

- Converting to XLSX spreadsheet format:

    ::

        $ csb2format --format xlsx transactions.csb transactions.xlsx

- Using cp850 as the input encoding:

    ::

        $ csb2format --encoding cp850 --format xlsx transactions.csb transactions.xlsx


Spreadsheets
^^^^^^^^^^^^


*ODS*, *XLS* and *XLSX* files are generated as books, with the first sheet
containing the accounts information, and the subsequent sheets
containing the transactions of each one of the accounts.


Using Python
~~~~~~~~~~~~


Parse a *CSB43* file and print the equivalent *OFX* file

::

    :::python

    # OFX
    from csb43 import csb43, ofx

    csbFile = csb43.File(open("movimientos.csb"), strict=False)

    # print to stdout
    print ofx.convertFromCsb(csbFile)

Parse a *CSB43* file and print the equivalent *HomeBank CSV* file

::

    :::python

    # OFX
    from csb43 import csb43, homebank

    csbFile = csb43.File(open("movimientos.csb"), strict=False)

    # print to stdout
    for line in homebank.convertFromCsb(csbFile):
        print line

Parse a *CSB43* file and print the equivalent in a tabular or
dictionary-like file format

::

    :::python

    # OFX
    from csb43 import csb43, formats

    csbFile = csb43.File(open("movimientos.csb"), strict=False)

    # print 'yaml' format to stdout
    o = format.convertFromCsb(csbFile, 'yaml')
    print o.yaml

    # write 'xlsx' format to file
    o = format.convertFromCsb(csbFile, 'xlsx')
    with open("movimientos.xlsx", "wb") as f:
        f.write(o.xlsx)



Instalación
-----------

Usando *pip*

::

    $ pip install csb43


Installing
-----------

Using *pip*

::

    $ pip install csb43





Changelog
-----------

0.8
~~~

- Text values are stored as string instead of bytes (thanks to Sergi Almacellas)
- Warnings are raised using the 'warnings' module.
- An encoding where control characters are different from ascii is not allowed. An exception will be raised.
- csb2format: added encoding as a new parameter.

0.7
~~~

- Defined installation targets: `yaml` and `formats` (thanks to Sergi Almacellas & Cédric Krier).
- Updated README file (thanks to Sergi Almacellas).
- Removed `simplejson` dependency.
- Dates stored as `date` instead of `datetime` (thanks to Sergi Almacellas).
- Monetary amounts are represented as `Decimal` instead to `float` in order to prevent representation and rounding issues. These fields are exported as a string by default, conversion to float is optional (thanks to Sergi Almacellas & Cédric Krier).
- Added temprary dependency to `openpyxl < 2.5.0` to prevent issue while trying to export to xlsx.

0.6
~~~~

- Fixed usage of pycountry >= 16.10.23rc1 objects (thanks to Alex Barcelo).
- Package refactored to simplify the structure.

0.5
~~~~

- Fixed conversion to binary formats in python 2.
- `tablib` backend supported in python 3.
- N43 warnings are silenced by default.

0.4
~~~~

- OFX v 1.0.3 supported.
- OFX Tag inv401source renamed to inv401ksource.
- Unique transaction id when generating OFX file (thanks to Julien Moutte).

0.3.4
~~~~~

- Most Spanish N43 files will use LATIN-1 encoding not pure ASCII (thanks to Julien Moutte).
- Regular expression to check for account name is too limited (thanks to Julien Moutte).
- Reference1 can hold non numerical data in information mode 1 and 2 (thanks to Julien Moutte).
- Currency data as an inmutable list.

0.3.3
~~~~~

- Fixed deficiencies in OFX conversion (thanks to Andrea Santambrogio). Checked XML validation against OFX2_Protocol.xsd

0.3
~~~~

- Compatible with Python 3 (except "tablib" dependencies)

0.2.3
~~~~~~

- Fixed shebang header of csb2format


0.2.2
~~~~~~

- csb2format adapted to pyinstaller
- Executable file for Windows

0.2.1
~~~~~

- Trivial changes

0.2
~~~~

- Several bugfixes
- Bidirectional use of objects (file -> object, object -> file)
- Added conversion to spreadsheets, dict and tabular formats (thanks to tablib)
- Localization to Spanish
- Sphinx documentation

0.1
~~~

- Initial release




