小编jb.*_*jb.的帖子

如何推送并自动更新我的非裸远程git存储库的工作副本?

另请参阅此相关问题,它有最新答案:https://stackoverflow.com/a/28262104/7918.

如何推送并自动更新我的非裸远程git存储库的工作副本?

在git之前,人们会说"这是不安全的",请让我解释为什么在我的情况下这会起作用.我有储存库foo在机器AB.A碰巧是我的本地机器,B在超级计算网格上.项目通常是在A(通过一些测试)开发的,然后推送到B更多测试并向网格提交作业.两个存储库都有工作目录.库上都AB是私有并且连接到我的用户帐户.

现在git flow就是这样的:

  1. 承诺 A
  2. 推进 A
  3. 抓取 B
  4. 合并 B

我宁愿省略第3步和第4步.那就是:我希望在推送时更新远程非裸存储库,如果更改A可以自动安全地合并(即:当合并是快进时,工作目录)在B干净).

第一个解决方案是删除存储库B并仅用于rsync同步代码,但这是不可取的,因为有时我会直接进行一些更改B,并且不希望轻易覆盖这些更改.

第二个灵魂就是安装这个补丁,它甚至被合并到mysysgit(但不是git).此补丁updateInsteadreceive.denyCurrentBranchgit选项增加了价值.这是可行的,但我宁愿不在许多机器上修补git.

第三种解决方案(从这里取)将涉及有三个Git仓库:A,B',B.哪里B'是裸的,并使用钩子来同步AB.这非常简单,但我猜有三个存储库可能会增加整个系统的脆弱性.

最后的解决方案将是优先的:即使用存储库B上的钩子自动将推送的更改合并到工作副本.每个人都说这样做是直截了当的,但我想我对git内部的了解是为了修补一些合理的东西.我在这方面做了一些工作,但没有任何实际工作.

我在找什么:

  • 基于钩子的解决方案,可以在推送时自动合并远程非裸仓库.那不是:要求我重新编译git,并创建其他存储库.

git

8
推荐指数
2
解决办法
1618
查看次数

Python中是否存在分布式任务队列,使我能够杀死不愿意合作的挂起任务

基本上我有很多任务(大约1000个批次),这些任务的执行时间可以有很大的不同(从不到几秒到10分钟).我知道如果一项任务执行超过一分钟我就可以杀死它.这些任务是优化某些数据挖掘模型的步骤(但彼此独立),并且大部分时间都在一些C扩展函数中,因此如果我试图优雅地杀死它们,它们就不会合作.

是否存在适合该模式的分布式任务队列--- AFAIK:celery允许中止愿意合作的任务.但我可能错了.

我最近在多线程环境中询问了关于在Python中杀死挂起函数的类似问题.

我想我可以将celery任务子类化,因此它会生成一个新进程,然后执行其有效负载,如果需要很长时间就会中止它的执行,但之后我会被初始化新解释器的开销所杀死.

python multithreading task-queue celery

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

我该如何在芹菜中实现taskset的回调

我使用celery来启动看起来像这样的任务集:

  1. 我执行一批可以并行运行的任务,这批任务的数量从几十到几千不等.
  2. 我将这些任务的结果汇总到单个答案中,然后用这个答案做一些事情---比如存储到数据库,保存到特殊结果文件等等.基本上在完成任务后我必须调用具有以下签名的函数:

    def callback(result_file_name, task_result_list): 
        #store in file
    
    
    def callback(entity_key, task_result_list):
        #store in db 
    
    Run Code Online (Sandbox Code Playgroud)

现在步骤1.在Celery队列中完成,步骤2在芹菜外部完成:

    tasks = []

    # add taksks to tasks list 

    task_group = group()
    task_group.tasks = tasks

    result = task_group.apply_async()

    res = result.join()

    # Aggregate results 

    # Save results to file, database whatever
Run Code Online (Sandbox Code Playgroud)

这种方法很麻烦,因为我必须停止一个线程,直到执行所有任务(可能需要几个小时).

我想以某种方式将步骤2转移到芹菜上 - 基本上我需要为整个任务集添加一个回调(据我所知,它在Celery中不受支持)或提交在所有这些子任务之后执行的任务.

有谁知道怎么做?我在django环境中使用它,所以我可以在数据库中存储一些状态.

总结一下我最近的发现

和弦不会

我不能直接使用和弦,因为和弦使我能够创建这样的回调:

    def callback(task_result_list): 
        #store in file
Run Code Online (Sandbox Code Playgroud)

没有明显的方法可以将其他参数传递给回调(特别是因为这些回调不能是本地函数).

使用数据库

我可以使用存储结果,TaskSetMeta但是这个实体没有状态字段---所以即使我要向TaskSetMeta添加信号,我也必须汇集任务结果,这可能会产生巨大的开销.

django celery djcelery

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

如何将文本放在matplotlib中的绘图框内

我想在matplotlib图上的一个方框中放一个文本,但是文档只提供了如何将它放在右上角的示例(并且选择不同的角落并不是很简单).

python matplotlib

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

如何处理由熊猫中的浮点数索引的数据

我使用DataFrame带有分层索引的熊猫,在一种特殊情况下,它由浮点值索引。

这是示例:

