blob: a6b206a05484a424f5b27313b59f25ac62a20ede [file] [log] [blame]
#
# 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.
[tool.poetry]
name = "flagon-distill"
version = "0.1.0"
description = "An analytics framework for front-end UserALE data, enabling modeling, sequence analysis, and customization in Python."
authors = []
license = "Apache-2.0"
readme = "README.rst"
documentation = "http://flagon.incubator.apache.org/distill/"
packages = [{ include = "distill" }]
classifiers = [
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3.8',
'Environment :: Web Environment',
'Framework :: Flask',
'Topic :: Internet :: Log Analysis',
]
#
# Dependencies
#
[tool.poetry.dependencies]
python = ">=3.8,<4.0"
networkx = "^2.5"
pandas = "^1.2.4"
plotly = "^5.5.0"
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
sphinx = "^4.5.0"
sphinx-rtd-theme = "^0.5.2"
[tool.poetry.group.test.dependencies]
pytest = "^6.2.3"
pytest-cov = "^4.0.0"
pytest-dotenv = "^0.5.2"
pytest-mock = "^3.10.0"
[tool.poetry.group.codespell.dependencies]
codespell = "^2.2.0"
[tool.poetry.group.lint.dependencies]
ruff = "^0.0.249"
types-toml = "^0.10.8.1"
black = "^23.1.0"
[tool.poetry.group.typing.dependencies]
mypy = "^0.991"
types-pyyaml = "^6.0.12.2"
pandas-stubs = "^2.0.3.230814"
networkx-stubs = "^0.0.1"
[tool.poetry.group.dev]
optional = true
[tool.poetry.group.dev.dependencies]
setuptools = "^67.6.1"
pre-commit = "^3.3.3"
#
# Changelog, versioning, and commit management
#
[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "v$version"
version_scheme = "semver"
version_provider = "poetry"
update_changelog_on_bump = true
major_version_zero = true
version = "0.1.0"
gpg_sign = true
version_files = ["pyproject.toml:version", "distill/__version__.py"]
#
# Scripts
#
[tool.poetry.scripts]
dev = "distill.server:dev_server"
#
# Linting & Formatting
#
[tool.ruff]
select = [
"E", # pycodestyle
"F", # pyflakes
"I", # isort
]
exclude = ["tests/data/", ".github/", "docs/", "examples/"]
[tool.black]
line-length = 88
preview = true
[tool.mypy]
ignore_missing_imports = "False"
disallow_untyped_defs = "False"
exclude = ["tests/data/", ".github/", "docs/", "examples/", "Dashboard"]
[[tool.mypy.overrides]]
module = "plotly."
ignore_errors = true
#
# Testing
#
[tool.coverage.run]
omit = ["tests/*", "Dashboard/*", "docs/*", "examples/*"]
[tool.pytest.ini_options]
# --strict-markers will raise errors on unknown marks.
# https://docs.pytest.org/en/7.1.x/how-to/mark.html#raising-errors-on-unknown-marks
#
# https://docs.pytest.org/en/7.1.x/reference/reference.html
# --strict-config any warnings encountered while parsing the `pytest`
# section of the configuration file raise errors.
#
# https://github.com/tophat/syrupy
# --snapshot-warn-unused Prints a warning on unused snapshots rather than fail the test suite.
addopts = "-s --strict-markers --ignore=build --ignore=dist --ignore=docs --junitxml=test-report.xml"
norecursedirs = "docs docker example build *.eggs *env* .git"
testpaths = "tests distill"
markers = [
"unit: Unit tests are fast and only test a single module.",
"pylint: Run linter",
"integration: Integration tests integrate several modules or integrate with the OS.",
"interactive: Interactive tests require interaction with the user to complete.",
"requires_user_action: Test cannot run without user interaction.",
"requires_user_validation: Test cannot validate without user interaction, but can run for sanity.",
"only_interactive: This test can only be run in interactive mode.",
]
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"