Metadata-Version: 1.1
Name: pyexcel
Version: 0.3.3
Summary: A wrapper library that provides one API to read, manipulate and write data in different excel formats
Home-page: UNKNOWN
Author: C.W.
Author-email: wangc_2011 (at) hotmail.com
License: New BSD
Description: ================================================================================
        pyexcel - Let you focus on data, instead of file formats
        ================================================================================
        
        .. image:: https://api.travis-ci.org/pyexcel/pyexcel.svg?branch=master
           :target: http://travis-ci.org/pyexcel/pyexcel
        
        .. image:: https://codecov.io/github/pyexcel/pyexcel/coverage.png
            :target: https://codecov.io/github/pyexcel/pyexcel
        
        .. image:: https://readthedocs.org/projects/pyexcel/badge/?version=latest
           :target: http://pyexcel.readthedocs.org/en/latest/
        
        Known constraints
        ==================
        
        Fonts, colors and charts are not supported.
        
        
        Feature Highlights
        ===================
        
        1. One API to handle multiple data sources:
        
           * physical file
           * memory file
           * SQLAlchemy table
           * Django Model
           * Python data stuctures: dictionary, records and array
        2. One application programming interface(API) to read and write data in various excel file formats.
        
        
        Available Plugins
        =================
        
        .. _file-format-list:
        .. _a-map-of-plugins-and-file-formats:
        
        .. table:: A list of file formats supported by external plugins
        
           ================= ======================= ============= ==================
           Package name      Supported file formats  Dependencies  Python versions
           ================= ======================= ============= ==================
           `pyexcel-io`_     csv, csvz [#f1]_, tsv,                2.6, 2.7, 3.3,
                             tsvz [#f2]_                           3.4, 3.5,
                                                                   pypy, pypy3
           `pyexcel-xls`_    xls, xlsx(read only),   `xlrd`_,      same as above
                             xlsm(read only)         `xlwt`_
           `pyexcel-xlsx`_   xlsx                    `openpyxl`_   same as above
           `pyexcel-xlsxw`_  xlsx(write only)        `XlsxWriter`_ same as above
           `pyexcel-ods3`_   ods                     `ezodf`_,     2.6, 2.7, 3.3, 3.4
                                                     lxml          3.5
           `pyexcel-ods`_    ods                     `odfpy`_      same as above
           `pyexcel-text`_   (write only)json, rst,  `tabulate`_   2.6, 2.7, 3.3, 3.4
                             mediawiki, html,                      3.5, pypy, pypy3
                             latex, grid, pipe,
                             orgtbl, plain simple
           ================= ======================= ============= ==================
        
        .. _pyexcel-io: https://github.com/pyexcel/pyexcel-io
        .. _pyexcel-xls: https://github.com/pyexcel/pyexcel-xls
        .. _pyexcel-xlsx: https://github.com/pyexcel/pyexcel-xlsx
        .. _pyexcel-ods: https://github.com/pyexcel/pyexcel-ods
        .. _pyexcel-ods3: https://github.com/pyexcel/pyexcel-ods3
        .. _pyexcel-xlsxw: https://github.com/pyexcel/pyexcel-xlsxw
        
        .. _xlrd: https://github.com/python-excel/xlrd
        .. _xlwt: https://github.com/python-excel/xlwt
        .. _openpyxl: https://bitbucket.org/openpyxl/openpyxl
        .. _XlsxWriter: https://github.com/jmcnamara/XlsxWriter
        .. _ezodf: https://github.com/T0ha/ezodf
        .. _odfpy: https://github.com/eea/odfpy
        
        .. _pyexcel-text: https://github.com/pyexcel/pyexcel-text
        .. _tabulate: https://bitbucket.org/astanin/python-tabulate
        
        .. rubric:: Footnotes
        
        .. [#f1] zipped csv file
        .. [#f2] zipped tsv file
        
        
        
        
        Installation
        ================================================================================
        You can install it via pip:
        
        .. code-block:: bash
        
            $ pip install pyexcel
        
        
        or clone it and install it:
        
        .. code-block:: bash
        
            $ git clone http://github.com/pyexcel/pyexcel.git
            $ cd pyexcel
            $ python setup.py install
        
        
        
        Usage
        ===============
        
        .. code-block:: python
        
            >>> import pyexcel
            >>> content = "1,2,3\n3,4,5"
            >>> sheet = pyexcel.Sheet()
            >>> sheet.csv = content
            >>> sheet.array
            [[1, 2, 3], [3, 4, 5]]
            >>> with open("myfile.xlsx", "wb") as output:
            ...     write_count_not_used = output.write(sheet.xlsx)
        
        	>>> os.unlink("myfile.xlsx")
        
        Suppose you want to process the following excel data :
        
        ========= ====
        Name      Age
        ========= ====
        Adam      28
        Beatrice  29
        Ceri      30
        Dean      26
        ========= ====
        
        Here are the new method to obtain the records on demand:
        
        .. code-block:: python
           
           >>> import pyexcel as pe
           >>> records = pe.iget_records(file_name="your_file.xls")
           >>> for record in records:
           ...     print("%s is aged at %d" % (record['Name'], record['Age']))
           Adam is aged at 28
           Beatrice is aged at 29
           Ceri is aged at 30
           Dean is aged at 26
        
        Acknowledgement
        ===============
        
        All great work have done by odf, ezodf, xlrd, xlwt, tabulate and other individual developers. This library unites only the data access code.
        
        
        
        Development guide
        ================================================================================
        
        Development steps for code changes
        
        #. git clone https://github.com/pyexcel/pyexcel.git
        #. cd pyexcel
        
        Upgrade your setup tools and pip. They are needed for development and testing only:
        
        #. pip install --upgrade setuptools "pip==7.1"
        
        Then install relevant development requirements:
        
        #. pip install -r rnd_requirements.txt # if such a file exists
        #. pip install -r requirements.txt
        #. pip install -r tests/requirements.txt
        
        
        In order to update test environment, and documentation, additional setps are
        required:
        
        #. pip install moban
        #. git clone https://github.com/pyexcel/pyexcel-commons.git
        #. make your changes in `.moban.d` directory, then issue command `moban`
        
        What is rnd_requirements.txt
        -------------------------------
        
        Usually, it is created when a dependent library is not released. Once the dependecy is installed(will be released), the future version of the dependency in the requirements.txt will be valid.
        
        What is pyexcel-commons
        ---------------------------------
        
        Many information that are shared across pyexcel projects, such as: this developer guide, license info, etc. are stored in `pyexcel-commons` project.
        
        What is .moban.d
        ---------------------------------
        
        `.moban.d` stores the specific meta data for the library.
        
        How to test your contribution
        ------------------------------
        
        Although `nose` and `doctest` are both used in code testing, it is adviable that unit tests are put in tests. `doctest` is incorporated only to make sure the code examples in documentation remain valid across different development releases.
        
        On Linux/Unix systems, please launch your tests like this::
        
            $ make test
        
        On Windows systems, please issue this command::
        
            > test.bat
        
        License
        ================================================================================
        
        New BSD License
        
        Change log
        ================================================================================
        
        0.3.3 - unreleased
        --------------------------------------------------------------------------------
        
        Updated
        ********************************************************************************
        
        #. `# 63 <https://github.com/pyexcel/pyexcel/issues/63>`_: cannot display
           empty sheet(hence book with empty sheet) as texttable
        
        
        0.3.2 - 2.11.2016
        --------------------------------------------------------------------------------
        
        Updated
        ********************************************************************************
        
        #. `# 62 <https://github.com/pyexcel/pyexcel/issues/62>`_: optional module
           import error become visible. 
        
        
        0.3.0 - 28.10.2016
        --------------------------------------------------------------------------------
        
        .. _version_o_three:
        
        Added:
        ********************************************************************************
        
        #. file type setters for Sheet and Book, and its documentation
        #. `iget_records` returns a generator for a list of records and should have
           better memory performance, especially dealing with large csv files.
        #. `iget_array` returns a generator for a list of two dimensional array and
           should have better memory performance, especially dealing with large csv
           files.
        #. Enable pagination support, and custom row renderer via pyexcel-io v0.2.3
        
        Updated
        ********************************************************************************
        
        #. Take `isave_as` out from `save_as`. Hence two functions are there for save
           a sheet as
        #. `# 60 <https://github.com/pyexcel/pyexcel/issues/60>`_: encode 'utf-8' if
           the console is of ascii encoding.
        #. `# 59 <https://github.com/pyexcel/pyexcel/issues/59>`_: custom row
           renderer
        #. `# 56 <https://github.com/pyexcel/pyexcel/issues/56>`_: set cell value does
           not work
        #. pyexcel.transpose becomes `pyexcel.sheets.transpose`
        #. iterator functions of `pyexcel.Sheet` were converted to generator
           functions
        
           * `pyexcel.Sheet.enumerate()`
           * `pyexcel.Sheet.reverse()`
           * `pyexcel.Sheet.vertical()`
           * `pyexcel.Sheet.rvertical()`
           * `pyexcel.Sheet.rows()`
           * `pyexcel.Sheet.rrows()`
           * `pyexcel.Sheet.columns()`
           * `pyexcel.Sheet.rcolumns()`
           * `pyexcel.Sheet.named_rows()`
           * `pyexcel.Sheet.named_columns()`
        
        #. `~pyexcel.Sheet.save_to_memory` and `~pyexcel.Book.save_to_memory`
           return the actual content. No longer they will return a io object hence
           you cannot call getvalue() on them.
           
        Removed:
        ********************************************************************************
        
        #. `content` and `out_file` as function parameters to the signature functions are
           no longer supported.
        #. SourceFactory and RendererFactory are removed
        #. The following methods are removed
        
           * `pyexcel.to_array`
           * `pyexcel.to_dict`
           * `pyexcel.utils.to_one_dimensional_array`
           * `pyexcel.dict_to_array`
           * `pyexcel.from_records`
           * `pyexcel.to_records`
        
        #. `pyexcel.Sheet.filter` has been re-implemented and all filters were
           removed:
        
           * `pyexcel.filters.ColumnIndexFilter`
           * `pyexcel.filters.ColumnFilter`
           * `pyexcel.filters.RowFilter`
           * `pyexcel.filters.EvenColumnFilter`
           * `pyexcel.filters.OddColumnFilter`
           * `pyexcel.filters.EvenRowFilter`
           * `pyexcel.filters.OddRowFilter`
           * `pyexcel.filters.RowIndexFilter`
           * `pyexcel.filters.SingleColumnFilter`
           * `pyexcel.filters.RowValueFilter`
           * `pyexcel.filters.NamedRowValueFilter`
           * `pyexcel.filters.ColumnValueFilter`
           * `pyexcel.filters.NamedColumnValueFilter`
           * `pyexcel.filters.SingleRowFilter`
        
        #. the following functions have been removed
        
           * `add_formatter`
           * `remove_formatter`
           * `clear_formatters`
           * `freeze_formatters`
           * `add_filter`
           * `remove_filter`
           * `clear_filters`
           * `freeze_formatters`
        
        #. `pyexcel.Sheet.filter` has been re-implemented and all filters were
           removed:
        
           * pyexcel.formatters.SheetFormatter
           
        
        0.2.5 - 31.08.2016
        --------------------------------------------------------------------------------
        
        Updated:
        ********************************************************************************
        
        #. `# 58 <https://github.com/pyexcel/pyexcel/issues/58>`_: texttable should
           have been made as compulsory requirement
        
        
        0.2.4 - 14.07.2016
        --------------------------------------------------------------------------------
        
        Updated:
        ********************************************************************************
        
        #. For python 2, writing to sys.stdout by pyexcel-cli raise IOError.
        
        0.2.3 - 11.07.2016
        --------------------------------------------------------------------------------
        
        Updated:
        ********************************************************************************
        
        #. For python 3, do not seek 0 when saving to memory if sys.stdout is passed on.
           Hence, adding support for sys.stdin and sys.stdout.
        
        0.2.2 - 01.06.2016
        --------------------------------------------------------------------------------
        
        Updated:
        ********************************************************************************
        
        #. Explicit imports, no longer needed
        #. Depends on latest setuptools 18.0.1
        #. NotImplementedError will be raised if parameters to core functions are not supported, e.g. get_sheet(cannot_find_me_option="will be thrown out as NotImplementedError")
        
        0.2.1 - 23.04.2016
        --------------------------------------------------------------------------------
        
        Added:
        ********************************************************************************
        
        #. add pyexcel-text file types as attributes of pyexcel.Sheet and pyexcel.Book, related to `issue 31 <https://github.com/pyexcel/pyexcel/issues/31>`__
        #. auto import pyexcel-text if it is pip installed
        
        Updated:
        ********************************************************************************
        
        #. code refactoring done for easy addition of sources.
        #. bug fix `issue 29 <https://github.com/pyexcel/pyexcel/issues/29>`__, Even if the format is a string it is displayed as a float
        #. pyexcel-text is no longer a plugin to pyexcel-io but to pyexcel.sources, see `pyexcel-text issue #22 <https://github.com/pyexcel/pyexcel-text/issues/22>`__
        
        Removed:
        ********************************************************************************
        #. pyexcel.presentation is removed. No longer the internal decorate @outsource is used. related to `issue 31 <https://github.com/pyexcel/pyexcel/issues/31>`_
        
        
        0.2.0 - 17.01.2016
        --------------------------------------------------------------------------------
        
        Updated
        ********************************************************************************
        
        #. adopt pyexcel-io yield key word to return generator as content
        #. pyexcel.save_as and pyexcel.save_book_as get performance improvements
        
        
Keywords: excel,python,pyexcel,tsv,tsvzcsv,csvz,xls,xlsx,ods
Platform: UNKNOWN
Classifier: Topic :: Office/Business
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries
Classifier: Programming Language :: Python
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Developers
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: PyPy
