小编kas*_*rhj的帖子

由于延迟加载,带有Pony ORM的DatabaseSessionIsOver?

我使用Pony ORM作为烧瓶解决方案,我遇到了以下情况.

考虑以下:

@db_session
def get_orders_of_the_week(self, user, date):
    q = select(o for o in Order for s in o.supplier if o.user == user)
    q2 = q.filter(lambda o: o.date >= date and o.date <= date+timedelta(days=7))
    res = q2[:]

    #for r in res:
    #    print r.supplier.name

    return res
Run Code Online (Sandbox Code Playgroud)

当我在Jinja2中需要结果时 - 看起来像这样

{% for order in res %}
    Supplier: {{ order.supplier.name }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我得到了

DatabaseSessionIsOver: Cannot load attribute Supplier[3].name: the database session is over
Run Code Online (Sandbox Code Playgroud)

如果我取消注释该for r in res部分,它可以正常工作.我怀疑有某种延迟加载不会被加载res …

python orm ponyorm

5
推荐指数
2
解决办法
1012
查看次数

放手!总是在新线程中运行异步对象?

在F#的Wikibook中,有一小段内容是:

什么让!做?#

let!async<'a>在自己的线程上运行对象,然后立即将当前线程释放回线程池。当let!返回时,工作流的执行将继续在新的线程,这可能是也可能不是同一个线程工作流开始出来。

我在书中或网络上的其他地方都找不到这个事实(以粗体突出显示)。

是否所有let!/ do!不管异步对象包含什么(例如Thread.Sleep())以及如何启动(例如Async.Start),都是这样?

github上的F#源代码中,我找不到在新(TP)线程上执行绑定调用的位置。魔术在代码中的哪里发生?

f#

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

在Python中将二进制文件读入结构

我有一个已知格式/结构的二进制文件.

如何将所有二进制数据读入结构数组?

像(在伪代码中)

bytes = read_file(filename)
struct = {'int','int','float','byte[255]'}
data = read_as_struct(bytes, struct)
data[1]
>>> 10,11,10.1,Arr[255]
Run Code Online (Sandbox Code Playgroud)

编辑:

目前解决方案:

data = []

fmt   = '=iiiii256i'
fmt_s = '=iiiii'
fmt_spec = '256i'

struct_size = struct.calcsize(fmt)

for i in range(struct_size, len(bytes)-struct_size, struct_size):
    dat1= list(struct.unpack(fmt_s, bytes[i-struct_size:i-1024]))
    dat2= list(struct.unpack(fmt_spec, bytes[i-1024:i]))
    dat1.append(dat2)
    data.append(dat1)
Run Code Online (Sandbox Code Playgroud)

python binaryfiles

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

将列转换为熊猫索引

我有一个df这样的DataFrame 。

Number SomeValue SomeOtherValue
  10    10        1.0
  11     3        1.1
Run Code Online (Sandbox Code Playgroud)

当我使用查看数据框时df.head(),我得到了

  Number SomeValue SomeOtherValue
0  10    10        1.0
1  11     3        1.1
Run Code Online (Sandbox Code Playgroud)

我想Number成为我的索引,所以我做这样的事情:

df.index = df.Number
df = df.drop('Number', 1);
Run Code Online (Sandbox Code Playgroud)

这似乎有些笨拙,所以还有另一种将列提升为索引的方法吗?

python dataframe pandas

4
推荐指数
1
解决办法
6491
查看次数

构造函数注入 IDesignTimeDbContextFactory

我正在尝试在 .NET 标准 2.0类库中使用迁移 EFCore2.0,到目前为止我有类似的东西

public class SomeContextFactory : IDesignTimeDbContextFactory<SomeContext>
{
    private Configuration _configuration;

    public SomeContextFactory(Configuration configuration)
    {
        _configuration = configuration;
    }

    public SomeContext CreateDbContext(string[] args)
    {
        var optionsBuilder = new DbContextOptionsBuilder<SomeContext>();

        optionsBuilder.UseSqlServer(_configuration.ConnectionString);

        return new SomeContext(optionsBuilder.Options);
    }
}

public class SomeContext : DbContext
{
    public DbSet<SomeDbModel> Some { get; set; }

    public SomeContext(DbContextOptions<SomeContext> options) : base(options)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

关键是连接字符串因环境(dev、test、prod)而异,迁移应该在Configuration.

如何请示迁移注入ConfigurationSomeContextFactory

entity-framework entity-framework-core

4
推荐指数
1
解决办法
1735
查看次数

从TeamCity下载构建

有没有办法在TeamCity中下载项目的特定版本?

teamcity

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

使用TeamCity从SubVersion修复YouTrack中的问题提交注释

我有一个TeamCity服务器和一个使用SubVersion的YouTrack服务器.我已经在两个JB应用程序中启用了集成.

是否可以从SubVersion提交注释中的注释更改YT问题的状态?即TC将相应地更新YT状态,并在YT中设置修复完成的版本.

teamcity youtrack

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

将 IEnumerable&lt;IGrouping&lt;,&gt;&gt; 转换为数组

有没有一种简单的方法可以将remaining以下代码转换为一维数组。

var groups = data.OrderBy(d => d.Time).GroupBy(d => d.Period);
var first = groups.First().ToArray();
var remaining = groups.Skip(1).??
Run Code Online (Sandbox Code Playgroud)

c# linq

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

将函数注入计算表达式

以下代码示例来自Scott Wlaschin的网站F#,以获得乐趣和利润.

type LoggingBuilder() =
    let log p = printfn "expression is %A" p

    member this.Bind(x, f) = 
        log x
        f x

    member this.Return(x) = 
        x

let logger = new LoggingBuilder()

let loggedWorkflow = 
    logger
        {
        let! x = 42
        let! y = 43
        let! z = x + y
        return z
        }
Run Code Online (Sandbox Code Playgroud)

是否有办法注入一个函数,而不是printfn进入LoggingBuilder()

f# functional-programming dependency-injection

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

F#中的类型约束顺序

这适用于F#4.0:

type Something<'a, 'b when 'b :> seq<'b>>() = 
Run Code Online (Sandbox Code Playgroud)

这不是:

type Something<'b when 'b :> seq<'b>, 'a>() = 
Run Code Online (Sandbox Code Playgroud)

类型名称中的意外符号','.预期的">"或其他令牌.

类型约束的顺序重要的是什么?

f# type-constraints

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