我有一个数据库,其中包含具有一对多注册关系的活动.目标是通过一系列注册来获取所有活动.
通过创建具有注册的活动的笛卡尔积,可以获得用于获取该数据的所有必要数据.但我似乎无法找到一个很好的方法将它正确地放入scala集合中; 让我们的类型:Seq[(Activity, Seq[Registration])]
case class Registration(
id: Option[Int],
user: Int,
activity: Int
)
case class Activity(
id: Option[Int],
what: String,
when: DateTime,
where: String,
description: String,
price: Double
)
Run Code Online (Sandbox Code Playgroud)
假设存在适当的光滑表和表查询,我会写:
val acts_regs = (for {
a <- Activities
r <- Registrations if r.activityId === a.id
} yield (a, r))
.groupBy(_._1.id)
.map { case (actid, acts) => ??? }
}
Run Code Online (Sandbox Code Playgroud)
但我似乎无法做出适当的映射.这样做的惯用方法是什么?我希望它比使用原始笛卡尔产品更好......
在scala代码中,它很容易,看起来像这样:
val activities = db withSession { implicit sess =>
(for {
a <- Activities leftJoin Registrations …Run Code Online (Sandbox Code Playgroud) 我已经设置了一个带有标题和应用/取消按钮的通用对话框指令.该对话框具有独立的范围.
对话框指令的内容被转换,因此它的范围是对话框范围的兄弟:
来自Angular js docs:
但是,隔离范围会产生一个新问题:如果转换的DOM是小部件隔离范围的子级,则它将无法绑定到任何内容.因此,在窗口小部件为其局部变量创建隔离范围之前,转换范围是原始范围的子级.这使得transcluded和widget隔离范围的兄弟姐妹.
这给我带来了一个新问题.转换后的DOM应该能够在应用时响应对话框.因此,我想在对话框上设置一个"应用"属性,让被抄袭的DOM观看它.但这是不可能的,因为他们是兄弟姐妹!
我哪里错了?
我遇到了python whl包的以下问题:
我有一个包,在我的setup.py中定义了一个入口点.当我运行时pip install .,它会正确安装包和入口点包装器.当我运行python setup.py bdist_wheel后pip install thing.whl,它只安装包,但不安装入口点.
如何从创建的轮包中正确安装入口点?
PS:当我解压缩轮包时,我确实找到了带有预期条目的"entrypoints.txt".它只是没有安装在环境箱中.
我正在考虑为Windows/Linux/OS-X编写桌面应用程序.GUI的一个要求是我需要能够非常准确地设计它.
那就是:我希望能够按照我想要的方式为所有元素着色,将元素像素精确定位,在元素的单面上设置边框等等.非常类似于我在编写Web应用程序时的可能性HTML + CSS中的UI.
我一直在寻找,但似乎很难找到这样的东西(+文档!).
GTK非常成熟,跨平台,并且具有良好的C文档.它具有许多语言的绑定,包括Python 3,这是我现在选择的语言.即使你可以使用CSS设计它,你可以如何以及你可以设计的风格非常有限.
XUL和python有一些第三方绑定,但他们不看,我应该怎么说,经过充分测试.
然后我可以选择在本地运行的python-web-server和在浏览器中运行的应用程序.但是我不确定我是否应该追求这个,或者只是我内心的Web开发人员不想遵守.
基本上我希望能够构建一个漂亮的桌面应用程序.为什么这看起来如此困难?
我在程序中广泛使用日志记录。但现在我想在不使用日志记录模块的情况下写入标准输出,但输出不显示。
两者都不:
sys.stdout.write( "BOE!" )
Run Code Online (Sandbox Code Playgroud)
也不
print( "WAH!" )
Run Code Online (Sandbox Code Playgroud)
工作中。有人可以启发我吗?
我正在尝试以前在不同的上下文中以不同的形式看到的东西:扩展scala的查询扩展 filterById(id: Id)
这就是我尝试过的:
trait TableWithId { self: Profile =>
import profile.simple._
trait HasId[Id] { self: Table[_] =>
def id: Column[Id]
}
implicit class HasIdQueryExt[Id: BaseColumnType, U]
(query: Query[Table[U] with HasId[Id], U]) {
def filterById(id: Id)(implicit s: Session) = query.filter(_.id === id)
def insertReturnId(m: U)(implicit s: Session): Id = query.returning(query.map(_.id)) += m
}
}
Run Code Online (Sandbox Code Playgroud)
这很好,没有真正的魔法.但是因为Table类型没有类型约束,所以我应用filterById的任何查询都会失去它的特异性(现在是通用的Table with HasId[Id]),而我无法再访问它的列(当然除外_.id).
我不知道如何键入这种隐式转换,以防止这种情况发生.可能吗?以下"naieve"解决方案不起作用,因为Scala现在为Id类型推断Nothing:
implicit class HasIdQueryExt[Id: BaseColumnType, U, T <: Table[U] with HasId[Id]]
(query: Query[T, U]) { ... }
Run Code Online (Sandbox Code Playgroud)
我发现突然将Id类型推断为Nothing有点奇怪.如何提示编译器在哪里查找该Id类型?
我有一个sass编译问题.
当我有一个部分项目_partial.scss并将其导入多个部分文件(因为它包含颜色变量)时,它将多次在编译的css中结束!
这很难看,因为同样的规则会多次"否决"自身,这使调试信息(chrome dev工具/ firebug)变得难以理解.
我认为所有这一切都有一个解决方案.我在任何地方都找不到任何关于这个问题的东西.