# Copyright (c) 2021-2024 Arm Limited.
# SPDX-License-Identifier: Apache-2.0

[metadata]
name = tosa-tools
# version = done by setuptools_scm in pyproject.toml
author = Arm Limited
#author_email =
description = TOSA tools
long_description = file: README.md
long_description_content_type = text/markdown
url = https://git.mlplatform.org/tosa/reference_model.git/
project_urls =
    Website = https://developer.mlplatform.org/w/tosa/
classifiers =
    Programming Language :: Python :: 3
    License :: OSI Approved :: Apache Software License
    Operating System :: OS Independent

[options]
install_requires =
    numpy
    flatbuffers == 23.5.26
    jsonschema
python_requires = >=3.6
include_package_data = True
packages =
    runner
    generator
    checker
    frameworks
    tests
    conformance
    xunit
    json2fbbin
    json2numpy
    schemavalidation
    convert2conformance
    tosa
    serializer
package_dir =
    = verif
    xunit = scripts/xunit
    json2fbbin = scripts/json2fbbin
    json2numpy = scripts/json2numpy
    convert2conformance = scripts/convert2conformance
    tosa = thirdparty/serialization_lib/python/tosa
    serializer = thirdparty/serialization_lib/python/serializer
    schemavalidation = scripts/schemavalidation

[options.entry_points]
console_scripts =
    tosa_verif_run_ref = runner.tosa_verif_run_tests:main
    tosa_verif_run_tests = runner.tosa_verif_run_tests:main
    tosa_verif_build_tests = generator.tosa_verif_build_tests:main
    tosa_json2numpy = json2numpy.json2numpy:main
    tosa_json2fbbin = json2fbbin.json2fbbin:main
    tosa_verif_result_check = checker.tosa_result_checker:main
    tosa_convert2conformance = convert2conformance.convert2conformance:main
    tosa_verif_framework_generator = frameworks.tosa_verif_framework_generator:main
    tosa_verif_framework_compiler_runner = frameworks.tosa_verif_framework_compiler_runner:main
    tosa_verif_conformance_generator = conformance.tosa_verif_conformance_generator:main
    tosa_schemavalidation = schemavalidation.schemavalidation:main

[options.package_data]
schemavalidation=
    *.schema.json

[tool:pytest]
testpaths=verif/tests
markers =
    postcommit: marks tests for post commit testing on CI as part of the review

[flake8]
ignore = D213, E203, E266, E501, W503
max-line-length = 88
select = B,E,F,W,T4
exclude = .eggs
