小编G G*_*III的帖子

使用Python在Google App Engine数据存储区中复制实体,而无需在"编译"时知道属性名称

在我正在编写的Python Google App Engine应用程序中,我有一个存储在数据存储区中的实体,我需要检索它,制作它的精确副本(除了密钥),然后将此实体放回去.

我该怎么做?特别是,在做这个时我是否需要注意任何警告或技巧,以便获得我期望的那种副本而不是其他东西.

ETA: 嗯,我试了一下,确实遇到了问题.我想以这样的方式制作我的副本,以便在编写代码时不必知道属性的名称.我的想法是这样做:

#theThing = a particular entity we pull from the datastore with model Thing
copyThing = Thing(user = user)
for thingProperty in theThing.properties():
    copyThing.__setattr__(thingProperty[0], thingProperty[1])
Run Code Online (Sandbox Code Playgroud)

执行时没有任何错误......直到我尝试从数据存储中提取copyThing,此时我发现所有属性都设置为None(显然除了用户和密钥).很明显,这段代码正在做一些事情,因为它正在用None替换默认值(所有属性都设置了默认值),但根本不是我想要的.建议?

python google-app-engine google-cloud-datastore

39
推荐指数
3
解决办法
8122
查看次数

删除除R中的撇号之外的所有标点符号

我想使用R的gsub从文本中删除除撇号之外的所有标点符号.我对正则表达式很新,但我正在学习.

例:

x <- "I like %$@to*&, chew;: gum, but don't like|}{[] bubble@#^)( gum!?"
gsub("[[:punct:]]", "", as.character(x))
Run Code Online (Sandbox Code Playgroud)

电流输出(没有撇号)

[1] "I like to chew gum but dont like bubble gum"
Run Code Online (Sandbox Code Playgroud)

期望的输出(我希望撇号不要留下)

[1] "I like to chew gum but don't like bubble gum"
Run Code Online (Sandbox Code Playgroud)

r

30
推荐指数
4
解决办法
2万
查看次数

Python中整数的字节顺序

我正在开发一个程序,我将一些数据存储在整数中并按位处理.例如,我可能会收到数字48,我会逐位处理.一般来说,整数的字节顺序取决于整数的机器表示,但Python是否做了什么来保证int总是小端?或者我是否需要像在C中那样检查字节序,然后为这两种情况编写单独的代码?

我问,因为我的代码在Sun机器上运行,虽然它现在运行的是使用英特尔处理器,但我可能不得不在未来切换到配备Sun处理器的机器,我知道它是大端的.

python integer endianness

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

ReportLab LayoutError:页面太大

我正在使用ReportLab进行我的第一个程序,我事先不知道页面中断会丢失的地方,我遇到了麻烦.为了简单起见,我正在使用SimpleDocTemplate.我的flowables看起来像这样:

flowables = [Paragraph("Some title", style=headerParagraphStyle),
             Spacer(0, 10),
             Paragraph("first paragraph", style=bodyParagraphStyle),
             Paragraph("second paragraph", style=bodyParagraphStyle),
             ...
             Paragraph("nth paragraph", style=bodyParagraphStyle),
             PageBreak(),
             Paragraph("Some title", style=headerParagraphStyle),
             Spacer(0, 10),
             Paragraph("first paragraph", style=bodyParagraphStyle),
             Paragraph("second paragraph", style=bodyParagraphStyle),
             ...
             Paragraph("mth paragraph", style=bodyParagraphStyle),
             PageBreak(),
             ...]
Run Code Online (Sandbox Code Playgroud)

当我构建我的PDF时,只要我n或者m多个正文段落在一个页面上,一切都很顺利,但如果它们运行完毕,我会得到如下错误:

reportlab.platypus.doctemplate.LayoutError: Flowable <Paragraph at 0xb79800 frame=normal>20th paragraph: too large on page 3
Run Code Online (Sandbox Code Playgroud)

似乎无法找到为什么这种情况一直发生在我身上的充分理由.有什么建议?即使我删除PageBreaks(),它也会这样做.所有段落都相对较短,大多不到一个句子/行.

ETA:我发布了为我生成错误的所有代码(删除了少量标识符).我已将其转换为读取CSV文件,因此我也发布了其内容.运行它时,此代码为我生成的确切错误是:

Traceback (most recent call last):
  File "./spice_dev.py", line 355, in 
    departmentReportDoc.build(eachDepartment.report, onFirstPage=onReportPage, onLaterPages=onReportPage)
  File "/usr/local/lib/python2.6/site-packages/reportlab/platypus/doctemplate.py", line 1010, in build
    BaseDocTemplate.build(self,flowables, canvasmaker=canvasmaker)
  File …

python pdf-generation reportlab platypus

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

获取图像大小而不加载到内存中

