小编Dan*_*rro的帖子

指定在哪里安装distribute/setuptools包的'tests_require'依赖项

当我运行setup.py中python setup.py test列出的依赖项时tests_require,会将其下载到当前目录.我想在site-packages中安装这些依赖项,就像python setup.py install我运行时列出的依赖项一样requires.

python testing setuptools distribute

42
推荐指数
3
解决办法
2万
查看次数

Sphinx代码块中的替换

在这个reST示例意味着由Sphinx呈现,| yaco_url | 不会被替换,因为它在代码块中:

.. |yaco_url| replace:: http://yaco.es/

You can use wget to download it:

.. code-block:: console

    $ wget |yaco_url|package.tar.gz
Run Code Online (Sandbox Code Playgroud)

我想知道是否有某种方法可以强制更换| yaco_url | 在渲染代码块之前.

python restructuredtext python-sphinx

30
推荐指数
2
解决办法
3732
查看次数

避免使用没有monad变换器的case表达式梯形图

真实世界 中,引入Haskell monad作为一种避免代码通过使用Maybemonad 从屏幕右侧移动的方法.然而,当case语句包括其他单子像发生了什么Either或者IO,例如?

我知道使用monad变换器可以避免使用梯子,但是它们不仅仅是因为风格问题而过度杀伤吗?是否有其他惯用和轻量级的方法来处理这个?

更新:这是一个例子:

stair s = do
    s <- getLine
    case stepMaybe s of
         Nothing -> return ()
         Just s1 -> case stepEither s1 of
                         Left  _  -> return ()
                         Right s2 -> case stepList s2 of
                                          [s3:_] -> case stepMaybe s3 of
                                                         Nothing -> return ()
                                                         Just s4 -> print s4
                                          _      -> return ()
Run Code Online (Sandbox Code Playgroud)

haskell coding-style monad-transformers

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

显示中间状态时的映射

我需要一个执行此操作的函数:

>>> func (+1) [1,2,3]
[[2,2,3],[2,3,3],[2,3,4]]
Run Code Online (Sandbox Code Playgroud)

我的实际案例更复杂,但这个例子显示了问题的要点.主要的区别在于,实际上使用索引是不可行的.本List应该是一个TraversableFoldable.

编辑:这应该是功能的签名:

func :: Traversable t => (a -> a) -> t a -> [t a]
Run Code Online (Sandbox Code Playgroud)

更接近我真正想要的是相同的签名,traverse但无法弄清楚我必须使用的功能,以获得所需的结果.

func :: (Traversable t, Applicative f) :: (a -> f a) -> t a -> f (t a)
Run Code Online (Sandbox Code Playgroud)

haskell traversable

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

Python中的字符串覆盖优化

我有这个初始字符串.

'bananaappleorangestrawberryapplepear'
Run Code Online (Sandbox Code Playgroud)

并且还有一个带字符串的元组:

('apple', 'plepe', 'leoran', 'lemon')
Run Code Online (Sandbox Code Playgroud)

我想要一个函数,以便从最初的字符串和带有字符串的元组我得到这个:

'bananaxxxxxxxxxgestrawberryxxxxxxxar'
Run Code Online (Sandbox Code Playgroud)

我知道如何通过在每个单词的初始字符串中找到单词然后在所有带有替换单词的初始字符串中逐字符循环来强制执行.

但它不是非常有效和丑陋.我怀疑应该有一些方法可以通过itertools或其他东西以功能的方式更优雅地完成这项工作.如果您知道可以高效执行此操作的Python库,请告诉我们.

更新:贾斯汀皮尔指出我在最初的问题中没有描述的案例.如果一个单词是'aaa'并且'aaaaaa'在初始字符串中,则输出应该看起来像'xxxxxx'.

python string optimization functional-programming python-itertools

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

在基本monad中将代理与不同的EitherT组合在一起

例如,有......

consumer :: Proxy p => () -> Consumer p a (EitherT String IO) ()
producer :: Proxy p => () -> Producer p a (EitherT ByteString IO) r
Run Code Online (Sandbox Code Playgroud)

......我该如何工作?

session :: EitherT ByteString (EitherT String IO) ()
session = runProxy $ producer >-> consumer
Run Code Online (Sandbox Code Playgroud)

:我读过混合基地单子Control.Proxy.Tutorial.我得到了第一个例子,但无法理解人为的例子.更多的例子,不是那么明显但不那么做作,可能会澄清如何使用hoistlift匹配任何基础monad的组合.

haskell proxies haskell-pipes

4
推荐指数
3
解决办法
479
查看次数

何时使用'ioError.userError'而不是'error'

在阅读network的源代码时,我注意到ioError (userError ("Error description"))在IO操作期间引发错误的广泛使用.

由于这不是我第一次看到这个,我想知道使用这个模式而不是函数的实践有什么不同.errorPrelude

我知道,ioError . userError引发IOExceptionIO单子,同时error提出了一个ErrorCall在任何地方,但最终双方似乎注定中止显示一个简单的错误消息的程序.

哪种情况ioError . userError会有利error

error-handling haskell

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

使用类型族来避免MPTC中的显式类型参数

我想知道是否有任何方法(可能使用Type Families)Buildable使用build方法定义类型类,以便这样的东西可以工作:

>>> import qualified Data.ByteString.Builder as B (Builder)
>>> import qualified Data.Text.Lazy.Builder as T (Builder)

>>> -- This should internally use `int8` from `Data.ByteString.Builder`:
>>> build (8::Int8) :: B.Builder

>>> -- This should internally use `decimal` from `Data.Text.Lazy.Builder`:
>>> build (8::Int8) :: T.Builder

>>> -- If no concrete type is specified, I'd expect something like this:
>>> :t build (8::Int8)
GBuilder Int8
Run Code Online (Sandbox Code Playgroud)

我知道如何使它与MPTC一起工作,但我必须明确定义要构建的值的类型和构建器的类型.有没有办法让类型系统自动选择预期的类型而不显式传递它?

haskell type-families

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

用于检查Python序列中的多个元素的样式

我经常发现自己编写这样的代码:

tupla = (1, 2, 3, 4)
if (1 in tupla) and (4 in tupla):
    ...
Run Code Online (Sandbox Code Playgroud)

是否有任何Pythonic方式可以更紧凑地编写这个,而无需输入tupla两次?

python coding-style

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