小编Jan*_*cak的帖子

pypeg2 - 可以使用peg语法解析这个表达式吗?

我需要根据以下规则解析表达式:

  1. 表达式可以包含表示为的过滤器对象 name:value
  2. 表达式可以包含字符串表达式
  3. 表达式可以包含布尔值OR,AND
  4. 里面的一切都可以引用

所以典型的表达看起来像

filter1:45 hello world filter:5454

filter1:45 'hello world' filter:5454

hello world

'hello world' OR filter:43


这是我到目前为止所尝试的:

class BooleanLiteral(Keyword):
    grammar = Enum(K("OR"), K("AND"))

class LineFilter(Namespace):
    grammar = flag('inverted', "-"), name(), ":", attr('value', word)

class LineExpression(List):
    grammar = csl(LineFilter, separator=blank)
Run Code Online (Sandbox Code Playgroud)

有了这个语法,我就可以解析字符串了

filter2:32 filter1:3243

从我的理解,我可以提供csl一个对象列表的功能,语法需要按顺序.但是,如果我想解析像这样的对象,该怎么办?

filter34:43 hello filter32:3232

要么

filter34:43 OR filter32:3232

我怎么能说表达式中有多种类型的对象(过滤器,表达式,布尔值)?挂钩可能吗?

python regex grammar parsing peg

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

无法使用webpack-isomorphic-tools生成webpack-assets.json

我正在努力学习React以及围绕它构建的整个环境.我通过尝试构建自己的开发堆栈来做到这一点.

我无法在很长一段时间内遇到的问题是如何在不失去服务器渲染能力的情况下提供CSS /图像.

我已经阅读了几个教程并发现了webpack-isomorphic-tools

我已配置它们并设法获得支持的图像,sass(转换为css).

但是,我遇到了一个问题,我的webpack-assets.json文件没有生成,而是看到了这个输出.(我设法npm start在此次提交之前的第二次运行时生成它,但这绝对不是一种方法,但它表明插件在文件存在时有效.)

$ npm start

> redux-universal-example@0.0.0 start /Users/janvorcak/learning2016
> node src/server/index.js

[webpack-isomorphic-tools] (waiting for the first Webpack build to finish)
[webpack-isomorphic-tools] (waiting for the first Webpack build to finish)
[webpack-isomorphic-tools] (waiting for the first Webpack build to finish)
[webpack-isomorphic-tools] (waiting for the first Webpack build to finish)
Run Code Online (Sandbox Code Playgroud)

我理解这个文件的目的,但我无法弄清楚为什么它根本没有生成.

有什么我想念的吗?以下是相关文件和存储库

有人可以解释一下发生了什么,我已经阅读了文档,博客,但我在这里遗漏了一些东西.谢谢.

javascript reactjs webpack webpack-isomorphic-tools

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

在UML图中定位类

我正在创建一个用于将Python项目显示为UML图的工具(+使用GUI显示一些代码错误检测)

我使用Pyreverse扫描一些项目,我拥有绘制UML图所需的所有数据.问题是在画布上定位类框

首先,我决定使用已经实现的基于力的算法来决定类的位置,它的效果非常好,这里的结果是 https://github.com/jvorcak/gpylint/blob/master/screenshots/gpylint.png ,这里是该代码(Python,但它即使非Python程序员很容易理解)

有一个proble,这是伟大的显示图形,但如果我想显示UML我想有一些改进,例如,如果2类扩展了一个超类,我希望他们是在图中的同一水平比如点程序生成的图表

你能告诉我一个算法怎么做吗?或者至少给我一些想法?

python drawing uml graph-drawing

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

如何预填充命令行输入

我正在运行一个bash脚本,我想在执行脚本后用命令行预填充命令行.唯一的条件是该脚本当时不能运行.

我需要的是......

  1. 运行脚本
  2. 在脚本停止后,在命令行中预填充文本

它甚至可能吗?我尝试的所有内容都是使用模拟bash脚本

read -e -i "$comm" -p "[$USER@$HOSTNAME $PWD]$ " input
command $input
Run Code Online (Sandbox Code Playgroud)

但我正在寻找更直接的东西.

linux bash

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

Chrome扩展程序:身份验证方面的最佳做法

我正在开发基于Extension API的chrome扩展,我需要针对自己的在线服务进行身份验证.我已经阅读了很多文档,我知道我需要使用OAuth2,我应该使用chrome.identity.launchWebAuthFlow https://developer.chrome.com/apps/app_identity#update_manifest

我设法使用登录工作launchWebAuthFlow.唯一的问题是,即使我已经使用浏览器会话登录,它也想要进行身份验证.因此,extension的auth系统与浏览器中的auth系统是分开的.

像Grammarly这样的扩展可以检测我是否在浏览器中登录Grammarly并根据它调整弹出内容.从我看过他们的源代码,看起来他们正在使用cookie来检测会话.扩展程序可以使用访问Cookie

chrome.cookies.get({ url: 'http://localhost:8777', name: 'sessionid' },
    function (cookie) {
      if (cookie) {
        console.log(cookie.value);
      }
      else {
        console.log('Can\'t get cookie! Check the name!');
      }
    })
Run Code Online (Sandbox Code Playgroud)

这真的是Extension API的工作方式吗?我不能使用(IMHO)更安全的Identity API并重用浏览器会话吗?

javascript google-chrome google-chrome-extension

5
推荐指数
2
解决办法
1551
查看次数

更改符号d3.format用于'g'类型的符号

我们想格式化一个数字,以便生成的字符串长度为X(在我们的例子中,它的长度为3).如果数字太低或太大,我们可以使用指数表示法,但是我们更喜欢在没有它的情况下显示数字.

这正是https://github.com/d3/d3-format的g符号

但是,d3以某种方式决定输出数字是否在e表示法中.如果在第一个非零数字前放置5个以上的零,则选择e表示法.我们想把它改成更低的数字.

d3.format(".2g")(0.0000020852945934254138)
>> "0.0000021"
d3.format(".2g")(0.00000020852945934254138)
>> "2.1e-7"
Run Code Online (Sandbox Code Playgroud)

有没有办法如何修改这种行为,以便我们可以得到一个不超过一定长度的字符串?

javascript d3.js

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

GeventSocketIOWorker没有属性'socket'

我需要使用gunicorn运行Django应用程序.我阅读文档,我认为我设置了所有应有的东西,但是当我运行时

gunicorn --worker-class socketio.sgunicorn.GeventSocketIOWorker app.wsgi:application
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息

2013-02-01 18:25:17 [25394] [INFO] Booting worker with pid: 25394
2013-02-01 18:25:18 [25394] [ERROR] Exception in worker process:
Traceback (most recent call last):
  File ".../app-root/data/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker
    worker.init_process()
  File ".../app-root/data/lib/python2.7/site-packages/gunicorn/workers/ggevent.py", line 131, in init_process
    super(GeventWorker, self).init_process()
  File ".../app-root/data/lib/python2.7/site-packages/gunicorn/workers/base.py", line 104, in init_process
    self.run()
  File ".../app-root/data/lib/python2.7/site-packages/socketio/sgunicorn.py", line 14, in run
    self.socket.setblocking(1)
AttributeError: 'GeventSocketIOWorker' object has no attribute 'socket'
Traceback (most recent call last):
  File ".../app-root/data/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker
    worker.init_process()
  File ".../data/lib/python2.7/site-packages/gunicorn/workers/ggevent.py", line 131, …
Run Code Online (Sandbox Code Playgroud)

django socket.io gunicorn gevent-socketio

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

我的python prime finder中的无限范围?

我想在我的python素数查找器中获得无限范围!这是我的代码!

import math
print "Welcome to Prime Finder!"
option = raw_input("continue(y/n)")
 if option == "y":
    for num in range(1,(infinite number)):
        if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
           print num
Run Code Online (Sandbox Code Playgroud)

我试图得到它所说的(无限数)实际上是一个无限数.有什么价值或东西我可以用来找到它吗?任何帮助将不胜感激!

python primes

4
推荐指数
2
解决办法
3287
查看次数

你怎么从python获得<abc> some text </ abc>的"some text"?

我正在使用python和mindom模块.

我想提取abc

<someTag>abc</someTag>.
Run Code Online (Sandbox Code Playgroud)

假设我可以到达someTag,如何abc从那里检索?

python xml dom

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

函数参数的内存位置

我正在准备 UNIX 考试,有一道关于 C 变量的内存位置的问题。假设我们有这样的代码

char sth;
int some_function(int arg) {
   int some_int;
   // some code here
}
Run Code Online (Sandbox Code Playgroud)

所以我想它sth位于堆上、some_int堆栈上,但位于哪里arg?有人可以解释一下 C 变量是如何管理的吗?

谢谢

c memory argument-passing

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