example_data = [
    {'a': 1.2, 'b':30, 'v':123},
    {'a': 1.2, 'b':60, 'v':1234},
    {'a': 3, 'b':30, 'v':12345},
    {'a': 3, 'b':60, 'v':123456},
]
frame = pd.DataFrame(example_data)
frame.set_index(['a', 'b'])
Run Code Online (Sandbox Code Playgroud)

现在我想使用部分索引来选择框架,a==1.2然后显示它。文档显示了如何对字符串索引执行此操作,但这种方法显然不适用于浮点数,与我是否尝试frame.loc[1.2]得到关于 1.2 不正确的错误无关,Int64Index这显然是正确的,因为我使用浮点数进行索引。

有没有办法在熊猫中使用浮点索引?如何修复我的分层索引?

实际错误消息是:

TypeError: the label [1.2] is not a proper indexer for this index type (Int64Index)
Run Code Online (Sandbox Code Playgroud)

python pandas

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

渲染结果是像素化的(或者:它具有较低的分辨率)

我正在做一些原型设计,我正在使用three.js(版本68)在3D中显示一些数据.整个动画的期望结果将是一堆彩色球(代表根据某些模式着色的质子和中子).一切都很好,但由于我不知道的原因渲染结果是像素化的.

当前版本基本上看起来像(这个图像是~400px宽): 结果示例

我检查了所有明显的事情:传递错误的分辨率,浏览器缩放等等.

你可以在这个小提琴上看到这个问题,并在这里下载网页.

这里还有代码的重要部分:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <script src="js/jquery.js"></script>
    <script src="js/coffee-script.js"></script>
    <script src="js/three.js"></script>
    <script src="js/OrbitControls.js"></script>
    <script src="js/animtest/load_event.js"></script>
    <style>canvas { width: 100%; height: 100% }</style>
    <title></title>

</head>
<body>
<div id="animation"
    style="width: 1024px; height: 768px; ">

</div>
<script>
    $(function(){
       ctrl = new AnimController("#animation");
       ctrl.set_up_scene();
       ctrl.render();
       ctrl.display_frame(4);
    });
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是加载动画的coffeescript代码:

class AnimController

  ...

  set_up_scene: () ->
    @scene = new THREE.Scene()
    el = $(@element_name)
    @camera = new THREE.PerspectiveCamera(45
      el.width()/el.height(), …
Run Code Online (Sandbox Code Playgroud)

javascript webgl three.js

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

使用yaml自动生成配置和具有数字ID的实体时出现Google App Engine批量加载程序问题

我的应用程序使用Django非rel.我无法访问模型.

我的bulkloader.yaml文件是自动生成的appcfg.py create_bulkloader_config.

问题是实体数字ID被导入为字符串键名.因此,如果我导出具有int ID的实体,例如'62',它将作为实体导入,其字符串键名为'61',这会搞砸Django.

Revelant bulkloader.yaml片段:

 property_map:
  - property: __key__
    external_name: key
    export_transform: transform.key_id_or_name_as_string
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用bulkloader设置下载/上传od数据,我希望数据具有易于理解的格式(如.csv)---因此使用bulkloader.py --dump (...)不是一个可行的选项,因为它给了我带有实体内容的sqlite3文件腌成一排.

编辑

我尝试做@Nick建议的事情,我得到了一个例外:

 ErrorOnTransform: Numeric keys are not supported on input at this time.
Run Code Online (Sandbox Code Playgroud)

这是否意味着我必须坚持bulkloader.py(使用那个werid sqlite格式)或者我搞砸了什么?;)

变压器的标题:

- kind: auth_user
    connector: csv
    connector_options:
      encoding: utf-8
      skip_import_header_row: True
      print_export_header_row: True

    property_map:
      - property: __key__
        external_name: key
        export_transform: transform.key_id_or_name_as_string
        import_transform: transform.create_foreign_key('auth_user', key_is_id=True) 
Run Code Online (Sandbox Code Playgroud)

整个Stacktrace:

      Traceback (most recent call last):
      File "/opt/google/appengine/google/appengine/tools/adaptive_thread_pool.py", line 150, in …
Run Code Online (Sandbox Code Playgroud)

python django google-app-engine django-nonrel bulkloader

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

使用python将文件加载到numpy数组中

所以我对Python非常环保,并试图通过复制我编写的一些matlab代码来学习.我有一个部分,在matlab中,我加载了一个制表符分隔的数据文件.语法

x = load(data.txt)
Run Code Online (Sandbox Code Playgroud)

获取制表符分隔的数据并将其放入标记为x的矩阵的单元格中.

有没有办法在python中执行此操作,但使用逗号分隔的数据?

python csv file-io numpy

5
推荐指数
2
解决办法
4万
查看次数

Uwsgi 失败并显示:Py_Initialize:无法获取区域设置编码

我已经使用 NGIX 和 django 配置了 uWSGI。

Uwsgi 失败并显示消息:

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named encodings
Run Code Online (Sandbox Code Playgroud)

python django uwsgi

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

在调用ipython配置文件后,未创建ipython_notebook_config.py

我已经安装在虚拟enviorment全新的IPython,之后,我试图通过创建配置文件:ipython profile create但是ipython_notebook_config.py没有创建,而ipython_config.pyipython_nbconvert_config.py被创造.

我该怎么做才能创建这个文件?

ipython ipython-notebook

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