setup.cfg (172 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. [metadata] name = apache-dolphinscheduler version = attr: pydolphinscheduler.__version__ url = https://dolphinscheduler.apache.org/python/main/index.html description = pydolphinscheduler is Apache DolphinScheduler Python API. long_description = file: README.md long_description_content_type = text/markdown author = Apache Software Foundation author_email = dev@dolphinscheduler.apache.org license = Apache-2.0 license_files = LICEN[CS]E* keywords = dolphinscheduler workflow scheduler taskflow # complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers = Development Status :: 4 - Beta Environment :: Console Intended Audience :: Developers Operating System :: Unix Operating System :: POSIX Operating System :: Microsoft :: Windows Programming Language :: Python Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 Programming Language :: Python :: 3.13 Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: Implementation :: PyPy Topic :: Software Development :: User Interfaces project_urls = Homepage = https://dolphinscheduler.apache.org/python/main/index.html Documentation = https://dolphinscheduler.apache.org/python/main/index.html Source = https://github.com/apache/dolphinscheduler-sdk-python Issue Tracker = https://github.com/apache/dolphinscheduler-sdk-python/issues Twitter = https://twitter.com/dolphinschedule [options] python_requires = >=3.9 include_package_data = True zip_safe = true platforms = any package_dir = =src packages = find: install_requires = boto3>=1.23.10 oss2>=2.16.0 python-gitlab>=2.10.1 click>=8.0.0 py4j~=0.10 ruamel.yaml stmdency>=0.0.2 # 23.0 not support python 3.6 packaging>=21.3 [options.packages.find] where=src [options.package_data] pydolphinscheduler = default_config.yaml version_ext [options.entry_points] console_scripts = pydolphinscheduler = pydolphinscheduler.cli.commands:cli [options.extras_require] build = build setuptools>=42 wheel test = pytest>=6.2 freezegun>=1.1 coverage>=6.1 pytest-cov>=3.0 docker>=5.0.3 style = black>=22.8 ruff>=0.3 doc = sphinx>=4.3 sphinx_rtd_theme>=1.0 sphinx-click>=3.0 sphinx-inline-tabs sphinx-copybutton>=0.4.0 # Unreleased package have a feature we want(use correct version package for API ref), so we install from # GitHub directly, see also: # https://github.com/Holzhaus/sphinx-multiversion/issues/42#issuecomment-1210539786 sphinx-multiversion @ git+https://github.com/Holzhaus/sphinx-multiversion#egg=sphinx-multiversion sphinx-github-changelog dev = # build apache-dolphinscheduler[build] # test apache-dolphinscheduler[test] # style apache-dolphinscheduler[style] # doc apache-dolphinscheduler[doc] # --------------------------------------------- # Test Settings # --------------------------------------------- [tool:pytest] # add path here to skip pytest scan it norecursedirs = tests/testing # Integration test run seperated which do not calculate coverage, it will run in `tox -e integrate-test` tests/integration [coverage:run] command_line = -m pytest omit = # Ignore all test cases in tests/ tests/* # Ignore examples directory */pydolphinscheduler/examples/* # TODO. Temporary ignore java_gateway file, because we could not find good way to test it. */pydolphinscheduler/java_gateway.py [coverage:report] # Mark no cover for typing.TYPE_CHECKING, see details https://github.com/nedbat/coveragepy/issues/831 exclude_lines = pragma: no cover if TYPE_CHECKING: # Don’t report files that are 100% covered skip_covered = True show_missing = True precision = 2 # Report will fail when coverage under 90.00% fail_under = 90 # --------------------------------------------- # TOX Settings # --------------------------------------------- [tox:tox] envlist = local-ci auto-lint lint doc-build doc-build-multi code-test integrate-test local-integrate-test py{39,310,311,312,313} [testenv] allowlist_externals = make git find [testenv:auto-lint] extras = style commands = python -m black . python -m ruff check --fix . [testenv:lint] extras = style commands = python -m black --check . python -m ruff check . [testenv:code-test] extras = test # Run both tests and coverage commands = python -m pytest --cov=pydolphinscheduler --cov-report term --cov-report xml:coverage.xml tests/ [testenv:doc-build] extras = doc commands = make -C {toxinidir}/docs clean make -C {toxinidir}/docs html # Remove sensitive information from the generated documentation commands_post = find {toxinidir}/docs -type f -name "environment.pickle" -exec rm -rf \{\} \; [testenv:doc-build-multi] extras = doc commands = # Get all tags for `multiversion` subcommand git fetch --tags make -C {toxinidir}/docs clean make -C {toxinidir}/docs multiversion # Remove sensitive information from the generated documentation commands_post = find {toxinidir}/docs -type f -name "environment.pickle" -exec rm -rf \{\} \; [testenv:integrate-test] extras = test commands = python -m pytest tests/integration/ [testenv:local-integrate-test] extras = test setenv = skip_launch_docker = true commands = {[testenv:integrate-test]commands} # local-ci do not build `doc-build-multi` [testenv:local-ci] extras = dev commands = {[testenv:lint]commands} {[testenv:code-test]commands} {[testenv:doc-build]commands}