更大的图景是我正在尝试使用Stackage的>>> class SimpleRepr(type):
... def __repr__(cls):
... return cls.__name__
...
>>> class Side(metaclass=SimpleRepr): pass
...
>>> class Left(Side): pass
...
>>> class Right(Side): pass
...
>>> { Left: 3, Right: 7 }
{Left: 3, Right: 7}
包(见8.1)。虽然,我有一个问题;该程序包缺少编译器标志,如this issue on GitHub中所述。因此,它没有正确构建。
但是,如果我克隆存储库,我可以将缺少的编译器标志添加到.cabal文件并自己构建它,这解决了这个问题。我现在有一个工作版本的包。
所以我的问题是:我如何在一个单独的项目中使用我自己的class Side(object):
__slots__ = ('name',)
def __init__(self, name):
self.name = name
def __repr__(self):
return self.name
Left = Side('Left')
Right = Side('Right')
包的工作版本,而不是Stackage中的版本?
答案 0 :(得分:4)
使用Stack有几种方法可以做到这一点。我最喜欢的,听起来非常适合您的场景,是使用您的fork将存储库上传到GitHub(或者您认为合适的任何其他位置),然后将对在线存储库的引用添加为{{1} } extra-dep
的{{3}}。为了便于说明,这里是我的项目的stack.yaml
部分,我必须这样做:
packages