debian/0000755000000000000000000000000012201613661007164 5ustar debian/compat0000644000000000000000000000000210746514563010377 0ustar 6 debian/postinst0000644000000000000000000000047611174201600010773 0ustar #! /bin/sh set -e #DEBHELPER# case "$1" in configure) for p in $(pyversions -i); do $p -c 'from twisted.plugin import IPlugin, getPlugins; import axiom.plugins; list(getPlugins(IPlugin)); list(getPlugins(IPlugin, axiom.plugins))' >/dev/null 2>&1 || true done ;; esac exit 0 debian/postrm0000644000000000000000000000040111174201600010420 0ustar #! /bin/sh set -e #DEBHELPER# case "$1" in remove|purge) for p in $(pyversions -i); do $p -c 'from twisted.plugin import IPlugin, getPlugins; list(getPlugins(IPlugin))' >/dev/null 2>&1 || true done ;; esac exit 0 debian/watch0000644000000000000000000000011412201603771010212 0ustar version=3 https://pypi.python.org/packages/source/A/Axiom/Axiom-(.*).tar.gz debian/runtrial.py0000644000000000000000000000123211323607332011376 0ustar import sys import os from os.path import join from distutils.sysconfig import get_python_lib from site import addsitedir root = sys.argv.pop(1) site_packages = get_python_lib() _path = sys.path[:] sys.path[:] = [] addsitedir(join(root, site_packages[1:])) addsitedir(join(root, site_packages[1:].replace('dist-packages', 'site-packages'))) # cdbs installs python modules in site-packages even for Python 2.6 sys.path.extend(_path) # Some tests need PYTHONPATH. We provide a sensible value for it (although not really correct) if 'PYTHONPATH' not in os.environ: os.environ['PYTHONPATH'] = os.pathsep.join(sys.path) from twisted.scripts.trial import run run() debian/patches/0000755000000000000000000000000012201613661010613 5ustar debian/patches/series0000644000000000000000000000007312201610311012015 0ustar python2.6.diff 1209082-remove-bogus-performance-tests.diff debian/patches/python2.6.diff0000644000000000000000000000343511323621342013220 0ustar Description: In Python 2.6, the `type` object defines __lt__, __gt__ etc. methods, so it's not enough to provide own __cmp__ method to override all comparison operators. Author: Jakub Wilk Index: python-axiom-0.6.0/axiom/item.py =================================================================== --- python-axiom-0.6.0.orig/axiom/item.py 2010-01-14 14:42:26.000000000 +0100 +++ python-axiom-0.6.0/axiom/item.py 2010-01-14 14:42:58.000000000 +0100 @@ -101,6 +101,36 @@ (other.typeName, other.schemaVersion)) return NotImplemented + def __lt__(self, other): + if isinstance(other, MetaItem): + return (self.typeName, self.schemaVersion) < (other.typeName, other.schemaVersion) + return NotImplemented + + def __gt__(self, other): + if isinstance(other, MetaItem): + return (self.typeName, self.schemaVersion) > (other.typeName, other.schemaVersion) + return NotImplemented + + def __le__(self, other): + if isinstance(other, MetaItem): + return (self.typeName, self.schemaVersion) <= (other.typeName, other.schemaVersion) + return NotImplemented + + def __ge__(self, other): + if isinstance(other, MetaItem): + return (self.typeName, self.schemaVersion) >= (other.typeName, other.schemaVersion) + return NotImplemented + + def __eq__(self, other): + if isinstance(other, MetaItem): + return (self.typeName, self.schemaVersion) == (other.typeName, other.schemaVersion) + return NotImplemented + + def __ne__(self, other): + if isinstance(other, MetaItem): + return (self.typeName, self.schemaVersion) != (other.typeName, other.schemaVersion) + return NotImplemented + def noop(): pass debian/patches/1209082-remove-bogus-performance-tests.diff0000644000000000000000000001363212201610311020333 0ustar Description: Remove bogus performance tests Axiom has some performance tests that fail with the version of SQLite in unstable, resulting in an FTBFS. Author: Tristan Seligmann Bug: https://bugs.launchpad.net/divmod.org/+bug/1209082 Bug-Debian: http://bugs.debian.org/711804 Origin: upstream, https://code.launchpad.net/~divmod-dev/divmod.org/1209082-remove-bogus-performance-tests/+merge/178882 === modified file 'Axiom/axiom/test/test_query.py' --- Axiom/axiom/test/test_query.py 2009-01-01 00:28:15 +0000 +++ Axiom/axiom/test/test_query.py 2013-08-07 05:25:33 +0000 @@ -1,12 +1,11 @@ import operator, random -from twisted.trial.unittest import TestCase, SkipTest +from twisted.trial.unittest import TestCase from axiom.iaxiom import IComparison, IColumn from axiom.store import Store, ItemQuery, MultipleItemQuery from axiom.item import Item, Placeholder -from axiom.test.util import QueryCounter from axiom import errors from axiom.attributes import ( @@ -309,9 +308,9 @@ self.assertEquals(s.query(E).count(), 0) self.assertEquals(s.query(E).getColumn("amount").sum(), 0) - e1 = E(store=s, name=u'widgets', amount=37) - e2 = E(store=s, name=u'widgets', amount=63) - e3 = E(store=s, name=u'quatloos', amount=99, transaction=u'yes') + E(store=s, name=u'widgets', amount=37) + E(store=s, name=u'widgets', amount=63) + E(store=s, name=u'quatloos', amount=99, transaction=u'yes') s.checkpoint() q = s.count(E, E.name == u'widgets') self.failUnlessEqual(q, 2) @@ -663,8 +662,8 @@ for i in range(3): c = C(store=s, name=u"C.%s" % i) b = B(store=s, name=u"B.%s" % i, cref=c) - a = A(store=s, type=u"A.%s" % i, reftoc=b) - a = A(store=s, type=u"A.%s" % i, reftoc=b) + A(store=s, type=u"A.%s" % i, reftoc=b) + A(store=s, type=u"A.%s" % i, reftoc=b) query = s.query( (B, C), AND(B.cref == C.storeID, @@ -693,8 +692,8 @@ def entesten(): pops = B(store=s, name=u"Pops") dad = B(store=s, name=u"Dad", cref=pops) - bro = B(store=s, name=u"Bro", cref=dad) - sis = B(store=s, name=u"Sis", cref=dad) + B(store=s, name=u"Bro", cref=dad) + B(store=s, name=u"Sis", cref=dad) Gen1 = Placeholder(B) Gen2 = Placeholder(B) @@ -1019,72 +1018,6 @@ store.getTableName(A)]) -class FirstType(Item): - value = text() - - -class SecondType(Item): - value = text() - ref = reference(reftype=FirstType) - - -class QueryComplexity(TestCase): - comparison = AND(FirstType.value == u"foo", - SecondType.ref == FirstType.storeID, - SecondType.value == u"bar") - - def setUp(self): - self.store = Store() - self.query = self.store.query(FirstType, self.comparison) - - # Make one of each to get any initialization taken care of so it - # doesn't pollute our numbers below. - FirstType(store=self.store) - 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): def testNoConditions(self): self.assertRaises(ValueError, AND) @@ -1230,7 +1163,7 @@ def testOneOfWithList(self): cx = C(store=self.store, name=u'x') - cy = C(store=self.store, name=u'y') + C(store=self.store, name=u'y') cz = C(store=self.store, name=u'z') query = self.store.query( @@ -1243,7 +1176,7 @@ s = Store() cx = C(store=s, name=u'x') - cy = C(store=s, name=u'y') + C(store=s, name=u'y') cz = C(store=s, name=u'z') self.assertEquals(list(s.query(C, C.name.oneOf(set([u'x', u'z', u'a'])), sort=C.name.ascending)), @@ -1433,7 +1366,6 @@ """ Test that a column from a placeholder provides L{IColumn}. """ - value = 0 p = Placeholder(PlaceholderTestItem) a = p.attr self.failUnless(IColumn.providedBy(a)) @@ -1458,7 +1390,6 @@ underlying Item class and comparing it to another column returns an L{IComparison} provider. """ - value = 0 p = Placeholder(PlaceholderTestItem) for op in COMPARISON_OPS: self.failUnless(IComparison.providedBy(op(p.attr, PlaceholderTestItem.attr))) debian/changelog0000644000000000000000000001260712201613652011044 0ustar python-axiom (0.6.0-4) unstable; urgency=low [ Jakub Wilk ] * Use canonical URIs for Vcs-* fields. * Fix a typo in the package description. [ Tristan Seligmann ] * Fix watch file. * Update my email address. * Remove failing performance tests. (Closes: #711804) * Fix grammar in axiomatic(1) man page. * Bump Standards-Version. * Ship upstream NEWS.txt which was omitted from the source tarball accidentally. * Use Breaks instead of Conflicts against libsqlite3-0. * Set PYTHONDONTWRITEBYTECODE during build. * Update Homepage. -- Tristan Seligmann Sun, 11 Aug 2013 06:45:37 +0200 python-axiom (0.6.0-3) unstable; urgency=low * Team upload. [ Vincent Bernat ] * Remove dependency to quilt. Adjust debian/rules accordingly. [ Arthur de Jong ] * Moved packaging from python-central to dh_python2 (Closes: #616994). -- Arthur de Jong Fri, 09 Mar 2012 10:47:13 +0100 python-axiom (0.6.0-2) unstable; urgency=low [ Jakub Wilk ] * Make the package ready for Python 2.6. Closes: #557925 - Fix debian/runtrail.py to deal with site-packages/dist-packages discrepancy. - Patch the axiom.Item.MetaItem class so that comparisons work as intended. - Build-depend on python-epsilon (>= 0.6.0-2), which fixes build failure. * Use quilt to manage patches. [ Vincent Bernat ] * Bump Standards-Version to 3.8.4. * Switch to 3.0 (quilt) format. -- Vincent Bernat Tue, 02 Mar 2010 08:13:25 +0100 python-axiom (0.6.0-1) unstable; urgency=low [ Sandro Tosi ] * debian/rules - don't FTBFS when removing not-existing dirs; thanks to Lucas Nussbaum for the report; Closes: #560565 [ Vincent Bernat ] * New upstream release. * debian/control - don't use obsolete "<" for Conflicts field; use "<<" instead. Closes: #557926. - bump Standards-Version -- Debian Python Modules Team Wed, 13 Jan 2010 20:38:50 +0100 python-axiom (0.5.31-2) unstable; urgency=low [ Vincent Bernat ] * Move python-epsilon from Build-Depends-Indep to Build-Depends since it is needed for clean target. [ Piotr Ożarowski ] * Bump minimum required Python version to 2.4. Closes: #534723 [ Stefano Zacchiroli ] * Removing myself from the Uploader list. So Long. -- Debian Python Modules Team Fri, 24 Jul 2009 15:30:41 +0200 python-axiom (0.5.31-1) unstable; urgency=low [ Vincent Bernat ] * New upstream release. * Bump Standards-Version to 3.8.1. No changes required. * Ship examples in /usr/share/doc/python-axiom/examples. Closes: #520340. [ Tristan Seligmann ] * Remove the build dir from the initial destination and not from the pysupport one, to avoid relying on pysupport internals. (Closes: #516757) * Conflict with older sqlite3 versions to avoid an issue with some internal axiom column names. (Closes: #520338) * Switch to pycentral for compatibility with python-twisted, since Axiom now ships a Twisted plugin which is required for axiomatic to work. * Rebuild Axiom and Twisted plugin caches on installation / removal. -- Tristan Seligmann Sat, 18 Apr 2009 00:49:01 +0200 python-axiom (0.5.30-1) unstable; urgency=low [ Sandro Tosi ] * debian/control - switch Vcs-Browser field to viewsvn [ Tristan Seligmann ] * New upstream release. - Supercedes progresshandler-fix.patch. - Scheduler tests rewritten to avoid race conditions. (Closes: #470337) * Removed quilt usage, since we no longer have any patches. * Update my e-mail address. * Use ${misc:Depends}. * Use Copyright instead of (C). * Bump Standards-Version. -- Tristan Seligmann Mon, 16 Feb 2009 19:53:04 +0200 python-axiom (0.5.27-1) unstable; urgency=low [ Sandro Tosi ] * debian/control - uniforming Vcs-Browser field [ Vincent Bernat ] * Fix failing unittests that were calling set_progress_handler() without a second argument (Closes: #456832). * Do not run unittests if nocheck is present in DEB_BUILD_OPTIONS * Provide a manual page for axiomatic command [ Tristan Seligmann ] * New upstream release. * Bump debhelper to v6. * Bump Standards-Version. * Change the way tests are run during the build; the previous method was rather hacky, and didn't work correctly. * Remove unnecessary ${misc:Depends}. -- Tristan Seligmann Sat, 26 Jan 2008 15:05:39 +0200 python-axiom (0.5.26-1) unstable; urgency=low [ Tristan Seligmann ] * New upstream version. [ Piotr Ożarowski ] * Homepage field added * Rename XS-Vcs-* fields to Vcs-* (dpkg supports them now) -- Tristan Seligmann Sat, 10 Nov 2007 00:15:31 +0200 python-axiom (0.5.0-2) unstable; urgency=low * upload to unstable * debian/control - tightened deps on cdbs and python-support - added Tristan as an Uploader - removed python-specific X* fields, not needed with recent python-support * debian/TODO.Debian - added a todo item about running unit tests at build time * debian/pyversions - axiom needs python 2.4 or above -- Stefano Zacchiroli Sun, 01 Apr 2007 19:09:03 +0200 python-axiom (0.5.0-1) experimental; urgency=low * Initial release (Closes: #414892) -- Stefano Zacchiroli Fri, 16 Mar 2007 11:37:34 +0100 debian/copyright0000644000000000000000000000273211143542761011131 0ustar This package was debianized by Stefano Zacchiroli on Wed, 14 Mar 2007 18:13:48 +0100. It was downloaded from http://www.divmod.org/trac/wiki/DivmodAxiom Upstream Author: Divmod Inc. Copyright: (C) 2005 Divmod Inc. License: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The Debian packaging is Copyright 2007, Stefano Zacchiroli and 2008-2009 Tristan Seligmann , and is licensed under the same terms as above. debian/NEWS.txt0000644000000000000000000002763112201611310010477 0ustar 0.6.0 (2009-11-25): - Speed up creation, insertion, and various other operations on Item by optimizing Item.getSchema. - Improve error reporting from the batch upgrade system. - Speed up setting attributes on Item instances. - Remove the batch process manhole service. - Improve the reliability of some unit tests. - Fix `axiomatic --reactor ...`. - Remove invalid SQL normalization code which would occassionally corrupt certain obscure but valid SQL statements. - Add an in-memory `IScheduler` powerup for stores and substores. 0.5.31 (2008-12-09): - An IStatEvent is now logged when a store is opened. - Different schema versions of the same item type now no longer compare equal, which fixes some breakage in the upgrade system, among other things. - Significantly reduce the runtime cost of opening a store by reducing the amount of work spent to verify schema correctness. 0.5.30 (2008-10-15): - Fixed a _SubSchedulerParentHook bug where a transient run failure would cause future event scheduling in the relevant substore to fail/traceback. 0.5.29 (2008-10-02): - Added 'requiresFromSite' to axiom.dependency, expressing a requirement on the site store for the successful installation of an item in a user store. - Made errors from duplicate item type definition friendlier. 0.5.28 (2008-08-12): - Upgraders can now safely upgrade reference attributes. - The batch process is no longer started unless it's needed. - Removed use of private Decimal APIs that changed in Python 2.5.2. - "axiomatic start" changed to use the public interface to twistd's behaviour instead of relying on internal details. - Store now uses FilePaths to refer to its database or files directory. - Automatic powerup discovery is now a feature of powerups rather than of axiom.dependency. - Stores now record the released versions of code used to open them. - "axiomatic upgrade" added, a command for completely upgrading a store. - Removed no-longer-working APSW support code. 0.5.27 (2007-11-27): - Substores and file storage for in-memory stores are now supported. 0.5.26 (2007-09-05): - A bug where exceptions were raised when tables were created concurrently is now fixed. 0.5.25 (2007-08-01): - Added the beginnings of a query introspection API. 0.5.24 (2007-07-06): - Added a 'postCopy' argument to upgrade.registerAttributeCopyingUpgrader, a callable run with the new item after upgrading. 0.5.23 (2007-06-06): - Fixed a bug where user store insertion/extraction failed if a SubScheduler was installed but no TimedEvents existed. 0.5.22 (2007-05-24): - Fixed docstrings in axiom.dependency. - Scheduler and SubScheduler now declared to implement IScheduler. 0.5.21 (2007-04-27): - Multi-version upgraders are now supported: an upgrader function can upgrade items more than a single version at a time. - Multi-item-class queries now supported: Store.query takes a tuple as its first argument, similar to a comma-separated column clause for a SELECT statement in SQL. - Empty textlists are now properly distinguished from a textlist containing a single empty string. - Handling of items scheduled to run with axiom.scheduler being deleted before they run has been fixed. 0.5.20 (2007-02-23): - AxiomaticCommand is no longer itself an axiom plugin. - axiom.test.historic.stubloader.StubbedTest now has an 'openLegacyStore' method, for opening the unupgraded store multiple times. - The default argument to Store.getItemByID is now respected in the case where an attempt is made to load an item which was created and deleted within a single transaction. 0.5.19 (2007-01-11): - A new method, axiom.store.ItemQuery.paginate, has been added, which splits a query's result-gathering work into multiple "pages" so that we can deal with extremely large result sets. - A dependency management system for Items has been added in axiom.dependency. InstallableMixin has been removed; axiom.dependency.installOn is now used to install Items and connect powerups. Items can declare their dependence on another item by declaring attributes with axiom.dependency.dependsOn. When items are installed, their dependencies will be created and installed as well. Installation is no longer tracked by 'installedOn' attributes but by _DependencyConnector items. - A bug preventing 'axiomatic userbase list' from working on a fresh mantissa database has been fixed. 0.5.18 (2006-12-08): - Change ItemQuery.deleteFromStore so that it will call deleteFromStore on an Item subclass if it has overridden that method. 0.5.17 (2006-11-20): - Added fullyQualifiedName to IColumn, _StoreIDComparer, and _PlaceholderColumn. - Added support for distinct Item queries and for counting distinct attribute queries. - Exceptions raised by Axiom upgrade methods are logged instead of silently swallowing them. 0.5.16 (2006-11-17): - Updated axiomatic to work with Twisted trunk. 0.5.15 (2006-10-31): - Raise a more informative exception when accessing Item references pointing to nonexistent items. - Enforce prevention of deletion of items referred to by references set to reference.DISALLOW. - Tables in the FROM clause of SQL generated by queries are now ordered by the order of the Item subclasses in the comparisons used to generate them. - A new IComparison implementation has been added to allow application-level code to explicitly specify the order of types in the join. 0.5.14 (2006-10-17): - Added a 'batchInsert' method to Store, allowing insertion of items without loading them into memory. - Change ItemQuery.deleteFromStore to delete items without loading them if possible. 0.5.13 (2006-10-05): - Changed userbase.getLoginMethods to return LoginMethods rather than (localpart, domain) tuples. 0.5.12 (2006-09-29): - Fixed a scheduler bug that would cause tasks scheduled in a substore to be removed from the scheduler. 0.5.11 (2006-09-20): - dependency.dependsOn now takes similar arguments to attributes.reference. 0.5.10 (2006-09-12): - The axiomatic commands "insert-user" and "extract-user" now interact with the scheduler properly. 0.5.9 (2006-08-30): - A new dependency-management system has been added, in axiom.dependency. 0.5.8 (2006-08-17): - The upgrader added in the previous release has been fixed. 0.5.7 (2006-08-14): - item.Item has a new method, stored, which will be called the first time an item is added to a store, in the same transaction as it is added. - A new class, item.Placeholder, has been added to assist in self-join queries. 0.5.6 (2006-07-18): - userbase.LoginSystem now raises a new exception type when login is attempted using a username with no domain part. 0.5.5 (2006-07-08): - SubStoreStartupService was removed; user stores' services are no longer incorrectly started when the Mantissa administrative powerup is installed. - IPowerupIndirector was added, allowing for installation of SubStore items as powerups on other items. 0.5.4 (2006-07-05): - Items with attributes.path attributes can now be upgraded. - axiom.scheduler has been improved to make clock-related tests easier to write. - Improved test coverage and various bugfixes. 0.5.3 (2006-06-27): - A bug causing the table name cache to grow too large was fixed. 0.5.2 (2006-06-26): - Type names are now determined on a per-store basis, rather than cached globally on the Item. 0.5.1 (2006-06-16): - axiom.slotmachine._structlike removed in favor of the implementation in Epsilon, epsilon.structlike.record. - The batch process has been adjusted to do more work per iteration. 0.5.0 (2006-06-12): Highlights: - Fixed several bugs, including several potential data-corruption issues. All users are recommended to upgrade, but back up your data and test your upgrade first! - There is now a 'money' attribute type which uses fixed-precision math in the database specifically designed for dealing with the types of issues associated with database-persistent financial data. - Some simple relational constraints (the equivalent of ON DELETE CASCADE) have been implemented using the 'whenDeleted' keyword argument. - Indexes which are created in your code will now automatically be added to opened databases without requiring an upgrader or a change to your Item's schemaVersion. - You can now use 'declareLegacyItem' to declare legacy schemas to record the schema of older versions of your software -- this enables upgrading of more than one step per release of your application code. - You can now create multi-column indexes using attributes.compoundIndex. --- - Made Item.typeName and Item.schemaVersion optional in most cases. - Added axiom.batch for reliably operating on large groups of items. - Removed all usages of util.wait from tests - added 'queryutil.contains' utility query method, for testing when a value is between two attributes. - Added 'negate' argument to oneOf, allowing for issing SQL 'NOT IN' queries. - Improved reliability of the scheduler. Errors are now logged in a structured manner. - Added helper classes for writing axiomatic plug-in commands; see documentation for axiomatic.scripts.axiomatic.AxiomaticCommand and AxiomaticSubCommand. - AttributeQuery now provides .min() and .max() methods which return the obvious thing. - Transactions are more managed more conservatively; BEGIN IMMEDIATE TRANSACTION is used at the beginning of each transact() call, to guarantee that concurrent access is safe, if sometimes slightly slower. - SQL generation has been deferred to query time, which means that there is a more complete API for manipulating Query objects. - repr() of various objects has been improved for easier debugging. - Axiom now emits various log events which you can observe if you wish to analyze query statistics in real-time. These events don't go to the text log by default: Mantissa, for example, uses them to display a pie chart of the most expensive queries on a running system. 0.4.0 (2005-12-20): - Fixed sum() in the case of a table with no rows. - LoginAccount no longer contains authentication information, but may be referred to by one or more LoginMethods, which do. - Added an attribute type for floats: ieee754_double. - Enhanced functionality in axiom.sequence.List. - Added support for SQL DISTINCT queries. - On the command line, axiomatic will attempt to automatically discover the correct database to use, if one is not specified. - PID and logfiles are now kept in a subdirectory of the database directory. - The "start" axiomatic subcommand now works on Windows. - Two new axiomatic subcommands have been added related to running servers from Axiom database: "stop" and "status". - Two new axiomatic subcommands have been added related to user management: "extract-user" and "insert-user" for removing users from and adding users to an existing credentials database, along with all of their data. - Axiom queries can now be sorted by a tuple of columns. 0.3.0 (2005-11-02): - Removed Axiom/axiom/examples/axiom.tac - Added 'axiomatic start' - added 'hyper', a 'super' capable of working with Item mixins - added check to make sure Unicode strings won't be misleadingly persisted as bytes(), like so: >>> str(buffer(u'hello')) 'h\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o\x00\x00\x00' - formalized and improved query result to be an object with its own interface rather than a generator - correctly call activate() on items after they have been upgraded 0.2.0 (2005-10-27): - Removed accidental Mantissa dependency - Automatic upgrade service added - Lots of new docstrings - Query utility module added, with a function for finding overlapping ranges - Added formal interface for the `where' argument to Store.query() - Added 'oneOf' attribute debian/rules0000755000000000000000000000127412201613312010241 0ustar #!/usr/bin/make -f DEB_INSTALL_MANPAGES_python-axiom := debian/axiomatic.1 DEB_INSTALL_CHANGELOGS_python-axiom := debian/NEWS.txt include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/python-distutils.mk PKGDIR=debian/python-axiom/ # Don't write any bytecode files implicitly during the build process export PYTHONDONTWRITEBYTECODE=yes install/python-axiom:: rm -rf $(PKGDIR)/usr/lib/python*/site-packages/build rm -rf $(PKGDIR)/usr/lib/python*/site-packages/axiom/examples ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) $(call cdbs_python_binary,python$(cdbs_python_compile_version)) debian/runtrial.py $(PKGDIR) axiom endif find $(PKGDIR) -name dropin.cache -delete debian/axiomatic.10000644000000000000000000000427412201610467011234 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .de URL \\$2 \(laURL: \\$1 \(ra\\$3 .. .if \n[.g] .mso www.tmac .TH AXIOMATIC 1 "24 January 2008" .SH NAME axiomatic \- command-line tool for creating, configuring, and inspecting an axiom database .SH SYNOPSIS .B axiomatic .RI [ options ] .RI [ command ] .SH DESCRIPTION This manual page documents briefly the .B axiomatic command. .PP .B axiomatic allows creation, configuration and interaction with an axiom database. The most commonly used subcommands are \fBstart\fP, \fBstop\fP and \fBstatus\fP. .br .SH OPTIONS These programs follow the usual GNU command line syntax, with long options starting with two dashes (`\-'). A summary of options is included below. .TP .B \-b, \-\-debug Enable Axiom-level debug logging. .TP .B \-d, \-\-dbdir= Path containing axiom database to configure/create. .TP .B \-\-version Show version of program. .TP .B \-\-help Display help. .SH COMMANDS Except when using \-\-version and \-\-help, you need to specify one command. The possible commands are included below. Note that axiomatic has an extensible plugin system, so the exact list of commands will differ depending on what axiomatic plugins are available. .TP .B start Launch the given Axiom database. .TP .B stop Stop the server running from the given Axiom database. .TP .B status Report whether a server is running from the given Axiom database. .TP .B insert\-user Insert a user store, such as one extracted with .B extract\-user, into a site store and login system. .TP .B userbase LoginSystem introspection and manipulation. .TP .B extract\-user Remove an account from the login system, moving its associated database to the filesystem. .TP .B browse Interact with an Axiom store. .SH SEE ALSO .URL "http://divmod.org/trac/wiki/DivmodAxiom" "Axiom homepage" .SH AUTHOR axiomatic is part of Axiom, an object database, or alternatively, an object-relational mapper written by Divmod. .PP This manual page was written by Vincent Bernat , for the Debian project (but may be used by others). debian/examples0000644000000000000000000000002111160262251010714 0ustar axiom/examples/* debian/source/0000755000000000000000000000000012201613661010464 5ustar debian/source/format0000644000000000000000000000001411343135433011674 0ustar 3.0 (quilt) debian/control0000644000000000000000000000343612201613652010575 0ustar Source: python-axiom Section: python Priority: optional Maintainer: Debian Python Modules Team Uploaders: Tristan Seligmann , Vincent Bernat Build-Depends: debhelper (>= 6), cdbs (>= 0.4.90~), python-all (>= 2.6.6-3~), python-epsilon (>= 0.6.0-2~) Build-Depends-Indep: python-twisted-core, python-twisted-conch, python-pysqlite2, python-zopeinterface Homepage: https://launchpad.net/divmod-axiom Vcs-Svn: svn://anonscm.debian.org/python-modules/packages/python-axiom/trunk/ Vcs-Browser: http://anonscm.debian.org/viewvc/python-modules/packages/python-axiom/trunk/ Standards-Version: 3.9.4 X-Python-Version: >= 2.4 Package: python-axiom Architecture: all Depends: ${python:Depends}, ${misc:Depends}, python-twisted-core, python-twisted-conch, python-epsilon (>= 0.5.11), python-pysqlite2, python-zopeinterface Breaks: libsqlite3-0 (<< 3.6.12) Description: Python object database Divmod Axiom is an object database, or alternatively, an object-relational mapper, implemented on top of Python. . Its primary goal is to provide an object-oriented layer with the key aspects of OOP (Object Oriented Programming), i.e. polymorphism and message dispatch, without hindering the power of an RDBMS (Relational DataBase Management System). . Axiom is a live database, not only an SQL generation tool: it includes an implementation of a scheduler service, external file references, automatic upgrades, robust failure handling, and Twisted integration. . Axiom is tightly integrated with Twisted, and can store, start, and stop Twisted services directly from the database using the included 'axiomatic' command-line tool. . Note: Axiom currently supports only SQLite and does NOT have any features for dealing with concurrency.