小编Par*_*xis的帖子

在PHP 7中全局启用'strict_types'

我目前正在将我的网站从PHP5迁移到PHP7,并且我已经开始使用添加的严格输入功能.但是,这需要我使用以下行开始所有文件:

<?php declare(strict_types=1);

// All other code here
// ...
Run Code Online (Sandbox Code Playgroud)

所以我想知道,是否有任何方法可以strict_types使用像php.iniapache配置文件那样全局启用,所以我不必每次都写这行,如果是这样,我怎么能启用它?

php apache variable-types php-7

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

递归调用返回其自身迭代器的对象方法

我目前正在编写一个项目,该项目需要使用返回其自身迭代器的方法的第三方代码,这是我的代码中的示例:

def generate():
    for x in obj.children():
        for y in x.children():
            for z in y.children():
                yield z.thing
Run Code Online (Sandbox Code Playgroud)

目前,这简直使我的代码变得混乱,并且在3个级别之后变得难以阅读.理想情况下,我会让它做这样的事情:

x = recursive(obj, method="children", repeat=3).thing
Run Code Online (Sandbox Code Playgroud)

是否有内置的方法在Python中执行此操作?

python recursion function generator

23
推荐指数
3
解决办法
680
查看次数

Gulp uglify无法处理箭头功能

我正在尝试使用压缩我的项目gulp-uglify,但是Unexpected token: punc ()每当遇到代码中的箭头函数时,gulp似乎都会抛出错误.有什么办法可以解决这个问题吗?谢谢.

大口喝,崩溃test.js

// Function with callback to simulate the real code
function test(callback) {
    if (typeof callback === "function") callback();
}

// Causes a crash
test(() => {
    console.log("Test ran successfully!");
});

// Doesn't cause a crash
test(function () {
    console.log("Test ran successfully!");
});
Run Code Online (Sandbox Code Playgroud)

gulpfile.js

var gulp = require("gulp");
var concat = require("gulp-concat");
var uglify = require("gulp-uglify");

gulp.task("scripts", function() {
    gulp.src([
        "./gulp-crash-test.js"
    ]).pipe(
        concat("gulp-crash-test.min.js")
    ).pipe(
        uglify().on('error', function(e){
            console.log(e);
        })
    ).pipe(
        gulp.dest("./")
    );
}); …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 gulp gulp-uglify

21
推荐指数
3
解决办法
2万
查看次数

Angular InjectionToken 抛出“没有 InjectionToken 的提供者”

我目前正在学习新的 Angular 框架,我正在尝试制作一个动态搜索栏,它接受服务名称作为参数,以便动态解析服务以查询后端服务。

为此,我使用Injector, 并在ngOnInit. 这在使用基于字符串的提供程序时工作正常,但是我的 IDE 指出它已被弃用,我应该使用一个InjectionToken我似乎无法理解的。

我希望以下代码可以工作,因为删除所有实例InjectionToken并将其替换为直接字符串文字有效:

我尝试查看以下文档,但我不太明白,因为我觉得我完全按照它说的做了,但它一直告诉我它不起作用:https : //angular.io/guide/dependency-注射提供者

有人能告诉我我做错了什么吗?
谢谢

模块声明

