小编esp*_*eed的帖子

ORM与Graph-Databases如Python中的Neo4j

我想知道有一个ORM与图数据库(fe Neo4j)的解决方案(或需要).我跟踪关系(A与B相关,它与A通过C等相关,从而构建一个大图)实体(包括那些实体的附加属性)并需要将它们存储在DB中,我认为图形数据库完全适合这项任务.

现在,对于类似sql的数据库,我使用sqlalchemyśORM来存储我的对象,特别是因为我可以从数据库中检索对象并以pythonic样式使用它们(使用它们的方法等).

Neo4j或其他Graph-DB是否有任何对象映射解决方案,以便我可以在Graph-DB中存储和检索python对象并轻松使用它们?

或者你会编写一些函数或适配器,如python sqlite文档(http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself)来检索和存储对象?

python orm neo4j graph-databases bulbs

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

如何使用Clojure JDBC插入Postgres枚举值?

例如,这是PostgreSQL中的产品表,其状态为枚举:

create type product_status as enum ('InStock', 'OutOfStock');

create table product (
    pid            int primary key default nextval('product_pid_seq'),
    sku            text not null unique,
    name           text not null,
    description    text not null,
    quantity       int not null,
    cost           numeric(10,2) not null,
    price          numeric(10,2) not null,
    weight         numeric(10,2),
    status         product_status not null
);
Run Code Online (Sandbox Code Playgroud)

插入产品的典型Clojure代码是:

(def prod-12345 {:sku "12345"
                 :name "My Product"
                 :description "yada yada yada"
                 :quantity 100
                 :cost 42.00
                 :price 59.00
                 :weight 0.3
                 :status "InStock"})

(sql/with-connection db-spec
   (sql/insert-record :product prod-12345))
Run Code Online (Sandbox Code Playgroud)

但是,它status是一个枚举,因此您不能将其作为普通字符串插入而不将其强制转换为枚举: …

sql jdbc clojure

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

为什么getattr()比self慢得多.__ dict __.get()?

以下示例来自Python 2.7上的REST数据库驱动程序.

__setattr__下面的方法中,如果我使用注释掉的getattr()行,它会将对象实例化性能从600 rps降低到230.

为什么getattr()self.__dict__.get()这种情况慢得多?

class Element(object):

    def __init__(self, client):
        self._client = client
        self._data = {}
        self._initialized = True

    def __setattr__(self, key, value):
        #_initialized = getattr(self, "_initialized", False)
        _initialized = self.__dict__.get("_initialized", False)
        if key in self.__dict__ or _initialized is False:
            # set the attribute normally
            object.__setattr__(self, key, value)
        else:
            # set the attribute as a data property
            self._data[key] = value
Run Code Online (Sandbox Code Playgroud)

python getattr python-2.7

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

如何配置setup.py以从GitHub master安装pip?

而不是将发布推送到PyPi和GitHub,让PyPi使用最新的GitHub主机会更容易.有没有正确的方法来做到这一点?

我知道你可以在install_requires中将依赖关系列为GitHub repos,但有没有办法为主包执行此操作?

例如,当您使用easy_install安装Flask时,它会从多个源读取,包括GitHub,它在安装URL中列出(https://github.com/mitsuhiko/flask/blob/master/setup.py#L78) :

$ sudo easy_install Flask
Searching for Flask
Reading http://pypi.python.org/simple/Flask/
Reading http://github.com/mitsuhiko/flask/
Run Code Online (Sandbox Code Playgroud)

列出setup.py中的URL是什么导致easy_install也从GitHub读取?

如果是这样,如果GitHub版本比PyPi版本更新,它是否总是从GitHub安装?

pip的效果是否相同?

python distutils pip github setuptools

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

"收益项目"与返回iter(项目)有什么好处?

在下面的示例中,resp.results是一个迭代器.

版本1:

items = []
for result in resp.results:
     item = process(result)
     items.append(item)
return iter(items)
Run Code Online (Sandbox Code Playgroud)

版本2:

for result in resp.results:
     yield process(result)
Run Code Online (Sandbox Code Playgroud)

返回版本1中的iter(项目)在性能/内存节省方面是否比简单返回项目更好/更差?

在"Python Cookbook"中,Alex表示明确的iter()"更灵活,但不经常使用",但是在版本2中返回iter(items)与yield的优缺点是什么?

另外,对迭代器和/或产量进行单元测试的最佳方法是什么? - 你不能做len(结果)检查列表的大小?

python unit-testing iterator yield

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

App Engine上的Clojure并发支持是否仍然禁用?

在最近的博客文章中,Adrian Mouat表示App Engine不支持Clojure并发,例如代理.但是,GAE Java支持 App Engine 1.6.4版本的线程.

App Engine是否完全支持Clojure并发模型?

google-app-engine clojure

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

Bulbflow:neo4jserver Graph和neo4jserver Neo4jclient之间的区别

我现在正在尝试学习如何使用Python中的Bulbflow连接到Neo4j服务器并在其上运行Cypher查询.我不明白的是连接到neo4j服务器的两种可能性之间的区别:

1)图表

from bulbs.neo4jserver import Graph
g = Graph()
Run Code Online (Sandbox Code Playgroud)

2)Neo4jClient

from bulbs.neo4jserver import Neo4jClient
client = Neo4jClient()
Run Code Online (Sandbox Code Playgroud)

有谁能请解释这里的概念差异?哪种方式更好的选择我是否想要执行(相当多)Cypher查询服务器并最终并行执行?

PS:我没有足够的声誉为这个问题创建一个标签"bulbflow":)

python neo4j cypher bulbs tinkerpop

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

如何单击超链接内的文本以便拖动并突出显示?

如果您有一段普通文本,则可以单击文本内的任意位置并拖动鼠标以突出显示该文本.但是,如果文本位于锚点/链接标记内,则不允许您单击并拖动 - 链接捕获鼠标并阻止其发生.

要查看我的意思,请在此页面上找到一个文本链接,然后尝试在其中单击并拖动以选择它.它不会让你 - 你必须在链接外面点击并拖动它.

你需要在JavaScript/JQuery中做什么才能暂时禁用链接,以便拖动并突出显示它?

我不能只启动外环线的原因是因为在该段每个字都是一个超链接内 - 这是一个视频的转录和各个环节同步到视频片段.

javascript jquery

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

什么时候在.py文件上运行Jython会生成.class文件?

我刚刚开始使用Jython,有时在.py文件上运行jython会生成.class文件,但这并不总是会发生.

起初我认为触发器是你必须在.py文件中定义一个Python类,但显然即使这样也不会生成.class文件.

触发类文件的机制是什么?

谢谢.

python jython jvm-languages

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

返回空迭代器而不是None是不好的Python样式?

关于这一点的看法似乎很复杂 - 有没有Pythonic"正确的方法"来做到这一点?

python iterator generator

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