小编Ste*_*coe的帖子

"package === version"形式的setuptools要求的目的是什么

假设我有一个包含控制台脚本的包,例如

from setuptools import setup
setup(
    name='eg_package',
    version='0.0.1',
    description='Trivial test package',
    packages=[
       'eg_package',
    ],
    entry_points={
        'console_scripts': [
            'foo = eg_package.main:main',
        ]
   },
)
Run Code Online (Sandbox Code Playgroud)

如果我使用egg_info -b mytag生成的脚本设置和显式构建标记__requires__ = 'eg-package===0.0.1mytag',即使用3"="符号.当标签不像b1测试版那样传统时,会发生这种情况.

起初我认为这是一个错误,但setuptools文档表明它是一个有效的需求标识符.但是,它不适用于旧版本的setuptools,这会导致我们的系统出现问题.

我的问题是什么"==="意思,为什么现代setuptools使用它?

python setuptools

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

一般类型组合的可遍历实例

我完全坚持这是一个优秀的Haskell编程书的练习.

给定以下类型组合的新类型以及Functor和Applicative的实例,编写一个实例Traversable (Compose f g).

newtype Compose f g a =
  Compose { getCompose :: f (g a) }
  deriving (Eq, Show)

instance (Functor f, Functor g) => Functor (Compose f g) where
  fmap f (Compose fga) = Compose $ (fmap . fmap) f fga

instance (Applicative f, Applicative g) => Applicative (Compose f g) where
  pure = Compose <$> pure . pure
  Compose f <*> Compose x =
    Compose $ ((<*>) <$> f) <*> x …
Run Code Online (Sandbox Code Playgroud)

haskell types composition

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

标签 统计

composition ×1

haskell ×1

python ×1

setuptools ×1

types ×1