小编Igo*_*ejc的帖子

如何从命令行设置日志记录级别

我正在使用 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)

python logging argparse

8
推荐指数
3
解决办法
1万
查看次数

.NET:用于同步长时间运行任务的机制

问题描述:你编写了一个包含一些算法/任务的库,这些算法/任务可能需要很长时间才能完成,原因有多种:计算,文件系统,网络通信等.你希望能够:

  1. 发送有关任务的进度信息(进度,活动记录等)
  2. 如果已设置某些外部信号或属性,请在完成之前中止任务.

我为此实现了一个框架,但是这要求所有这些任务都必须引用包含该框架的程序集.

我的问题:在.NET框架(3.5或更低版本)中是否存在针对上述问题的内置机制?

我知道我可以使用事件,但这意味着长时间运行的任务必须暴露这些事件,我认为这是一个开销.理想情况下,我希望有一个隐藏多线程问题的框架,并且依赖注入友好,但不依赖于额外的自定义程序集,也不会污染原始接口.

我希望我能很好地描述这个问题.如果没有,我可以从我自己的框架发布一些接口样本.

更新:好的,我认为我的问题描述需要一点澄清:).当我说"长期运行"时,我并不是说工作流程意义上的"长".我正在开发一个WinForms地图应用程序,可以完成各种各样的工作,比如生成浮雕轮廓.要做到这一点,首先必须从FTP服务器下载高程数据文件,解压缩然后执行一些计算.我很久以前就为此编写了代码,但为了使其更适合GUI,我必须改进各种检查 - 例如,检测用户是否点击了中止按钮并停止了该过程.

所以基本上我关心的是:如何编写一个稍后(如果有的话)可以在GUI环境中使用的代码,在那里你不能简单地在主GUI线程中运行所有内容并冻结整个应用程序.面临的挑战是找到一种方法,使您的代码适合GUI目的,而无需将其绑定到特定的GUI平台.

c# user-interface multithreading synchronization asynchronous

7
推荐指数
1
解决办法
1044
查看次数

如何使用protobuf-net处理.proto文件

我已经开始使用protobuf-net lib在我正在维护的一些程序之间进行通信.我也能够将C#中的消息解码为Ruby.我的ruby ProtoBuf lib使用.proto文件生成ruby代码.为了不得不在尽可能少的地方进行更改,我希望protobuf-net使用相同的.proto文件.虽然看起来protobuf-net文件夹有一个名为ProtoBufGenerator和protobuf exe的Dll,但我无法找到任何关于我是否可以通过这种方式使protobuf-net工作的指令.

这可能吗?

c# ruby protocol-buffers protobuf-net

7
推荐指数
1
解决办法
6136
查看次数

温莎城堡:文档,教程的良好来源

我正在尝试为Windsor Castle汇集一份好的文档资源列表(除了分析它的源代码).我对有关流畅配置API的文档特别感兴趣.这就是我发现自己:

随意添加更多...

.net castle-windsor

6
推荐指数
1
解决办法
3272
查看次数

ASP.NET MVC CookieTempDataProvider:有什么经验吗?

更新:看起来我误解了TempData的用途以及它不是什么.它绝对不应该用于"保留某些会话范围的数据",正如我最初所要求的那样(参见ASP.NET MVC TempData是Really RedirectData的原因).我已经相应地修改了这个问题.

有没有人使用CookieTempDataProvider进行TempData存储?是否有任何需要注意的警告(除了保持会话存储空间小)?在Web场上使用它有任何问题吗?

cookies asp.net-mvc web-farm

6
推荐指数
1
解决办法
1596
查看次数

NHibernate:在模式导出中强制使用方括号?

有没有办法告诉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在任何地方使用带引号的标识符.

nhibernate fluent-nhibernate

6
推荐指数
1
解决办法
1933
查看次数

矩形边界内的有效点搜索

我正在使用矢量地图编辑器,我有一组元素,每个元素都在视图中指定其边界框.当鼠标移动时,我想突出显示第一个元素,其边界框包含当前鼠标位置.现在我使用一个简单的列表并通过它,但由于元素的数量可能会增加,当前搜索算法的O(n)复杂性对于交互式应用程序将是有问题的.

什么是更好的算法/数据结构?

一些额外的约束/要求:

  • 填充边界框的数据结构必须是相对快速的(因为我需要做的,每次地图移动或变焦或投影的变化).
  • 该算法必须能够找到所有匹配元素(而不仅仅是第一个).原因是一些地图元素可能具有不规则的形状,因此简单的边界框匹配不够严格.然后我会查看匹配列表并进行精确匹配.
  • 顺序,其中所述盒被添加到所述一组需要保持某种方式-其被上述另一元件得出匹配他们的边界框时,应具有优先级的映射元素.

algorithm geometry vector-graphics computational-geometry data-structures

6
推荐指数
1
解决办法
1006
查看次数

从Enterprise Architect模型中提取数据

我正在尝试以编程方式从Enterprise Architect模型中提取信息(保存在XMI文件中) - 我需要它来生成一些报告,但我不想创建EA加载项.在任何地方都有C#XMI解析器库吗?

我当然可以从其XML模式生成XMI解析代码,但这将是我的第二个选择.

c# parsing xmi enterprise-architect

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

ASP.NET MVC:将会话状态保存在类似向导的应用程序中的最佳实践

假设我有一个Web应用程序实现像一组向导页面来编辑复杂对象.在用户单击"完成"按钮之前,对象不会保存到后端系统(需求),因此在此期间我必须在某种会话状态下保留有关对象的全部信息.

此外,某些向导页面必须显示具有可能大量项目的组合框和列表框.使用Web服务从后端系统获取这些项目.

巧合的是,该向导允许用户从一个向导页面自由跳转到任何其他页面(使用表单顶部的选项卡链接),因此它不是一个简单的"下一个,下一个...完成"的事情.

附加约束:Web应用程序在Web场上运行,客户厌倦了使用服务器端会话状态.在最好的情况下,他们希望将会话状态的大小保持最小(过去他们遇到了问题).

所以基本上这里有两个问题:

  1. 如何/在何处保存用户在向导中输入的数据?
  2. 是否缓存从后端收到的组合/列表项,如果是,在哪里?

我正在考虑的选项:

  1. 将对象存储在类似WebForms的ViewState中(通过将其序列化到HTML页面中).这还包括组合框项目.显然,HTML页面可能会变得非常大,因此Web应用程序会很慢.

  2. 将其存储到服务器端会话状态,无论客户的意愿如何,并且在实际Web场(项目后期)上进行测试之前,不知道性能将如何受到影响.

我不能在两者之间作出决定.或者还有另一种选择吗?

viewstate asp.net-mvc session-state

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

打印在 docker 容器内运行的 shell 脚本的输出

我有一个 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 的输出。

docker dockerfile

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