我正在使用 setup_tools 和 setup.py 来分发工具包。用户看到的包的表面是使用 console_scripts 入口点安装的命令行脚本的集合。
我想要一个额外的脚本,用户可以执行该脚本来查看包已安装的 console_scripts 列表。
有没有原则性的方法来做到这一点?一种简单的方法是从 setup.py 中的“console_scripts”条目复制列表,但这很容易出错,因为修改包时必须更新列表。
我当前的解决方案是实际读取 setup.py 脚本并解析 console_scripts 条目。这看起来不像Pythonic。
因此我的问题是是否有一个原则性的方法可以做到这一点。谢谢!
当我从函数中返回a时std::lock_guard,std::pair我会得到可怕的错误.但是当我将它打包成一个类时,我没有任何问题(编译并按预期工作).我不明白为什么.细节如下:
我设计了一个小模板类,以便方便地锁定和解锁共享对象.它不是特别创新,但C++ 17允许它非常紧凑并且代码读/写友好:
template <typename T> class Locked {
public:
Locked(T& _object, std::mutex& _mutex)
: object(_object)
, lock(_mutex)
{
}
T& object;
std::lock_guard<std::mutex> lock;
};
template <typename T> class Lockable {
public:
Locked<T> borrow() { return Locked(object, mutex); }
Locked<const T> borrow() const { return Locked(object, mutex); }
private:
T object;
mutable std::mutex mutex;
};
Run Code Online (Sandbox Code Playgroud)
它可以像:
int main()
{
Lockable<std::vector<int>> lv;
auto [vec, lock] = lv.borrow();
std::cout << vec.size() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这个.这Locked堂课很瘦.我以为我可以使用std::pair …