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

fastavro==0.21.4
crcmod==1.7
dill==0.2.8.2
future==0.16.0
futures==3.1.1
grpcio==1.10.0
hdfs==2.1.0
httplib2==0.9.2
mock==2.0.0
oauth2client==3.0.0
protobuf==3.6.1
pytz==2018.4
pyvcf==0.6.8
pyyaml==3.12
typing==3.6.1

# Setup packages
nose==1.3.7

# GCP extra features
google-apitools==0.5.20
googledatastore==7.0.1
google-cloud-pubsub==0.35.4
google-cloud-bigquery==0.25.0
proto-google-cloud-datastore-v1==0.90.4

# Optional packages
cython==0.28.1
python-snappy==0.5.3

# These are additional packages likely to be used by customers.
numpy==1.14.5
scipy==1.1.0
pandas==0.22.0
protorpc==0.11.1
python-gflags==3.0.6
setuptools<=39.1.0 # requirement for Tensorflow.
tensorflow==1.10.0
