summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/axiom')
-rw-r--r--dev-python/axiom/Manifest3
-rw-r--r--dev-python/axiom/axiom-0.6.0-r1.ebuild43
-rw-r--r--dev-python/axiom/axiom-0.7.2.ebuild32
-rw-r--r--dev-python/axiom/axiom-0.7.3.ebuild32
-rw-r--r--dev-python/axiom/files/axiom-0.5.30-sqlite3.patch45
-rw-r--r--dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch36
-rw-r--r--dev-python/axiom/files/axiom-0.6.0-disable-tests.patch89
-rw-r--r--dev-python/axiom/metadata.xml14
8 files changed, 294 insertions, 0 deletions
diff --git a/dev-python/axiom/Manifest b/dev-python/axiom/Manifest
new file mode 100644
index 000000000000..7845fd94a814
--- /dev/null
+++ b/dev-python/axiom/Manifest
@@ -0,0 +1,3 @@
+DIST Axiom-0.6.0.tar.gz 197148 SHA256 0c3e5586c91df966f2c1b2031db870ee6b73bdd0517f9a7dab764ef0943e548c SHA512 493aa981d6bfa4ee12cd57fe6272bb00b123f6eed9d6a07923e5f391fd7d5fc4cc1c1025fe6eaf67d1e0da75e8293695abd2e4e9895ef06f02eff6517357a0d6 WHIRLPOOL d2c5c465ae80e0265c44c19b02b6cf7cca97f0f244f8271a296b3274ef87532ec2ea29aba8b5262a46ecf9813cee666280bc045af42f2687aba5a8472027242a
+DIST Axiom-0.7.2.tar.gz 201850 SHA256 a9e82a2288ac8b465bbeb2b97b567f5eea7d4856924c3e9bb74dcbad466e2ff6 SHA512 b8aba9b1b69141ad93759255f8eb169d815565d4b5b5f813b9afadb1158960ead859c896c2f26797fa1953c5cc35729dfbbb942077530402372030f85e85f3a5 WHIRLPOOL 9dd38b9f2d1f7fb3c245c6f829c6075ed09515dc9b5b88ba4ad881ad633a91ef24b021a2bbab198d77ed58f19a2ce9e89e5846b6865ede8adb7844cf3a18f1ed
+DIST Axiom-0.7.3.tar.gz 202110 SHA256 f6607717c0ac812eedcbca45927099cd998626bbd7fc6a9cb075295cdc6a403f SHA512 c7c87333bd421dd6f618f3a0bce2a7f27f50e6ceaba0eced811c0244d1e471e65582220c561aec78ca460065862a0fa283047f80d19a653664db55d7da464863 WHIRLPOOL ca41671bb025bc4b3a57a725e4561ea2c809467c3669b992cfa5ee91a14178e3b0d042cf51371ff6571991c50887ff40fd0ae07807acd56bb3325f4fc9161705
diff --git a/dev-python/axiom/axiom-0.6.0-r1.ebuild b/dev-python/axiom/axiom-0.6.0-r1.ebuild
new file mode 100644
index 000000000000..e73d899080c0
--- /dev/null
+++ b/dev-python/axiom/axiom-0.6.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit twisted-r1
+
+DESCRIPTION="Object database implemented on top of SQLite"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodAxiom http://pypi.python.org/pypi/Axiom"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+DEPEND=">=dev-python/epsilon-0.6.0-r2[${PYTHON_USEDEP}]
+ <dev-python/twisted-core-14[${PYTHON_USEDEP}]
+ dev-python/twisted-conch[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.5.30-sqlite3.patch"
+ "${FILESDIR}/${PN}-0.5.30-sqlite3_3.6.4.patch"
+ "${FILESDIR}/${PN}-0.6.0-disable-tests.patch"
+)
+
+TWISTED_PLUGINS+=( axiom.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/axiom/plugins/dropin.cache || die
+}
+
+python_install_all() {
+ dodoc NAME.txt
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/axiom/axiom-0.7.2.ebuild b/dev-python/axiom/axiom-0.7.2.ebuild
new file mode 100644
index 000000000000..95e35c3b9c45
--- /dev/null
+++ b/dev-python/axiom/axiom-0.7.2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit twisted-r1
+
+DESCRIPTION="Object database implemented on top of SQLite"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodAxiom http://pypi.python.org/pypi/Axiom"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 sparc x86"
+IUSE=""
+
+RDEPEND=">=dev-python/epsilon-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-13.2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-0.5.30-sqlite3_3.6.4.patch" )
+
+TWISTED_PLUGINS+=( axiom.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/axiom/plugins/dropin.cache || die
+}
diff --git a/dev-python/axiom/axiom-0.7.3.ebuild b/dev-python/axiom/axiom-0.7.3.ebuild
new file mode 100644
index 000000000000..11479ca2e14d
--- /dev/null
+++ b/dev-python/axiom/axiom-0.7.3.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit twisted-r1
+
+DESCRIPTION="Object database implemented on top of SQLite"
+HOMEPAGE="http://divmod.org/trac/wiki/DivmodAxiom http://pypi.python.org/pypi/Axiom"
+SRC_URI="mirror://pypi/${TWISTED_PN:0:1}/${TWISTED_PN}/${TWISTED_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND=">=dev-python/epsilon-0.7.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-core-13.2.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-0.5.30-sqlite3_3.6.4.patch" )
+
+TWISTED_PLUGINS+=( axiom.plugins )
+
+python_install() {
+ distutils-r1_python_install
+
+ touch "${D}$(python_get_sitedir)"/axiom/plugins/dropin.cache || die
+}
diff --git a/dev-python/axiom/files/axiom-0.5.30-sqlite3.patch b/dev-python/axiom/files/axiom-0.5.30-sqlite3.patch
new file mode 100644
index 000000000000..8913a1e70d80
--- /dev/null
+++ b/dev-python/axiom/files/axiom-0.5.30-sqlite3.patch
@@ -0,0 +1,45 @@
+--- axiom/_pysqlite2.py 2006-07-05 18:31:18.000000000 +0300
++++ axiom/_pysqlite2.py 2007-11-02 05:10:45.000000000 +0200
+@@ -8,7 +8,11 @@
+ """
+ import time
+
+-from pysqlite2 import dbapi2
++# Use python2.5's sqlite3 if avaliable
++try:
++ from sqlite3 import dbapi2
++except:
++ from pysqlite2 import dbapi2
+
+ from twisted.python import log
+
+--- axiom/test/test_pysqlite2.py 2006-07-02 19:23:40.000000000 +0300
++++ axiom/test/test_pysqlite2.py 2007-11-02 05:39:44.000000000 +0200
+@@ -2,7 +2,11 @@
+ Test cases for PySQLite2-specific parts of the backend.
+ """
+
+-from pysqlite2.dbapi2 import OperationalError
++# Use python2.5's sqlite3 if avaliable
++try:
++ from sqlite3.dbapi2 import OperationalError
++except:
++ from pysqlite2.dbapi2 import OperationalError
+
+ from twisted.trial.unittest import TestCase
+
+--- axiom/test/test_xatop.py 2007-02-23 02:09:19.000000000 +0200
++++ axiom/test/test_xatop.py 2007-11-02 05:38:48.000000000 +0200
+@@ -9,7 +9,11 @@
+ from axiom import attributes, item, store, errors
+ from axiom.errors import ItemNotFound
+
+-from pysqlite2.dbapi2 import sqlite_version_info
++# Use python2.5's sqlite3 if avaliable
++try:
++ from sqlite3.dbapi2 import sqlite_version_info
++except:
++ from pysqlite2.dbapi2 import sqlite_version_info
+
+
+ class RevertException(Exception):
diff --git a/dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch b/dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch
new file mode 100644
index 000000000000..cfa465ce656c
--- /dev/null
+++ b/dev-python/axiom/files/axiom-0.5.30-sqlite3_3.6.4.patch
@@ -0,0 +1,36 @@
+--- axiom/_schema.py (revision 17031)
++++ axiom/_schema.py (working copy)
+@@ -28,7 +28,7 @@
+ CREATE TABLE *DATABASE*.axiom_attributes (
+ type_id INTEGER,
+ row_offset INTEGER,
+- indexed BOOLEAN,
++ "indexed" BOOLEAN,
+ sqltype VARCHAR,
+ allow_none BOOLEAN,
+ pythontype VARCHAR,
+@@ -47,13 +47,13 @@
+ HAS_SCHEMA_FEATURE = ("SELECT COUNT(oid) FROM *DATABASE*.sqlite_master "
+ "WHERE type = ? AND name = ?")
+
+-IDENTIFYING_SCHEMA = ('SELECT indexed, sqltype, allow_none, attribute '
++IDENTIFYING_SCHEMA = ('SELECT "indexed", sqltype, allow_none, attribute '
+ 'FROM *DATABASE*.axiom_attributes WHERE type_id = ? '
+ 'ORDER BY row_offset')
+
+ ADD_SCHEMA_ATTRIBUTE = (
+ 'INSERT INTO *DATABASE*.axiom_attributes '
+- '(type_id, row_offset, indexed, sqltype, allow_none, attribute, docstring, pythontype) '
++ '(type_id, row_offset, "indexed", sqltype, allow_none, attribute, docstring, pythontype) '
+ 'VALUES (?, ?, ?, ?, ?, ?, ?, ?)')
+
+ ALL_TYPES = 'SELECT oid, module, typename, version FROM *DATABASE*.axiom_types'
+@@ -61,7 +61,7 @@
+ GET_GREATER_VERSIONS_OF_TYPE = ('SELECT version FROM *DATABASE*.axiom_types '
+ 'WHERE typename = ? AND version > ?')
+
+-SCHEMA_FOR_TYPE = ('SELECT indexed, pythontype, attribute, docstring '
++SCHEMA_FOR_TYPE = ('SELECT "indexed", pythontype, attribute, docstring '
+ 'FROM *DATABASE*.axiom_attributes '
+ 'WHERE type_id = ?')
+
diff --git a/dev-python/axiom/files/axiom-0.6.0-disable-tests.patch b/dev-python/axiom/files/axiom-0.6.0-disable-tests.patch
new file mode 100644
index 000000000000..9df20a5cd82d
--- /dev/null
+++ b/dev-python/axiom/files/axiom-0.6.0-disable-tests.patch
@@ -0,0 +1,89 @@
+--- test/lib/axiom/test/test_query.py.orig 2015-07-21 10:15:57.441000000 +0000
++++ test/lib/axiom/test/test_query.py 2015-07-21 10:16:36.356000000 +0000
+@@ -1043,46 +1043,46 @@
+ SecondType(store=self.store)
+
+
+- def test_firstTableOuterLoop(self):
+- """
+- Test that in a two table query, the table which appears first in the
+- result of the getInvolvedTables method of the comparison used is the
+- one which the outer join loop iterates over.
+-
+- Test this by inserting rows into the first table and checking that the
+- number of bytecodes executed increased.
+- """
+- counter = QueryCounter(self.store)
+- counts = []
+- for c in range(10):
+- counts.append(counter.measure(list, self.query))
+- FirstType(store=self.store)
+-
+- # Make sure they're not all the same
+- self.assertEqual(len(set(counts)), len(counts))
+-
+- # Make sure they're increasing
+- self.assertEqual(counts, sorted(counts))
+-
+-
+- def test_secondTableInnerLoop(self):
+- """
+- Like L{test_firstTableOuterLoop} but for the second table being
+- iterated over by the inner loop.
+-
+- This creates more rows in the second table while still performing a
+- query for which no rows in the first table satisfy the WHERE
+- condition. This should mean that rows from the second table are
+- never examined.
+- """
+- counter = QueryCounter(self.store)
+- count = None
+- for i in range(10):
+- c = counter.measure(list, self.query)
+- if count is None:
+- count = c
+- self.assertEqual(count, c)
+- SecondType(store=self.store)
++ #def test_firstTableOuterLoop(self):
++ # """
++ # Test that in a two table query, the table which appears first in the
++ # result of the getInvolvedTables method of the comparison used is the
++ # one which the outer join loop iterates over.
++
++ # Test this by inserting rows into the first table and checking that the
++ # number of bytecodes executed increased.
++ # """
++ # counter = QueryCounter(self.store)
++ # counts = []
++ # for c in range(10):
++ # counts.append(counter.measure(list, self.query))
++ # FirstType(store=self.store)
++
++ # # Make sure they're not all the same
++ # self.assertEqual(len(set(counts)), len(counts))
++
++ # # Make sure they're increasing
++ # self.assertEqual(counts, sorted(counts))
++
++
++ #def test_secondTableInnerLoop(self):
++ # """
++ # Like L{test_firstTableOuterLoop} but for the second table being
++ # iterated over by the inner loop.
++
++ # This creates more rows in the second table while still performing a
++ # query for which no rows in the first table satisfy the WHERE
++ # condition. This should mean that rows from the second table are
++ # never examined.
++ # """
++ # counter = QueryCounter(self.store)
++ # count = None
++ # for i in range(10):
++ # c = counter.measure(list, self.query)
++ # if count is None:
++ # count = c
++ # self.assertEqual(count, c)
++ # SecondType(store=self.store)
+
+
+ class AndOrQueries(QueryingTestCase):
diff --git a/dev-python/axiom/metadata.xml b/dev-python/axiom/metadata.xml
new file mode 100644
index 000000000000..82bf554e300e
--- /dev/null
+++ b/dev-python/axiom/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>python</herd>
+ <longdescription lang="en">Axiom is an object database, or alternatively, an object-relational
+ mapper. Its primary goal is to provide an object-oriented layer with
+ what we consider to be the key aspects of OO, i.e. polymorphism and
+ message dispatch, without hindering the power of an RDBMS. It is
+ designed to &quot;feel pythonic&quot;, without encouraging the typical ORM
+ behavior such as potato programming.</longdescription>
+ <upstream>
+ <remote-id type="pypi">Axiom</remote-id>
+ </upstream>
+</pkgmetadata>