Detect the programming language of a source code
Project description
This is NOT A TYPOSQUATTING PACKAGE
It's a fork of the original https://github.com/yoeo/guesslang / pypi package guesslang
Reason of fork - abandoned project. I need a specific patch. Fixing tensorflow dependency myself until https://github.com/yoeo/guesslang/pull/62 is merged
Install:
pip install guesslang-experimental
Guesslang
Guesslang detects the programming language of a given source code:
echo '
package main
import "fmt"
func main() {
fmt.Println("My mascot is a gopher and Google loves me. Who am I?")
}
' | guesslang
# ⟶ Programming language: Go
Guesslang supports 54 programming languages
:
Languages | ||||
---|---|---|---|---|
Assembly |
Batchfile |
C |
C# |
C++ |
Clojure |
CMake |
COBOL |
CoffeeScript |
CSS |
CSV |
Dart |
DM |
Dockerfile |
Elixir |
Erlang |
Fortran |
Go |
Groovy |
Haskell |
HTML |
INI |
Java |
JavaScript |
JSON |
Julia |
Kotlin |
Lisp |
Lua |
Makefile |
Markdown |
Matlab |
Objective-C |
OCaml |
Pascal |
Perl |
PHP |
PowerShell |
Prolog |
Python |
R |
Ruby |
Rust |
Scala |
Shell |
SQL |
Swift |
TeX |
TOML |
TypeScript |
Verilog |
Visual Basic |
XML |
YAML |
With a guessing accuracy higher than 90%.
Apps powered by Guesslang
Microsoft Visual Studio Code, automatic language detection
Visual Studio Code detects the programming language of the source code that you paste into the editor using Guesslang machine learning model.
Chameledit
Chameledit is a simple web-editor that automatically highlights your code.
Other projects...
Documentation
-
Guesslang documentation is available at https://guesslang.readthedocs.io/en/latest/
-
Guesslang language detection explained here https://guesslang.readthedocs.io/en/latest/contents.html#how-does-guesslang-guess
-
Guesslang is based on Tensorflow machine learning framework
Installation
-
Python 3.7+ is required
-
Install the latest stable version:
pip3 install guesslang
- or install Guesslang from source code:
pip3 install .
- Windows specific
To run Tensorflow on Microsoft Windows you need to install Visual C++ runtime libraries, available on Microsoft website
Guesslang command line
- Show all available options
guesslang --help
- Detect the programming language of
/etc/bashrc
configuration file:
guesslang /etc/bashrc
# ⟶ Programming language: Shell
- Detect the programming language of a given text:
echo '
/** Turn command line arguments to uppercase */
object Main {
def main(args: Array[String]) {
val res = for (a <- args) yield a.toUpperCase
println("Arguments: " + res.toString)
}
}
' | guesslang
# ⟶ Programming language: Scala
- Show the detection probabilities for a given source code:
echo "
def qsort(items):
if not items:
return []
else:
pivot = items[0]
less = [x for x in items if x < pivot]
more = [x for x in items[1:] if x >= pivot]
return qsort(less) + [pivot] + qsort(more)
if __name__ == '__main__':
items = [1, 4, 2, 7, 9, 3]
print(f'Sorted: {qsort(items)}')
" | guesslang --probabilities
# Language name Probability
# Python 74.80%
# Haskell 6.73%
# CoffeeScript 5.32%
# Groovy 1.95%
# Markdown 0.93%
# ...
Guesslang Python package
- Guesslang can be used as a Python package. Package documentation available here
from guesslang import Guess
guess = Guess()
name = guess.language_name("""
% Quick sort
-module (recursion).
-export ([qsort/1]).
qsort([]) -> [];
qsort([Pivot|T]) ->
qsort([X || X <- T, X < Pivot])
++ [Pivot] ++
qsort([X || X <- T, X >= Pivot]).
""")
print(name) # ⟶ Erlang
License and credits
-
Gesslang training dataset created with GuesslangTools
-
Guesslang developped with Tensorflow
-
Guesslang icon created with AndroidAssetStudio and Eduardo Tunni's Warnes font
-
Example source codes used here retrieved from Rosetta Code
-
Guesslang — Copyright (c) 2021 Y. SOMDA, MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file guesslang-experimental-2.2.3.tar.gz
.
File metadata
- Download URL: guesslang-experimental-2.2.3.tar.gz
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc358f409617dad7a39fd9a4d22e3b7b94af359479d07ae7145395a2b1ca2b13 |
|
MD5 | b01532096cecf7352bf9136957b9a8ab |
|
BLAKE2b-256 | 87ebaded702be20b6c12273995c1e22cbe3d134203425a5f7df17a7cd50b1534 |
File details
Details for the file guesslang_experimental-2.2.3-py3-none-any.whl
.
File metadata
- Download URL: guesslang_experimental-2.2.3-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cd7a451f735e966eb294900c2054bb9bf113f930a564128db46181964a523f9 |
|
MD5 | 65c06c3f91af7e7a46347c947653991b |
|
BLAKE2b-256 | f84293d02f5d6c64fd2a68f95276f0383a8da1b580533113ef55f9bdfb8de654 |