小编Jon*_*Jon的帖子

Scrapy:限制请求或请求字节数

我正在使用scrapy CrawlSpider并定义了一个扭曲的反应器来控制我的爬行器.在测试期间,我抓取了一个收集超过几GB数据的新闻网站.大多数情况下,我对最新的故事很感兴趣,所以我正在寻找一种限制请求页数,字节数或秒数的方法.

是否有一种常用的方法来定义限制

  • request_bytes
  • request_counts
  • 几秒钟的运行时间?

python scrapy

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

Python:为什么setuptools不包含我的包数据?

今天我创建了一个setup.py文件,找到了一个工作脚本和两个无法工作的场景.在两个非工作方案package_data中,构建中缺少after.我用它创建了构建python setup.py sdist.

为什么方案2和3不包含我的包数据?

场景1有效:

import os 
from distutils.core import setup

def find_packages(path):
    package_path = os.path.join(os.path.dirname(__file__), path)
    packages = []
    for f in os.walk(package_path):

    directory_name = f[0]

    if directory_name.endswith('egg-info') or directory_name.endswith('path'):
        continue

    directory_name = directory_name.replace(package_path, '').replace('/', '.').strip()

    if not len(directory_name):
        continue

    if directory_name.startswith('.'):
        directory_name = directory_name.replace('.', '', 1)

    packages.append(directory_name)

return packages

setup (
    name = 'mypkg',
    packages = find_packages('src'),
    package_dir = {'mypkg': 'src/mypkg'},
    include_package_data = True,
    package_data = {
        '': ['*.txt'],
        'mypkg': ['data/*.dat'],
    }
)
Run Code Online (Sandbox Code Playgroud)

场景2不起作用: …

python distutils setuptools

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

Python:使用Python-Sphinx解析javadoc

我使用部分包含Java和Python代码的共享存储库.代码基础主要位于python上,但有些库是用Java编写的.

是否有可能解析或预处理Java文档,以便稍后在Python-Sphinx或甚至插件中使用它?

python java javadoc python-sphinx

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

Flask-login和LDAP

我正在开发一个带有flask框架作为后端的webapp,我需要提供身份验证.

由于这是我们在本地域上使用的内部应用程序,因此我选择使用其现有的域凭据对用户进行身份验证.

我使用的方法是win32security.LogonUserpywin32成功登录时返回句柄.

我试图了解flask-login如何工作,但@login_manager.user_loader回调让我感到困惑.

它说我应该提供一个可用于重新加载用户的id,但是我没有数据库或持久存储来提供这种映射,因为我只是在检查用户是否通过身份验证时感兴趣.

我的User类看起来像这样:

class User(flask_login.UserMixin):
    def __init__(self,username):
        self.username = username
        self.id = ??? 
Run Code Online (Sandbox Code Playgroud)

使用什么id,这个id如何映射回这个实例?

python flask flask-login

6
推荐指数
2
解决办法
9210
查看次数

Emacs:如何为iPython,pylint和自动完成支持配置Emacs?

我是一个使用Eclipse和Pydev插件的中级Python程序员.现在我计划切换到Emacs以加快编码速度.我正在努力使用Emacs配置,并希望添加对iPython,pylint和Python自动完成的支持.我安装了Emacs24.2.

  • 如何将iPython,Python自动完成和pylint添加到我的Emacs24.2?
  • 你能另外推荐一个教程或howto?

python emacs ipython emacs24

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

mock.patch 忽略完全导入的函数的原因是什么?

今天我意识到unittest.mock.patch如何导入函数很重要。取决于mock.patch呼叫工作或被忽略的使用方式。在 Python 中,我们通常导入一个函数:

  • import os或这样的导入语句
  • from ... import ...像这样的声明from os import system

mock.patch如果我使用A就像一个魅力import os,但如果我修补了它,它会被忽略from os import system

示例 1:使用导入

import os
from unittest import mock


def echo():
    os.system('echo "Hello"')


with mock.patch('os.system') as mocked:
    print(mocked)
    mocked.side_effect = Exception('Patch works!')
    echo()
Run Code Online (Sandbox Code Playgroud)

示例 1 的输出

<MagicMock name='system' id='140037358656760'>

Traceback (most recent call last):
  File "/.../config/scratches/scratch_7.py", line 12, in <module>
    echo()
  File "/.../config/scratches/scratch_7.py", line 6, in echo
    os.system('echo "Hello"')
  File "/.../python3.5/unittest/mock.py", …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-mock python-unittest

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

如何向tox的virtualenv添加引导脚本?

我的测试需要psycopg2和lxml,但是当我尝试通过tox将它安装在virtualenv中时,由于缺少pg_conf或其他依赖项而失败.

我找到了bootstrap脚本的这个解释:http://www.virtualenv.org/en/latest/index.html#bootstrap-example

如何向tox的virtualenv添加引导脚本?你知道我关注的任何好例子(lxml和psycopg2)吗?

python psycopg2 virtualenv setup.py tox

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

我应该如何在Scala中使用#::/hash冒号?

在关于Fibonacci数字创建的Stackoverflow帖子中,我找到了方法#::(在Scala中编写Fibonacci函数的最快方法是什么?).在ScalaDocs中,我发现此条目(参见此处,1)将哈希冒号冒号方法描述为允许使用#::来匹配流的提取器.

我意识到我可以像这样使用斐波那契函数

def fibonacci: Stream[Long] = {
    def tail(h: Long, n: Long): Stream[Long] = h #:: tail(n, h + n)
    tail(0, 1)
}
fibonacci(10)       //res4: Long = 55
Run Code Online (Sandbox Code Playgroud)
  • 我应该如何理解ScalaDocs的解释?你能举一个例子吗?

  • 为什么没有必要在fibonacci上面的函数中定义参数?

scala pattern-matching scala-collections

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

泛型:为什么实现的集合返回一个对象而不是指定的类型?

我正在尝试使用自定义MapEntries实现OrderedMapEntry列表 - 因为我需要一个带有Vectors的自定义解决方案我不能使用TreeMap(http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap. HTML).我实现了一个没有任何错误的自定义列表,但是当我OrderedMapEntries在增强的for循环中使用该类时,它返回一个Object.

  • 使用增强型for循环时,如何确保类型安全?我的实施在确保这种类型安全方面做错了什么?

    public class OrderedMapEntries<K, V> implements Iterator, Iterable{
    
        private Vector<MapEntry<K, Vector<V>>> vector;
        private int vectorIndex;  // initializes with -1
    
        class MapEntry<A, B extends AbstractList<V>> implements Iterator, Iterable{
            // MapEntry implementation
    
        public void insert(int index, K key, Vector<V> vec){
            MapEntry<K, Vector<V>> mapEntry = new MapEntry<>(key, vec);
            vector.add(index, mapEntry);
        }
    
        @Override
        public MapEntry<K, Vector<V>> next(){
            vectorIndex++;
            return vector[vectorIndex]; 
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

我尝试使用增强的for循环迭代集合,但它失败,因为next()返回一个Object而不是我指定的元素.

OrderedMapEntries<Integer, String> ome = new OrderedMapEntries<>();
// I filled it with …
Run Code Online (Sandbox Code Playgroud)

java generics

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

条件句:Elm中多行if语句的语法如何?

我正在阅读" 七周七种语言 "一书中的榆树章节.在第43页上,作者if通过以下方式描述了一条多行:

x = 5

if | x < 0 -> "too small" \
   | x > 0 -> "too big" \
   | otherwise -> "just right"
Run Code Online (Sandbox Code Playgroud)

然而,Elm-REPL抱怨SYNTAX PROBLEM:

> if | x < 0 -> "too small" \
|    | x > 0 -> "too big" \
|    | otherwise -> "just right"
-- SYNTAX PROBLEM -------------------------------------------- repl-temp-000.elm

I ran into something unexpected when parsing your code!

3|   if | x < 0 -> …
Run Code Online (Sandbox Code Playgroud)

elm

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