我注意到scipy.specialn阶和参数x的Bessel函数在x中jv(n,x)被矢量化:
In [14]: import scipy.special as sp
In [16]: sp.jv(1, range(3)) # n=1, [x=0,1,2]
Out[16]: array([ 0., 0.44005059, 0.57672481])
但是没有相应的矢量化形式的球形贝塞尔函数,sp.sph_jn:
In [19]: sp.sph_jn(1,range(3))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-19-ea59d2f45497> in <module>()
----> 1 sp.sph_jn(1,range(3)) #n=1, 3 value array
/home/glue/anaconda/envs/fibersim/lib/python2.7/site-packages/scipy/special/basic.pyc in sph_jn(n, z)
262 """
263 if not (isscalar(n) and isscalar(z)):
--> 264 raise ValueError("arguments must be scalars.")
265 if (n != floor(n)) or (n < 0):
266 raise ValueError("n must be a …Run Code Online (Sandbox Code Playgroud) 想要将 SkipLocationChange 设置为 true 作为我的 Angular2 应用程序的默认值。如何?例如,一个应用程序可能有多个调用router.navigate
this.router.navigate(['/path', arg], {skipLocationChange:true})
Run Code Online (Sandbox Code Playgroud)
也许有 50 次调用 router.navigate,这需要样板化这个选项skipLocationChange:true50 次……
Web API 正在响应带有 的请求Content-Type:text/plain; charset=utf-8,但消息的格式就像 JSON 一样,例如。
{
"total": 168,
"page": 0,
"pageCount": 1,
...
}
Run Code Online (Sandbox Code Playgroud)
在 Spring 中,此消息使用 RestTemplate 进行处理,并且 JSON 会自动映射到ModelDtoPOJO,
restTemplate.getForObject(url, ModelDto::class.java)
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
org.springframework.web.client.RestClientException:无法提取响应:没有找到适合响应类型 [class api.ModelDto] 和内容类型 [text/plain;charset=utf-8] 的 HttpMessageConverter
尽管 Content-Type 是纯文本,有什么方法可以让 spring 将此消息视为 JSON 并对其进行解析?
Keras 允许保存整个模型或仅保存模型权重(请参阅线程)。保存权重时,必须将它们保存到文件中,例如:
model = keras_model()
model.save_weights('/tmp/model.h5')
Run Code Online (Sandbox Code Playgroud)
我只想将字节保存到内存中,而不是写入文件。就像是
model.dump_weights()
Run Code Online (Sandbox Code Playgroud)
Tensorflow 似乎没有这个,所以作为一种解决方法,我写入磁盘然后读入内存:
temp = '/tmp/weights.h5'
model.save_weights(temp)
with open(temp, 'rb') as f:
weightbytes = f.read()
Run Code Online (Sandbox Code Playgroud)
有什么办法可以避免这种迂回吗?
考虑以下典型的python项目结构:
fooproject
- main.py
- src/
- test/
- logs/
- Dockerfile
- .dockerignore
- README.md
Run Code Online (Sandbox Code Playgroud)
该.dockerfile应防止test/和logs/被包含在泊坞窗图像中的目录。
test/
logs/
Run Code Online (Sandbox Code Playgroud)
的内容Dockerfile是
FROM ubuntu16.04
COPY . /app/
WORKDIR /app
USER root
RUN pip install -r requirements.txt
ENTRYPOINT ["main.py"]
Run Code Online (Sandbox Code Playgroud)
但是,当通过 PyCharm 的自动 docker 集成运行时,test和logs目录都被复制到容器中。PyCharm 运行命令的结果如下:
7eb643d9785b:python -u /opt/project/main.py
Run Code Online (Sandbox Code Playgroud)
我尝试了一些无济于事的方法,例如.dockerignore在应用程序其余部分上方的目录中制作副本。例如:
COPY . /app/
COPY .dockerignore .dockerignore
WORKDIR /app
Run Code Online (Sandbox Code Playgroud)
想知道 PyCharm 是否有可能/opt/project以某种方式进行干扰?那么.dockerignore 在这样的项目中究竟应该放在什么位置?
我docker container inspect …
我想在java中实现一个非常简单的客户端到服务器心跳.最简单的方法似乎是通过睡眠.考虑元代码的下方.
class MyClass
Thread heartbeatThread = new Thread();
public void() startHeartBeat{
Thread.sleep(4000);
sock.write("H");
}
Run Code Online (Sandbox Code Playgroud)
这是一个适当的解决方案,还是存在我不考虑的陷阱?
我也考虑过使用这种java.util.Timer.scheduleAtFixedRate方法.这会更强大/可靠吗?如果是这样,为什么?这是一个例子(它不像IMO那样干净):
class HeartBeat
{
Timer timer=new Timer();
public void scheduleHeartBeat(int delay, int period) {
timer.scheduleAtFixedRate( new HeartBeatTask(), delay, period);
}
}
class HeartBeatTaskextends TimerTask {
public void run() {
sock.write("H");
}
Run Code Online (Sandbox Code Playgroud)
第二种方法会被赋予更高的优先级吗?
在kotlin我想过滤一个字符串并返回只有有效字符的子字符串.假设我们有有效的角色,
valid = listOf('A', 'B', 'C')
Run Code Online (Sandbox Code Playgroud)
如何fcn以最简洁的方式定义kotlin以过滤字符串并仅保留有效字符?例如,
'ABCDEBCA' --> 'ABCBCA'
'AEDC' --> 'AC'
Run Code Online (Sandbox Code Playgroud)
无需使用字符串数组就无法找到规范的方法来执行此操作.
import kotlin.text.filter
class Test(){
val VALID = listOf("A", "B", "C")
fun filterString(expression: String): String{
expression.filter(x --> !VALID.contains(x)) #Doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)
该过滤器文档不显示出任何实施例中具体为弹簧操作.
@SpringBootTest我在测试应用程序配置时严重依赖。应用程序属性可能很复杂,具有默认值和重要的验证。例如:
prop:
ports: 1205,2303,4039
fqdn: ${server.host}:${ports[0]}/${path}
@Configuration
SomeConfigClass{
@Value{"${ports}:{#collections.emptyList}"}
List<Integer> ports;
...
}
Run Code Online (Sandbox Code Playgroud)
在测试此类应用程序时,我会在没有模拟的情况下启动完整或部分应用程序上下文,因为上下文和验证本身很复杂 - 模拟无法捕获这一点。不幸的是,我不断发现这种模式有两个限制:
我们如何测试错误的配置是否无法加载?
想象一下测试该端口无效,因为它不在 的限制范围内500 - 1500。
@SpringBootTest(
classes = {SomeConfigClass.class},
properties = "port=9000"
)
public class BadConfigTest{
@Test(expected = ApplicationContextFailedException.class)
public void WHEN_port_9000_THEN_appcontext_fails_to_load() {}
}
Run Code Online (Sandbox Code Playgroud)
由于测试框架在应用程序上下文之后加载,因此似乎无法测试应用程序上下文是否无法加载。现在,我实际上编写了测试,手动确认它们失败,然后进行注释,@Ignored这样它们就不会丢失。
如何在测试方法而不是类级别更改属性?
@SpringBootTest是一个类注释,意味着应用程序属性绑定在测试类级别。这导致许多属性集需要一个测试类,并使测试套件变得臃肿。例如,我最终会得到如下测试类:
ConfigPropertiesAllValidTest
ConfigPropertiesNoneSetTest
ConfigPropertiesSomeValidSomeNotTest
Run Code Online (Sandbox Code Playgroud)
其中每个只有一个或两个测试用例。最好是ConfigPropertiesTest每个测试都有一个具有不同道具的类。这可能吗?
再次 - 我想避免模拟,因为它们不会捕获 Spring 在运行时执行的重要上下文自动配置。
考虑一个带有prebuild和build阶段的虚拟 gitlab 作业。
stages:
- prebuild
- build
Run Code Online (Sandbox Code Playgroud)
该阶段的唯一工作prebuild是为后续阶段创建和缓存依赖项。prebuild仅当 python 文件发生更改时才会触发该阶段requirements.txt。该build阶段有一个cache:policyof pull,这意味着它遵循prebuild缓存。例如,假设缓存由共享的单个文件组成sharedfile:
prebuild_job:
cache:
policy: pull-push
rules:
- changes:
- requirements.txt
paths:
- sharedfile
script:
- echo "FOOBAR" > sharedfile
build_job:
cache:
policy: pull
paths:
- sharedfile
script:
- cat sharedfile
Run Code Online (Sandbox Code Playgroud)
这就是我想要的——仅在更改并使用其输出prebuild时触发(在本例中但实际上是一个完整的 python 虚拟环境)。这非常有效,直到通过Clear Runner Caches按钮在 gitlab 上手动清除缓存,然后我们必须手动重新运行预构建步骤,否则构建将继续失败,因为预构建在缓存清除后从未重新触发。requirements.txtbuildsharedfile
我们如何设置规则或解决方法,以便prebuild_job …
考虑一个带有红色错误文本的 HTML 输入表单,它会在字段为空时发出通知。注意它依赖于ng-show=$error.required && $touched
<div class="form-group">
<div class="input-group">
<input id="qp-cargo-value" name="qpCargo" placeholder="$" type="text"
class="form-group" currency="229" data-ng-model="cargoValue" required>
</div>
<div class="rederrorlabel"
ng-show="myform.qpCargo.$error.required && myform.qpCargo.$touched">
Error - Cargo value is required
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
它适用于没有该ccy属性的字段。但是对于输入 with ccy,当输入为空时,存储在 angular 中的默认值不是nullbut $,这无法触发$error.required条件

这是我输入然后删除值时的值的控制台输出,确认它永远不会设置为 null 而是设置为"$".
无论如何要保留ccy格式但仍以某种方式$error.requried在输入字段中使用?