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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file detect-languages-0.1.0b3.tar.gz.

File metadata

  • Download URL: detect-languages-0.1.0b3.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for detect-languages-0.1.0b3.tar.gz
Algorithm Hash digest
SHA256 617dc0895391d6c7a9903ef0f4c603000930777134934e5d7a96a5ff3b165f6a
MD5 427c7748cc07ee636be8825a3dc5ee98
BLAKE2b-256 9b62e5ba60a1027c9755dd1960fa0c00641ff8092125adcde5404cc4e0c9d0f6

See more details on using hashes here.

File details

Details for the file detect_languages-0.1.0b3-py3-none-any.whl.

File metadata

  • Download URL: detect_languages-0.1.0b3-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for detect_languages-0.1.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 2ea054b7d4fa02aed7c1a65c2291b11ed6796a9df2ff48aa5698f693a7cd0641
MD5 5367cf058406027f7ea5c0dd51a1e356
BLAKE2b-256 68f29950262b43d01faa5a50c9fb8718ef14281784095216a98a24b93fe269d0

See more details on using hashes here.

Supported by

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