pyproject.toml
[build-system]
requires = ["poetry_core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "pantable"
version = "0.14.2"
description = "A Python library for writing pandoc filters for tables with batteries included."
license = "BSD-3-Clause"
keywords = [
"pandoc",
"pandocfilters",
"panflute",
"markdown",
"latex",
"html",
"csv",
"table",
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Developers",
"Topic :: Software Development :: Build Tools",
"Topic :: Text Processing :: Filters",
"License :: OSI Approved :: BSD License",
"Operating System :: Unix",
"Operating System :: POSIX",
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Utilities",
]
homepage = "https://github.com/ickc/pantable"
repository = "https://github.com/ickc/pantable"
documentation = "https://ickc.github.io/pantable"
authors = ["Kolen Cheung <christian.kolen@gmail.com>"]
readme = "README.rst"
packages = [
{ include = "pantable", from = "src" },
]
include = [
'CHANGELOG.rst',
'CONTRIBUTING.rst',
'LICENSE',
'README.rst',
]
[tool.poetry.dependencies]
python = ">=3.7"
panflute = "^2.1.3"
pyyaml = ">=5,<7"
numpy = "^1.16"
"backports.cached-property" = {python = "<3.8", version = "^1"}
# extras
coloredlogs = {optional = true, version = ">=14,<16"}
tabulate = {optional = true, version = "^0.8"}
yamlloader = {optional = true, version = "^1"}
# tests
coverage = { optional = true, version = "^6.3" }
coveralls = {optional = true, version = "*"}
flake8 = {optional = true, version = "*"}
pytest = {optional = true, version = "*"}
pytest-parallel = {optional = true, version = "^0.1.1"}
# docs: sync this with tox.testenv.docs below
sphinx = {optional = true, version = ">=3,<5"}
sphinx-bootstrap-theme = {optional = true, version = "*"}
sphinxcontrib-apidoc = {optional = true, version = "*"}
[tool.poetry.dev-dependencies]
tox = "*"
data-science-types = "*"
ipykernel = "*"
mypy = "*"
bandit = "*"
bump2version = "*"
[tool.poetry.extras]
extras = [
"coloredlogs",
"tabulate",
"yamlloader",
]
tests = [
"coverage",
"coveralls",
"flake8",
"pytest",
"pytest-parallel",
]
docs = [
"sphinx",
"sphinx-bootstrap-theme",
"sphinxcontrib-apidoc",
]
[tool.poetry.scripts]
pantable = 'pantable.cli.pantable:main'
pantable2csv = 'pantable.cli.pantable2csv:main'
pantable2csvx = 'pantable.cli.pantable2csvx:main'
[tool.coverage.paths]
source = [
'src',
'*/site-packages',
]
[tool.coverage.run]
branch = true
source = [
'src',
'tests',
]
parallel = true
relative_files = true
[tool.coverage.report]
show_missing = true
precision = 2
[tool.pytest.ini_options]
python_files = [
'test_*.py',
'*_test.py',
'tests.py',
]
addopts = [
'-ra',
'--strict-markers',
'--doctest-modules',
'--doctest-glob=\*.rst',
'--tb=short',
]
testpaths = [
'tests',
]
[tool.isort]
line_length = 120
known_first_party = 'pantable'
default_section = 'THIRDPARTY'
forced_separate = 'test_pantable'
skip = [
'.tox',
'.eggs',
'ci/templates',
'build',
'dist',
]
[tool.tox]
legacy_tox_ini = '''
[testenv:bootstrap]
deps =
jinja2
matrix
tox
skip_install = true
commands =
python ci/bootstrap.py --no-env
passenv =
*
; a generative tox configuration, see: https://tox.readthedocs.io/en/latest/config.html#generative-envlist
[tox]
isolated_build = True
envlist =
clean,
check,
docs,
{py37,py38,py39,pypy3},
report
ignore_basepython_conflict = true
[gh-actions]
python =
3.7: py37
3.8: py38, mypy
3.9: py39
pypy3: pypy3
[testenv]
basepython =
pypy: {env:TOXPYTHON:pypy}
pypy3: {env:TOXPYTHON:pypy3}
py37: {env:TOXPYTHON:python3.7}
py38: {env:TOXPYTHON:python3.8}
py39: {env:TOXPYTHON:python3.9}
{bootstrap,clean,check,report,docs,codecov,coveralls}: {env:TOXPYTHON:python3}
.package: python3
setenv =
# for coverage to work properly
PYTHONPATH={toxinidir}/src
PYTHONUNBUFFERED=yes
passenv =
*
usedevelop = false
deps =
pytest
pytest-cov
yamlloader
commands =
{posargs:pytest --cov --cov-branch --cov-report=term-missing --cov-report=xml -vv tests}
[testenv:check]
deps =
docutils
check-manifest
flake8
readme-renderer
pygments
isort
skip_install = true
commands =
flake8 --ignore F821,E501 --max-line-length 140 --exclude '.tox,.eggs,ci/templates,build,dist,setup.py'
isort --verbose --check-only --diff --filter-files .
[testenv:docs]
usedevelop = false
deps =
sphinx >=3.3,<5
sphinx-bootstrap-theme
sphinxcontrib-apidoc
commands =
sphinx-build {posargs:-E} -b dirhtml docs dist/docs
sphinx-build -b linkcheck docs dist/docs
[testenv:coveralls]
deps =
coveralls
skip_install = true
commands =
coveralls []
[testenv:codecov]
deps =
codecov
skip_install = true
commands =
codecov []
[testenv:report]
deps =
coverage
toml
skip_install = true
commands =
coverage report
coverage html
[testenv:clean]
commands = coverage erase
skip_install = true
deps =
coverage
toml
'''