假设我有一个包含控制台脚本的包,例如
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使用它?
我完全坚持这是一个优秀的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)