Skip to content
Snippets Groups Projects
pyproject.toml 4.89 KiB
Newer Older
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
[project]
name = "odoo_scripts"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
description = "Collection of scripts for Odoo"
readme = "README.rst"
requires-python = ">=3.6"
license = { file = "LICENSE" }
authors = [{ name = "XCG Consulting" }]
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
classifiers = [
  "Development Status :: 5 - Production/Stable",
  "Programming Language :: Python :: 3",
  "License :: OSI Approved :: MIT License",
  "Environment :: Console",
  "Intended Audience :: Developers",
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
]
keywords = ["odoo"]
  "odoorpc >=0.8.0; python_version>='3.7' and python_version<'3.10'",
  "odoorpc ==0.8.0; python_version=='3.6'",
  "odoorpc >=0.9.0; python_version>='3.10'",
  "python-dateutil >=2.7.0",
  "gitpython >=3.1.20", # 3.1.20 is the last version supporting python 3.6 (ubuntu 22.04 ships 3.1.24)
  "tomli; python_version<='3.10'",
  "backports-datetime-fromisoformat >=2.0; python_version<='3.10'",
]

[project.optional-dependencies]
doc = [
  "sphinx",
  # used when updating translation files
  "sphinx-intl"
]
conf2reST = []
docker = [
  "python-on-whales",
  # used in docker_rednerd
  "requests_unixsocket",
  "requests",
  # requests_unixsocket is not working correctly with urllib3 > 2. (urllib3 1.x kept for python 3.6 support)
# source_control used to have requirements for the update_duplicate_sources script
source_control = []
import_base_import = ["requests-toolbelt>=0.8.0"]
import_base_import = "odoo_scripts.import_base_import:main [import_base_import]"
import_jsonrpc = "odoo_scripts.import_jsonrpc:main"
import_sql = "odoo_scripts.import_sql:main [import_sql]"
docker_dev_start = "odoo_scripts.docker_dev_start:main [docker]"
do_tests = "odoo_scripts.do_tests:main"
docker_black = "odoo_scripts.docker_black:main [docker]"
docker_build = "odoo_scripts.docker_build:main [docker]"
docker_build_doc = "odoo_scripts.docker_build_doc:main [docker]"
docker_build_clean = "odoo_scripts.docker_build_clean:main"
docker_build_copy = "odoo_scripts.docker_build_copy:main"
docker_flake8 = "odoo_scripts.docker_flake8:main [docker]"
docker_isort = "odoo_scripts.docker_isort:main [docker]"
docker_pg = "odoo_scripts.docker_postgresql:main [docker]"
docker_prettier = "odoo_scripts.docker_prettier:main [docker]"
docker_pylint = "odoo_scripts.docker_pylint:main [docker]"
docker_rednerd = "odoo_scripts.docker_rednerd:main [docker]"
conf2reST = "odoo_scripts.conf2reST:main [conf2reST]"
odoo_conf_inject_env_var = "odoo_scripts.odoo_conf_inject_env_var:main"
list_modules = "odoo_scripts.list_modules:main"
update_duplicate_sources = "odoo_scripts.update_duplicate_sources:main"
docker_redis = "odoo_scripts.docker_redis:main [docker]"
store_orus_api_token = "odoo_scripts.storage:main"
odoo_scripts_configuration = "odoo_scripts.config:main"

[project.urls]
repository = "https://orus.io/xcg/odoo_scripts"
changelog = "https://orus.io/xcg/odoo_scripts/-/blob/branch/default/NEWS.rst"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed

[build-system]
requires = ["setuptools >= 45", "wheel", "setuptools_scm[toml] >= 6.2"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
script-files = [
  "odoo_scripts_common",
  "create_archive",
  "create_documentation",
  "run_tests",
  "start"
]

[tool.setuptools.packages.find]
include = ["odoo_scripts*"]

Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
[tool.ruff]
# should be py36, but not available
target-version = "py37"
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
[tool.ruff.lint]
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
select = ["B", "E", "F", "I", "RUF"]
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
allowed-confusables = ["’"]
[tool.coverage.run]
branch = true
source = ["odoo_scripts"]

[tool.coverage.report]
show_missing = true

# to run py36, tox<4.0.0a10 and virtualenv<20.18.0 are needed
# With such an old tox, setting HOME is necessary
[tool.tox]
legacy_tox_ini = """
[tox]
minversion = 3.15
envlist = 36,py37,py38,py39,py310,py311,py312,coverage-report
skip_missing_interpreters = true
isolated_build = True
[testenv:36]
wheel_build_env = py311
wheel = true
setenv =
    COVERAGE_FILE = .coverage.{envname}
    HOME = .home
deps =
    coverage[toml]
    pytest
commands = coverage run -m pytest --junitxml=report.{envname}.xml {posargs}

[testenv:py{37,38,39,310,311,312}]
wheel_build_env = py311
wheel = true
setenv =
    COVERAGE_FILE = .coverage.{envname}
deps =
    coverage[toml]
    pytest
commands = coverage run -m pytest --junitxml=report.{envname}.xml {posargs}

[testenv:coverage-report]
skip_install = true
deps = coverage[toml]
depends = 36,py37,py38,py39,py310,py311,py312
commands =
    coverage combine
    coverage report
parallel_show_output = true

[testenv:coverage-xml]
skip_install = true
deps = coverage[toml]
depends = coverage-report
commands =
    coverage xml

[tool.towncrier]
underlines = ["-", "~", "_"]

[[tool.mypy.overrides]]
module = "hglib"
ignore_missing_imports = true

[[tool.mypy.overrides]]
module = "backports.datetime_fromisoformat"
ignore_missing_imports = true