小编AnC*_*AnC的帖子

记录shell脚本的参数

是否存在记录shell脚本参数的约定?

例如:

#!/usr/bin/env bash

# <description>
#
# Usage:
#  $ ./myScript param1 [param2]
# * param1: <description>
# * param2: <description>
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个特定模板的一些事情:

  • 脚本的文件名(myScript)出现在文件本身中
  • 参数描述看起来很怪异
  • 之前的领先空间在$视觉上是有用的,但可能会导致语言与块注释混淆,导致一些验证工具抱怨混合/不一致的缩进(例如,此块中的空格,代码选项卡 - 当然,提供一个选项卡)

这有什么指导方针吗?

unix linux shell

41
推荐指数
6
解决办法
4万
查看次数

Python difflib:突出显示内联差异?

在比较相似的行时,我想突出显示同一行的差异:

a) lorem ipsum dolor sit amet
b) lorem foo ipsum dolor amet

lorem <ins>foo</ins> ipsum dolor <del>sit</del> amet
Run Code Online (Sandbox Code Playgroud)

虽然difflib.HtmlDiff似乎可以执行此类内联突出显示,但它会产生非常详细的标记.

不幸的是,我无法找到另一个不按行逐行操作的类/方法.

我错过了什么吗?任何指针将不胜感激!

python diff

25
推荐指数
2
解决办法
1万
查看次数

简单的进程间通信

我正在寻找一种简单的方法将消息从一个进程(Perl脚本,短命)传递到另一个进程(Python脚本,长时间运行) - 这两个进程都是同一台机器的本地进程.我做了一些研究,但我发现的要么是在我头上还是看起来不必要的复杂 - 让我有点迷茫和迷茫.

我想象一个大致如下的最小例子:

# listener.py

class Listener:
    def __init__(self, port)
        self.port = port

    def on_message(self, msg):
        print "%s: %s" % (timestamp, msg)

recipient = Listener(1234)


# sender.pl

sub send_message {
    my ($msg, $port) = @_;
    # ...
}

send_message("hello world", 1234);
Run Code Online (Sandbox Code Playgroud)

任何有关如何解决和/或在何处阅读的指示将不胜感激!

python perl ipc

19
推荐指数
3
解决办法
2万
查看次数

用于学习/理解Python的asyncio的资源

TLDR:我正在为应用程序开发人员寻找asyncio的全面或权威解释(教程/书籍/演示文稿/ ...).

虽然我对事件循环和期货/延迟/承诺有很好的理解(很大程度上要归功于JavaScript),但是Python的asyncio的复杂性仍然让我感到困惑.asyncio似乎比我习惯的要复杂得多 - 可能是因为它部分设计用于与现有实现(Twisted,Tornado等)的低级兼容性,并且因为它允许在单独的线程中进行多个事件循环.

据我所知,基本概念没有全面的演练,因此我在网上查阅了官方文档以及各种文章演示文稿.

然而,我仍然不确定我的理解,很可能是因为并不总是清楚应用程序级别的相关内容,或者您​​是否不需要担心上述替代方案.(许多资源似乎都认为熟悉Twisted等人.)

一些导致我不确定的事情的例子:

  • 到目前为止,我只是asyncio.coroutine结合使用yield from,但这种比较表明我应该重新考虑.
  • 可以使用loop.create_server(MyProtocol)或创建服务器asyncio.start_server(my_connection_handler)- 何时使用?
  • 管理循环生命周期(例如loop.close()之后loop.run_forever())的适当卫生是什么?
  • 我还没有理解为什么Task除了Futures 之外还需要s.
  • 如果我想要一个类构造函数是非阻塞的(即使用yield from,看似无效)怎么办?
  • 类getter可以异步(即组合@propertyasyncio.coroutine)吗?
  • 我怎么知道任何给定的函数是否是异步的?例如,我希望StreamWriter.write是非阻塞的,但我不知道是否真的如此.

我不是要求这些特定问题的答案,它们只是说明了我在概念层面上的挣扎.

python python-asyncio

19
推荐指数
1
解决办法
3524
查看次数

jQuery中的全局自定义事件

