Skip to main content

This module discover the programming languages from a project/repository.

Project description

detect-languages

Latest PyPI version GitHub Actions status Python versions Code style License

This module discover the programming languages from a project/repository.

Usage

  • Module

    test.py

    from detect_languages.detect import DetectLanguages
    
    detect_languages = DetectLanguages(debug=False, path=".", language_types=["programming"], exclude_dirs=[".venv", ".tox", "samples"], exclude_dirs_recursively=False)
    
    print("Main language: ", detect_languages.main_language)
    print("All languages: ", detect_languages.all_languages)
    
    $ python test.py
    

    Output:

    Main language:  Python
    All languages:  {'Python': {'size': 50799, 'percentage': 100.0}}
    
  • CLI

    Help:

    $ detect-languages --help
    

    Output:

    Usage: detect-languages [OPTIONS] COMMAND [ARGS]...
    
    Options:
      --help  Show this message and exit.
    
    Commands:
      all
      main
    

    Main language help:

    detect-languages main --help
    

    Output:

    Usage: detect-languages main [OPTIONS]
    
    Options:
      -d, --debug / --no-debug        Debug  [default: no-debug]
      -p, --path PATH                 Path to project  [default: .]
      -lt, --language-types TEXT      Language types  [default: programming, 
                                      prose, data, markup]
      -ed, --exclude-dirs TEXT        Exclude dirs
      -edr, --exclude-dirs-recursively / --no-exclude-dirs-recursively       
                                      Exclude dirs recursively  [default: no-
                                      exclude-dirs-recursively]
      -o, --output [json|tabulate]    Output format  [default: tabulate]     
      --help                          Show this message and exit.
    

    All languages help:

    detect-languages all --help
    

    Output:

    Usage: detect-languages all [OPTIONS]
    
    Options:
      -d, --debug / --no-debug        Debug  [default: no-debug]
      -p, --path PATH                 Path to project  [default: .]
      -lt, --language-types TEXT      Language types  [default: programming, 
                                      prose, data, markup]
      -ed, --exclude-dirs TEXT        Exclude dirs
      -edr, --exclude-dirs-recursively / --no-exclude-dirs-recursively       
                                      Exclude dirs recursively  [default: no-
                                      exclude-dirs-recursively]
      -o, --output [json|tabulate]    Output format  [default: tabulate]     
      --help                          Show this message and exit.
    

    Main language example:

    detect-languages main -ed .venv -ed .tox -ed .github -ed .pytest_cache -ed .vscode -ed samples -p . -o json
    

    Output:

    {'Python': {'size': 52455, 'percentage': 63.51}}
    

    All languages example:

    detect-languages all -ed .venv -ed .tox -ed .github -ed .pytest_cache -ed .vscode -ed samples -p . -o json
    

    Output:

    {'Python': {'size': 52455, 'percentage': 63.46}, 'JSON': {'size': 24481, 'percentage': 29.62}, 'Markdown': {'size': 4728, 'percentage': 5.72}, 'INI': {'size': 725, 'percentage': 0.88}, 'TOML': {'size': 271, 'percentage': 0.33}}
    

    Debug:

    detect-languages all -ed .venv -ed .tox -ed .github -ed .pytest_cache -ed .vscode -ed samples -p . -o json -d
    

    Output:

    DEBUG: Detecting languages...
    DEBUG: Language types: ['programming', 'prose', 'data', 'markup']
    DEBUG: no lexer for filename '.gitignore' found
    DEBUG: file: './.gitignore', language: 'None', size: 111
    DEBUG: no lexer for filename 'LICENSE' found
    DEBUG: file: './LICENSE', language: 'None', size: 1074
    DEBUG: file: './README.md', language: 'Markdown', size: 7648
    DEBUG: file: './Pipfile.lock', language: 'JSON', size: 24481
    DEBUG: file: './setup.py', language: 'Python', size: 1166
    DEBUG: file: './tox.ini', language: 'INI', size: 160
    DEBUG: file: './requirements.txt', language: 'Text only', size: 426
    DEBUG: file: './.bumpversion.cfg', language: 'INI', size: 532
    DEBUG: file: './Pipfile', language: 'TOML', size: 271
    DEBUG: file: './detect_languages.egg-info/top_level.txt', language: 'Text only', size: 17
    DEBUG: file: './detect_languages.egg-info/dependency_links.txt', language: 'Text only', size: 1
    DEBUG: file: './detect_languages.egg-info/entry_points.txt', language: 'Text only', size: 63
    DEBUG: file: './detect_languages.egg-info/SOURCES.txt', language: 'Text only', size: 378
    DEBUG: file: './detect_languages.egg-info/requires.txt', language: 'Text only', size: 63
    DEBUG: no lexer for filename 'PKG-INFO' found
    DEBUG: file: './detect_languages.egg-info/PKG-INFO', language: 'None', size: 8378
    DEBUG: file: './tests/test_cli.py', language: 'Python', size: 726
    DEBUG: file: './tests/test_detect.py', language: 'Python', size: 1608
    DEBUG: file: './detect_languages/languages.py', language: 'Python', size: 37666
    DEBUG: file: './detect_languages/cli.py', language: 'Python', size: 3009
    DEBUG: file: './detect_languages/detect.py', language: 'Python', size: 6852
    DEBUG: Detected main language: Python
    DEBUG: Detected languages: ['Python', 'JSON', 'Markdown', 'INI', 'TOML']
    {'Python': {'size': 51027, 'percentage': 60.66}, 'JSON': {'size': 24481, 'percentage': 29.1}, 'Markdown': {'size': 7648, 'percentage': 9.09}, 'INI': {'size': 692, 'percentage': 0.82}, 'TOML': {'size': 271, 'percentage': 0.32}}
    

Installation

$ pip install detect-languages

Requirements

Credits/Inspirations

Licence

MIT

Author

Alex Graciano

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

detect-languages-0.1.0b3.tar.gz (14.3 kB view hashes)

Uploaded Source

Built Distribution

detect_languages-0.1.0b3-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page