小编cul*_*rón的帖子

如何在Git中跟踪子模块的配置文件?

在Git中,我如何组织工作来跟踪库的本地配置文件,这是一个git子模块?

详情如下:

该库具有被跟踪的普通文件,以及位于其文件夹中但未被跟踪的默认配置文件,以避免重置或覆盖它们(它们在.gitignore中列出).所有文件都在lib的文件夹或子文件夹中.

我开始在Git中跟踪其中一个使用此库的项目.现在有一个两难的境地:

  • 如果我将这个项目中的lib作为一个子模块,我将无法跟踪配置文件(Git将忽略它们,因为它们位于子模块文件夹中).

  • 正如我所理解的那样,将一切作为一个大项目跟踪是一个坏主意.

  • 如果我跟踪库中的配置文件,我怎么能避免重置它们为默认值?我是否在工作项目中分支并且每次都从主人那里拉出来?那么,如果我编辑库和配置文件呢?这必然会导致合并冲突,不是吗?

我想这不是新的,但我找不到任何建议.我很感激从你的经验中学习.

git version-control git-submodules

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

一个带有模板和缓存的客户端JS框架?

我在服务器端使用node.js,express.js和jade.我编写了一个小的包装函数来填充客户端的jade模板.我想我会在客户端使用requireJS和jQuery,但还没有决定.现在,我必须多次完成的任务是

  • 获取模板(从服务器或缓存)
  • 从服务器获取数据
  • 填充模板并将其插入/替换为元素

注意:有大量的模板引擎,我的问题不是关于模板引擎,而是关于简单的工作流程.

我必须这样做:

var get_data = function (tpl) {
    $.get(url, function(data) {
        $('#target_element').html(jade.render(tpl, {locals: data}));
    });
};

if (!'template_name' in _cache) {
    $.get('template_name', function(tpl) {
        _cache['template_name'] = tpl;
        get_data(tpl);
    });
}
else {
    get_data(_cache['template_name']);
}
Run Code Online (Sandbox Code Playgroud)

(在这个例子中,模板和数据是同步获取的,这不太好)

我想要这样的代码:

render_template('template_name', 'url?arguments=values', {replace: '#element_id'});
Run Code Online (Sandbox Code Playgroud)

(它与MongoDB语法类似)

是否有一个简单的框架或jquery模块来完成这项工作?

javascript templates pug

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

Python 中的猴子补丁会影响直接导入吗?

如果我猴子修补一个模块:

# mokeypatch.py
import other_module

def replacement(*args, **kwargs):
    pass

other_module.some_func = replacement
Run Code Online (Sandbox Code Playgroud)

这会影响直接导入的模块some_func,还是取决于导入的顺序?如果第三个模块是这样的:

# third_module.py
from other_module import some_func
Run Code Online (Sandbox Code Playgroud)

首先,运行此代码,然后运行我们的猴子补丁。会third_module.some_func是旧的吗?

python import namespaces monkeypatching

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

jQuery不会使用跨域脚本触发错误回调

这是我的代码.它试图加载Leaflet库.当我将crossDomain选项转到时true,不会触发错误回调.当我将该选项设置为false时,会触发错误回调,但它无法下载js,因为它是跨域的.

为什么这么难?这有什么解决方案吗?有一个图像占位符而不是Web地图(最初不加载它并节省页面加载时间),当用户激活地图时,应加载js.但如果失败,我想显示正常的错误消息和重试按钮.

$.ajax({
    url: 'http://code.leafletjs.com/leaflet-0.3.1/leaflet.js',
    success: start_map,
    error: show_map_error,
    dataType: 'script',
    crossDomain: true
});
Run Code Online (Sandbox Code Playgroud)

更新:我试过complete回调,它也不起作用.

update2:同样适用于crossdomain $.getScript(...).fail(...).

ajax jquery cross-domain

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

为什么浏览器显示的图标较小?

在我们客户的网站中,favicon.ico文件有从 8x8 到 32x32 的多种尺寸。我希望 16x16 显示在浏览器选项卡中,但它在白框中显示 8x8 图标。为什么会发生这种情况以及有哪些解决方法?

favicon icons

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

Pprint模块在32位系统中与Django一起工作缓慢

我在使用Python 2.7的32位Ubuntu机器上使用Django.我的开发服务器一直很慢,大约需要15秒来渲染任何页面.我运行了一个cProfile测试,看看它的运行速度如此之慢.

似乎它是pprint模块.

这是我的统计数据:

ncalls       tottime percall cumtime percall filename:lineno(function)
272605/48718  24.238       0  49.213   0.001 pprint.py:247(_safe_repr)
Run Code Online (Sandbox Code Playgroud)

