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如何在导航抽屉中显示图像   DDD中的java聚合对象   java如何在登录后隐藏主活动上的项目?   java如何知道MouseWheelListener是否可以接收事件?   java地图中未显示新标记   Z3Java绑定是否具有与python相同的get_vars()API?   java重置或清除Lucene索引   Java骑士之旅代码   集合Java类树集合中的Java方法headSet和tailSet在日志(N)时间内工作吗?   java从SpringWeb服务获取Jetty实例   java需要在jira中将jsp文件更改为vm文件   创建对象时发生java IllegalMonitorStateException   java SnakeYaml从字符串第一行转储   使用java在文件中逐个使用for循环写入行