小编Fla*_*ius的帖子

带有本地插件的github页面的干净系统

由于github不执行(safejekyll 的选项)插件,我正在尝试开发一种小而干净的方式将已编译的文件部署到分支master.

通常的来源是在分支中boilerplate,从那里我运行jekyll并生成代码,一切正常.

在主分支中,我只有以下内容 Makefile

default:
    git checkout boilerplate
    git subtree split -P _site -b site
    git checkout master
    git merge -X theirs site
    git branch -D site
Run Code Online (Sandbox Code Playgroud)

和文件.nojekyll(我在这里使用子树命令)

但这不起作用.它生成site包含所有代码的分支,但是当我合并时master,它所说的全部是:

已经是最新的.

如何解决这个问题?

我想做到的是要覆盖所有现有文件master但不能删除不分支存在的文件site(如前面提到的Makefile.nojekyll,这是重要的是要保持有).

注意:我想从头开始,以便保持对部署过程的控制.我不想1.引入新的依赖项2.使用其他工具.

git github

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

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

格式化self,这是一本字典

format(self)在这种情况下如何工作?

class Commit:
    number = None
    sha = None
    message = None
    identity = None

    def __init__(self, raw, number):
        r = raw.commits[number]

        self.number = number
        self.sha = r['sha']
        self.message = r['message']
        self.identity = raw.identities[r['identity']]

    def __str__(self):
        return """
Commit {number} {sha}
Message {message}
Identity {identity}
""".format(self)

    def __getitem__(self, attr):
        return getattr(self, attr)
    def __contains__(self, attr):
        return hasattr(self, attr)
Run Code Online (Sandbox Code Playgroud)

如果我然后尝试访问单个属性

c = Commit(raw, 170)
print(c['sha'])
Run Code Online (Sandbox Code Playgroud)

例如,它的工作原理.但是,如果我print(c)直接说,它说:

KeyError:'数字'

我原本希望format()通过它获取所需的属性__getitem__().

如何使它工作?

python python-3.x

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

沙盒python插件

我打算在python(+ qt4)中编写一个可插拔的应用程序.但是我对安全问题非常关注.插件应该足够强大,以便在应用程序中做任何他们喜欢的事情(并且作为进一步的约束,在使用这样的插件时会有签名过程和用户​​警告),但是与环境交互(文件系统,其他进程) ,网络等)应该只通过我将编写的一些python代码通过插件来完成.

有没有安全简便的方法来实现它,除了必须在安装之前对插件的代码进行静态代码分析?

python plugins sandbox

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

限制stl的向量max_size

如何限制STL向量的max_size?最终通过专业化.一个例子是受欢迎的.

c++ stl

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

分部在prolog

我正在尝试使用余数定理和良好排序原则来定义prolog中的除法.

我到目前为止:

less(0, s(0)).

less(0, s(B)) :- less(0, B).
less(s(A), s(s(B))) :- less(A, s(B)).

add(A,0,A)       :- nat(A).
add(A,s(B),s(C)) :- add(A,B,C).  % add(A,B+1,C+1) = add(A,B,C)

add2(A,0,A).
add2(A,s(B),s(C)) :- add2(A,B,C).  % add(A,B+1,C+1) = add(A,B,C)

times(A,0,0).
times(A,s(B),X) :- times(A,B,X1),
               add(A,X1,X).

eq(0,0).
eq(s(A), s(B)) :- eq(A, B).

% A / B = Q (R) => A = B * Q + R
div(A, B, Q, R) :- less(R, B), eq(A, add(times(Q, R), R)).
Run Code Online (Sandbox Code Playgroud)

但是这个定义在div某种程度上是错误的.有人可以给我一个提示吗?

PS:我不应该使用eq,但我无法上班is=上班.

math recursion prolog successor-arithmetics

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

从子进程的标准输出的 tar 中读取单个文件

如何从命令的标准输出读取单个文件的内容而不访问磁盘?

我想出了这样的东西:

def get_files_from(sha, files):
    from subprocess import Popen, PIPE
    import tarfile
    p = Popen(["git", "archive", sha], bufsize=10240, stdin=PIPE, stdout=PIPE, stderr=PIPE)
    tar = tarfile.open(fileobj=p.stdout, mode='r|')
    p.communicate()
    members = tar.getmembers()
    names = tar.getnames()
    contents = {}
    for fname in files:
        if fname not in names:
            contents[fname] = None
            continue
        else:
            idx = names.index(fname)
            contents[fname] = members[idx].tobuf()
            contents[fname] = tar.extractfile(members[idx]) #<--- HERE

    tar.close()
    return contents
Run Code Online (Sandbox Code Playgroud)

问题是.read()在标记的线路上添加呼叫

            contents[fname] = tar.extractfile(members[idx]) #<--- HERE
Run Code Online (Sandbox Code Playgroud)

会给出错误:

tarfile.StreamError:不允许向后查找

那么如何获取文件的内容呢?

python

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

对象构造但仍为null

这个源代码有什么问题?

 1  package Core;
 2  
 3  import java.sql.*;
 4  
 5  public class Course extends Model {
 6      
 7      protected int id;
 8      protected String title;
 9      
10      public Course(int id) {
11          this.id = id;
12      }
13      
14       public static Course getNew(ResultSet res) {
15          try {
16              Course c;
17              c = new Course(res.getInt("course_id"));
18              return c;
19          } catch(SQLException e) {
20              return null;
21          }
22      }
23      
24      @Override
25      public String toString() {
26 …
Run Code Online (Sandbox Code Playgroud)

java debugging

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

使用直方图对列表进行排序

给定直方图作为字典,什么是最pythonic,"电池包括"的方式排序列表,该列表只有字典中的元素,通过该字典中定义的频率?

字典的键(以及隐含的列表中的值)是字符串,频率存储为整数.

我只对python2解决方案感兴趣,但是也欢迎你写一个python解决方案,所以其他人也可以从中受益(将来).

python

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

没有解构的比赛中的条件

use std::cmp::Ordering;

fn cmp(a: i32, b: i32) -> Ordering {
    match {
        _ if a < b => Ordering::Less,
        _ if a > b => Ordering::Greater,
        _ => Ordering::Equal,
    }
}

fn main() {
    let x = 5;
    let y = 10;

    println!("{}", match cmp(x, y) {
        Ordering::Less => "less",
        Ordering::Greater => "greater",
        Ordering::Equal => "equal",
    });
}
Run Code Online (Sandbox Code Playgroud)

如何使用match条件,没有解构(因为没有什么可以解构),在cmp上面的函数?

代码改编自本书中众所周知的例子,该例子仅使用if/else,但它不起作用:

src/main.rs:5:9: 5:10 error: unexpected token: `_`
src/main.rs:5         _ if a < b => Ordering::Less,
                      ^
Could …
Run Code Online (Sandbox Code Playgroud)

rust

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

实用的位操作可节省数小时的工作量

我想知道你用过的其他按位和逻辑操作可以节省你的一天.

例如,我最后一次很棒的时间(和资源)保护程序

if(!((A^B) & B))
Run Code Online (Sandbox Code Playgroud)

读取:如果A至少具有B的访问权限,则权限保存在位字段A和B中.

请使用经典运算符:binary&(and)| (或),^(xor),〜(反转)和逻辑1 &&(和),|| (要么), !(不).

algorithm logic

0
推荐指数
1
解决办法
275
查看次数

PHP白色空间

PHP:

<?php
echo '<div id="hello">';
include 'world.php';
echo '</div>';
Run Code Online (Sandbox Code Playgroud)

每个构造之间都有空格.谢谢!

php echo

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