小编cer*_*wen的帖子

为什么Clojure拉链实现使用Huet拉链的不同类型和数据结构?

我正在将Huet的原始论文Clojure的实现进行比较,并试图找出改变的原因.我是Clojure的新手,所以如果我对Clojure代码的解释错了,请纠正我.

在Huet的论文中,路径的类型是(在Ocaml中)Top | Node of tree list * path * tree list;;.在Clojure中,还有两个字段,pnodeschanged?.这些领域的目的是什么?我是否正确地认为l并且r对应于Huet类型中的第一个和第三个条目,那ppath是第二个?

Huet的拉链始终使用链接列表(注意我说的是Loc类型本身,而不是拉链操作的数据结构),而在某些地方,例如l,Clojure实现使用向量.为什么要改变,以及Clojure实现的时间复杂性有何影响?

algorithm clojure zipper

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

setup.py在virtualenv中安装数据文件在哪里?

我发现多个来源(https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute,http://blog.ionelmc.ro/2014/05/25/Python的包装/,http://blog.ionelmc.ro/2014/06/25/python-packaging-pitfalls/),其建议,要在Python软件包分发数据文件的方法是使用setuptools的的include_package_data选项和MANIFEST.in.我的包中的文件看起来像,

setup.py

setup( # ... include_package_data = True, # ... 与文件的其余部分(希望无关紧要)省略.

MANIFEST.IN

graft testdata include ChangeLog include README.rst include COPYING include COPYING.LESSER include tox.ini

当我setup.py install在virtualenv中运行或使用pip时,我最终得到了Python源文件本身,但没有testdata/任何地方我可以找到它.我认为这是我的包装中的一个错误,除了当我抓住另一个具有类似布局的包时,我也找不到数据文件.如果我克隆示例包https://github.com/ionelmc/python-nameless的存储库并使用它安装它setup.py install,则该软件包将安装在该目录中lib/python3.4/site-packages/nameless-0.1.0-py3.4.egg/nameless/.但是,我无法在virtualenv中的任何地方找到任何数据文件或测试.他们应该在哪里结束?这应该怎么样?

我提出这个问题的动机是项目的另一个贡献者想要从pip安装运行需要数据文件的测试.这首先是正确的做法吗?

python distutils pip setuptools

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

如何在具有多个IP的机器上控制ZeroMQ数据包的源IP地址?

Python 标准库的socket.create_connection()方法有一个源地址选项,用于控制连接使用的源 IP。

给定一台具有多个地址的机器,我如何使用 Python ZeroMQ 套接字做同样的事情?

在这种情况下,我一直在使用 Linux 的 iproute2ip addr add来创建地址和 ZeroMQPUB/SUB套接字原型。

python linux zeromq

6
推荐指数
2
解决办法
6680
查看次数

强制Jenkins管道作业从Dockerhub中提取新的私有映像

我想使用Jenkins Docker管道插件在Docker Hub上提取具有特定标记的特定私有映像的新版本.Docker shell命令看起来像:

docker login -u user -p password
docker pull user/foo:bar
Run Code Online (Sandbox Code Playgroud)

像这样的东西似乎应该工作:

node () {
    image = docker.image('user/foo:bar')
    image.pull()
    image.inside {
        // Commands to run in the container
Run Code Online (Sandbox Code Playgroud)

但是没有办法执行登录步骤,所以我总是得到错误:

Error response from daemon: pull access denied for user/foo, repository does not exist or may require 'docker login'.
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档代码,但文档甚至没有提到拉动,代码中的示例也没有显示如何登录以提取私有图像.我可以手动编写脚本,但使用Docker管道插件的全部目的是避免直接编写Docker命令脚本.

jenkins docker jenkins-pipeline

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

如何从 Python 导入正确调用 jsonnet

我正在使用 jsonnet 构建将由 Python 代码使用的 json 对象,使用bindings从 Python 调用 jsonnet 。我想设置我的目录结构,以便 jsonnet 文件位于与运行 Python 代码的位置相关的一个或多个子目录中,例如:

foo.py jsonnet/ jsonnet/bar.jsonnet jsonnet/baz.libsonnet

运行foo.py然后应该能够使用_jsonnet.evaluate_snippet()从文件中读取的字符串jsonnet/,从jsonnet/. 做到这一点的最佳方法是什么?

python python-import jsonnet

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

加州 DMV 网站上的不可禁用粘贴

CA DMV 有一个网站,它禁止以某种非标准方式粘贴,因为用于纠正此行为的标准技术(在 about:config 中为 Firefox、在 Firefox 或 Chrome 的扩展中设置正确的选项)均无效。当您尝试粘贴到一个不允许的字段中时,它会弹出一个对话框,显示“抱歉,此功能已禁用。”

  1. 这是怎么做的?

  2. 我该如何纠正?

javascript

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