小编Way*_*ner的帖子

Lisp数据安全/验证

在这一点上,这对我来说真的只是一个概念性的问题.

在Lisp中,程序是数据,数据是程序.REPL正是这样做 - 读取然后进行评估.

那么如何以安全的方式从用户那里获得输入呢?显然它是可能的 - 我的意思是viaweb - 现在雅虎!商店非常安全,所以它是如何完成的?

lisp security validation

7
推荐指数
2
解决办法
1076
查看次数

如何使用py.test正确导入包?

我有以下布局:

/spamalot
    /spam
        __init__.py
        spam.py
        /spam_on_eggs
            __init__.py
            spam_on_eggs.py
    /tests

        test_spam.py
Run Code Online (Sandbox Code Playgroud)

垃圾邮件恰好是一个烧瓶应用程序.

spam.py我内心

import spam_on_eggs.spam_on_eggs as eggs
# Other Flask setup & application code here.
Run Code Online (Sandbox Code Playgroud)

这工作正常 - 从spamalot我能够运行的目录python spam/spam.py

但是,当我开始将测试投入混音时,它并不那么棒.

在我的test_spam.py档案中,我有:

import spam.spam
test_client = spam.spam.app.test_client()

def test_it_fails():
     assert False
Run Code Online (Sandbox Code Playgroud)

但是,它不是在我预期的地方失败,而是在导入行上失败:

/spamalot/ $ py.test
# some output
E    ImportError
Run Code Online (Sandbox Code Playgroud)

我可以通过放入__init__.py我的/tests文件夹来解决这个问题,但后来我得到了一个不同的ImportError:

spam/spam.py:1: in <module>
>    import spam_on_eggs.spam_on_eggs as eggs
E    ImportError: No module named 'spam_on_eggs'
Run Code Online (Sandbox Code Playgroud)

我可以解决一个通过改变线路:

from spam.spam_on_eggs import …
Run Code Online (Sandbox Code Playgroud)

python import pytest python-3.4

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

如何在Mac OS X*和*Debian上使用SysLogHandler或syslog从Python登录到syslog(7)

我在这里听了几个答案,但没有用.

我正在使用Macbook(优胜美地)开发,但我们的测试/生产盒是Debian 7(使用rsyslog).我试图以一种既可以在本地工作也可以在本地工作的方式注销syslog.

我尝试了使用的选项SysLogHandler.这适用于Mac:

import logging
import logging.handlers
import syslog

h = logging.handlers.SysLogHandler(address='/var/run/syslog', facility=syslog.LOG_LOCAL1)
h.ident = 'works_on_macs'
logger = logging.getLogger('i_am_a_lumberjack')
logger.addHandler(h)

logger.debug("And I don't care")
logger.info('There is a sale on today')
logger.warn('Do not touch the hot stove!')
logger.error('Sorry, times up')
logger.critical('That sure is an ugly tie')
Run Code Online (Sandbox Code Playgroud)

这些消息将显示在我的mac syslog中.但是,当我改变address='/dev/log'Debian 7时......没有骰子.

然而:

import syslog

syslog.openlog(ident='im_a_lumberjack', facility=syslog.LOG_LOCAL1)
syslog.syslog(syslog.WARNING, 'Watch out!')
Run Code Online (Sandbox Code Playgroud)

适用于Debian 7,但不适用于Mac.

我真的很想能够获得一个适用于两个平台的日志记录解决方案.显然地址会有所不同,但我已经在配置中设置了它.

那么如何让syslog同时适用于Mac Debian呢?

编辑:

作为进一步的信息 - 我发现我的SysLogHandler似乎可能没有正确使用设施(?).消息正在被拾起的系统日志,但他们要去一个包罗万象的,这使我相信他们没有得到与标记LOG_LOCAL1

python linux macos logging rsyslog

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

Python中有一个可以累积负值的计数器吗?

我使用的Counter是这样的:

from collections import Counter

totals = Counter()
c_one = Counter(a=10, b=1)
c_two = Counter(a=10, b=-101)

totals += c_one
totals += c_two    

# Output: Counter({'a': 20})
print(totals)
Run Code Online (Sandbox Code Playgroud)

这根本不是我的预期.我希望看到:

Counter({'a': 20, 'b': -100})
Run Code Online (Sandbox Code Playgroud)

我的底片去了哪里,是否会有一些Counter让我使用底片?

python counter

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

用traceroute讲故事:它是如何工作的?

如果你做了traceroute,bad.horse你会得到这个惊人的结果:

? traceroute bad.horse                                                                                                                                                                                                                                                               10:46:24
traceroute to bad.horse (162.252.205.157), 30 hops max, 60 byte packets
 1  gateway (192.168.42.1)  0.382 ms  0.690 ms  0.795 ms
 2  10.52.192.1 (10.52.192.1)  8.594 ms  13.533 ms  14.438 ms
 3  70.183.68.108 (70.183.68.108)  14.525 ms  14.620 ms  14.643 ms
 4  70.183.71.92 (70.183.71.92)  23.323 ms  24.356 ms  24.219 ms
 5  dalsbprj01-ae1.0.rd.dl.cox.net (68.1.2.109)  119.445 ms  120.277 ms  62.337 ms
 6  10ge6-9.core1.dal1.he.net (184.105.16.77)  70.903 ms  57.131 ms  67.526 ms
 7  10ge12-6.core1.chi1.he.net (184.105.213.118)  43.732 ms  42.770 ms  43.774 ms …
Run Code Online (Sandbox Code Playgroud)

routing traceroute

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

如何防止 sqlalchemy 在 select 上创建事务?

我的问题:

我有一个包含多行数据的文件。我想尝试每一行插入到我的数据库中,但如果任何行有问题,我需要回滚整个工具包和 kaboodle。但我想跟踪实际的错误,所以我可以这样说,而不是仅仅死在第一个有错误的记录上:

该文件有 42 个错误。

Line 1 is missing a whirlygig.
Line 2 is a duplicate.
Line 5 is right out.
Run Code Online (Sandbox Code Playgroud)

我尝试执行此操作的方法是使用事务,但我遇到一个问题,SQLAlchemy 在 select 上创建隐式事务,显然我并不真正理解 sqlalchemy 如何使用事务,因为我所做的一切似乎都无法按照我想要的方式工作。这是一些演示我的问题的代码:

import sqlalchemy as sa
import logging
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
l = logging.getLogger('sqlalchemy.engine')
l.setLevel(logging.INFO)
l.addHandler(logging.StreamHandler())

engine = sa.create_engine('YOUR PG CONNECTION HERE')

Session = sessionmaker(bind=engine)
session = Session()
temp_metadata = sa.MetaData(schema='pg_temp')
TempBase = declarative_base(metadata=temp_metadata)


class Whatever(TempBase):
    __tablename__ = 'whatevs'
    id = sa.Column('id', sa.Integer, primary_key=True, autoincrement=True) …
Run Code Online (Sandbox Code Playgroud)

python transactions sqlalchemy

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

我可以轻松地在Python中以较低的分辨率获取日期时间吗?

显然我可以从中获取日期和时间datetime.datetime.now(),但我实际上并不关心秒或特别是微秒.

有什么地方我可以轻松获得日期+小时+分钟?

python datetime

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

正常进程退出时的.NET代码执行?

C那里有atexit功能,它

atexit()函数通过exit(3)或通过程序main()的返回来注册在正常进程终止时调用的给定函数.

Python具有类似的功能.

.NET是否提供了在正常进程终止时调用代码的方法?我知道有像某些事情DomainUnloadProcessExit,但至少据我所知,这是不可靠的-要么要求应用程序是Windows窗体(或WPF应用程序),或别的东西.我正在为.dll编写代码,所以我不能依赖于像主程序函数那样的东西 - 将它包装在try/catch中.

我的最终目标是执行一些文件清理(即刷新缓冲区和关闭).如果我可以调用一些非托管代码,例如win32api钩子或其他什么东西,我对此完全没问题.

.net atexit equivalent

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

Python 中的 sys.stdin 什么时候为 None ?

我正在尝试通过 IIS 将 Flask 作为简单的 CGI 应用程序运行。

我有以下代码:

from wsgiref.handlers import CGIHandler
from flask import Flask
app = Flask(__name__)

@app.route('/')
def main():
    return 'Woo woo!'

CGIHandler().run(app)
Run Code Online (Sandbox Code Playgroud)

我在 Windows 上运行 Python 3.3。我收到以下错误:

File "C:\Python33\lib\wsgiref\handlers.py", 
line 509, in __init__(self, sys.stdin.buffer, sys.stdout.buffer, sys.stderr, )
AttributeError: 'NoneType' object has no attribute 'buffer' ".
Run Code Online (Sandbox Code Playgroud)

我添加了一些日志代码,事实证明sys.stdinNone.

Python 作为 CGI 处理程序添加到 IIS 中,如下所示:

Request path: *.py
Executable: C:\Windows\py.exe -3 %s %s
Run Code Online (Sandbox Code Playgroud)

那么,为什么 sys.stdin None 以及如何修复它?

编辑

看起来 sys.stdin 是 None 因为文件描述符无效

python iis cgi flask python-3.3

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

如何获取触发Jenkins构建的"更改"(提交消息)?

我可以去

http://myjenkins:8080/job/Project/42/changes
Run Code Online (Sandbox Code Playgroud)

并查看触发特定Jenkins构建的提交消息.

但是,我想通过REST API或其他东西来获取它.我在搜索中没有运气.是否有捷径可寻?

jenkins

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