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 yoeo#62 is merged
Install:
pip install guesslang-experimental
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%.
Visual Studio Code detects the programming language of the source code that you paste into the editor using Guesslang machine learning model.
Chameledit is a simple web-editor that automatically highlights your code.
-
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
-
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
- 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 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
-
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