小编Igl*_*gle的帖子

在节点边缘上对齐标记D3强制布局

我正在尝试实现d3力布局,无法弄清楚如何以正确的方式定位链接的标记.

这是我到目前为止所得到的:

var links = force_data.force_directed_data.links;

        var nodes = {};

        // Compute the distinct nodes from the links.
        links.forEach(function (link) {
            link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
            link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
        });

        console.log(nodes);

        var width = 1000,
            height = 1000;

        var force = d3.layout.force()
            .nodes(d3.values(nodes))
            .links(links)
            .size([width, height])
            .linkDistance(300)
            .charge(-120)
            .friction(0.9)
            .on("tick", tick)
            .start();

        var svg = d3.select("#force-graph").append("svg")
            .attr("width", width)
            .attr("height", height);

        // Per-type markers, as they don't inherit styles.
        svg.append("defs").selectAll("marker")
            .data(["dominating"])
            .enter().append("marker")
            .attr("id", …
Run Code Online (Sandbox Code Playgroud)

javascript d3.js force-layout

7
推荐指数
1
解决办法
2537
查看次数

如何在python docstring中指定不同的返回类型

我目前正在使用Sphinx和autodoc插件为我的python包编写文档.对于函数返回值,我可以写例如:returns: int: count,告诉sphinx存在类型为int的返回值,命名为count.

我现在有一个函数,它让我的数据库中的项目的前辈:

def get_previous_release(release_id):
    """ Holt Vorgängeritem eines Items mit der ID release_id

        :param release_id: ID des items für das Release
        :type release_id: int

    """

    if not isinstance(release_id, int):
        raise ValueError('get_previous_release expects an Integer value for the parameter release_id')

    try:
        release = my_queries.core.get_by_id(release_id)
    except IndexError:
        raise LookupError('The item with id {} could no be found'.format(release_id))

    if 'Alpha-Release' in release.name:
        release = AlphaRelease(release.key, release.name, release.state)
    elif 'Beta-Release' in release.name:
        release = BetaRelease(release.key, release.name, release.state)
    elif '-Release' in …
Run Code Online (Sandbox Code Playgroud)

python docstring python-sphinx

7
推荐指数
1
解决办法
7190
查看次数

从 setup.py 中的包导入脚本

我想使用setup.py从脚本导入的脚本,该脚本是必须安装的包的一部分。该脚本仅包含一个dict包含用于创建入口点的字符串的 。我没有在 中对它们进行硬编码,setup.py因为我想稍后从已安装的软件包中再次使用此列表。

只是为了清楚我的目录结构和重要文件:

PackageA
|_package_a
| |_models
| |_modules
| | |_do_query.py
| | |_...
| |_setup_cfg.py
| |_ __init__.py
| |_...
|_ __init__.py
|_setup.py
Run Code Online (Sandbox Code Playgroud)

__init__.pypackage_a

from .setup_cfg import setup_config
Run Code Online (Sandbox Code Playgroud)

setup_cfg.py

setup_config = {
    'scripts': [
        'do_query'
    ]
}
Run Code Online (Sandbox Code Playgroud)

setup.py

    # -*- coding: utf-8 -*-

from setuptools import setup, find_packages
from .package_a import setup_config

with open('README.rst') as f:
    readme = f.read()

with open('LICENSE') as f:
    license = f.read() …
Run Code Online (Sandbox Code Playgroud)

configuration python-import setup.py python-3.x

7
推荐指数
1
解决办法
3152
查看次数

如何模拟从不同模块导入的方法中导入的函数

我有以下功能来测试:

my_package.db_engine.db_functions.py:

from ..utils import execute_cmd
from my_package.db_engine.db_functions import dbinfo 

def dbinfo(db_name):
    params = (cmd_cfg.DB, add_pj_suffix(db_name))
    cmd = get_db_cmd_string(cmd_cfg.DBINFO, params=params)
    cmd_result = execute_cmd(cmd)
    result_dict = map_cmd_output_to_dict(cmd_result)
    return result_dict
Run Code Online (Sandbox Code Playgroud)

此函数获取数据库的名称,然后从中构建命令字符串并像subprocess使用该execute_cmd方法一样执行此命令.我想在不实际执行的情况下测试此函数subprocess.我只想检查命令是否正确构建并正确传递给execute_cmd.因此我需要模拟execute_cmd从模块导入的方法utils.

我的文件夹结构如下:

my_project
|_src
| |_my_package
| | |_db_engine
| | | |_db_functions.py
| | | |_ __init__.py
| | |_utils.py
| | |_ __init__.py
| | |_ ....
| |_ __init__.py
|_tests
  |_test_db_engine.py
Run Code Online (Sandbox Code Playgroud)

所以对于我的测试我尝试了以下内容test_db_engine.py:

import unittest
from …
Run Code Online (Sandbox Code Playgroud)

python unit-testing monkeypatching mocking

7
推荐指数
1
解决办法
3504
查看次数

结合几个项目的sphinx文档

在我们的团队中,我们有几个项目,每个项目都单独记录了sphinx.我们希望有一个中央文档页面,其中包含我们所有的项目.

当然,我们可以构建一个包含不同文档链接的html页面.

有没有办法将文件与Sphinx本身结合起来?也许有一个单独的文档项目,它以某种方式包含其他项目的文档?

documentation python-3.x python-sphinx

6
推荐指数
1
解决办法
901
查看次数

在Jenkins Groovy Script中获取所有管道作业

我想触发几个不同的管道作业,具体取决于Controller Pipeline作业的输入参数.

在这个工作中,我构建了其他管道的名称,我想从列表中触发,从python脚本返回.

node {
    stage('Get_Clusters_to_Build') {
        copyArtifacts filter: params.file_name_var_mapping, fingerprintArtifacts: true, projectName: 'UpdateConfig', selector: lastSuccessful()
        script {
            cmd_string = 'determine_ci_builds --jobname ' + env.JOB_NAME
            clusters = bat(script: cmd_string, returnStdout: true)
            output_array = clusters.split('\n')
            cluster_array = output_array[2].split(',')
        }
        echo "${clusters}"
    }

    jobs = Hudson.instance.getAllItems(AbstractProject.class)

    echo "$jobs"
    def builders = [:]
    for (i=0; i<cluster_array.size(); i++) {
        def cluster = cluster_array[i]
        def job_to_build = "BuildCI_${cluster}".trim()
        echo "### branch${i}"
        echo "### ${job_to_build}"
        builders["${job_to_build}"] =
        {
            stage("${job_to_build}") {
                build "${job_to_build}"
            }
        }
    }
    parallel …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

6
推荐指数
3
解决办法
7107
查看次数

什么样的算法?(背包,装箱!?)

问题如下:

您有n个行程长度(以km为单位),应在m天之间进行划分,以使每天最大长度总和最小化.例如,在3天内划分的行程长度[1,5,2,6,8,3,2]导致[1,5,2] [6] [8,3,2]因为最大日长度总和是我们能达到的最低点.

是否有一种描述处理这种问题的算法?我遇到了bin包装和背包问题,但没有一个能解决我的问题.我可以想象它可能是对bin包装的一点修改但是没有得出结论.

algorithm knapsack-problem bin-packing

5
推荐指数
1
解决办法
486
查看次数

如何像简单的脚本一样以编程方式运行刮a的蜘蛛?

我创建了一个Scrapy蜘蛛。但我想将其作为脚本运行。我该怎么做。现在,我可以在终端中通过以下命令运行:

$ scrapy crawl book -o book.json
Run Code Online (Sandbox Code Playgroud)

但是我想像一个简单的python脚本一样运行它

在此处输入图片说明

python scrapy web-scraping

5
推荐指数
1
解决办法
2000
查看次数

使用CSS缩放所有svg元素

我的问题是我从数据库中收到一堆完整的内联svg字符串,如下所示:

<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
 <g>
  <title>Layer 1</title>
  <path d="m213,174c-1,0 0.93744,4.0507 5,9c15.7598,19.19971 42.15933,40.96863 87,46c41.73807,4.68324 91.75034,-15.54512 112,-41c23.49255,-29.53134 36.13748,-73.41833 14,-96c-33.4342,-34.10505 -95.63815,-20.07648 -149,16c-43.49094,29.40303 -72.81625,61.12003 -83,114c-6.24055,32.40456 16.74812,59.13785 36,65c37.61407,11.45343 70.11282,-8.38123 85,-30c20.052,-29.11902 25.62744,-81.34587 2,-96c-56.33228,-34.93816 -148.52351,-14.6879 -180,-4c-15.29767,5.19435 -26.60644,10.5387 -28,13c-2.03145,3.58792 -1,7 -1,12l2,5l14,8" id="svg_3" stroke-width="5" stroke="#000000" fill="#7fff00"/>
  <path d="m316,134c-62,-30 -126.71272,-58.6663 -180,-88c-12.1703,-6.69953 -20.4588,-10.30656 -21,-9c-2.67879,6.46715 1.96343,18.00821 4,27c2.94713,13.01208 2.5971,18.59676 7,27c2.32053,4.42889 12.9695,11.11737 32,16c27.95625,7.1727 38,10 54,12c8,1 11.23318,-1.93299 14,-12c2.18535,-7.95136 3.35251,-14.97251 -1,-16c-9.73248,-2.29753 -34.42769,3.96417 -50,11c-15.49211,6.9996 -15,18 -7,31l16,9l34,13" id="svg_4" stroke-width="5" stroke="#000000" fill="#003f7f"/>
  <path d="m545,160c-75,-19 -106.09659,-19.87175 -136,-23c-28.13077,-2.94281 -43,-8 -46,-10c-3,-2 -3.87857,-4.49346 -7,-5c-4.93542,-0.80091 -12.43283,5.65108 …
Run Code Online (Sandbox Code Playgroud)

javascript css svg templates scale

4
推荐指数
1
解决办法
4720
查看次数

检查dict中是否至少包含一个dict键

我想检查另一个字典中是否有至少一个来自给定字典的密钥.我已经知道如何检查"必须"这样的键:

valid_data = []
needed_keys = (key1, key2)

for d in data:
    if not all(key in d for key in needed_keys):
        continue  # ignore invalid object

    valid_data.append(d)
Run Code Online (Sandbox Code Playgroud)

数据在这里是一个dicts列表.使用此代码,只有包含key1和key2的项目才会附加到valid_data.

是否有类似的东西:

if not any(key in d for key in needed_keys)
Run Code Online (Sandbox Code Playgroud)

如果所需的密钥中有任何密钥可用,它也会成功吗?

python validation dictionary

2
推荐指数
1
解决办法
944
查看次数

如何为django Q对象动态加入多个参数

我正在尝试在django sqlite db中实现搜索.

我得到一个未知长度的参数列表,它们都应该与'LIKE'匹配.这意味着我希望所有与至少一个参数匹配的对象.

正如我从django文档中看到的那样,我可以通过使用Q对象来实现.

例:

Students.objects.get(
    Q(name_contains='franz') | 
    Q(birthdate_date=date(2005, 5, 2) | 
    Q(param3_contains='lorem'
)
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如何处理它以加入从params创建的所有Q对象作为参数传递给objects.get().我找不到这个.

这里的另一个问题是处理几种不同的Field Lookup类型.

我感谢您提供的任何建议,帮助或帮助链接.谢谢.

python django join querying django-q

2
推荐指数
1
解决办法
1298
查看次数

列表的所有子列表中给定深度的项目数

我觉得我错了.我在列表的深度递归,好像它是一棵树.这会导致问题,因为它是一个任意列表,可以有字符串,整数......这就是我所拥有的

def visit_depth(list_, depth):
    if depth == 0:
        return 1
    elif depth >0:
        return sum([visit_depth(l, depth - 1) for l in list_])
    else:
        return 0
Run Code Online (Sandbox Code Playgroud)

python recursion list

1
推荐指数
1
解决办法
36
查看次数