智能许可证扫描程序。

atarashi的Python项目详细描述


阿塔拉希

Build Status

开源软件是使用开源许可证授权的。有很多 开放源代码许可证的数量 包有时涉及不同文件的多个许可证。

atarashi提供了不同的方法来扫描 开源软件。与现有的基于规则的方法不同,例如 来自Fossology项目的Nomos许可扫描器-Atarashi实现了多个 文本统计和信息检索算法。

预期的优势是提高了精度,同时提供了 尽可能添加新许可文本或新许可引用的方法。

阿塔拉希是设计独立工作和化石。更多信息 http://fossology.github.io/atarashi

要求

  • python>;=3.5版
  • pip>;=18.1
  • code_comments(参见下面的安装)

安装步骤

安装

从pypi安装
  • 安装其他依赖代码注释
    • pip install code_comment@git+https://github.com/amanjain97/code_comment@master#egg=code_comment
  • pip install atarashi

源代码安装

  • 安装其他依赖项代码注释
    • pip install code_comment@git+https://github.com/amanjain97/code_comment@master#egg=code_comment
  • pip install .
  • 它将下载所需的所有依赖项并触发构建。
  • 生成将在当前目录中生成3个新文件
    1. data/Ngram_keywords.json
    2. licenses/<SPDX-version>.csv
    3. licenses/processedList.csv
  • 这些文件将由安装脚本放置到适当的位置。

仅安装依赖项

  • pip install -r requirements.txt

构建(可选)

  • $ python3 setup.py build

如何运行

通过运行atarashi -hatarashi --help

示例

  • 运行dld代理

    atarashi -a DLD /path/to/file.c

  • 运行wordfrequencysimilarity代理

    atarashi -a wordFrequencySimilarity /path/to/file.c

  • 运行tfidf代理

    • 具有余弦相似性

      atarashi -a tfidf /path/to/file.c

      atarashi -a tfidf -s CosineSim /path/to/file.c

    • 得分相似性

      atarashi -a tfidf -s ScoreSim /path/to/file.c

  • 运行ngram代理

    • 具有余弦相似性

      atarashi -a Ngram /path/to/file.c

      atarashi -a Ngram -s CosineSim /path/to/file.c

    • 具有dice相似性

      atarashi -a Ngram -s DiceSim /path/to/file.c

    • 具有bigram余弦相似性

      atarashi -a Ngram -s BigramCosineSim /path/to/file.c

  • verbose模式下运行

    atarashi -a DLD -v /path/to/file.c

  • 使用自定义csv和json运行

    • 请参考构建说明以获取csv和json 阿塔拉希可以理解。
    • atarashi -a DLD -l /path/to/processedList.csv /path/to/file.c
    • atarashi -a Ngram -l /path/to/processedList.csv -j /path/to/ngram.json /path/to/file.c

运行docker image

  1. 拉动Docker图像

    docker pull fossology/atarashi:latest

  2. 运行图像

    docker run --rm -v <path/to/scan>:/project fossology/atarashi:latest <options> /project/<path/to/file>

由于Docker无法直接访问主机fs,我们从 包含要扫描到容器中/project的文件的目录。简单地 将选项和路径传递到相对于装入路径的文件。

测试

  • 使用代理的名称运行imtihaan(在印地语中是指exam)。
  • 例如python atarashi/imtihaan.py /path/to/processedList.csv <DLD|tfidf|Ngram> <testfile>
  • 有关详细信息,请参见python atarashi/imtihaan.py --help

创建Debian包

  • 安装依赖项
# apt-get install python3-setuptools python3-all debhelper
# pip install stdeb
  • 创建debian包
$ python3 setup.py --command-packages=stdeb.command bdist_deb
  • 找到deb_dist
  • 下的文件

许可证

SPDX许可证标识符:GPL-2.0

此程序是免费软件;您可以重新分发和/或修改 根据GNU通用公共许可第2版的条款 由自由软件基金会出版。

这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性特殊目的。 有关更多详细信息,请参阅GNU通用公共许可证。

你应该收到GNU通用公共许可证的副本 如果没有,请写信给自由软件基金会, 美国马萨诸塞州波士顿市富兰克林街51号,5楼,邮编:02110-1301。

如何使用sphinx生成文档

  1. 转到项目目录“atarashi”。

  2. 安装sphinx和m2r pip install sphinx m2r(由于此项目基于python,因此pip已安装)。

  3. sphinx-quickstart

    初始化docs/目录
    mkdir docs
    cd docs/
    sphinx-quickstart
    
    • Root path for the documentation [.]: .
    • Separate source and build directories (y/n) [n]: n
    • autodoc: automatically insert docstrings from modules (y/n) [n]: y
    • intersphinx: link between Sphinx documentation of different projects (y/n) [n]: y
    • 否则使用默认选项
  4. 设置conf.py并包括README.md

    • 启用以下行并更改插入路径:

      importosimportsyssys.path.insert(0,os.path.abspath('../'))
    • 启用m2r在sphinx文档中插入.md文件:

      [...]extensions=[...'m2r',][...]source_suffix=['.rst','.md']
    • 通过编辑index.rst

      包括README.md
      ..toctree::
          [...]
          readme
      
      ..mdinclude:: ../README.md
      
  5. docs/source中自动生成.rst文件,用于生成文档

    cd docs/
    sphinx-apidoc -o source/ ../atarashi
    
  6. cd docs

  7. make html

这将在docs/_build/html中生成文件。转到:index.html

您可以通过更改docs/文件夹中config.py文件中的html_theme来更改文档的主题。 你可以从{'alabater'、'classic'、'sphinxdoc'、'scrolls'、'agogo'、'traditional'、'nature'、'haiku'、'pyramid'、'bizstyle'}中选择。 Reference

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

推荐PyPI第三方库


热门话题
将Displaytag与spring web mvc集成所需的java帮助   java通过鼠标点击添加/删除   java替代方案可用于通用2d数组,无需使用抑制警告   使用Jackson的BeanPropertyFilter的java筛选器对象列表   spring不需要在java接口上导入就可以获得bean吗?   java Jcabi Github例外初始化错误   swing Java BoxLayout使用全宽   性能在Scala中,JavaEE规范的实现能否更高效?   Java使用printf动态填充左侧   java如何使用ctrl+shift并单击Jtable避免选择   Java Spring(LinkedHash)映射中的枚举键未排序   java如何在spark数据集中保存嵌套或JSON对象并转换为RDD?   将XML数据类型作为输入从Java传递到DB2存储过程   通知中未识别java AspectJ intertype字段   java如何在通知读者文件名应以后缀结尾后,将文件名作为字符串变量读取。txt?   java如何使用Spring boot创建pdf文件和发送电子邮件   java为什么不能在数组类型int[][]上调用此方法