我正在使用 argparse 从命令行获取日志记录级别,然后将其作为 logging.basicConfig 的输入传递。但是,我试图实现这一点的方式不起作用。有什么建议吗?
期望行为,来自命令行:
python main.py -log=DEBUG
Run Code Online (Sandbox Code Playgroud)
欲望输出
DEBUG:__main__: Debug is working
Run Code Online (Sandbox Code Playgroud)
代码
import logging
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-log", "--log", nargs='+', help="Provide logging level. Example --log debug'")
log_level = parser.parse_args().log
log_level = 'logging.'+log_level[0]
print(log_level)
logging.basicConfig(level=log_level)
logger = logging.getLogger(__name__)
logger.debug(' Debug is working')
Run Code Online (Sandbox Code Playgroud) 问题描述:你编写了一个包含一些算法/任务的库,这些算法/任务可能需要很长时间才能完成,原因有多种:计算,文件系统,网络通信等.你希望能够:
我为此实现了一个框架,但是这要求所有这些任务都必须引用包含该框架的程序集.
我的问题:在.NET框架(3.5或更低版本)中是否存在针对上述问题的内置机制?
我知道我可以使用事件,但这意味着长时间运行的任务必须暴露这些事件,我认为这是一个开销.理想情况下,我希望有一个隐藏多线程问题的框架,并且依赖注入友好,但不依赖于额外的自定义程序集,也不会污染原始接口.
我希望我能很好地描述这个问题.如果没有,我可以从我自己的框架发布一些接口样本.
更新:好的,我认为我的问题描述需要一点澄清:).当我说"长期运行"时,我并不是说工作流程意义上的"长".我正在开发一个WinForms地图应用程序,可以完成各种各样的工作,比如生成浮雕轮廓.要做到这一点,首先必须从FTP服务器下载高程数据文件,解压缩然后执行一些计算.我很久以前就为此编写了代码,但为了使其更适合GUI,我必须改进各种检查 - 例如,检测用户是否点击了中止按钮并停止了该过程.
所以基本上我关心的是:如何编写一个稍后(如果有的话)可以在GUI环境中使用的代码,在那里你不能简单地在主GUI线程中运行所有内容并冻结整个应用程序.面临的挑战是找到一种方法,使您的代码适合GUI目的,而无需将其绑定到特定的GUI平台.
c# user-interface multithreading synchronization asynchronous
我已经开始使用protobuf-net lib在我正在维护的一些程序之间进行通信.我也能够将C#中的消息解码为Ruby.我的ruby ProtoBuf lib使用.proto文件生成ruby代码.为了不得不在尽可能少的地方进行更改,我希望protobuf-net使用相同的.proto文件.虽然看起来protobuf-net文件夹有一个名为ProtoBufGenerator和protobuf exe的Dll,但我无法找到任何关于我是否可以通过这种方式使protobuf-net工作的指令.
这可能吗?
我正在尝试为Windsor Castle汇集一份好的文档资源列表(除了分析它的源代码).我对有关流畅配置API的文档特别感兴趣.这就是我发现自己:
随意添加更多...
更新:看起来我误解了TempData的用途以及它不是什么.它绝对不应该用于"保留某些会话范围的数据",正如我最初所要求的那样(参见ASP.NET MVC TempData是Really RedirectData的原因).我已经相应地修改了这个问题.
有没有人使用CookieTempDataProvider进行TempData存储?是否有任何需要注意的警告(除了保持会话存储空间小)?在Web场上使用它有任何问题吗?
有没有办法告诉NHibernate在[MyColumn]为MS SQL Server生成SQL模式导出时为所有表名和列名(如)使用方括号?我有一个遗留数据库,它使用某些列的保留名称,并且运行使用NH生成的SQL脚本会因此而抛出错误.
我想避免为每列单独指定它.
更新:我正在使用正确的方言:
MsSqlConfiguration.MsSql2008.ConnectionString(connectionString)
Run Code Online (Sandbox Code Playgroud)
更新2:@UpTheCreek指出了正确的方向 - 反引号,这帮助我找到了" NHibernate in Action "一书中的答案(第76页):
除了引用反引号中的所有表名和列名之外,没有办法强制NHibernate在任何地方使用带引号的标识符.
我正在使用矢量地图编辑器,我有一组元素,每个元素都在视图中指定其边界框.当鼠标移动时,我想突出显示第一个元素,其边界框包含当前鼠标位置.现在我使用一个简单的列表并通过它,但由于元素的数量可能会增加,当前搜索算法的O(n)复杂性对于交互式应用程序将是有问题的.
什么是更好的算法/数据结构?
一些额外的约束/要求:
algorithm geometry vector-graphics computational-geometry data-structures
我正在尝试以编程方式从Enterprise Architect模型中提取信息(保存在XMI文件中) - 我需要它来生成一些报告,但我不想创建EA加载项.在任何地方都有C#XMI解析器库吗?
我当然可以从其XML模式生成XMI解析代码,但这将是我的第二个选择.
假设我有一个Web应用程序实现像一组向导页面来编辑复杂对象.在用户单击"完成"按钮之前,对象不会保存到后端系统(需求),因此在此期间我必须在某种会话状态下保留有关对象的全部信息.
此外,某些向导页面必须显示具有可能大量项目的组合框和列表框.使用Web服务从后端系统获取这些项目.
巧合的是,该向导允许用户从一个向导页面自由跳转到任何其他页面(使用表单顶部的选项卡链接),因此它不是一个简单的"下一个,下一个...完成"的事情.
附加约束:Web应用程序在Web场上运行,客户厌倦了使用服务器端会话状态.在最好的情况下,他们希望将会话状态的大小保持最小(过去他们遇到了问题).
所以基本上这里有两个问题:
我正在考虑的选项:
将对象存储在类似WebForms的ViewState中(通过将其序列化到HTML页面中).这还包括组合框项目.显然,HTML页面可能会变得非常大,因此Web应用程序会很慢.
将其存储到服务器端会话状态,无论客户的意愿如何,并且在实际Web场(项目后期)上进行测试之前,不知道性能将如何受到影响.
我不能在两者之间作出决定.或者还有另一种选择吗?
我有一个 Dockerfile,其中指定了一个 ENTRYPOINT“my_script.sh”。在 my_script.sh 中,我正在 exe.cuting 一个 CURL 命令。当构建具有此 Dockerfile 的 docker 映像时。我应该如何运行它以便输出my_script.sh 将在我的主机上打印。
Dockerfile -
FROM my-company-repo-java-base-image
ADD my_script.sh /root
ENTRYPOINT bash "/root/my_script.sh
Run Code Online (Sandbox Code Playgroud)
my_script.sh
echo "Hello My Script"
curl -x POST "some_api_which_returns_json"
Run Code Online (Sandbox Code Playgroud)
我已经使用命令 docker build 构建了图像
我想运行此映像并在 dockerhost 上查看 my_script.sh 的输出。
c# ×3
asp.net-mvc ×2
.net ×1
algorithm ×1
argparse ×1
asynchronous ×1
cookies ×1
docker ×1
dockerfile ×1
geometry ×1
logging ×1
nhibernate ×1
parsing ×1
protobuf-net ×1
python ×1
ruby ×1
viewstate ×1
web-farm ×1
xmi ×1