小编Sin*_*ion的帖子

计算文章摘要

我正在寻找一种方法来自动生成一个抽象,基本上是博客条目的前几个部分/段落,以显示在文章列表中(以降价方式编写).目前,我正在做这样的事情:

def abstract(article, paras=3):
    return '\n'.join(article.split('\n')[0:paras])
Run Code Online (Sandbox Code Playgroud)

只抓住前几行的文字,但我对结果并不满意.

我真正想要的是在条目列表中显示大约1/3的屏幕格式化文本,但是使用上面的算法,拉出的金额最终变化很大,就像一个一两行,经常与更理想的大小摘要混合.

有没有一个擅长这种事情的图书馆?如果没有,你有什么建议来提高产量吗?

python markdown

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

在SQLAlchemy中选择Null

我想做相同的

SELECT * FROM 
(SELECT foo, bar FROM baz JOIN quux ON baz.id = quux.id
    UNION
SELECT foo, NULL AS bar FROM baz) 
GROUP BY (foo, bar) HAVING foo = 'John Doe';
Run Code Online (Sandbox Code Playgroud)

使用sqlalchemy 0.6,但我似乎无法潜入NULL那里.

这大致是我到目前为止:

q1 = session.query(Baz.foo, Quux.bar).join(Quux)
q2 = session.query(Baz.foo, None)
#                           ^^^^ This breaks!
Run Code Online (Sandbox Code Playgroud)

python firebird sqlalchemy

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

高效增量实现poset

我正在根据 SQLAlchemy 实现一种具有Partially Ordered Set数学特征的结构,其中我需要能够一次添加和删除一个边。

在我目前的最佳设计中,我使用了两个邻接表,一个是分配表(大约是哈斯图中的边),因为我需要保留哪些节点对被明确设置为有序,另一个邻接表是传递的关闭第一个,以便我可以有效地查询一个节点是否相对于另一个节点排序。现在,每次在分配邻接列表中添加或删除边时,我都会重新计算传递闭包。

它看起来像这样:

assignment = Table('assignment', metadata,
    Column('parent', Integer, ForeignKey('node.id')),
    Column('child', Integer, ForeignKey('node.id')))

closure = Table('closure', metadata,
    Column('ancestor', Integer, ForeignKey('node.id')),
    Column('descendent', Integer, ForeignKey('node.id')))

class Node(Base):
    __tablename__ = 'node'
    id = Column(Integer, primary_key=True)

    parents = relationship(Node, secondary=assignment,
        backref='children',
        primaryjoin=id == assignment.c.parent,
        secondaryjoin=id == assignment.c.child)

    ancestors = relationship(Node, secondary=closure,
        backref='descendents',
        primaryjoin=id == closure.c.ancestor,
        secondaryjoin=id == closure.c.descendent,
        viewonly=True)

    @classmethod
    def recompute_ancestry(cls.conn):
        conn.execute(closure.delete())
        adjacent_values = conn.execute(assignment.select()).fetchall()
        conn.execute(closure.insert(), floyd_warshall(adjacent_values))
Run Code Online (Sandbox Code Playgroud)

其中floyd_warshall()是同名算法的实现。

这导致我遇到两个问题。首先是它似乎不是很有效,但我不确定我可以使用什么样的算法来代替。

第二个更多是关于Node.recompute_ancestry()每次分配发生时必须显式调用的实用性,并且只有分配被刷新到会话中并具有适当的连接之后。如果我想查看反映在 ORM …

python sql sqlalchemy poset

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

context in pyparsing parse actions besides globals

I'd like to be able to parse two (or any number) of expressions, each with their own set of variable definitions or other context.

There doesn't seem to be an obvious way to associate a context with a particular invocation of pyparsing.ParseExpression.parseString(). The most natural way seems to be to use an instancemethod of some class as the parse actions. The problem with this approach is that the grammar must be redefined for each parse context (for instance, in …

python pyparsing

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

`struct.unpack_from`不适用于`bytearray`?

从字符串解包工作:

>>> import struct
>>> struct.unpack('>h', 'ab')
(24930,)
>>> struct.unpack_from('>h', 'zabx', 1)
(24930,)
Run Code Online (Sandbox Code Playgroud)

但如果它是bytearray:

>>> struct.unpack_from('>h', bytearray('zabx'), 1)
Traceback (most recent call last):
  File "<ipython-input-4-d58338aafb82>", line 1, in <module>
    struct.unpack_from('>h', bytearray('zabx'), 1)
TypeError: unpack_from() argument 1 must be string or read-only buffer, not bytearray
Run Code Online (Sandbox Code Playgroud)

这似乎有点奇怪.我该怎么办呢?显然我可以:

>>> struct.unpack_from('>h', str(bytearray('zabx')), 1)
(24930,)
Run Code Online (Sandbox Code Playgroud)

但我明确地试图避免复制可能的大量内存.

python binary-data

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

django,google地图集成

我需要将django应用程序与直观的google-maps界面集成,以用于无线电调度的安全警卫/ emt.

我已经在使用GeoDjango了,虽然它看起来对于特定用途来说可能有点过分.无论如何,它已经使服务器上的地理空间处理变得像我需要的那样简单.

但我的javascript足够弱,无需自己构建ajax rpc层.有什么工具或技术可以帮助这个吗?

编辑:澄清一下,我不是在问如何使用谷歌地图api.正如这篇文章解释的那样,谷歌提供了很好的文档,网上有很多例子,从谷歌其他方面,它解释了如何使用api,独立.Django也有很好的文档.

它一起使用它们会让我放慢脚步.

django ajax google-maps

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

Python表单处理替代方案

django.forms 是非常好的,几乎完全是我想要在我当前的项目上做的,但不幸的是,谷歌应用引擎使得大部分Django无法使用,因此将它与应用程序一起打包似乎有点愚蠢.

我也发现了FormAlchemy,它是一个类似于Django形式的SQLAlchemy模拟器,我打算完全探索它,但它与SQLAlchemy的关系表明它也可能给我带来一些麻烦.

是否有我没有考虑过的用于python的HTML表单处理库?

python forms google-app-engine

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

memmove不动

memmove并没有真正移动内存不对吗?它只是将内存从一个区域复制到另一个区域,并允许这两个区域重叠.我问这个问题是因为我只是想知道为什么这个fnc以非常误导的方式被调用.
因为我明白当某个东西从一个地方移动到另一个地方时,"东西"就是在另一个地方而不是第一个地方之后.而memmove它不会那样工作.我对吗?

c c++ memory libc

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

R或python中的隐马尔可夫模型

你知道如何在python,R(Bioconductor)中实现HMM的任何好的文献和/或教程吗?(特别是用于序列分析)

python r bioconductor hidden-markov-models

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

在dict中找到一个值?

我正在尝试打印出一条消息.如果找不到字典中的单词,那么它应该打印出一条消息而不是给出错误.我的想法是什么

if bool(bool(dictionary[word])) == True:
    return dictionary[word]
else:
    print 'wrong'
Run Code Online (Sandbox Code Playgroud)

但是当我写一些不在字典中的东西时,它不起作用,而是它给出了类似的东西

Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    translate_word('hous')
  File "H:\IND104\final\Project 4 - Italian-Spanish Translator\trial 1.py", line 21, in translate_word
    if bool(bool(dictionary[word])) == True:
KeyError: 'hous' 
Run Code Online (Sandbox Code Playgroud)

那么如何打印出错误信息谢谢.

python dictionary find

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