Spaces:
Sleeping
Sleeping
[gh-actions] | |
python = | |
3.9: py39 | |
3.10: py310 | |
# 3.8: py38, rst_linux, rst_mac, readme, linters, coverage-report, qa | |
# 3.11: py311, rst_linux, rst_mac, readme, linters, coverage-report, qa | |
3.11: py311, rst_linux, rst_mac, readme, coverage-report | |
# 3.9: py39 | |
# 3.10: py310 | |
[tox] | |
# todo: add back the linters and qa | |
# envlist = py39, py310, py311, rst_linux, rst_mac, readme, rst, linters, coverage-report, qa | |
envlist = py39, py310, py311, rst_linux, rst_mac, readme, rst, coverage-report | |
[testenv] | |
; conda_deps = | |
; rdkit | |
; conda_channels = rdkit | |
deps = | |
-r{toxinidir}/requirements_dev.txt | |
commands = | |
# coverage run --rcfile=tox.ini -m pytest tests | |
python -m pip install --upgrade pip | |
# pip install -r requirements.txt | |
# pip install . | |
# coverage run --source=selector --rcfile=tox.ini -m pytest selector selector/test | |
# python -m pytest --cov-config=.coveragerc --cov=selector --cov-report=xml --color=yes selector/test | |
python -m pytest --cov-config=.coveragerc --cov=selector --cov-report=xml --color=yes | |
# pytest --cov-config=.coveragerc --cov=selector/test | |
# can run it if needed | |
# coverage report -m | |
# prevent exit when error is encountered | |
ignore_errors = true | |
[testenv:readme] | |
skip_install = true | |
deps = | |
readme_renderer | |
twine | |
commands = | |
python setup.py sdist bdist_wheel | |
twine check dist/* | |
[testenv:rst_linux] | |
platform = | |
linux | |
skip_install = true | |
deps = | |
doc8 | |
rstcheck==3.3.1 | |
commands = | |
doc8 --config tox.ini doc/ | |
# ignore code-block related error because | |
# the Sphinx support in rstcheck is minimal. This results in false positives | |
# rstcheck uses Docutils to parse reStructuredText files and extract code blocks | |
# fixme: check updates on the following website in the future | |
# coala.gitbooks.io/projects/content/en/projects/rstcheck-with-better-sphinx-suppor.html | |
rstcheck --recursive doc/ --report error \ | |
--ignore-directives automodule,autoclass,autofunction,bibliography,code-block \ | |
--ignore-roles cite,mod,class,lineno --ignore-messages code-block | |
[testenv:rst_mac] | |
platform = | |
darwin | |
skip_install = true | |
deps = {[testenv:rst_linux]deps} | |
commands = {[testenv:rst_linux]commands} | |
[testenv:linters] | |
deps = | |
flake8 | |
flake8-docstrings | |
flake8-import-order>=0.9 | |
flake8-colors | |
pep8-naming | |
pylint==2.13.9 | |
# black | |
bandit | |
commands = | |
flake8 selector/ selector/test setup.py | |
pylint selector --rcfile=tox.ini --disable=similarities | |
# black -l 100 --check ./ | |
# black -l 100 --diff ./ | |
# Use bandit configuration file | |
bandit -r selector -c .bandit.yml | |
ignore_errors = true | |
[testenv:coverage-report] | |
deps = coverage>=4.2 | |
skip_install = true | |
commands = | |
# coverage combine --rcfile=tox.ini | |
coverage report | |
[testenv:qa] | |
deps = | |
{[testenv]deps} | |
{[testenv:linters]deps} | |
{[testenv:coverage-report]deps} | |
commands = | |
{[testenv]commands} | |
{[testenv:linters]commands} | |
# {[testenv:coverage-report]commands} | |
ignore_errors = true | |
# pytest configuration | |
[pytest] | |
addopts = --cache-clear | |
--showlocals | |
-v | |
-r a | |
--cov-report term-missing | |
--cov selector | |
# Do not run tests in the build folder | |
norecursedirs = build | |
# flake8 configuration | |
[flake8] | |
exclude = | |
__init__.py, | |
.tox, | |
.git, | |
__pycache__, | |
build, | |
dist, | |
*.pyc, | |
*.egg-info, | |
.cache, | |
.eggs, | |
_version.py, | |
max-line-length = 100 | |
import-order-style = google | |
ignore = | |
# E121 : continuation line under-indented for hanging indent | |
E121, | |
# E123 : closing bracket does not match indentation of opening bracket’s line | |
E123, | |
# E126 : continuation line over-indented for hanging indent | |
E126, | |
# E226 : missing whitespace around arithmetic operator | |
E226, | |
# E241 : multiple spaces after ‘,’ | |
# E242 : tab after ‘,’ | |
E24, | |
# E704 : multiple statements on one line (def) | |
E704, | |
# W503 : line break occurred before a binary operator | |
W503, | |
# W504 : Line break occurred after a binary operator | |
W504, | |
# D202: No blank lines allowed after function docstring | |
D202, | |
# E203: Whitespace before ':' | |
E203, | |
# E731: Do not assign a lambda expression, use a def | |
E731, | |
# D401: First line should be in imperative mood: 'Do', not 'Does' | |
D401, | |
per-file-ignores = | |
# F401: Unused import | |
# this is used to define the data typing | |
selector/utils.py: F401, | |
# E1101: rdkit.Chem has no attribute xxx | |
# D403: first word of the first line should be properly capitalized | |
selector/feature.py: E1101, D403 | |
# doc8 configuration | |
[doc8] | |
# Ignore target directories and autogenerated files | |
ignore-path = doc/_build/, build/, selector.egg-info/, selector.egg-info, .*/, doc/intro_about.rst | |
# File extensions to use | |
extensions = .rst, .txt | |
# Maximal line length should be 100 | |
max-line-length = 100 | |
# Disable some doc8 checks: | |
# D000: Check RST validity (cannot handle the "linenos" directive) | |
# D002: Trailing whitespace | |
# D004: Found literal carriage return | |
# Both D002 and D004 can be problematic in Windows platform, line ending is `\r\n`, | |
# but in Linux and MacOS, it's "\n" | |
# Known issue of doc8, https://bugs.launchpad.net/doc8/+bug/1756704 | |
# ignore = D000,D002,D004 | |
ignore = D000 | |
# pylint configuration | |
[MASTER] | |
# This is a known issue of pylint with recognizing numpy members | |
# https://github.com/PyCQA/pylint/issues/779 | |
# https://stackoverflow.com/questions/20553551/how-do-i-get-pylint-to-recognize-numpy-members | |
extension-pkg-whitelist=numpy | |
[FORMAT] | |
# Maximum number of characters on a single line. | |
max-line-length=100 | |
[MESSAGES CONTROL] | |
# disable pylint warnings | |
disable= | |
# attribute-defined-outside-init (W0201): | |
# Attribute %r defined outside __init__ Used when an instance attribute is | |
# defined outside the __init__ method. | |
W0201, | |
# too-many-instance-attributes (R0902): | |
# Too many instance attributes (%s/%s) Used when class has too many instance | |
# attributes, try to reduce this to get a simpler (and so easier to use) | |
# class. | |
R0902, | |
# too many branches (R0912) | |
R0912, | |
# too-many-arguments (R0913): | |
# Too many arguments (%s/%s) Used when a function or method takes too many | |
# arguments. | |
R0913, | |
# Too many local variables (r0914) | |
R0914, | |
# Too many statements (R0915) | |
R0915, | |
# fixme (W0511): | |
# Used when a warning note as FIXME or XXX is detected. | |
W0511, | |
# bad-continuation (C0330): | |
# Wrong hanging indentation before block (add 4 spaces). | |
C0330, | |
# wrong-import-order (C0411): | |
# %s comes before %s Used when PEP8 import order is not respected (standard | |
# imports first, then third-party libraries, then local imports) | |
C0411, | |
# arguments-differ (W0221): | |
# Parameters differ from %s %r method Used when a method has a different | |
# number of arguments than in the implemented interface or in an overridden | |
# method. | |
W0221, | |
# unecessary "else" after "return" (R1705) | |
R1705, | |
# Value XX is unsubscriptable (E1136). this is a open issue of pylint | |
# https://github.com/PyCQA/pylint/issues/3139 | |
E1136, | |
# Used when a name doesn't doesn't fit the naming convention associated to its type | |
# (constant, variable, class…). | |
C0103, | |
# Unnecessary pass statement | |
W0107, | |
# Module 'rdkit.Chem' has no 'ForwardSDMolSupplier' member (no-member) | |
E1101, | |
# todo: fix this one later and this is a temporary solution | |
# E0401: Unable to import xxx (import-error) | |
E0401, | |
# R1721: Unnecessary use of a comprehension | |
R1721, | |
# I1101: Module xxx has no yyy member (no-member) | |
I1101, | |
# R0903: Too few public methods (too-few-public-methods) | |
R0903, | |
# R1702: Too many nested blocks (too-many-nested-blocks) | |
R1702, | |
[SIMILARITIES] | |
min-similarity-lines=5 | |
# coverage configuration | |
[run] | |
branch = True | |
parallel = True | |
source = selector | |
[paths] | |
source = | |
selector | |
.tox/*/lib/python*/site-packages/selector | |
.tox/pypy*/site-packages/selector | |