在Git中,我如何组织工作来跟踪库的本地配置文件,这是一个git子模块?
详情如下:
该库具有被跟踪的普通文件,以及位于其文件夹中但未被跟踪的默认配置文件,以避免重置或覆盖它们(它们在.gitignore中列出).所有文件都在lib的文件夹或子文件夹中.
我开始在Git中跟踪其中一个使用此库的项目.现在有一个两难的境地:
如果我将这个项目中的lib作为一个子模块,我将无法跟踪配置文件(Git将忽略它们,因为它们位于子模块文件夹中).
正如我所理解的那样,将一切作为一个大项目跟踪是一个坏主意.
如果我做跟踪库中的配置文件,我怎么能避免重置它们为默认值?我是否在工作项目中分支并且每次都从主人那里拉出来?那么,如果我编辑库和配置文件呢?这必然会导致合并冲突,不是吗?
我想这不是新的,但我找不到任何建议.我很感激从你的经验中学习.
我在服务器端使用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模块来完成这项工作?
如果我猴子修补一个模块:
# 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是旧的吗?
这是我的代码.它试图加载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(...).
在我们客户的网站中,favicon.ico文件有从 8x8 到 32x32 的多种尺寸。我希望 16x16 显示在浏览器选项卡中,但它在白框中显示 8x8 图标。为什么会发生这种情况以及有哪些解决方法?
我在使用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位快速中如此之慢?如果我可以设置一些东西,使它快速.
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:放入可下载的文件中(如我所见,只有构建器实例才能执行此操作)。
在应用装饰器后,如何让函数中的帮助字符串保持可见?
现在,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手册快,想为我的图书馆和工具,可靠的文档字符串,但这是一个障碍.
根据 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中,我想列出一组目录中的所有文件.我想得到的最好的是一个列表.但最多我设法制作了一个嵌套列表:
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 ×6
ajax ×1
binary-data ×1
cross-domain ×1
decorator ×1
django ×1
favicon ×1
git ×1
icons ×1
import ×1
javascript ×1
jquery ×1
namespaces ×1
performance ×1
profiling ×1
pug ×1
templates ×1