我想使用独立于DOM元素的自定义jQuery事件,但我不确定实现这一目标的最佳方法是什么.

这是我开始的:

// some system component registers an event handler
$().bind("foo.bar", handler); // foo is my app's namespace, bar is event name
// another part of the system fires off the event
$().trigger("foo.bar", { context: "lorem ipsum" });
Run Code Online (Sandbox Code Playgroud)

在查看了jQuery的源代码,特别是它对全局AJAX事件的处理之后,我认为这应该可行:

$.fn.bind("foo.bar", handler);
// ...
$.event.trigger("foo.bar", { context: "lorem ipsum" });
Run Code Online (Sandbox Code Playgroud)

但是,似乎我的处理函数永远不会被调用.

我可能会以错误的方式解决这个问题吗?

javascript jquery event-handling

18
推荐指数
1
解决办法
2万
查看次数

jQuery对象如何模仿数组?

jQuery对象就像数组一样,不会污染原生原型.这是如何实现的?

我知道这不仅仅是带有数字键的对象 - 所以也许只是提供相应的方法(类似的东西jQuery.prototype.indexOf = Array.prototype.indexOf).

我用Google搜索并查看了源代码,但找不到明确的答案.

javascript jquery

14
推荐指数
2
解决办法
2871
查看次数

来自多个承诺的增量UI更新

我有一个AngularJS服务,用于/contacts/:id根据索引(/contacts)检索单个联系人():

app.service("CollectionService", function($http, $q) {
    this.fetch = function(collectionURL) {
        return $http.get(collectionURL).then(function(response) {
            var urls = response.data;
            var entities = urls.map(function(url) {
                return $http.get(url);
            });
            return $q.all(entities);
        }).then(function(responses) {
            return responses.map(function(response) {
                return response.data;
            });
        });
    };
});

// used within the controller:
CollectionService.fetch("/contacts").then(function(contacts) {
    $scope.contacts = contacts;
});
Run Code Online (Sandbox Code Playgroud)

结果显示在一个简单的列表中(<li ng-repeat="contact in contacts">{{ contact }}</li>).

但是,由于使用$q.all,该列表在收到最后(最慢)响应之前不会更新.当收到单个联系人时,如何从批量更新切换到增量更新?

promise angularjs

13
推荐指数
2
解决办法
1519
查看次数

PyUnit:首次测试失败后停止?

我在我的测试框架中使用以下代码:

testModules = ["test_foo", "test_bar"]

suite = unittest.TestLoader().loadTestsFromNames(testModules)
runner = unittest.TextTestRunner(sys.stdout, verbosity=2)
results = runner.run(suite)
return results.wasSuccessful()
Run Code Online (Sandbox Code Playgroud)

有没有办法让报告(runner.run?)在第一次失败后中止以防止过多的冗长?

python unit-testing

12
推荐指数
3
解决办法
4380
查看次数

在JavaScript中压缩对象层次结构

是否存在将嵌套对象"压缩"到单个级别的通用方法:

var myObj = {
    a: "hello",
    b: {
        c: "world"
    }
}

compress(myObj) == {
    a: "hello",
    b_c: "world"
}
Run Code Online (Sandbox Code Playgroud)

我想会有一些递归,但我想我不需要在这里重新发明轮子......!?

javascript json coffeescript

10
推荐指数
1
解决办法
3943
查看次数

动态添加函数到Python模块

我们的框架需要在某些丑陋的样板代码中包含某些函数:

def prefix_myname_suffix(obj):
    def actual():
        print 'hello world'
    obj.register(actual)
    return obj
Run Code Online (Sandbox Code Playgroud)

我想这可能会被装饰者简化:

@register
def myname():
    print 'hello world'
Run Code Online (Sandbox Code Playgroud)

然而,事实证明这是相当棘手的,主要是因为框架在模块级别寻找某种函数名称模式.

我在装饰器中尝试了以下内容,但无济于事:

current_module = __import__(__name__)
new_name = prefix + func.__name__ + suffix
# method A
current_module[new_name] = func
# method B
func.__name__ = new_name
current_module += func
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

python metaprogramming decorator

10
推荐指数
1
解决办法
9720
查看次数