标签: generator

在Rails中禁用单元测试生成器

有谁知道如何禁用Rails中的自动单元测试文件生成?无论何时创建控制器,模型或迁移,它都会在test /目录中创建关联文件; 我需要这个禁用.

另外,当执行标准的rails g model | controller | migration命令时,是否可以使RPsec接管以便使用RSpec(在spec /目录中)创建文件?

unit-testing rspec ruby-on-rails generator

16
推荐指数
1
解决办法
6608
查看次数

在python中深度复制生成器

我正在使用发电机功能,说:

def foo():
    i=0
    while (i<10):
         i+=1
         yield i
Run Code Online (Sandbox Code Playgroud)

现在,我希望选择在任意次数的迭代后复制生成器,以便新副本将保留内部状态(在示例中将具有相同的"i"),但现在将独立于原始状态(即迭代)副本不应该改变原来的).

我尝试过使用copy.deepcopy但是我得到了错误:

 "TypeError: object.__new__(generator) is not safe, use generator.__new__()"   
Run Code Online (Sandbox Code Playgroud)

显然,我可以使用带有计数器的常规函数​​来解决这个问题.但我真的在寻找使用发电机的解决方案.

python generator

16
推荐指数
2
解决办法
5422
查看次数

关于协程的itertools.tee?

我有一个对象的树形结构.我需要遍历叶子中的所有项目("值").为此,我目前正在使用如下所示的生成器方法:

class Node(object):
    def __init__(self):
        self.items = [Leaf(1), Leaf(2), Leaf(3)]

    def values(self):
        for item in self.items:
            for value in item.values():
                yield value

class Leaf(object):
    def __init__(self, value):
        self.value = value

    def values(self):
        for i in range(2):
            yield self.value

n = Node()
for value in n.values():
    print(value)
Run Code Online (Sandbox Code Playgroud)

这打印:

1
1
2
2
3
3
Run Code Online (Sandbox Code Playgroud)

现在,a返回的值Leaf将取决于外部参数.我正在考虑使用协程能够将此参数传递给叶节点:

import itertools

class Node2(object):
    def __init__(self):
        self.items = [Leaf2(1), Leaf2(2), Leaf2(3)]

    def values(self):
        parameter = yield
        for item in self.items:
            item_values = item.values()
            next(item_values) …
Run Code Online (Sandbox Code Playgroud)

python generator coroutine tee python-itertools

16
推荐指数
1
解决办法
626
查看次数

从JSON文档生成AVRO模式

是否有任何工具能够从"典型的"JSON文档创建AVRO模式.

例如:

{
"records":[{"name":"X1","age":2},{"name":"X2","age":4}]
}
Run Code Online (Sandbox Code Playgroud)

我找到了http://jsonschema.net/reboot/#/,它生成了一个' json-schema '

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "http://jsonschema.net#",
  "type": "object",
  "required": false,
  "properties": {
    "records": {
      "id": "#records",
      "type": "array",
      "required": false,
      "items": {
        "id": "#1",
        "type": "object",
        "required": false,
        "properties": {
          "name": {
            "id": "#name",
            "type": "string",
            "required": false
          },
          "age": {
            "id": "#age",
            "type": "integer",
            "required": false
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我想要一个AVRO版本.

schema json generator avro

16
推荐指数
1
解决办法
8537
查看次数

什么是PHP的一个很好的解析器生成器?

我需要解析一个小的"迷你语言",用户可以在我的网站上输入.我想知道lex和jacc或者antlr的对应物是什么用于php的世界.

php dsl parsing generator

15
推荐指数
2
解决办法
6003
查看次数

Java密码生成器

我正在尝试创建一个创建密码的java程序,全部是小写,小写和大写,小写和大写以及数字,小写和大写以及数字和标点符号,程序还必须创建用户选择的密码之一并且必须根据用户选择的内容生成密码长度.我已经为用户选择了密码选项,并提示他选择一个.我现在坚持如何创建上面提到的密码类型.一个人建议我使用ASCII值,然后将它们转换为文本.我知道如何将它们转换为文本,但它会显示数字,字母和标点符号.有没有什么办法可以只为小写字母生成ASCII值?另外我如何根据用户'生成密码'

java passwords generator

15
推荐指数
5
解决办法
5万
查看次数

forEach在Node.js中使用生成器

我正在使用Koa.js框架和Mongoose.js模块.

通常从MongoDB获取结果我的代码如下:

var res = yield db.collection.findOne({id: 'my-id-here'}).exec();
Run Code Online (Sandbox Code Playgroud)

但我需要为名为'items'的数组的每个元素执行此行.

items.forEach(function(item) {
  var res = yield db.collection.findOne({id: item.id}).exec();
  console.log(res)  // undefined
});
Run Code Online (Sandbox Code Playgroud)

但是这个代码没有运行,因为函数中的yield.如果我写这个:

items.forEach(function *(item) {
  var res = yield db.collection.findOne({id: item.id}).exec();
  console.log(res)  // undefined
});
Run Code Online (Sandbox Code Playgroud)

我也没有得到res变量的结果.我试图使用' generator-foreach '模块,但这并没有像这样工作.

我知道这是我对Node.js的语言素养缺乏了解.但是你能帮助我找到一种方法吗?

foreach generator mongoose node.js koa

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

为什么不在`.map`回调中产生回报?

学习发电机 - 4»CATCH ERROR! 该解决方案使用了一个for loop但我在MDN中找不到任何东西- 迭代协议指的是回调中的收益.

我会猜测答案只是,don't do that但如果有人有时间或倾向于提供解释,请提前感谢!

码:

function *upper (items) {
  items.map(function (item) {
    try {
      yield item.toUpperCase()
    } catch (e) {
      yield 'null'
    }
  }
}

var badItems = ['a', 'B', 1, 'c']

for (var item of upper(badItems)) {
  console.log(item)
}
// want to log: A, B, null, C
Run Code Online (Sandbox Code Playgroud)

错误:

?  learn-generators run catch-error-map.js
/Users/gyaresu/programming/projects/nodeschool/learn-generators/catch-error-map.js:4
      yield item.toUpperCase() // error below
            ^^^^
SyntaxError: Unexpected identifier
    at exports.runInThisContext (vm.js:73:16) …
Run Code Online (Sandbox Code Playgroud)

javascript generator node.js ecmascript-6

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

如何在发电机内使用等待?

我有一个生成器,在其他操作中,查询数据库,如

function* current(db) {
  const items = await db.collection('...').find({ ... });

  for (const item of items)
    if (...) yield item;
}
Run Code Online (Sandbox Code Playgroud)

这是无效的语法.使用承诺和屈服于a then也是不可能的.

那我该怎么办?如何在生成器中使用异步操作?

asynchronous generator async-await ecmascript-6

15
推荐指数
1
解决办法
2073
查看次数

使用Keras的python生成器线程安全性

我正在使用Keras进行一些ML并使用此生成器来处理数据和标签:

def createBatchGenerator(driving_log,batch_size=32):
    batch_images = np.zeros((batch_size, 66, 200, 3))
    batch_steering = np.zeros(batch_size)
    while 1:
        for i in range(batch_size):
            x,y = get_preprocessed_row(driving_log)
            batch_images[i]=x
            batch_steering[i]=y
        yield batch_images, batch_steering
Run Code Online (Sandbox Code Playgroud)

当我在本地使用它时运行正常,但是当我在带有GPU的AWS g2.2xlarge上运行它时,我收到此错误"ValueError:generator already execution".有人可以帮我解决这个问题吗?

python generator

15
推荐指数
1
解决办法
5890
查看次数