这是我的同事运行64位OS X:

14531/5334    1.016    0.000    2.199    0.000 pprint.py:247(_safe_repr)
Run Code Online (Sandbox Code Playgroud)

同时我必须关闭调试模式才能正常使用dev服务器.

这是分析脚本:

from cProfile import Profile
from django.test.client import Client
import Cookie
cl = Client()
cl.cookies = Cookie.SimpleCookie({'sessionid':'7344ebeba093b65c1d59a9d7583f60bc'})
p = Profile()
p.runctx("c.get('/welcome/')", globals={'c': cl}, locals={})
p.print_stats()
Run Code Online (Sandbox Code Playgroud)

(sessionid cookie用于显示您需要登录的页面.)

我不确定32位系统是主要原因.

主要问题是:为什么pprint._safe_repr在Python 2.7 32位和64位快速中如此之慢?如果我可以设置一些东西,使它快速.

python django performance profiling

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

如何读取 Sphinx 扩展节点中的 conf.py 设置?

from docutils.parsers.rst.directives.images import Figure
class MyFigure(Figure):
    def run(self):
        # here I need to read the 'thumbnails_folder' setting
        pass

def setup(app):
    app.add_config_value('thumbnails_folder', '_thumbnails', 'env')
Run Code Online (Sandbox Code Playgroud)

如何访问 中的配置值.run()?我阅读了 Sphinx-contrib 的来源,但没有看到以我的方式完成的事情,所以他们conf.py以我不能的方式访问。或者我应该以不同的方式来做?

我想做的就是翻译这个

.. figure:: image/image.jpg
Run Code Online (Sandbox Code Playgroud)

进入这个:

.. image:: image/thumbnails/image.jpg
   :target: image/image.jpg
Run Code Online (Sandbox Code Playgroud)

这是扩展代码

(缩略图是用 PIL 生成的)。并将其:target:放入可下载的文件中(如我所见,只有构建器实例才能执行此操作)。

python configuration-files python-sphinx

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

应用装饰器时如何保持帮助字符串相同?

在应用装饰器后,如何让函数中的帮助字符串保持可见?

现在,doc字符串被(部分)替换为装饰器的内部函数.

def deco(fn):
    def x(*args, **kwargs):
        return fn(*args, **kwargs)
    x.func_doc = fn.func_doc
    x.func_name = fn.func_name
    return x

@deco
def y(a, b):
    """This is Y"""
    pass

def z(c, d):
    """This is Z"""
    pass

help(y) # 1
help(z) # 2
Run Code Online (Sandbox Code Playgroud)

在Y函数中,帮助中不显示必需的参数.用户可以假设它接受任何参数,而实际上它没有.

y(*args, **kwargs) <= y(a, b) is desired
    This is Y

z(c, d)
    This is Z
Run Code Online (Sandbox Code Playgroud)

我用help()dir()了很多,因为它比PDF手册快,想为我的图书馆和工具,可靠的文档字符串,但这是一个障碍.

python documentation decorator

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

Python 中浮点到整数的转换速度更快

根据 timeit 统计,下面是我的程序中花费最多时间的一段代码。将 [-1.0, 1.0] 区间内的浮点数转换为无符号整数 [0, 2**32] 是一个脏函数。我怎样才能加速floatToInt

piece = []
rng = range(32)
for i in rng:
    piece.append(1.0/2**i)

def floatToInt(x):
    n = x + 1.0
    res = 0
    for i in rng:
        if n >= piece[i]:
            res += 2**(31-i)
            n -= piece[i]

    return res
Run Code Online (Sandbox Code Playgroud)

python floating-point binary-data

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

如何在不制作产品的情况下进行嵌套列表理解?

在Python中,我想列出一组目录中的所有文件.我想得到的最好的是一个列表.但最多我设法制作了一个嵌套列表:

pics = os.path.expanduser('~/Pictures')
all_pics = [(d, os.listdir(d)) for d in os.listdir(pics)]
Run Code Online (Sandbox Code Playgroud)

结果:

[('folder1', ['file1', 'file2', ...]), ('folder2', ['file1', ...]), ...]
Run Code Online (Sandbox Code Playgroud)

我想要的是:

[('folder1' 'file1'), ('folder1', 'file2'), ..., ('folder2', 'file1'), ...]
Run Code Online (Sandbox Code Playgroud)

我想得到的是一个简单的普通列表,无论是什么(可以是元组),只是为了它没有嵌套的东西,我在解析它的代码中不需要嵌套循环.

如何使用列表推导来完成此操作?这样做给了我2套(目录名和文件名)的产品,这是错误的:

[(d, f) for f in os.listdir(os.path.join(pics, d)) for d in os.listdir(pics)]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

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