分析源代码目录的内容并确定正在使用的编程语言。
whodis的Python项目详细描述
世界卫生组织
分析源代码目录的内容并确定正在使用的编程语言。
支持的语言:
- 前进
- Java
- javascript
- Python
- 红宝石
用法
从pypi安装:
pipinstallwhodis
导入模块并创建whodis的新实例:
fromwhodisimportWhoDisblah=WhoDis()
whodis对象有一个方法parse(),它接受一个filepath(string)参数:
blah.parse("/some/valid/path/with/source/code")
在用支持的语言分析至少一个文件的有效路径后,对象将具有四个属性:
# language - The dominant programming language in the source path.# String.# Possible string values are "go", "java", "js", "py", "rb".blah.language>>>"py"# all_languages - All languages present in the source path.# List of strings.# Possible list values are "go", "java", "js", "py", "rb".blah.all_languages>>>["rb","js"]# files - All non-filtered files in the source path.# List of strings.blah.files>>>["__init__.py","main.py","README.md","LICENSE.md","requirements.txt"]# files_by_language - All non-filtered files in the source path broken down by language.# Dictionary with strings for keys and lists of strings for values.# Possible key names are "go", "java", "js", "py", "rb".blah.files_by_language>>>{"rb":["application_controller.rb","model.rb"],"js":["app.js"]}
常见问题
一。谁是怎么工作的?
谁很天真。它将递归地查找路径中的所有文件,过滤掉某些目录(例如g it、构建/打包、虚拟环境等),查看返回文件的文件扩展名,并按扩展名(例如py)对它们进行分组。然后whodis会查看哪种语言拥有最多的文件,并将其视为路径中源代码的主导语言。
2.什么被过滤掉了?为什么过滤?
请查看*\u filters.py文件,这应该很容易理解。被过滤的文件位于通常与版本控制、构建/打包和虚拟环境等相关联的目录中。过滤的原因是1)加速whodis(例如,一个大的.git会让我们慢很多),2)这些目录通常包含与确定所使用的编程语言无关/多余的文件。简而言之,过滤后的文件不应该影响whodis的解析。
三。为什么只支持go、java、javascript、python和ruby?
我编写了whodis用于与aws lambda交互的另一个项目。这些语言都是由lambda本地支持的。如果你想获得额外的语言支持,请随时打开一个公关!