小编A.J*_*oet的帖子

scala光滑的一对多收藏品

我有一个数据库,其中包含具有一对多注册关系的活动.目标是通过一系列注册来获取所有活动.

通过创建具有注册的活动的笛卡尔积,可以获得用于获取该数据的所有必要数据.但我似乎无法找到一个很好的方法将它正确地放入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)

scala slick

14
推荐指数
1
解决办法
5474
查看次数

angularjs transclusion scope access

我已经设置了一个带有标题和应用/取消按钮的通用对话框指令.该对话框具有独立的范围.

对话框指令的内容被转换,因此它的范围是对话框范围的兄弟:

来自Angular js docs:

但是,隔离范围会产生一个新问题:如果转换的DOM是小部件隔离范围的子级,则它将无法绑定到任何内容.因此,在窗口小部件为其局部变量创建隔离范围之前,转换范围是原始范围的子级.这使得transcluded和widget隔离范围的兄弟姐妹.

这给我带来了一个新问题.转换后的DOM应该能够在应用时响应对话框.因此,我想在对话框上设置一个"应用"属性,让被抄袭的DOM观看它.但这是不可能的,因为他们是兄弟姐妹!

我哪里错了?

scope angularjs transclusion

7
推荐指数
2
解决办法
9474
查看次数

Pip,wheel和console_scripts

我遇到了python whl包的以下问题:

我有一个包,在我的setup.py中定义了一个入口点.当我运行时pip install .,它会正确安装包入口点包装器.当我运行python setup.py bdist_wheelpip install thing.whl,它只安装包,但不安装入口点.

如何从创建的轮包中正确安装入口点?

PS:当我解压缩轮包时,我确实找到了带有预期条目的"entrypoints.txt".它只是没有安装在环境箱中.

python pip python-wheel

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

具有重型造型的跨平台GUI

我正在考虑为Windows/Linux/OS-X编写桌面应用程序.GUI的一个要求是我需要能够非常准确地设计它.

那就是:我希望能够按照我想要的方式为所有元素着色,将元素像素精确定位,在元素的单面上设置边框等等.非常类似于我在编写Web应用程序时的可能性HTML + CSS中的UI.

我一直在寻找,但似乎很难找到这样的东西(+文档!).

GTK非常成熟,跨平台,并且具有良好的C文档.它具有许多语言的绑定,包括Python 3,这是我现在选择的语言.即使你可以使用CSS设计它,你可以如何以及你可以设计的风格非常有限.

XUL和python有一些第三方绑定,但他们不看,我应该怎么说,经过充分测试.

然后我可以选择在本地运行的python-web-server和在浏览器中运行的应用程序.但是我不确定我是否应该追求这个,或者只是我内心的Web开发人员不想遵守.

基本上我希望能够构建一个漂亮的桌面应用程序.为什么这看起来如此困难?

python user-interface cross-platform

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

使用日志记录时 Python print()/sys.stdout.write() 不可见

我在程序中广泛使用日志记录。但现在我想在不使用日志记录模块的情况下写入标准输出,但输出不显示。

两者都不:

sys.stdout.write( "BOE!" )
Run Code Online (Sandbox Code Playgroud)

也不

print( "WAH!" )
Run Code Online (Sandbox Code Playgroud)

工作中。有人可以启发我吗?

python logging

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

Scala编译器推断通用参数没有任何内容

我正在尝试以前在不同的上下文中以不同的形式看到的东西:扩展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类型?

generics scala type-inference implicit-conversion slick

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

Sass部分导入

我有一个sass编译问题.

当我有一个部分项目_partial.scss并将其导入多个部分文件(因为它包含颜色变量)时,它将多次在编译的css中结束!

这很难看,因为同样的规则会多次"否决"自身,这使调试信息(chrome dev工具/ firebug)变得难以理解.

我认为所有这一切都有一个解决方案.我在任何地方都找不到任何关于这个问题的东西.

css sass

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