分析源代码目录的内容并确定正在使用的编程语言。

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本地支持的。如果你想获得额外的语言支持,请随时打开一个公关!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓工作室组织。json。JSONException:类型为java。无法将lang.String转换为JSONObject   java将数据从Jenkins参数化构建传递到testng。运行时的xml   java关注使用所有者框架异步打开JDialog   Android java:broadcastReceiver上的蓝牙连接事件未触发   在java中同时处理写入和读取的文件io   javascript如何替换目标数组字符串并将其更改为用户输入字符串   如何终止或停止java小程序中的其他线程   如何通过SeleniumJava连接到putty以执行一组命令并在putty窗口中验证输出   java为什么空列表上的循环会挂起?   java当我单击run时,什么也没有发生   swing Java多监视器问题   proguard java模块版本不匹配   java在facebook sdk 4.0上获取可标记好友+   java Android Fragmens和滑动示例   java导入。VS代码中的jar库   存储在SQL表中的java下载/显示文件   java项目Euler(第14页):递归问题   java如何在springboot中跳过失败的bean以避免报告失败:771>>应用程序启动失败