🤝 apply common templates from pyexcel mobans. https://github.com/moremoban/moban/pull/348
This commit is contained in:
parent
7f54170075
commit
093dee4da2
|
@ -0,0 +1,4 @@
|
|||
# These are supported funding model platforms
|
||||
|
||||
github: chfw
|
||||
patreon: chfw
|
|
@ -0,0 +1,10 @@
|
|||
With your PR, here is a check list:
|
||||
|
||||
- [ ] Has Test cases written
|
||||
- [ ] Has all code lines tested
|
||||
- [ ] Passes all Travis CI builds
|
||||
- [ ] Has fair amount of documentation if your change is complex
|
||||
- [ ] run 'make format' so as to confirm the pyexcel organisation's coding style
|
||||
- [ ] Please update CHANGELOG.rst
|
||||
- [ ] Please add yourself to CONTRIBUTORS.rst
|
||||
- [ ] Agree on NEW BSD License for your contribution
|
|
@ -25,6 +25,8 @@ parts/
|
|||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
pip-wheel-metadata/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
@ -43,6 +45,7 @@ pip-delete-this-directory.txt
|
|||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
|
@ -77,9 +80,20 @@ target/
|
|||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don’t work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule
|
||||
|
||||
|
@ -107,6 +121,11 @@ venv.bak/
|
|||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# VirtualEnv rules
|
||||
# Virtualenv
|
||||
|
@ -238,6 +257,10 @@ flycheck_*.el
|
|||
# directory configuration
|
||||
.dir-locals.el
|
||||
|
||||
# network security
|
||||
/network-security.data
|
||||
|
||||
|
||||
# Vim rules
|
||||
# Swap
|
||||
[._]*.s[a-v][a-z]
|
||||
|
@ -268,6 +291,9 @@ tags
|
|||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
|
@ -281,6 +307,14 @@ tags
|
|||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
|
@ -311,6 +345,9 @@ fabric.properties
|
|||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
# SublimeText rules
|
||||
# Cache files for Sublime Text
|
||||
*.tmlanguage.cache
|
||||
|
@ -390,7 +427,6 @@ DerivedData/
|
|||
!default.perspectivev3
|
||||
|
||||
# Eclipse rules
|
||||
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
{%extends 'README.rst.jj2' %}
|
||||
|
||||
{%block documentation_link%}
|
||||
{%endblock%}
|
||||
|
||||
{%block description%}
|
||||
**pyexcel-ods** is a tiny wrapper library to read, manipulate and write data in
|
||||
ods format using python 2.6 and python 2.7. You are likely to use it with
|
||||
`pyexcel <https://github.com/pyexcel/pyexcel>`_.
|
||||
`pyexcel-ods3 <https://github.com/pyexcel/pyexcel-ods3>`_ is a sister library that
|
||||
depends on ezodf and lxml. `pyexcel-odsr <https://github.com/pyexcel/pyexcel-odsr>`_
|
||||
is the other sister library that has no external dependency but do ods reading only
|
||||
{%endblock%}
|
||||
|
||||
{% block pagination_note%}
|
||||
Special notice 30/01/2017: due to the constraints of the underlying 3rd party
|
||||
library, it will read the whole file before returning the paginated data. So
|
||||
at the end of day, the only benefit is less data returned from the reading
|
||||
function. No major performance improvement will be seen.
|
||||
|
||||
With that said, please install `pyexcel-odsr <https://github.com/pyexcel/pyexcel-odsr>`_
|
||||
and it gives better performance in pagination.
|
||||
{%endblock%}
|
||||
|
||||
{%block extras %}
|
||||
Credits
|
||||
================================================================================
|
||||
|
||||
ODSReader is originally written by `Marco Conti <https://github.com/marcoconti83/read-ods-with-odfpy>`_
|
||||
{%endblock%}
|
|
@ -1,7 +0,0 @@
|
|||
{% extends 'setup.py.jj2' %}
|
||||
|
||||
{%block platform_block%}
|
||||
{%endblock%}
|
||||
|
||||
{%block compat_block%}
|
||||
{%endblock%}
|
23
.moban.yml
23
.moban.yml
|
@ -1,33 +1,16 @@
|
|||
requires:
|
||||
- type: git
|
||||
url: https://github.com/moremoban/pypi-mobans
|
||||
submodule: true
|
||||
- https://github.com/pyexcel/pyexcel-mobans
|
||||
overrides: "git://github.com/pyexcel/pyexcel-mobans!/mobanfile.yaml"
|
||||
configuration:
|
||||
configuration_dir: "pyexcel-mobans:config"
|
||||
template_dir:
|
||||
- "pyexcel-mobans:templates"
|
||||
- "pypi-mobans:templates"
|
||||
- ".moban.d"
|
||||
configuration: pyexcel-ods.yml
|
||||
targets:
|
||||
- README.rst: README.rst
|
||||
- setup.py: setup.py
|
||||
- README.rst: custom_README.rst.jj2
|
||||
- setup.py: custom_setup.py.jj2
|
||||
- "docs/source/conf.py": "docs/source/conf.py.jj2"
|
||||
- .travis.yml: travis.yml
|
||||
- .gitignore: gitignore.jj2
|
||||
- requirements.txt: requirements.txt
|
||||
- LICENSE: NEW_BSD_LICENSE.jj2
|
||||
- MANIFEST.in: MANIFEST.in.jj2
|
||||
- "tests/requirements.txt": "tests/requirements.txt"
|
||||
- test.sh: test.script.jj2
|
||||
- test.bat: test.script.jj2
|
||||
- "tests/test_filter.py": "tests/test_filter.py.jj2"
|
||||
- "tests/test_formatters.py": "tests/test_formatters.py"
|
||||
- "tests/test_stringio.py": "tests/test_stringio.py.jj2"
|
||||
- "tests/test_writer.py": "tests/test_writer.py.jj2"
|
||||
- "tests/base.py": "tests/base.py.jj2"
|
||||
- output: CHANGELOG.rst
|
||||
configuration: changelog.yml
|
||||
template: CHANGELOG.rst.jj2
|
||||
- lint.sh: lint.script.jj2
|
||||
|
|
46
.travis.yml
46
.travis.yml
|
@ -1,49 +1,11 @@
|
|||
sudo: false
|
||||
dist: xenial
|
||||
language: python
|
||||
notifications:
|
||||
email: false
|
||||
{% extends "travis.yml.jj2" %}
|
||||
|
||||
{%block custom_python_versions%}
|
||||
python:
|
||||
- 3.8-dev
|
||||
- 3.7
|
||||
- 3.6
|
||||
- 3.5
|
||||
- 2.7
|
||||
{%endblock%}
|
||||
|
||||
stages:
|
||||
- test
|
||||
- lint
|
||||
|
||||
.disable_global: &disable_global
|
||||
before_install: false
|
||||
install: true
|
||||
before_script: false
|
||||
after_success: false
|
||||
after_failure: false
|
||||
|
||||
.lint: &lint
|
||||
<<: *disable_global
|
||||
python: 3.6
|
||||
stage: lint
|
||||
install: pip install flake8
|
||||
script: make lint
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- *lint
|
||||
|
||||
stage: test
|
||||
|
||||
script: make test
|
||||
|
||||
before_install:
|
||||
- if [[ -f min_requirements.txt && "$MINREQ" -eq 1 ]]; then
|
||||
mv min_requirements.txt requirements.txt ;
|
||||
fi
|
||||
- test ! -f rnd_requirements.txt || pip install --no-deps -r rnd_requirements.txt
|
||||
- test ! -f rnd_requirements.txt || pip install -r rnd_requirements.txt ;
|
||||
- pip install -r tests/requirements.txt
|
||||
script:
|
||||
- make test
|
||||
after_success:
|
||||
codecov
|
||||
|
|
|
@ -4,8 +4,7 @@ Change log
|
|||
0.5.6 - 19.03.2019
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**added**
|
||||
|
||||
#. `#32 <https://github.com/pyexcel/pyexcel-ods/issues/32>`_, fix odfpy pinning
|
||||
#. `#33 <https://github.com/pyexcel/pyexcel-ods/issues/33>`_, fix
|
||||
|
@ -14,16 +13,14 @@ added
|
|||
0.5.5 - 16.03.2019
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**added**
|
||||
|
||||
#. `#32 <https://github.com/pyexcel/pyexcel-ods/issues/32>`_, fix odfpy pinning
|
||||
|
||||
0.5.4 - 27.11.2018
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**added**
|
||||
|
||||
#. `#30 <https://github.com/pyexcel/pyexcel-ods/issues/30>`_, long type will not
|
||||
be written in ods. please use string type. And if the integer is equal or
|
||||
|
@ -33,8 +30,7 @@ added
|
|||
0.5.3 - unreleased
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**added**
|
||||
|
||||
#. `#24 <https://github.com/pyexcel/pyexcel-ods/issues/24>`_, ignore
|
||||
comments(<office:comment>) in cell
|
||||
|
@ -45,8 +41,7 @@ added
|
|||
0.5.2 - 23.10.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**updated**
|
||||
|
||||
#. pyexcel `pyexcel#105 <https://github.com/pyexcel/pyexcel/issues/105>`_,
|
||||
remove gease from setup_requires, introduced by 0.5.1.
|
||||
|
@ -55,8 +50,7 @@ updated
|
|||
0.5.1 - 20.10.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**added**
|
||||
|
||||
#. `pyexcel#103 <https://github.com/pyexcel/pyexcel/issues/103>`_, include
|
||||
LICENSE file in MANIFEST.in, meaning LICENSE file will appear in the released
|
||||
|
@ -65,22 +59,19 @@ added
|
|||
0.5.0 - 30.08.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. put dependency on pyexcel-io 0.5.0, which uses cStringIO instead of StringIO.
|
||||
Hence, there will be performance boost in handling files in memory.
|
||||
|
||||
Relocated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Relocated**
|
||||
|
||||
#. All ods type conversion code lives in pyexcel_io.service module
|
||||
|
||||
0.4.1 - 25.08.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. `pyexcel#23 <https://github.com/pyexcel/pyexcel/issues/23>`_, handle
|
||||
unseekable stream given by http response
|
||||
|
@ -90,8 +81,7 @@ Updated
|
|||
0.4.0 - 19.06.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. `pyexcel#14 <https://github.com/pyexcel/pyexcel/issues/14>`_, close file
|
||||
handle
|
||||
|
@ -101,8 +91,7 @@ Updated
|
|||
0.3.3 - 07.05.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. issue `pyexcel#19 <https://github.com/pyexcel/pyexcel/issues/19>`_, not all
|
||||
texts in a multi-node cell were extracted.
|
||||
|
@ -110,8 +99,7 @@ Updated
|
|||
0.3.2 - 13.04.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. issue `pyexcel#17 <https://github.com/pyexcel/pyexcel/issues/17>`_, empty new
|
||||
line is ignored
|
||||
|
@ -121,24 +109,21 @@ Updated
|
|||
0.3.1 - 02.02.2017
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Added**
|
||||
|
||||
#. Recognize currency type
|
||||
|
||||
0.3.0 - 22.12.2016
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Code refactoring with pyexcel-io v 0.3.0
|
||||
|
||||
0.2.2 - 24.10.2016
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. issue `pyexcel#14 <https://github.com/pyexcel/pyexcel/issues/14>`_, index
|
||||
error when reading a ods file that has non-uniform columns repeated property.
|
||||
|
@ -146,8 +131,7 @@ Updated
|
|||
0.2.1 - 31.08.2016
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Added**
|
||||
|
||||
#. support pagination. two pairs: start_row, row_limit and start_column,
|
||||
column_limit help you deal with large files.
|
||||
|
@ -156,24 +140,21 @@ Added
|
|||
0.2.0 - 01.06.2016
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Added**
|
||||
|
||||
#. By default, `float` will be converted to `int` where fits. `auto_detect_int`,
|
||||
a flag to switch off the autoatic conversion from `float` to `int`.
|
||||
#. 'library=pyexcel-ods' was added so as to inform pyexcel to use it instead of
|
||||
other libraries, in the situation where multiple plugins were installed.
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. support the auto-import feature of pyexcel-io 0.2.0
|
||||
|
||||
0.1.1 - 30.01.2016
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Added**
|
||||
|
||||
#. 'streaming' is an extra option given to get_data. Only when 'streaming' is
|
||||
explicitly set to True, the data will be consisted of generators, hence will
|
||||
|
@ -182,64 +163,56 @@ Added
|
|||
#. support multi-line text cell #5
|
||||
#. feature migration from pyexcel-ods3 pyexcel/pyexcel-ods3#5
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. compatibility with pyexcel-io 0.1.1
|
||||
|
||||
0.0.12 - 10.10.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Bug fix: excessive trailing columns with empty values
|
||||
|
||||
0.0.11 - 26.09.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Complete fix for libreoffice datetime field
|
||||
|
||||
0.0.10 - 15.09.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Bug fix: date field could have datetime from libreoffice
|
||||
|
||||
0.0.9 - 21.08.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Bug fix: utf-8 string throw unicode exceptions
|
||||
|
||||
0.0.8 - 28.06.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Pin dependency odfpy 0.9.6 to avoid buggy odfpy 1.3.0
|
||||
|
||||
0.0.7 - 28.05.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. Bug fix: "number-columns-repeated" is now respected
|
||||
|
||||
0.0.6 - 21.05.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. get_data and save_data are seen across pyexcel-* extensions. remember them
|
||||
once and use them across all extensions.
|
||||
|
@ -247,8 +220,7 @@ Updated
|
|||
0.0.5 - 22.02.2015
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Added
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Added**
|
||||
|
||||
#. Loads only one sheet from a multiple sheet book
|
||||
#. Use New BSD License
|
||||
|
@ -256,8 +228,7 @@ Added
|
|||
0.0.4 - 14.12.2014
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. IO interface update as pyexcel-io introduced keywords.
|
||||
#. initial release
|
||||
|
@ -265,8 +236,7 @@ Updated
|
|||
0.0.3 - 08.12.2014
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**Updated**
|
||||
|
||||
#. IO interface update as pyexcel-io introduced keywords.
|
||||
#. initial release
|
||||
|
|
29
README.rst
29
README.rst
|
@ -3,10 +3,7 @@ pyexcel-ods - Let you focus on data, instead of ods format
|
|||
================================================================================
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/pyexcel/pyexcel.github.io/master/images/patreon.png
|
||||
:target: https://www.patreon.com/pyexcel
|
||||
|
||||
.. image:: https://api.bountysource.com/badge/team?team_id=288537
|
||||
:target: https://salt.bountysource.com/teams/chfw-pyexcel
|
||||
:target: https://www.patreon.com/chfw
|
||||
|
||||
.. image:: https://travis-ci.org/pyexcel/pyexcel-ods.svg?branch=master
|
||||
:target: http://travis-ci.org/pyexcel/pyexcel-ods
|
||||
|
@ -14,6 +11,14 @@ pyexcel-ods - Let you focus on data, instead of ods format
|
|||
.. image:: https://codecov.io/gh/pyexcel/pyexcel-ods/branch/master/graph/badge.svg
|
||||
:target: https://codecov.io/gh/pyexcel/pyexcel-ods
|
||||
|
||||
.. image:: https://badge.fury.io/py/pyexcel-ods.svg
|
||||
:target: https://pypi.org/project/pyexcel-ods
|
||||
|
||||
|
||||
.. image:: https://pepy.tech/badge/pyexcel-ods/month
|
||||
:target: https://pepy.tech/project/pyexcel-ods/month
|
||||
|
||||
|
||||
.. image:: https://img.shields.io/gitter/room/gitterHQ/gitter.svg
|
||||
:target: https://gitter.im/pyexcel/Lobby
|
||||
|
||||
|
@ -53,7 +58,7 @@ Support the project
|
|||
================================================================================
|
||||
|
||||
If your company has embedded pyexcel and its components into a revenue generating
|
||||
product, please support me on `patreon <https://www.patreon.com/bePatron?u=5537627>`_
|
||||
product, please support me on `github <https://github.com/sponsors/chfw>`_, `patreon <https://www.patreon.com/bePatron?u=5537627>`_
|
||||
or `bounty source <https://salt.bountysource.com/teams/chfw-pyexcel>`_ to maintain
|
||||
the project and develop it further.
|
||||
|
||||
|
@ -354,8 +359,6 @@ How to update test environment and update documentation
|
|||
Additional steps are required:
|
||||
|
||||
#. pip install moban
|
||||
#. git clone https://github.com/moremoban/setupmobans.git # generic setup
|
||||
#. git clone https://github.com/pyexcel/pyexcel-commons.git commons
|
||||
#. make your changes in `.moban.d` directory, then issue command `moban`
|
||||
|
||||
What is pyexcel-commons
|
||||
|
@ -368,18 +371,6 @@ What is .moban.d
|
|||
|
||||
`.moban.d` stores the specific meta data for the library.
|
||||
|
||||
Acceptance criteria
|
||||
-------------------
|
||||
|
||||
#. Has Test cases written
|
||||
#. Has all code lines tested
|
||||
#. Passes all Travis CI builds
|
||||
#. Has fair amount of documentation if your change is complex
|
||||
#. run 'make format' so as to confirm the pyexcel organisation's coding style
|
||||
#. Please update CHANGELOG.rst
|
||||
#. Please add yourself to CONTRIBUTORS.rst
|
||||
#. Agree on NEW BSD License for your contribution
|
||||
|
||||
Credits
|
||||
================================================================================
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ DESCRIPTION = (
|
|||
#
|
||||
# This file only contains a selection of the most common options. For a full
|
||||
# list see the documentation:
|
||||
# http://www.sphinx-doc.org/en/master/config
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
||||
|
@ -21,9 +21,9 @@ DESCRIPTION = (
|
|||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'pyexcel'
|
||||
copyright = 'copyright 2015-2019 Onni Software Ltd.'
|
||||
author = 'Onni Software Ltd.'
|
||||
project = 'pyexcel-ods'
|
||||
copyright = '2015-2019 Onni Software Ltd.'
|
||||
author = 'C.W.'
|
||||
# The short X.Y version
|
||||
version = '0.5.6'
|
||||
# The full version, including alpha/beta/rc tags
|
||||
|
@ -68,7 +68,7 @@ html_static_path = ['_static']
|
|||
# -- Options for intersphinx extension ---------------------------------------
|
||||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {'https://docs.python.org/': None}
|
||||
intersphinx_mapping = {'https://docs.python.org/3/': None}
|
||||
# TODO: html_theme not configurable upstream
|
||||
html_theme = 'default'
|
||||
|
||||
|
@ -83,3 +83,4 @@ texinfo_documents = [
|
|||
intersphinx_mapping.update({
|
||||
'pyexcel': ('http://pyexcel.readthedocs.io/en/latest/', None),
|
||||
})
|
||||
master_doc = "index"
|
||||
|
|
3
lint.sh
3
lint.sh
|
@ -1 +1,2 @@
|
|||
flake8 . --exclude=.moban.d,docs --builtins=unicode,xrange,long
|
||||
pip install flake8
|
||||
flake8 . --exclude=.moban.d,docs,setup.py --builtins=unicode,xrange,long
|
102
setup.py
102
setup.py
|
@ -1,14 +1,14 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
# Template by pypi-mobans
|
||||
import codecs
|
||||
import locale
|
||||
# Template by pypi-mobans
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
from shutil import rmtree
|
||||
|
||||
from setuptools import Command, find_packages, setup
|
||||
from setuptools import Command, setup, find_packages
|
||||
|
||||
# Work around mbcs bug in distutils.
|
||||
# http://bugs.python.org/issue10945
|
||||
|
@ -18,55 +18,59 @@ from setuptools import Command, find_packages, setup
|
|||
try:
|
||||
lc = locale.getlocale()
|
||||
pf = platform.system()
|
||||
if pf != 'Windows' and lc == (None, None):
|
||||
locale.setlocale(locale.LC_ALL, 'C.UTF-8')
|
||||
if pf != "Windows" and lc == (None, None):
|
||||
locale.setlocale(locale.LC_ALL, "C.UTF-8")
|
||||
except (ValueError, UnicodeError, locale.Error):
|
||||
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
|
||||
locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
|
||||
|
||||
NAME = 'pyexcel-ods'
|
||||
AUTHOR = 'C.W.'
|
||||
VERSION = '0.5.6'
|
||||
EMAIL = 'wangc_2011@hotmail.com'
|
||||
LICENSE = 'New BSD'
|
||||
NAME = "pyexcel-ods"
|
||||
AUTHOR = "C.W."
|
||||
VERSION = "0.5.6"
|
||||
EMAIL = "info@pyexcel.org"
|
||||
LICENSE = "New BSD"
|
||||
DESCRIPTION = (
|
||||
'A wrapper library to read, manipulate and write data in ods format'
|
||||
"A wrapper library to read, manipulate and write data in ods format"
|
||||
)
|
||||
URL = 'https://github.com/pyexcel/pyexcel-ods'
|
||||
DOWNLOAD_URL = '%s/archive/0.5.6.tar.gz' % URL
|
||||
FILES = ['README.rst', 'CHANGELOG.rst']
|
||||
URL = "https://github.com/pyexcel/pyexcel-ods"
|
||||
DOWNLOAD_URL = "%s/archive/0.5.6.tar.gz" % URL
|
||||
FILES = ["README.rst", "CHANGELOG.rst"]
|
||||
KEYWORDS = [
|
||||
'python',
|
||||
"python",
|
||||
]
|
||||
|
||||
CLASSIFIERS = [
|
||||
'Topic :: Software Development :: Libraries',
|
||||
'Programming Language :: Python',
|
||||
'Intended Audience :: Developers',
|
||||
'Programming Language :: Python :: 2.6',
|
||||
'Programming Language :: Python :: 2.7',
|
||||
'Programming Language :: Python :: 3.3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
"Topic :: Software Development :: Libraries",
|
||||
"Programming Language :: Python",
|
||||
"Intended Audience :: Developers",
|
||||
"Programming Language :: Python :: 2.6",
|
||||
"Programming Language :: Python :: 2.7",
|
||||
"Programming Language :: Python :: 3.3",
|
||||
"Programming Language :: Python :: 3.4",
|
||||
"Programming Language :: Python :: 3.5",
|
||||
"Programming Language :: Python :: 3.6",
|
||||
|
||||
"Programming Language :: Python :: 3.7",
|
||||
|
||||
"Programming Language :: Python :: 3.8",
|
||||
|
||||
]
|
||||
|
||||
INSTALL_REQUIRES = [
|
||||
'pyexcel-io>=0.5.16',
|
||||
'odfpy>=1.3.5',
|
||||
"pyexcel-io>=0.5.16",
|
||||
"odfpy>=1.3.5",
|
||||
]
|
||||
SETUP_COMMANDS = {}
|
||||
|
||||
|
||||
PACKAGES = find_packages(exclude=['ez_setup', 'examples', 'tests'])
|
||||
PACKAGES = find_packages(exclude=["ez_setup", "examples", "tests"])
|
||||
EXTRAS_REQUIRE = {
|
||||
}
|
||||
# You do not need to read beyond this line
|
||||
PUBLISH_COMMAND = '{0} setup.py sdist bdist_wheel upload -r pypi'.format(
|
||||
sys.executable)
|
||||
GS_COMMAND = ('gs pyexcel-ods v0.5.6 ' +
|
||||
PUBLISH_COMMAND = "{0} setup.py sdist bdist_wheel upload -r pypi".format(sys.executable)
|
||||
GS_COMMAND = ("gs pyexcel-ods v0.5.6 " +
|
||||
"Find 0.5.6 in changelog for more details")
|
||||
NO_GS_MESSAGE = ('Automatic github release is disabled. ' +
|
||||
'Please install gease to enable it.')
|
||||
NO_GS_MESSAGE = ("Automatic github release is disabled. " +
|
||||
"Please install gease to enable it.")
|
||||
UPLOAD_FAILED_MSG = (
|
||||
'Upload failed. please run "%s" yourself.' % PUBLISH_COMMAND)
|
||||
HERE = os.path.abspath(os.path.dirname(__file__))
|
||||
|
@ -75,13 +79,13 @@ HERE = os.path.abspath(os.path.dirname(__file__))
|
|||
class PublishCommand(Command):
|
||||
"""Support setup.py upload."""
|
||||
|
||||
description = 'Build and publish the package on github and pypi'
|
||||
description = "Build and publish the package on github and pypi"
|
||||
user_options = []
|
||||
|
||||
@staticmethod
|
||||
def status(s):
|
||||
"""Prints things in bold."""
|
||||
print('\033[1m{0}\033[0m'.format(s))
|
||||
print("\033[1m{0}\033[0m".format(s))
|
||||
|
||||
def initialize_options(self):
|
||||
pass
|
||||
|
@ -91,14 +95,14 @@ class PublishCommand(Command):
|
|||
|
||||
def run(self):
|
||||
try:
|
||||
self.status('Removing previous builds...')
|
||||
rmtree(os.path.join(HERE, 'dist'))
|
||||
rmtree(os.path.join(HERE, 'build'))
|
||||
rmtree(os.path.join(HERE, 'pyexcel_ods.egg-info'))
|
||||
self.status("Removing previous builds...")
|
||||
rmtree(os.path.join(HERE, "dist"))
|
||||
rmtree(os.path.join(HERE, "build"))
|
||||
rmtree(os.path.join(HERE, "pyexcel_ods.egg-info"))
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
self.status('Building Source and Wheel (universal) distribution...')
|
||||
self.status("Building Source and Wheel (universal) distribution...")
|
||||
run_status = True
|
||||
if has_gease():
|
||||
run_status = os.system(GS_COMMAND) == 0
|
||||
|
@ -106,13 +110,13 @@ class PublishCommand(Command):
|
|||
self.status(NO_GS_MESSAGE)
|
||||
if run_status:
|
||||
if os.system(PUBLISH_COMMAND) != 0:
|
||||
self.status(UPLOAD_FAILED_MSG % PUBLISH_COMMAND)
|
||||
self.status(UPLOAD_FAILED_MSG)
|
||||
|
||||
sys.exit()
|
||||
|
||||
|
||||
SETUP_COMMANDS.update({
|
||||
'publish': PublishCommand
|
||||
"publish": PublishCommand
|
||||
})
|
||||
|
||||
|
||||
|
@ -141,7 +145,7 @@ def read_files(*files):
|
|||
def read(afile):
|
||||
"""Read a file into setup"""
|
||||
the_relative_file = os.path.join(HERE, afile)
|
||||
with codecs.open(the_relative_file, 'r', 'utf-8') as opened_file:
|
||||
with codecs.open(the_relative_file, "r", "utf-8") as opened_file:
|
||||
content = filter_out_test_code(opened_file)
|
||||
content = "".join(list(content))
|
||||
return content
|
||||
|
@ -150,11 +154,11 @@ def read(afile):
|
|||
def filter_out_test_code(file_handle):
|
||||
found_test_code = False
|
||||
for line in file_handle.readlines():
|
||||
if line.startswith('.. testcode:'):
|
||||
if line.startswith(".. testcode:"):
|
||||
found_test_code = True
|
||||
continue
|
||||
if found_test_code is True:
|
||||
if line.startswith(' '):
|
||||
if line.startswith(" "):
|
||||
continue
|
||||
else:
|
||||
empty_line = line.strip()
|
||||
|
@ -164,14 +168,14 @@ def filter_out_test_code(file_handle):
|
|||
found_test_code = False
|
||||
yield line
|
||||
else:
|
||||
for keyword in ['|version|', '|today|']:
|
||||
for keyword in ["|version|", "|today|"]:
|
||||
if keyword in line:
|
||||
break
|
||||
else:
|
||||
yield line
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
setup(
|
||||
test_suite="tests",
|
||||
name=NAME,
|
||||
|
@ -185,7 +189,7 @@ if __name__ == '__main__':
|
|||
license=LICENSE,
|
||||
keywords=KEYWORDS,
|
||||
extras_require=EXTRAS_REQUIRE,
|
||||
tests_require=['nose'],
|
||||
tests_require=["nose"],
|
||||
install_requires=INSTALL_REQUIRES,
|
||||
packages=PACKAGES,
|
||||
include_package_data=True,
|
||||
|
|
1
test.sh
1
test.sh
|
@ -1,2 +1,3 @@
|
|||
#/bin/bash
|
||||
pip freeze
|
||||
nosetests --with-coverage --cover-package pyexcel_ods --cover-package tests tests --with-doctest --doctest-extension=.rst README.rst docs/source pyexcel_ods
|
||||
|
|
|
@ -2,6 +2,7 @@ import os
|
|||
from textwrap import dedent
|
||||
|
||||
import pyexcel as pe
|
||||
|
||||
from nose.tools import eq_
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue