小编Ada*_*hes的帖子

python中的矢量化球形bessel函数?

我注意到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)

python numpy vectorization scipy bessel-functions

6
推荐指数
1
解决办法
1892
查看次数

Angular2 + 如何将 SkipLocationChange 设置为 true 作为默认值

想要将 SkipLocationChange 设置为 true 作为我的 Angular2 应用程序的默认值。如何?例如,一个应用程序可能有多个调用router.navigate

this.router.navigate(['/path', arg], {skipLocationChange:true})
Run Code Online (Sandbox Code Playgroud)

也许有 50 次调用 router.navigate,这需要样板化这个选项skipLocationChange:true50 次……

angular2-routing angular

6
推荐指数
1
解决办法
939
查看次数

强制 spring RestTemplate 将纯文本处理为 JSON?

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 并对其进行解析?

java rest spring json

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

将keras模型权重直接保存到字节/内存?

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 keras tensorflow

6
推荐指数
1
解决办法
5019
查看次数

.dockerignore 放在哪里?

考虑以下典型的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 集成运行时,testlogs目录都被复制到容器中。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 …

python pycharm docker

6
推荐指数
1
解决办法
4186
查看次数

Java中的Heartbeat:timerTask还是thread.sleep()?

我想在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)

第二种方法会被赋予更高的优先级吗?

java multithreading

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

过滤kotlin中的子字符串

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)

过滤器文档不显示出任何实施例中具体为弹簧操作.

kotlin

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

SpringBootTest - 如何断言上下文不加载并在测试级别更改属性?

@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)

在测试此类应用程序时,我会在没有模拟的情况下启动完整或部分应用程序上下文,因为上下文和验证本身很复杂 - 模拟无法捕获这一点。不幸的是,我不断发现这种模式有两个限制:

  1. 我们如何测试错误的配置是否无法加载?

    想象一下测试该端口无效,因为它不在 的限制范围内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这样它们就不会丢失。

  2. 如何在测试方法而不是类级别更改属性?

    @SpringBootTest是一个类注释,意味着应用程序属性绑定在测试类级别。这导致许多属性集需要一个测试类,并使测试套件变得臃肿。例如,我最终会得到如下测试类:

    ConfigPropertiesAllValidTest
    ConfigPropertiesNoneSetTest
    ConfigPropertiesSomeValidSomeNotTest
    
    Run Code Online (Sandbox Code Playgroud)

    其中每个只有一个或两个测试用例。最好是ConfigPropertiesTest每个测试都有一个具有不同道具的类。这可能吗?

再次 - 我想避免模拟,因为它们不会捕获 Spring 在运行时执行的重要上下文自动配置。

java junit spring spring-boot spring-boot-test

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

如果缓存为空,如何触发gitlab作业?

背景

考虑一个带有prebuildbuild阶段的虚拟 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 …

continuous-integration gitlab devops

5
推荐指数
0
解决办法
622
查看次数

Angular 空输入验证因货币而失败

考虑一个带有红色错误文本的 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在输入字段中使用?

html angular

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