# coding=utf-8
#
# 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.

###
# List of methods/modules and their dependencies:
# gpdb 4.3 does not support the deep_learning module. This file is required to disable
# deep learning for gpdb 4.3.
# Please add any new modules that should be supported on gpdb 4.3
###
modules:
    - name: array_ops
    - name: assoc_rules
      depends: ['svec_util']
    - name: bayes
    - name: conjugate_gradient
      depends: ['array_ops']
    - name: convex
      depends: ['utilities']
    - name: crf
    - name: elastic_net
    - name: glm
      depends: ['utilities']
    - name: graph
      depends: ['utilities']
    - name: kmeans
      depends: ['array_ops', 'svec_util', 'sample']
    - name: knn
      depends: ['array_ops']
    - name: lda
      depends: ['array_ops']
    - name: linalg
    - name: linear_systems
      depends: ['utilities']
    - name: pca
      depends: ['linalg', 'convex']
    - name: pmml
    - name: prob
    - name: recursive_partitioning
      depends: ['utilities']
    - name: regress
      depends: ['utilities', 'array_ops']
    - name: sample
      depends: ['utilities', 'stats']
    - name: sketch
    - name: stats
      depends: ['array_ops']
    - name: summary
      depends: ['utilities', 'sketch']
    - name: svec
    - name: svec_util
      depends: ['svec']
    - name: svm
    - name: tsa
    - name: utilities
      depends: ['linalg']
    - name: validation
      depends: ['array_ops', 'regress']
    - name: stemmer
