在github中有没有办法让wiki的标题基于标记?我找到了另一个使用markdown的项目,其中Home.md wiki页面的标题来自该文件.作者也可以使用Web界面,并使页面标题与降价相同.那个项目在这里:
https://github.com/sitaramc/gitolite/wiki
当我尝试使用restructuredtext(Home.rest)使用='的下划线做同样的事情时,标题最终会被忽略,甚至不会在渲染页面中显示.使用降价时也会发生同样的事情.
我一直在玩Cython以准备其他工作.我尝试了一个简单的测试用例,并注意到我的代码执行更大问题大小的方式有些奇怪.我创建了一个简单的最小/最大函数,用于计算2D float32数组的最小值和最大值,并将其与运行进行比较numpy.min(a), numpy.max(a).对于10000个元素的数组,性能类似.对于1000000个元素的数组,cython表现得更糟.这是我的cython代码:
import numpy
cimport cython
cimport numpy
DTYPE = numpy.float32
ctypedef numpy.float32_t DTYPE_t
@cython.boundscheck(False)
@cython.wraparound(False)
def minmax_float32(numpy.ndarray[DTYPE_t, ndim=2] arr):
cdef DTYPE_t min = arr[0, 0]
cdef DTYPE_t max = arr[0, 0]
cdef int row_max = arr.shape[0]
cdef int col_max = arr.shape[1]
cdef int x, y
for y in range(row_max):
for x in range(col_max):
if arr[y, x] < min:
min = arr[y, x]
if arr[y, x] > max:
max = arr[y, x]
return min, max
Run Code Online (Sandbox Code Playgroud)
这是我在ipython中完成的简单时间:
a …Run Code Online (Sandbox Code Playgroud) 我正在尝试重新组织我的python包版本控制,所以我只需要在一个地方更新版本,最好是python模块或文本文件.对于我需要我的版本的所有地方,似乎有一种方法从源加载它from mypkg import __version__或至少将其作为文本解析出文件.我似乎找不到使用我的conda meta.yaml文件的方法.有没有办法从meta.yaml文件中的外部源加载版本?
我知道有git环境变量,但我不想标记通过本地conda存储库测试的每个alpha/beta/rc提交.我可以使用!!python/objectpyyaml 加载python对象,但是conda不支持任意python执行.我没有看到任何其他jinja2功能的方法.我还可以编写一个脚本来更新多个版本号,但我真的希望只修改一个文件作为最终版本号.谢谢你的帮助.
我有一个可能长期运行的程序,目前有4个进程,但可以配置为有更多.我已经使用python 研究了来自多个进程的日志记录,logging并且使用了此处讨论的SocketHandler方法.我没有任何问题只有一个记录器(没有套接字),但从我读到的,我被告知它最终会出乎意料地失败.据我所知,当你尝试同时写入同一个文件时会发生什么.我的代码基本上做了以下事情:
import logging
log = logging.getLogger(__name__)
def monitor(...):
# Spawn child processes with os.fork()
# os.wait() and act accordingly
def main():
log_server_pid = os.fork()
if log_server_pid == 0:
# Create a LogRecordSocketServer (daemon)
...
sys.exit(0)
# Add SocketHandler to root logger
...
monitor(<configuration stuff>)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:我需要log在每个之后创建一个新对象os.fork()吗?现有的全局log对象会发生什么?
通过按照我的方式做事,我是否能解决我想要避免的问题(多个打开的文件/套接字)?这会失败吗?它为什么会失败(我希望能够判断未来类似的实现是否会失败)?
此外,log=从多个进程登录到一个文件的"正常"(一种表达式)方法以何种方式失败?它是否引发IOError/OSError?或者它只是没有完全写入文件的数据?
如果有人可以提供答案或链接来帮助我,那就太好了.谢谢.
仅供参考:我正在Mac OS X Lion上进行测试,代码可能最终会在Windows机器上的CentOS 6 VM上运行(如果这很重要).无论我使用什么解决方案都不需要在Windows上工作,但应该在基于Unix的系统上工作.
更新:这个问题已经开始摆脱日志记录的特定行为,而且更多的是linux在forks期间使用文件描述符做什么.我拿出了我的一本大学教科书,似乎如果你从两个进程(不是在一个分支之前)以附加模式打开一个文件,只要你的写入不超过它们,它们都能够正确地写入文件实际的内核缓冲区(虽然可能需要使用行缓冲,但仍然不确定).这将创建2个文件表条目和一个v节点表条目.打开一个文件,然后分叉不应该工作,但似乎只要你没有像以前那样超过内核缓冲区(我在之前的程序中完成).
所以我想,如果你想独立于平台的多处理记录您使用的插座,并创建一个新的SocketHandler每个叉后是安全的Vinay以下建议(应该在任何地方工作).对我而言,由于我可以很好地控制运行我的软件的操作系统,我想我将使用一个log带有FileHandler的全局对象(默认情况下以附加模式打开,并在大多数操作系统上缓冲行).为文档 …
我在重写同事IDL代码为蟒蛇的过程和我想出一些差异,我很困惑.根据我发现的其他SO问题和邮件列表线程,如果你使用scipy.ndimage.interpolation.map_coordinates并指定order=1它应该进行双线性插值.当比较IDL代码(在GDL中运行)和python(map_coordinates)之间的结果时,我得到了不同的结果.然后我尝试使用mpl_toolkits.basemap.interp,我得到了与IDL代码相同的结果.下面是一个显示错误的简单示例.有人可以帮我弄清楚我做错了什么map_coordinates或order=1不是双线性的?
from scipy.ndimage.interpolation import map_coordinates
from mpl_toolkits.basemap import interp
import numpy
in_data = numpy.array([[ 25.89125824, 25.88840675],[ 25.90930748, 25.90640068]], dtype=numpy.float32)
map_coordinates(in_data, [[0.0],[0.125]], order=1, mode='nearest')
# map_coordinates results in "25.89090157"
interp(in_data, numpy.array([0,1]), numpy.array([0,1]), numpy.array([0.0]), numpy.array([0.125]), order=1)
# interp results in "25.89351439", same as GDL's "25.8935" when printed
Run Code Online (Sandbox Code Playgroud)
我很好用interp,但我很好奇为什么map_coordinates没有返回相同的结果.我注意到map_coordinates文档没有提到双线性,它实际上是双线性的吗?我错过了什么?
python interpolation scipy idl-programming-language matplotlib-basemap
我有一个 sphinx 文档项目,用于生成文档的HTML ( make html) 和 PDF ( ) 版本。make latexpdf我使用子目录来组织一些页面。我的目录结构是这样的:
source/
index.rst
page1.rst
subsection1/
index.rst
subpage1.rst
Run Code Online (Sandbox Code Playgroud)
我在两个 index.rst 文件中都指定了一个目录树:
# index.rst
.. toctree::
page1
subsection1/index
# subsection1/index.rst
.. toctree::
subpage1
Run Code Online (Sandbox Code Playgroud)
当我生成 HTML 时,该subsection1/index页面具有目录列表,其中包含指向相应页面的链接。当我生成乳胶 PDF 时,它会忽略子目录树并且不打印任何内容,但我希望它与 HTML 相同。
我对乳胶没有太多经验,而且我在网上找不到任何关于这方面的信息,所以我觉得我错过了一些明显的东西。我已经研究过.. contents::,.. include::但当然这不会产生我想要的 HTML,我希望我不需要有大量的.. only::部件。
我已经重写了从C到Cython的算法,所以我可以利用融合类型,并使从python调用更容易.该算法可以使多个数组与其他一些参数一起工作.数组被接受为指针指针(例如).我想我会通过提供多个数组作为numpy数组的元组来从python调用cython代码,但要做到这一点会使融合类型变得混乱.这是我现在如何工作的一个简单示例:
import numpy
cimport numpy
ctypedef fused test_dtype:
numpy.float32_t
numpy.float64_t
cdef int do_stuff(test_dtype **some_arrays):
if test_dtype is numpy.float32_t:
return 1
elif test_dtype is numpy.float64_t:
return 2
else:
return -1
def call_do_stuff(tuple some_arrays):
cdef unsigned int num_items = len(some_arrays)
cdef void **the_pointer = <void **>malloc(num_items * sizeof(void *))
if not the_pointer:
raise MemoryError("Could not allocate memory")
cdef unsigned int i
cdef numpy.ndarray[numpy.float32_t, ndim=2] tmp_arr32
cdef numpy.ndarray[numpy.float64_t, ndim=2] tmp_arr64
if some_arrays[0].dtype == numpy.float32:
for i in range(num_items):
tmp_arr32 = some_arrays[i]
the_pointer[i] = …Run Code Online (Sandbox Code Playgroud)