###############################################################################
#  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.
###############################################################################

# These are packages needed by the Apache Beam Python SDK. Their versions need
# to be compatible with the requirements in sdks/python/setup.py.
# Specifying the versions manually helps to resolve dependency conflicts
# with other packages installed in the container.
# Any SDK dependencies not listed here will be installed when SDK is installed
# into the container.

avro==1.8.2;python_version<="2.7"
avro-python3==1.8.2;python_version>="3.4"
fastavro==1.0.0.post1
crcmod==1.7
dill==0.3.1.1
future==0.18.2
futures==3.2.0;python_version<"3.0"
grpcio==1.29.0
hdfs==2.5.8
httplib2==0.12.0
mock==2.0.0
oauth2client==4.1.3
protobuf==3.12.2
pyarrow==0.16.0
pydot==1.4.1
pytz==2019.3
pyvcf==0.6.8;python_version<"3.0"
pyyaml==5.1
typing==3.7.4.3;python_full_version<"3.5.3"
typing-extensions==3.7.4.3

# GCP extra features
google-api-core==1.22.0
google-apitools==0.5.28
google-cloud-pubsub==1.0.2
google-cloud-bigquery==1.26.1
google-cloud-bigtable==1.0.0
google-cloud-core==1.4.1
google-cloud-datastore==1.7.4

# Optional packages
cython==0.29.13
guppy==0.1.11;python_version<="2.7"
guppy3==3.0.9;python_version>="3.5"
mmh3==2.5.1

# These are additional packages likely to be used by customers.
numpy==1.16.5;python_version<="2.7"
numpy==1.17.3;python_version>="3.4"
scipy==1.2.2;python_version<="2.7"
scipy==1.4.1;python_version>="3.4"
pandas==0.24.2;python_version<="2.7"
pandas==0.25.2;python_version>="3.4"
protorpc==0.12.0
python-gflags==3.0.6
tensorflow==2.1.0;python_version<="2.7"
tensorflow==2.3.0;python_version>="3.5"
pymongo==3.9.0

# Packages needed for testing.
tenacity>=5.0.2
pyhamcrest<2.0,>=1.9
nose==1.3.7
