# SPDX-FileCopyrightText: Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed 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
#
# 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.

[project]
name = "ethos-u-vela"
description = "Neural network model compiler for Arm Ethos-U NPUs"
requires-python = "~=3.7"
authors = [{name = "Arm Ltd", email = "mlg-vela@arm.com"}]
license = {text= "Apache License 2.0"}
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: POSIX :: Linux",
    "Operating System :: Microsoft :: Windows :: Windows 10",
    "Programming Language :: C",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.7",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Software Development :: Compilers",
]
keywords = ["ethos-u", "vela compiler", "tflite", "npu"]
dependencies = [
    "flatbuffers==2.0.7",
    "numpy<=1.21.3; python_version<='3.7'",
    "numpy; python_version>'3.7'",
    "lxml>=4.5.1"
]
dynamic = ["readme", "version"]

[project.urls]
Homepage = "https://git.mlplatform.org/ml/ethos-u/ethos-u-vela.git/"

[project.scripts]
vela = "ethosu.vela.vela:main"

[build-system]
requires = [
    "numpy<=1.21.3; python_version<='3.7'",
    "numpy; python_version>'3.7'",
    "setuptools_scm[toml]<6"
]
build-backend = "setuptools.build_meta"