hl-主机列表,一个简单灵活的主机列表模糊搜索/执行工具

hl的Python项目详细描述


H2> HL--一种简单的柔性模糊主机搜索/执行< /H2>

HL(主机列表)提供了Omni-Box风格的查询界面(灵感来源于任何现代浏览器)。 HL使用易于理解的层次化主机列表上的加权模糊匹配全文匹配过程中考虑的内容包括项目名称、env(prod、qa、dev等)、标记、端口和FQDN本身

请注意,定义项目名称或环境等的是您自己的任意约定,它们在hl中的工作方式都是相同的。 实际上,HL接受任何层次分类,每个级别都被视为标签上面的分类标签比下面的任何标签都有更大的权重,这个属性用于消除模糊字符串匹配的歧义。

安装

pip install --user hl

示例

使用API和DBs的简单项目的虚拟配置,有两个环境—在AWS上进行登台,在2个DC中在裸机上进行生产注意,管理员是时髦的,数据库有自己独特和不一致的名称+不同的端口,我们希望用标签正确分类。

# our-project.yml:
---
prod:
    api:
        us-east-dc:
            hosts: api-[0-4]-east-prod.our-company.cloud
            ports:
                http: 8080
        us-west-dc:
            hosts: api-[0-4]-west-prod.our-company.cloud
            ports:
                http: 8080
    db:
        us-east-dc:
            # list of host patterns is acceptable
            hosts:
                - ricky-the-great.our-company.cloud
                - mikky-the-malicious.our-company.cloud
            ports:
                postgres: 5432
         us-east-dc:
            # list of different host entries as well
            - hosts: east-mcgram-db.our-company.cloud
              ports:
                postgres: 5432
            - hosts: east-paul-db.our-company.cloud
              ports:
                postgres: 6432
qa:
    aws:
        api:
            hosts: api-[0-4]-aws-staging.ec2.cloud
            ports:
                http: 8080
        db:
            hosts: db-aws-staging.ec2.cloud
            ports:
                postgres: 5432

输入hl工具:

hl aws

算法

算法很简单(可能会改变)-首先我们遍历主机模式图,并将每个标记视为按深度反向加权的标记(越深,权重越小)。然后我们对hostname应用合理的标记化(由“-”、“_u”和“.”分隔),每个标记的权重最小。结果是合并标记和主机名标记。

查询的标记方式与主机名相同。之后,两个频率字典像稀疏向量一样相乘,以最小化重复单词的尖锐影响,查询中的权重被sigmoid平滑(这在将来可能会改变)。

下一步是使用trigrams或类似的方法修复查询中的拼写错误,并仍然找到最接近的标记来匹配。

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

推荐PyPI第三方库


热门话题
java JPanel不会对键绑定做出反应   当时间大于零时,不得在UI线程上调用java Await   JTextArea的java线程安全。追加   Java用户输入的字和行计数器   java以spreedsheat格式将数据保存到文件中   java构造函数的意义是什么?   java findViewById返回null,尽管组件的ID存在   java如何向按钮添加图像   java如何中断ExecutorService的线程   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   随机森林分类器的java实现   html使用java连接到一个站点并发布,HTTP状态代码200   从类访问属性时发生java编译错误   Java自动填充ArrayList,搜索更好的选项