Skip to main content

> programming-languages

File extensions for programming languages.

It's just a JSON file, so you can use it in any environment. Sourced from GitHub's Linguist project (defines all 500+ programming languages known to GitHub). Data is updated via script and released via new package version.

Installation

pip install programming-languages

Usage

import programming_languages

py_lang_data = programming_languages['Python']

print(py_lang_data['extensions']) # => ['.cgi', '.fcgi', '.gyp', ...]

Note: Most type checkers will falsely warn programming_languages is not subscriptable because they are incapable of analyzing runtime behavior (where the module is replaced w/ a dictionary for cleaner, direct access). You can safely suppress such warnings using # type: ignore.

Examples

Get language from an extension:

def get_lang(file_ext):
    for lang, data in programming_languages.items():
        if file_ext in data['extensions']:
            return lang

print(get_lang('.al')) # => AL

Get language from a file path:

def get_lang_from_path(filepath):
    from pathlib import Path
    file_ext = Path(filepath).suffix
    for lang, data in programming_languages.items():
        if file_ext in data['extensions']:
            return lang

print(get_lang_from_path('main.rs')) # => Rust
print(get_lang_from_path('script.kt')) # => Kotlin
print(get_lang_from_path('data.avsc')) # => None (use data-languages pkg)

MIT License

Copyright © 2026 Adam Lui

Related

</> markup-languages - File extensions for markup languages.
## prose-languages - File extensions for prose languages.
{ } data-languages - File extensions for data languages.

More Python utilities / Discuss / Report bug / Report vulnerability / Back to top ↑

Download files

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

Source Distribution

programming_languages-2.0.3.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

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

programming_languages-2.0.3-py2.py3-none-any.whl (11.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file programming_languages-2.0.3.tar.gz.

File metadata

  • Download URL: programming_languages-2.0.3.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for programming_languages-2.0.3.tar.gz
Algorithm Hash digest
SHA256 e2a88b3936b86cc31c2697b636af1a5462565d5a35543f9d220fd5b714898d66
MD5 fbbc54e4cd276549875827e9a5717d47
BLAKE2b-256 1e7e60f89668a890aaad41b3c7c23fafdb5ef23cda26d891871706646b26c092

See more details on using hashes here.

File details

Details for the file programming_languages-2.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for programming_languages-2.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7c07b7fb310e2282035c87efa5ac6b2dd9423d36e9ba9663611bb1e7a52e2d2e
MD5 022a9360d5c71d3266301e64d8dcc3b4
BLAKE2b-256 d9755f1d77fa929a2c41bf2808c1b4a1f79e5829d14c4c0cf7f711e7c9e01aae

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.3 This release

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.0.0

2 files

Supported by

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