commit
9b6579540b
|
@ -12,4 +12,3 @@ def setup(app):
|
|||
|
||||
|
||||
{%endblock%}
|
||||
|
||||
|
|
|
@ -6,4 +6,3 @@
|
|||
{%block pyexcel_extra_classifiers%}
|
||||
'Programming Language :: Python :: Implementation :: PyPy'
|
||||
{%endblock%}}
|
||||
|
||||
|
|
|
@ -3,4 +3,7 @@
|
|||
SQLAlchemy
|
||||
pyexcel>=0.2.0
|
||||
pyexcel-xls>=0.1.0
|
||||
moban
|
||||
black;python_version>="3.6"
|
||||
isort;python_version>="3.6"
|
||||
{%endblock%}
|
||||
|
|
14
.moban.yml
14
.moban.yml
|
@ -1,18 +1,22 @@
|
|||
requires:
|
||||
- type: git
|
||||
url: https://github.com/moremoban/pypi-mobans
|
||||
submodule: true
|
||||
- https://github.com/pyexcel/pyexcel-mobans
|
||||
configuration:
|
||||
configuration_dir: "commons/config"
|
||||
configuration_dir: "pyexcel-mobans:config"
|
||||
template_dir:
|
||||
- "commons/templates"
|
||||
- "setupmobans/templates"
|
||||
- "pyexcel-mobans:templates"
|
||||
- "pypi-mobans:templates"
|
||||
- ".moban.d"
|
||||
configuration: pyexcel-io.yml
|
||||
targets:
|
||||
- "docs/source/conf.py": "docs/source/conf.py"
|
||||
- "docs/source/conf.py": "docs/conf.py_t"
|
||||
- setup.py: setup.py
|
||||
- .travis.yml: travis.yml.jj2
|
||||
- requirements.txt: requirements.txt.jj2
|
||||
- "tests/requirements.txt": "tests/requirements.txt"
|
||||
- LICENSE: NEW_BSD_LICENSE.jj2
|
||||
- MANIFEST.in: MANIFEST.in.jj2
|
||||
- test.sh: test.script.jj2
|
||||
- test.bat: test.script.jj2
|
||||
- README.rst: README.rst
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
Change log
|
||||
================================================================================
|
||||
|
||||
0.5.10 - 3.12.2018
|
||||
0.5.12 - 9.02.2019
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
updated
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
#. `#60 <https://github.com/pyexcel/pyexcel-io/issues/60>`_: include tests in
|
||||
tar ball
|
||||
#. `#61 <https://github.com/pyexcel/pyexcel-io/issues/61>`_: enable python
|
||||
setup.py test
|
||||
|
||||
0.5.11 - 3.12.2018
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
updated
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2015-2018 by Onni Software Ltd. and its contributors
|
||||
Copyright (c) by Onni Software Ltd. and its contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms of the software as well
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
include README.rst
|
||||
include LICENSE
|
||||
include CHANGELOG.rst
|
||||
recursive-include tests *
|
||||
include docs/source/*
|
||||
include Makefile
|
||||
include test.sh
|
||||
|
|
5
Makefile
5
Makefile
|
@ -6,3 +6,8 @@ test:
|
|||
document:
|
||||
sphinx-autogen -o docs/source/generated/ docs/source/*.rst
|
||||
sphinx-build -b html docs/source/ docs/build/
|
||||
|
||||
format:
|
||||
isort -y $(find pyexcel_io -name "*.py"|xargs echo) $(find tests -name "*.py"|xargs echo)
|
||||
black -l 79 pyexcel_io
|
||||
black -l 79 tests
|
||||
|
|
|
@ -211,6 +211,7 @@ Acceptance criteria
|
|||
#. 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
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
name: pyexcel-io
|
||||
organisation: pyexcel
|
||||
releases:
|
||||
- changes:
|
||||
- action: updated
|
||||
details:
|
||||
- '`#60`: include tests in tar ball'
|
||||
- '`#61`: enable python setup.py test'
|
||||
version: 0.5.12
|
||||
date: 9.02.2019
|
||||
- changes:
|
||||
- action: updated
|
||||
details:
|
||||
- '`#59`: Please use scan_plugins_regex, which lml 0.7 complains about'
|
||||
version: 0.5.10
|
||||
version: 0.5.11
|
||||
date: 3.12.2018
|
||||
- changes:
|
||||
- action: added
|
||||
|
|
|
@ -1,15 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
DESCRIPTION = (
|
||||
'A python library to read and write structured data in csv, zipped csv ' +
|
||||
'format and to/from databases' +
|
||||
''
|
||||
)
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file does only contain a selection of the most common options. For a
|
||||
# full list see the documentation:
|
||||
# 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
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
@ -24,35 +16,31 @@ DESCRIPTION = (
|
|||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = u'pyexcel-io'
|
||||
copyright = u'2015-2018 Onni Software Ltd.'
|
||||
author = u'C.W.'
|
||||
project = 'pyexcel-io'
|
||||
copyright = 'copyright 2015-2019 Onni Software Ltd.'
|
||||
author = 'C.W.'
|
||||
|
||||
# The short X.Y version
|
||||
version = u'0.5.11'
|
||||
version = '0.5.12'
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = u'0.5.11'
|
||||
release = '0.5.12'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#
|
||||
# needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.viewcode',]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
templates_path = ['templates']
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
# source_suffix = ['.rst', '.md']
|
||||
source_suffix = '.rst'
|
||||
source_suffix = ''
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
@ -69,9 +57,6 @@ language = 'en'
|
|||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = []
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = None
|
||||
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
|
||||
|
@ -89,7 +74,7 @@ html_theme = 'alabaster'
|
|||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
html_static_path = ['static']
|
||||
|
||||
# Custom sidebar templates, must be a dictionary that maps document names
|
||||
# to template names.
|
||||
|
@ -102,63 +87,6 @@ html_static_path = ['_static']
|
|||
# html_sidebars = {}
|
||||
|
||||
|
||||
# -- Options for HTMLHelp output ---------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'pyexcel-iodoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#
|
||||
# 'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#
|
||||
# 'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#
|
||||
# 'preamble': '',
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#
|
||||
# 'figure_align': 'htbp',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, 'pyexcel-io.tex', u'pyexcel-io Documentation',
|
||||
u'Onni Software Ltd.', 'manual'),
|
||||
]
|
||||
|
||||
|
||||
# -- Options for manual page output ------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
(master_doc, 'pyexcel-io', u'pyexcel-io Documentation',
|
||||
[author], 1)
|
||||
]
|
||||
|
||||
|
||||
# -- Options for Texinfo output ----------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
(master_doc, 'pyexcel-io', u'pyexcel-io Documentation',
|
||||
author, 'pyexcel-io', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
|
||||
# -- Options for Epub output -------------------------------------------------
|
||||
|
||||
# Bibliographic Dublin Core info.
|
||||
|
@ -181,23 +109,3 @@ epub_exclude_files = ['search.html']
|
|||
|
||||
# Example configuration for intersphinx: refer to the Python standard library.
|
||||
intersphinx_mapping = {'https://docs.python.org/': None}
|
||||
# TODO: html_theme not configurable upstream
|
||||
html_theme = 'default'
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.add_stylesheet('theme_overrides.css')
|
||||
|
||||
|
||||
|
||||
# TODO: DESCRIPTION not configurable upstream
|
||||
texinfo_documents = [
|
||||
('index', 'pyexcel-io',
|
||||
'pyexcel-io Documentation',
|
||||
'Onni Software Ltd.', 'pyexcel-io',
|
||||
DESCRIPTION,
|
||||
'Miscellaneous'),
|
||||
]
|
||||
intersphinx_mapping.update({
|
||||
'pyexcel': ('http://pyexcel.readthedocs.io/en/latest/', None),
|
||||
})
|
||||
|
|
|
@ -138,8 +138,7 @@ get_data(.., library='pyexcel-ods')
|
|||
============= ======= ======== ======= ======== ======== ========
|
||||
`pyexcel-io`_ `xls`_ `xlsx`_ `ods`_ `ods3`_ `odsr`_ `xlsxw`_
|
||||
============= ======= ======== ======= ======== ======== ========
|
||||
0.5.10+ 0.5.0+ 0.5.0+ 0.5.4 0.5.3 0.5.0+ 0.5.0+
|
||||
0.5.1+ 0.5.0+ 0.5.0+ 0.5.0+ 0.5.0+ 0.5.0+ 0.5.0+
|
||||
0.5.1 0.5.0 0.5.0 0.5.0 0.5.0 0.5.0 0.5.0
|
||||
0.4.x 0.4.x 0.4.x 0.4.x 0.4.x 0.4.x 0.4.x
|
||||
0.3.0+ 0.3.0+ 0.3.0 0.3.0+ 0.3.0+ 0.3.0 0.3.0
|
||||
0.2.2+ 0.2.2+ 0.2.2+ 0.2.1+ 0.2.1+ 0.0.1
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
overrides: "pyexcel.yaml"
|
||||
name: "pyexcel-io"
|
||||
project: "pyexcel-io"
|
||||
name: pyexcel-io
|
||||
nick_name: io
|
||||
version: 0.5.11
|
||||
current_version: 0.5.11
|
||||
release: 0.5.11
|
||||
version: 0.5.12
|
||||
current_version: 0.5.12
|
||||
release: 0.5.12
|
||||
dependencies:
|
||||
- ordereddict;python_version<"2.7"
|
||||
- lml>=0.0.4
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
import pyexcel_io.manager as manager
|
||||
from pyexcel_io._compact import OrderedDict, isstream, PY2
|
||||
from pyexcel_io._compact import PY2, OrderedDict, isstream
|
||||
from .constants import MESSAGE_ERROR_03, MESSAGE_WRONG_IO_INSTANCE
|
||||
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
"""
|
||||
import logging
|
||||
|
||||
import pyexcel_io.constants as constants
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.sheet import SheetWriter
|
||||
from pyexcel_io.utils import is_empty_array, swap_empty_string_for_none
|
||||
import pyexcel_io.constants as constants
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
:copyright: (c) 2014-2017 by Onni Software Ltd.
|
||||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
import pyexcel_io.constants as constants
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.sheet import SheetWriter
|
||||
from pyexcel_io.utils import is_empty_array, swap_empty_string_for_none
|
||||
import pyexcel_io.constants as constants
|
||||
|
||||
|
||||
class PyexcelSQLSkipRowException(Exception):
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
:copyright: (c) 2014-2017 by Onni Software Ltd.
|
||||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
from types import GeneratorType
|
||||
import warnings
|
||||
from types import GeneratorType
|
||||
|
||||
from pyexcel_io._compact import isstream, PY2
|
||||
from pyexcel_io.plugins import READERS, WRITERS
|
||||
import pyexcel_io.constants as constants
|
||||
from pyexcel_io.plugins import READERS, WRITERS
|
||||
from pyexcel_io._compact import PY2, isstream
|
||||
|
||||
|
||||
def iget_data(afile, file_type=None, **keywords):
|
||||
|
@ -119,29 +119,13 @@ def save_data(afile, data, file_type=None, **keywords):
|
|||
if no_file_type:
|
||||
file_type = constants.FILE_FORMAT_CSV
|
||||
|
||||
store_data(
|
||||
afile,
|
||||
to_store,
|
||||
file_type=file_type,
|
||||
single_sheet_in_book=single_sheet_in_book,
|
||||
**keywords
|
||||
)
|
||||
|
||||
|
||||
def store_data(afile, data, file_type=None, **keywords):
|
||||
"""Non public function to store data to afile
|
||||
|
||||
:param filename: actual file name, a file stream or actual content
|
||||
:param data: the data to be written
|
||||
:param file_type: used only when filename is not a physial file name
|
||||
:param keywords: any other parameters
|
||||
"""
|
||||
if isstream(afile):
|
||||
keywords.update(dict(file_stream=afile, file_type=file_type))
|
||||
else:
|
||||
keywords.update(dict(file_name=afile, file_type=file_type))
|
||||
keywords['single_sheet_in_book'] = single_sheet_in_book
|
||||
with get_writer(**keywords) as writer:
|
||||
writer.write(data)
|
||||
writer.write(to_store)
|
||||
|
||||
|
||||
def load_data(
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
:copyright: (c) 2014-2017 by Onni Software Ltd.
|
||||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
from pyexcel_io._compact import StringIO, BytesIO
|
||||
|
||||
from pyexcel_io._compact import BytesIO, StringIO
|
||||
|
||||
MIME_TYPES = {}
|
||||
FILE_TYPES = ()
|
||||
|
|
|
@ -13,9 +13,8 @@ from lml.plugin import PluginInfoChain, PluginInfo
|
|||
|
||||
import pyexcel_io.utils as ioutils
|
||||
import pyexcel_io.manager as manager
|
||||
import pyexcel_io.exceptions as exceptions
|
||||
import pyexcel_io.constants as constants
|
||||
|
||||
import pyexcel_io.exceptions as exceptions
|
||||
|
||||
ERROR_MESSAGE_FORMATTER = "one of these plugins for %s data in '%s': %s"
|
||||
UPGRADE_MESSAGE = "Please upgrade the plugin '%s' according to \
|
||||
|
|
|
@ -7,18 +7,17 @@
|
|||
:copyright: (c) 2014-2017 by Onni Software Ltd.
|
||||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
import re
|
||||
import os
|
||||
import re
|
||||
import csv
|
||||
import glob
|
||||
import codecs
|
||||
|
||||
from pyexcel_io.book import BookReader
|
||||
from pyexcel_io.sheet import SheetReader, NamedContent
|
||||
import pyexcel_io.service as service
|
||||
import pyexcel_io._compact as compact
|
||||
import pyexcel_io.constants as constants
|
||||
import pyexcel_io.service as service
|
||||
|
||||
from pyexcel_io.book import BookReader
|
||||
from pyexcel_io.sheet import SheetReader, NamedContent
|
||||
|
||||
DEFAULT_SEPARATOR = "__"
|
||||
DEFAULT_SHEET_SEPARATOR_FORMATTER = "---%s---" % constants.DEFAULT_NAME + "%s"
|
||||
|
|
|
@ -9,11 +9,10 @@
|
|||
"""
|
||||
import zipfile
|
||||
|
||||
from pyexcel_io._compact import StringIO, PY2
|
||||
from pyexcel_io.book import BookReader
|
||||
from pyexcel_io._compact import PY2, StringIO
|
||||
from pyexcel_io.constants import FILE_FORMAT_CSVZ
|
||||
|
||||
from .csvr import CSVinMemoryReader, NamedContent
|
||||
from .csvr import NamedContent, CSVinMemoryReader
|
||||
|
||||
|
||||
class CSVZipBookReader(BookReader):
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
from pyexcel_io.constants import FILE_FORMAT_TSVZ, KEYWORD_TSV_DIALECT
|
||||
|
||||
from .csvz import CSVZipBookReader
|
||||
|
||||
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
:copyright: (c) 2014-2017 by Onni Software Ltd.
|
||||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
from pyexcel_io._compact import irange
|
||||
from pyexcel_io.utils import _index_filter
|
||||
import pyexcel_io.constants as constants
|
||||
from pyexcel_io.utils import _index_filter
|
||||
from pyexcel_io._compact import irange
|
||||
|
||||
|
||||
class NamedContent(object):
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
"""
|
||||
import pyexcel_io.constants as constants
|
||||
|
||||
|
||||
XLS_PLUGIN = "pyexcel-xls"
|
||||
XLSX_PLUGIN = "pyexcel-xlsx"
|
||||
ODS_PLUGIN = "pyexcel-ods"
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
import csv
|
||||
import codecs
|
||||
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.sheet import SheetWriter
|
||||
import pyexcel_io._compact as compact
|
||||
import pyexcel_io.constants as constants
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.sheet import SheetWriter
|
||||
|
||||
|
||||
class UnicodeWriter(object):
|
||||
|
|
|
@ -9,11 +9,10 @@
|
|||
"""
|
||||
import zipfile
|
||||
|
||||
from pyexcel_io._compact import StringIO, PY2
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.constants import DEFAULT_SHEET_NAME, FILE_FORMAT_CSVZ
|
||||
|
||||
from .csvw import CSVSheetWriter, UnicodeWriter
|
||||
from pyexcel_io._compact import PY2, StringIO
|
||||
from pyexcel_io.constants import FILE_FORMAT_CSVZ, DEFAULT_SHEET_NAME
|
||||
from .csvw import UnicodeWriter, CSVSheetWriter
|
||||
|
||||
|
||||
class CSVZipSheetWriter(CSVSheetWriter):
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
:license: New BSD License, see LICENSE for more details
|
||||
"""
|
||||
from pyexcel_io.constants import FILE_FORMAT_TSVZ, KEYWORD_TSV_DIALECT
|
||||
|
||||
from .csvz import CSVZipBookWriter
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.
|
||||
https://github.com/chfw/lml/archive/master.zip
|
||||
https://github.com/pyexcel/pyexcel/archive/master.zip
|
||||
https://github.com/pyexcel/pyexcel-xls/archive/master.zip
|
||||
https://github.com/pyexcel/pyexcel-xls/archive/dev.zip
|
||||
|
||||
|
|
25
setup.py
25
setup.py
|
@ -4,16 +4,32 @@
|
|||
import os
|
||||
import sys
|
||||
import codecs
|
||||
import locale
|
||||
import platform
|
||||
from shutil import rmtree
|
||||
|
||||
from setuptools import Command, setup, find_packages
|
||||
|
||||
PY2 = sys.version_info[0] == 2
|
||||
PY26 = PY2 and sys.version_info[1] < 7
|
||||
PY33 = sys.version_info < (3, 4)
|
||||
|
||||
# Work around mbcs bug in distutils.
|
||||
# http://bugs.python.org/issue10945
|
||||
# This work around is only if a project supports Python < 3.4
|
||||
|
||||
# Work around for locale not being set
|
||||
try:
|
||||
lc = locale.getlocale()
|
||||
pf = platform.system()
|
||||
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')
|
||||
|
||||
NAME = 'pyexcel-io'
|
||||
AUTHOR = 'C.W.'
|
||||
VERSION = '0.5.11'
|
||||
VERSION = '0.5.12'
|
||||
EMAIL = 'wangc_2011@hotmail.com'
|
||||
LICENSE = 'New BSD'
|
||||
DESCRIPTION = (
|
||||
|
@ -21,7 +37,7 @@ DESCRIPTION = (
|
|||
'format and to/from databases'
|
||||
)
|
||||
URL = 'https://github.com/pyexcel/pyexcel-io'
|
||||
DOWNLOAD_URL = '%s/archive/0.5.11.tar.gz' % URL
|
||||
DOWNLOAD_URL = '%s/archive/0.5.12.tar.gz' % URL
|
||||
FILES = ['README.rst', 'CHANGELOG.rst']
|
||||
KEYWORDS = [
|
||||
'python',
|
||||
|
@ -65,8 +81,8 @@ 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-io v0.5.11 ' +
|
||||
"Find 0.5.11 in changelog for more details")
|
||||
GS_COMMAND = ('gs pyexcel-io v0.5.12 ' +
|
||||
"Find 0.5.12 in changelog for more details")
|
||||
NO_GS_MESSAGE = ('Automatic github release is disabled. ' +
|
||||
'Please install gease to enable it.')
|
||||
UPLOAD_FAILED_MSG = (
|
||||
|
@ -175,6 +191,7 @@ def filter_out_test_code(file_handle):
|
|||
|
||||
if __name__ == '__main__':
|
||||
setup(
|
||||
test_suite="tests",
|
||||
name=NAME,
|
||||
author=AUTHOR,
|
||||
version=VERSION,
|
||||
|
|
|
@ -6,3 +6,6 @@ flake8
|
|||
SQLAlchemy
|
||||
pyexcel>=0.2.0
|
||||
pyexcel-xls>=0.1.0
|
||||
moban
|
||||
black;python_version>="3.6"
|
||||
isort;python_version>="3.6"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from pyexcel_io.sheet import SheetReader, SheetWriter, NamedContent
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.utils import is_empty_array
|
||||
from nose.tools import raises
|
||||
from pyexcel_io.book import BookWriter
|
||||
from pyexcel_io.sheet import SheetReader, SheetWriter, NamedContent
|
||||
from pyexcel_io.utils import is_empty_array
|
||||
|
||||
|
||||
@raises(NotImplementedError)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from nose.tools import raises
|
||||
from pyexcel_io.book import RWInterface, BookReader, BookWriter
|
||||
from pyexcel_io.book import BookReader, BookWriter, RWInterface
|
||||
|
||||
|
||||
@raises(NotImplementedError)
|
||||
|
|
|
@ -2,18 +2,19 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from textwrap import dedent
|
||||
from nose.tools import raises, eq_
|
||||
from unittest import TestCase
|
||||
|
||||
import pyexcel_io.manager as manager
|
||||
from nose.tools import eq_, raises
|
||||
from pyexcel_io.sheet import NamedContent
|
||||
from pyexcel_io._compact import PY2, BytesIO, StringIO
|
||||
from pyexcel_io.readers.csvr import (
|
||||
CSVSheetReader,
|
||||
CSVFileReader,
|
||||
CSVSheetReader,
|
||||
CSVinMemoryReader,
|
||||
)
|
||||
from pyexcel_io.writers.csvw import CSVFileWriter, CSVMemoryWriter
|
||||
from pyexcel_io._compact import BytesIO, PY2, StringIO
|
||||
|
||||
|
||||
class TestReaders(TestCase):
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
from nose.tools import raises, eq_
|
||||
from nose.tools import eq_, raises
|
||||
from pyexcel_io import save_data
|
||||
from pyexcel_io._compact import OrderedDict
|
||||
from pyexcel_io.constants import DB_DJANGO
|
||||
from pyexcel_io.database.common import (
|
||||
DjangoModelImporter,
|
||||
DjangoModelImportAdapter,
|
||||
DjangoModelExporter,
|
||||
DjangoModelImporter,
|
||||
DjangoModelExportAdapter,
|
||||
)
|
||||
from pyexcel_io.database.importers.django import (
|
||||
DjangoModelWriter,
|
||||
DjangoBookWriter,
|
||||
DjangoModelImportAdapter,
|
||||
)
|
||||
from pyexcel_io.database.exporters.django import (
|
||||
DjangoModelReader,
|
||||
DjangoBookReader,
|
||||
DjangoModelReader,
|
||||
)
|
||||
from pyexcel_io.database.importers.django import (
|
||||
DjangoBookWriter,
|
||||
DjangoModelWriter,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import os
|
||||
|
||||
import pyexcel_io.constants as constants
|
||||
from nose.tools import eq_
|
||||
from pyexcel_io import get_data, save_data
|
||||
from pyexcel_io.utils import _index_filter
|
||||
from nose.tools import eq_
|
||||
import pyexcel_io.constants as constants
|
||||
|
||||
|
||||
def test_index_filter():
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
import os
|
||||
import sys
|
||||
import types
|
||||
from zipfile import BadZipfile
|
||||
from unittest import TestCase
|
||||
|
||||
import pyexcel_io.manager as manager
|
||||
import pyexcel_io.exceptions as exceptions
|
||||
from pyexcel_io._compact import StringIO, BytesIO, is_string
|
||||
from pyexcel_io._compact import OrderedDict
|
||||
from pyexcel_io import save_data, get_data, iget_data
|
||||
from nose.tools import eq_, raises
|
||||
from pyexcel_io import get_data, iget_data, save_data
|
||||
from pyexcel_io.io import load_data, get_writer
|
||||
from nose.tools import raises, eq_
|
||||
from zipfile import BadZipfile
|
||||
|
||||
from pyexcel_io._compact import BytesIO, StringIO, OrderedDict, is_string
|
||||
|
||||
PY2 = sys.version_info[0] == 2
|
||||
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
|
||||
import pyexcel as p
|
||||
|
||||
from nose import SkipTest
|
||||
from nose.tools import eq_
|
||||
from pyexcel_io import get_data, save_data
|
||||
from pyexcel_io._compact import PY26
|
||||
import pyexcel as p
|
||||
|
||||
IN_TRAVIS = "TRAVIS" in os.environ
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
import os
|
||||
from unittest import TestCase
|
||||
from textwrap import dedent
|
||||
from nose.tools import raises
|
||||
from unittest import TestCase
|
||||
|
||||
import pyexcel_io.manager as manager
|
||||
from nose.tools import raises
|
||||
from pyexcel_io._compact import OrderedDict
|
||||
from pyexcel_io.readers.csvr import CSVBookReader
|
||||
from pyexcel_io.readers.tsv import TSVBookReader
|
||||
from pyexcel_io.writers.csvw import CSVBookWriter
|
||||
from pyexcel_io.writers.tsv import TSVBookWriter
|
||||
from pyexcel_io.readers.csvr import CSVBookReader
|
||||
from pyexcel_io.writers.csvw import CSVBookWriter
|
||||
|
||||
|
||||
class TestCSVReaders(TestCase):
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
from unittest import TestCase
|
||||
from pyexcel_io._compact import OrderedDict
|
||||
from pyexcel_io import save_data
|
||||
import pyexcel_io.manager as manager
|
||||
from pyexcel_io.readers.csvz import CSVZipBookReader
|
||||
from pyexcel_io.writers.csvz import CSVZipBookWriter
|
||||
from pyexcel_io.readers.tsvz import TSVZipBookReader
|
||||
from pyexcel_io.writers.tsvz import TSVZipBookWriter
|
||||
import zipfile
|
||||
from nose.tools import raises
|
||||
import sys
|
||||
import zipfile
|
||||
from unittest import TestCase
|
||||
|
||||
import pyexcel_io.manager as manager
|
||||
from nose.tools import raises
|
||||
from pyexcel_io import save_data
|
||||
from pyexcel_io._compact import OrderedDict
|
||||
from pyexcel_io.readers.csvz import CSVZipBookReader
|
||||
from pyexcel_io.readers.tsvz import TSVZipBookReader
|
||||
from pyexcel_io.writers.csvz import CSVZipBookWriter
|
||||
from pyexcel_io.writers.tsvz import TSVZipBookWriter
|
||||
|
||||
PY2 = sys.version_info[0] == 2
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import os
|
||||
import datetime
|
||||
from unittest import TestCase
|
||||
from textwrap import dedent
|
||||
from unittest import TestCase
|
||||
|
||||
import pyexcel as pe
|
||||
|
||||
from pyexcel_io._compact import text_type
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import os
|
||||
|
||||
from nose.tools import eq_
|
||||
from pyexcel_io import get_data, save_data
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from nose.tools import eq_
|
||||
from pyexcel_io.sheet import SheetWriter, SheetReader
|
||||
import pyexcel_io.constants as constants
|
||||
from nose.tools import eq_
|
||||
from pyexcel_io.sheet import SheetReader, SheetWriter
|
||||
|
||||
|
||||
class MyWriter(SheetWriter):
|
||||
|
|
|
@ -1,32 +1,38 @@
|
|||
import sys
|
||||
import json
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy import Column, Integer, String
|
||||
from sqlalchemy import Float, Date, DateTime, ForeignKey
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
import datetime
|
||||
import platform
|
||||
|
||||
from nose.tools import eq_, raises
|
||||
from sqlalchemy import (
|
||||
Date,
|
||||
Float,
|
||||
Column,
|
||||
String,
|
||||
Integer,
|
||||
DateTime,
|
||||
ForeignKey,
|
||||
create_engine,
|
||||
)
|
||||
from sqlalchemy.orm import backref, relationship, sessionmaker
|
||||
from pyexcel_io._compact import OrderedDict
|
||||
from pyexcel_io.database.common import (
|
||||
SQLTableExporter,
|
||||
SQLTableExportAdapter,
|
||||
SQLTableImporter,
|
||||
SQLTableExportAdapter,
|
||||
SQLTableImportAdapter,
|
||||
)
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from pyexcel_io.database.querysets import QuerysetsReader
|
||||
from pyexcel_io.database.exporters.sqlalchemy import (
|
||||
SQLTableReader,
|
||||
SQLBookReader,
|
||||
SQLTableReader,
|
||||
)
|
||||
from pyexcel_io.database.importers.sqlalchemy import (
|
||||
PyexcelSQLSkipRowException,
|
||||
SQLTableWriter,
|
||||
SQLBookWriter,
|
||||
SQLTableWriter,
|
||||
PyexcelSQLSkipRowException,
|
||||
)
|
||||
from pyexcel_io.database.querysets import QuerysetsReader
|
||||
from sqlalchemy.orm import relationship, backref
|
||||
from nose.tools import raises, eq_
|
||||
import platform
|
||||
|
||||
|
||||
PY3 = sys.version_info[0] == 3
|
||||
PY36 = PY3 and sys.version_info[1] == 6
|
||||
|
|
Loading…
Reference in New Issue