// app.module.ts
@NgModule({
  declarations: [
    AppComponent,
    SearchBarComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    AppRoutingModule
  ],
  providers: [
    {
      provide: new InjectionToken<ISearchable>('CustomerService'), // <-- doesn't work;  'CustomerService' <-- works
      useValue: CustomerService
    }
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

搜索栏组件:

// search-bar.component.ts
@Component({
  selector: 'search-bar',
  templateUrl: './search-bar.component.html',
  styleUrls: ['./search-bar.component.sass']
})
export class SearchBarComponent implements OnInit { …
Run Code Online (Sandbox Code Playgroud)

dependency-injection typescript angular

12
推荐指数
2
解决办法
3万
查看次数

GitLab CI - 缓存无法正常工作

我目前正在使用GitLab与CI运行程序一起运行我的项目的单元测试,以加快引导我使用内置缓存功能的测试的过程,但这似乎不起作用.

每当有人提交掌握时,我的跑步者会做一个git fetch并继续删除所有缓存文件,这意味着我必须盯着我的屏幕大约10分钟等待测试完成,同时跑步者重新下载所有依赖项(NPM和PIP是最大的杀手锏).

CI跑者的输出:

Fetching changes...

Removing bower_modules/jquery/  --+-- Shouldn't happen!
Removing bower_modules/tether/    |
Removing node_modules/            |
Removing vendor/                --'
HEAD is now at 7c513dd Update .gitlab-ci.yml
Run Code Online (Sandbox Code Playgroud)

目前我的.gitlab-ci.yml

image: python:latest

services:
  - redis:latest
  - node:latest

cache:
  key: "$CI_BUILD_REF_NAME"
  untracked: true
  paths:
  - ~/.cache/pip/
  - vendor/
  - node_modules/
  - bower_components/


before_script:
  - python -V

  # Still gets executed even though node is listed as a service??
  - '(which nodejs && which npm) || (apt-get …
Run Code Online (Sandbox Code Playgroud)

continuous-integration caching gitlab

10
推荐指数
1
解决办法
5347
查看次数

未找到Google云打印OAuth范围

我正在创建一个应用程序,它在生成后从服务器打印出pdf.

使用谷歌云打印时,我不断得到:

User credentials required
Error 403
Run Code Online (Sandbox Code Playgroud)

注意:模拟页面中进行此打印请求工作正常,但那是因为我已经登录到我的Google帐户.

在做了一些研究之后,我发现我需要使用OAuth来获取访问令牌以发送打印作业的请求.

我可以找到的每一页都告诉我将我重定向到:https://www.googleapis.com/auth/cloudprint,它给我一个404错误,我也无法在google游乐场找到它,并使用任何旧版本身份验证的最终结果是请求登录被标记为来自黑客的攻击.

有没有办法解决?

google-app-engine oauth oauth-2.0 google-cloud-print

9
推荐指数
1
解决办法
1828
查看次数

为不同的Linux版本构建内核模块

我是编写内核模块的新手,因此面临很少的非技术问题.

因为为特定内核版本创建内核模块(比如3.0.0-10,10是补丁号)需要相同的版本内核头文件,所以它看起来很直接安装内核头文件并在那里开始开发.但是修补内核版本的内核头文件不可用.因为我有一个客户端内核vmlinuz-3.0.0-10在机器上运行并且在下载内核头文件时它说没有找到.

  • 另一种方法是获取该特定内核的源代码,但问题是同样的补丁内核源不可用(它不需要获取linux-kernel-3.0.0-10甚至linux-kernel-3.0.0的源代码)和第10个补丁).在某些情况下,可以获得运行内核的源代码,但并非总是可行.

  • 另一种方法是构建除运行内核之外的内核,并在机器中放置内置内核.但它需要构建该内核的模块,这是一个耗时且耗费空间的过程.

因此,问这个问题的目的是了解内核驱动程序开发人员的偏好.还有其他选择吗?

是否有可能在一个版本中编译内核模块并在另一个版本中运行(虽然它会给出错误,但有没有解决方法?)

module linux-device-driver linux-kernel

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

SqlAlchemy记录"SystemError:错误返回无异常设置"

我目前正在开发一个Web应用程序,它使用SqlAlchemy Flask和Marshmallow的组合将SQLite数据序列化为前端的JSON.我已经在多个场合使用过这种设置,但是,这次我的控制台不断被垃圾邮件发送,并出现以下错误:

    Exception ignored in: <generator object surface_selectables at 0x13b399888>
Traceback (most recent call last):
  File "/Users/luke/Documents/Projects/project/venv/lib/python3.6/site-packages/sqlalchemy/sql/util.py", line 231, in surface_selectables
    yield elem
SystemError: error return without exception set
Exception ignored in: <generator object _visitor_iterator at 0x13b399888>
Traceback (most recent call last):
  File "/Users/luke/Documents/Projects/project/venv/lib/python3.6/site-packages/sqlalchemy/sql/visitors.py", line 150, in _visitor_iterator
    yield v
SystemError: error return without exception set
Exception ignored in: <generator object _visitor_iterator at 0x13b399888>
Traceback (most recent call last):
  File "/Users/luke/Documents/Projects/project/venv/lib/python3.6/site-packages/sqlalchemy/sql/visitors.py", line 150, in _visitor_iterator
    yield v
SystemError: error return …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy cpython

7
推荐指数
0
解决办法
694
查看次数

包含逗号的数组到字符串 - JavaScript

好的,我正在编写一个包含完整句子的脚本,但整个句子可以包含逗号.

由于脚本的工作方式,数组必须至少转换为一次字符串.因此,当发生这种情况时,一旦我将字符串拆分回原始值,逗号的开始就会相互冲突.

我无法弄清楚如何解决这个问题,到目前为止我一直在寻找并没有成功.

我正在使用chrome插件,这是发生的事情的一个小例子:

var Data = ["This is a normal string", "This string, will cause a conflict.", "This string should be normal"];

// The data gets sent to a background script, in string form and comes back as this
var Data = "This is a normal string, This string, will cause a conflict., This string should be normal";
Data = Data.split(",");

// Results in 4 positions instead of 3
Data = ["This is a normal string", "This string"," will …
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery

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

直接对芹菜任务进行单元测试

我知道这将被视为重复,但是在问这个问题之前我已经环顾四周,但是所有问题似乎都已过时或对我的问题没有任何帮助。这是我写这个问题之前看过的地方:


我目前正在从事一个大量使用Celery处理异步任务的项目;为了使整个代码库稳定,我正在为整个项目编写单元测试,但是到目前为止,我还无法为Celery 编写单个工作测试。

我的大多数代码都需要跟踪运行的任务,以便确定是否已准备好查询所有结果。这在我的代码中实现如下:

@app.task(bind=True)
def some_task(self, record_id):
    associate(self.request.id, record_id)  # Not the actual DB code, but you get the idea

# Somewhere else in my code, eg: Flask endpoint
record = some_db_record()
some_task.apply_async(args=[record.id])
Run Code Online (Sandbox Code Playgroud)

由于我没有基于* nix的计算机来运行我的代码,因此我尝试通过将always eager选项设置为true来解决此问题,但是,当任何子任务尝试查询结果时,都会引起问题:

@app.task(bind=True)
def foo(self): 
    task = bar.apply_async()
    foo_poll.apply_async(args=[task.id]) 

@app.task(bind=True, max_retries=None):
def foo_poll(self, celery_id)
    task =  AsyncResult(celery_id)
    if not task.ready():  # RuntimeError: Cannot retrieve result with task_always_eager enabled
        return self.retry(countdown=5)
    else:
        pass  # Do …
Run Code Online (Sandbox Code Playgroud)

python unit-testing celery

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