# -*- makefile -*-;
# -----------------------------------------------------------------------
# Copyright 2019-2025 Open Networking Foundation Contributors
#
# 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
#
# 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.
# -----------------------------------------------------------------------
# SPDX-FileCopyrightText: 2019-2025 Open Networking Foundation Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------

virtualenv

flake8==7.2.0
pexpect==4.9.0
pre-commit==4.2.0
pylint==3.3.6
yamllint==1.37.0

# -----------------------------------------------------------------------
# https://pypi.org/project/robotframework/#history
# -----------------------------------------------------------------------
robotframework==7.2.2
robotframework-importresource==0.2.0
robotframework-kafkalibrary==0.0.3
robotframework-lint==1.1
robotframework-requests==0.9.7
robotframework-robocop==6.0.3
robotframework-sshlibrary==3.8.0
robotframework-tidy==4.16.0
cord-robot==2.1.10

matplotlib==3.10.1
requests==2.32.3
grpcio<=1.39.0  # Required for voltha-protos
grpc-robot>=2.9.3
kafka-robot>=2.3.2
voltha-protos>=5.6.2
protobuf>=3.15.7,<3.20.0
protobuf3-to-dict>=0.1.5
device-management-interface>=1.2.1
