products/distill/pyproject.toml (149 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. [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" numpy = "1.24.3" pandas = "^1.2.4" plotly = "^5.5.0" matplotlib = "3.7.5" scipy = "1.9.3" pydantic = "^2.7.4" dateparser = "^1.2.0" pksuid = "^1.1.2" datetime = "^5.5" [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" tox = "^4.14.2" [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.1.230501" 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" ipykernel = "^6.29.4" jupyter = "^1.0.0" # # 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"