我有几个.png图像(ETA:但格式也可以是JPEG或其他),我将在UITableViewCells中显示.现在,为了获得行高,我加载图像,获取它们的size属性,并使用它来计算行的高度(计算沿途的任何必要更改,因为大多数图像之前调整大小正在展示).为了加快速度并减少内存使用量,我希望能够在size不加载图像的情况下使用.有没有办法做到这一点?

注意: 我知道我可以实现一些快捷方式来消除此问题,但由于多种原因,我无法提前调整图像大小或提前收集图像大小,迫使我在运行时获取此信息.

iphone cocoa cocoa-touch core-graphics uikit

8
推荐指数
2
解决办法
8495
查看次数

在函数内创建RSpec上下文

为了避免在我的Rspec测试中重复自己,我想编写一个这样的函数

def with_each_partner(&block)
  PARTNER_LIST.each do |partner|
    context "with partner #{partner.name}" { yield partner }
  end
end
Run Code Online (Sandbox Code Playgroud)

我有这样一个功能,它的工作原理是所有测试都使用正确的值提供给合作伙伴,但是在输出过程中它们不会作为"with partner X"上下文的一部分打印:相反,如果我有一个测试像这样:

describe Thing do
  subject { Thing.new(partner) }
  with_each_partner do |partner|
    it 'does its thing' do
      expect(subject.do).to eq 'its thing'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我最终得到这样的输出:

Thing
  does its thing
Run Code Online (Sandbox Code Playgroud)

而不是所需的输出,如:

Thing
  with partner X
    does its thing
  with partner Y
    does its thing
Run Code Online (Sandbox Code Playgroud)

如何让RSpec正确使用我函数中创建的上下文?

ruby rspec ruby-on-rails

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

Resque工作者发出"NoMethodError:undefined method`admand`"

我不知道我在这里做了什么,但是我试图让Rails中的一个控制器将一个作业排队到Resque上,然后一个工作者连接并完成繁重的工作(IE比较,数据库条目).
但是,任务甚至没有运行,因为没有明确的说明来设置Resque up.

复制并粘贴如下:
也有Gist格式!

这是Hoptoad的例外情况:

NoMethodError: undefined method 'perform' for Violateq:Module
Run Code Online (Sandbox Code Playgroud)

这是"worker"文件的内容:

module Violateq
  @queue = :violateq

  def perform(nick, rulenumber)
    # Working for the weekend!!!
    puts "I got a nick of #{nick} and they broke #{rulenumber}"
    @violation = Violation.new(nick, rulenumber)
    puts "If you got this far, your OK"
    log_in(:worker_log, {:action => "Violate d=perfom", :nick => nick, :rulenumber => rulenumber, :status => "success"})
    #rescue => ex
    # notify_hoptoad(ex)
    # log_in(:worker_log, {:action => "Violate d=perfom", :nick => nick, :rulenumber => rulenumber, …
Run Code Online (Sandbox Code Playgroud)

ruby resque ruby-on-rails-3

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

代理的应用程序无法在未先安装的情况下请求发布权限

我面临一个奇怪的错误.背景是我在安装自己的应用程序之前安装了Facebook应用程序.当我启动我的应用程序并要求在获得publish_stream许可的情况下登录Facebook时,它运行正常.我能够代表用户发布到Facebook粉丝页面.

但是,我拿了一个已经安装了Facebook并且用户登录的设备,它会抛出一个错误.

请问我做错了什么?

我使用的是Android sdk 3.0

android facebook-login

6
推荐指数
0
解决办法
912
查看次数

使用YARD时忽略注释掉的代码

我有一些看起来像这样的Ruby代码:

# some_string = "{really?}"
Run Code Online (Sandbox Code Playgroud)

花括号需要成为字符串的一部分.这行是注释掉的代码,我想留在那里.我另外使用YARD来记录代码,所以当我运行yard doc它时(自然地)抛出一个关于无法链接"真的"的警告.

有没有办法告诉YARD忽略注释掉的代码?

ruby yard

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

Terraform aws_ssm_parameter null/空并带有ignore_changes

我有一个 Terraform 配置,如下所示:

resource "random_string" "foo" {
  length = 31
  special = false
}

resource "aws_ssm_parameter" "bar" {
  name = "baz"
  type = "SecureString"
  value = random_string.foo.result
  lifecycle {
    ignore_changes = [value]
  }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是,首先terraform apply资源将根据 的值bar存储在SSM 中,然后在后续调用时我将能够引用,但是我看到的是它在第一次运行时工作,存储新创建的随机值,然后在后续运行中为空。bazfooapplyaws_ssm_parameter.bar.valueaws_ssm_parameter.bar.value

如果我创建一个可以正确提取值的数据源,但当它尚不存在时,aws_ssm_parameter它在第一个数据源上不起作用。apply如何修改此配置,以便获取存储在bazSSM 中的值并在同一配置中创建该值?

terraform ssm terraform-provider-aws

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