##########################################################################################
# Customize file classifications.                                                        #
# Results from files under any classifier will be excluded from LGTM                     #
# statistics.                                                                            #
##########################################################################################

##########################################################################################
# Use the `path_classifiers` block to define changes to the default classification of    #
# files.                                                                                 #
##########################################################################################

path_classifiers:
  docs:
    - doc
    - bin
  test:
    # Override LGTM's default classification of test files by excluding all files.
    - exclude: /
    # Classify all files in the top-level directories test/ and testing/ as test code.
    - test
    - testing
    # Classify all files with suffix `.Test.py` as test code.
    - "**/*.Test.py"
    # and the test runner
    - runtest.py
  # The default behavior is to tag all files created during the
  # build as `generated`. Results are hidden for generated code. You can tag 
  # further files as being generated by adding them to the `generated` section.
  generated:
    - build
    # By default, all files not checked into the repository are considered to be
    # 'generated'.
  # The default behavior is to tag library code as `library`. Results are hidden 
  # for library code. You can tag further files as being library code by adding them
  # to the `library` section.
  library:
    - exclude: path/to/libary/code/**/*.c
  # The default behavior is to tag template files as `template`. Results are hidden 
  # for template files. You can tag further files as being template files by adding 
  # them to the `template` section.
  template:
    - template
  # Define your own category, for example: 'some_custom_category'.
  bench:
    - bench
    - timings

#########################################################################################
# Define changes to the default code extraction process.                                #
# Each block configures the extraction of a single language, and modifies actions in a  #
# named step. Every named step includes automatic default actions,                      #
# except for the 'prepare' step. The steps are performed in the following sequence:     #
# prepare                                                                               #
# after_prepare                                                                         #
# configure (C/C++ only)                                                                #
# python_setup (Python only)                                                            #
# before_index                                                                          #
# index                                                                                 #
##########################################################################################

#########################################################################################
# Environment variables available to the steps:                                         #
#########################################################################################

# LGTM_SRC
#   The root of the source tree.
# LGTM_WORKSPACE
#   An existing (initially empty) folder outside the source tree.
#   Used for temporary download and setup commands.

#########################################################################################
# Use the extraction block to define changes to the default code extraction process     #
# for one or more languages. The settings for each language are defined in a child      #
# block, with one or more steps.                                                        #
#########################################################################################

extraction: 
  javascript:
    # The `prepare` step exists for customization on LGTM.com only.
    # prepare:
    #   packages:
    #     - example_package
    # Add an `after-prepare` step if you need to run commands after the prepare step.
    # Each command should be listed on a separate line.
    after_prepare:
      - export PATH=$LGTM_WORKSPACE/tools:$PATH
    # The `index` step extracts information from the files in the codebase.
    index:
      # Specify a list of files and folders to extract.
      # Default: The project root directory.
      include:
        - src/js
      # Specify a list of files and folders to exclude from extraction.
      exclude:
        - SCons/Tool/docbook/docbook-xsl-1.76.1

  # Define settings for Python analysis
  ######################################
  python:
    # The `prepare` step exists for customization on LGTM.com only.
    # prepare:
    #   # The `packages` section is valid for LGTM.com only. It names packages to
    #   # be installed.
    #   packages: libpng-dev
    # This step is useful for Python analysis where you want to prepare the 
    # environment for the `python_setup` step without changing the default behavior 
    # for that step.
    after_prepare:
      - export PATH=$LGTM_WORKSPACE/tools:$PATH
      # This sets up the Python interpreter and virtual environment, ready for the 
      # `index` step to extract the codebase.
    python_setup:
      # Specify packages that should NOT be installed despite being mentioned in the
      # requirements.txt file.
      # Default: no package marked for exclusion.
      exclude_requirements:
        - pywin32
        - readme-renderer
        - sphinx<3.5.0
        - sphinx_rtd_theme
        - lxml==4.6.3
        - rst2pdf
      # Specify a list of pip packages to install.
      # If any of these packages cannot be installed, the extraction will fail.
      requirements:
        #- Pillow
      # Specify a list of requirements text files to use to set up the environment,
      # or false for none. Default: any requirements.txt, test-requirements.txt,
      # and similarly named files identified in the codebase are used.
      requirements_files:
        - required-packages.txt
      # Specify a setup.py file to use to set up the environment, or false for none.
      # Default: any setup.py files identified in the codebase are used in preference
      # to any requirements text files.
      #setup_py: new-setup.py
