小编Fra*_*ans的帖子

仅在存在时调用方法

是否存在一些隐藏的Ruby/Rails-magic,只有在它存在时才调用方法?

让我们说我想打电话

resource.phone_number
Run Code Online (Sandbox Code Playgroud)

但我事先不知道资源是否响应phone_number.一种方法是

resource.phone_number if resource.respond_to? :phone_number
Run Code Online (Sandbox Code Playgroud)

如果在错误的地方使用,那就不是那么好了.我很好奇,如果存在的东西更像是如何try使用(resource.try(:phone_number)).

ruby ruby-on-rails

60
推荐指数
3
解决办法
6万
查看次数

Android的远程控制客户端

RemoteControlClient在ICS推出.这就是锁屏似乎与各种音乐播放器融为一体的方式.有关锁定屏幕上的Spotify示例,请参阅下面的屏幕截图.

在此输入图像描述

可以从锁定屏幕以外的其他应用程序中集成所有玩家吗?

我发现文档在这个问题上缺乏一点点,但我认为如果可能的话,结果可能会很有趣.

编辑:

到目前为止的进展:没有.我发现的是IRemoteControlDisplay可能在其中有一部分,但我的Android/Java技能有点缺乏实际了解如何实现它并实现与锁定屏幕相同的功能.

java android

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

从应在 Airflow 中按顺序运行的函数返回任务列表

我想从一个函数返回 2 个或更多任务,这些任务应该在它们插入依赖项的位置按顺序运行,请参见下文。

t1 = PythonOperator()

def generate_tasks():
    t2 = PythonOperator()
    t3 = PythonOperator()
    return magic(t2, t3) # magic needed here (preferably)

t1 >> generate_tasks() # otherwise here
# desired result: t1 >> t2 >> t3
Run Code Online (Sandbox Code Playgroud)

这可行吗?据我了解,Airflow 2.0 似乎通过 TaskGroup 实现了这一点,但我们使用的是 Google 的 Composer,2.0 暂时不会可用。

我发现的最佳解决方法:

t1 = PythonOperator()

def generate_tasks():
    t2 = PythonOperator()
    t3 = PythonOperator()
    return [t2, t3]

tasks = generate_tasks()
t1 >> tasks[0] >> tasks[1]
Run Code Online (Sandbox Code Playgroud)

但我真的希望将其抽象化,因为它或多或少违背了从单个函数返回多个运算符的目的。我们希望它是最终用户所知的单个单元,即使它可以由 2 个或更多任务组成。

如何使用 Airflow 2.0 中的 TaskGroup 来完成此操作:

class Encryptor:
    def …
Run Code Online (Sandbox Code Playgroud)

airflow google-cloud-composer

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