No default branch
Bookmark a link to HEAD:
(view)
(download)
(as text)
Split out peak.util.imports and use the new Importing package instead. peak and peak.util are now namespace packages, so any pkgfile: references within these packages must now refer to some specific module in order to work correctly (e.g. peak.core/peak.ini instead of peak/peak.ini).
First pass at removing all uses of 'kjbuckets'; this takes care of all but 'peak.util.MiniTable', which still uses the 'kjDict' type. Note that this checkin also changes the ISOXNode_NS interface in peak.util.SOX; See CHANGES.txt for details.
Added 'peak.util.unittrace' module, useful for testing that calls occurred within unit tests. See the 'unittrace.txt' file for documentation, examples, and the module's unit tests.
Added 'ConflictManager' class, for managing settings in included files. It ensures that a setting is set at most once per file, that settings in an including file override those in included files, and that a setting set in more than one included file must have a setting in the including file to disambiguate the two.
Removed 'peak.running.timers' and 'peak.util.dispatch'. Neither was in active use, and both are being replaced by the new generic functions package in PyProtocols.
Added 'peak.util.expr': tools for symbolic manipulation of Python expressions. This first drop provides a mechanism for creating proxy types that invoke a builder function when expressions are executed, thus translating things like 'something.foo[23]' into something like:: build("[]", build(".",something,"foo"), 23 ) Assuming, of course, that 'something' is a proxy instance. Expression proxies can wrap the node object types of your choice, so that you can reuse this code for various types of query or other frameworks, without having to code all the '__foo__' methods to do this sort of thing by hand.
Added 'peak.util.mockets', offering imitation socket services like 'socket()' and 'select()', allowing socket-based services to be tested without using real sockets. So far only emulates TCP streams, and no other protocols, with certain socket methods omitted. Needs to be used to test 'peak.events.io_events.Selector', and as a basis for testing/implementing nonblocking socket objects for 'peak.net'.
Added tests for peak.util.signature, and added support for 'advice' classes to give call signature data for advised methods. Also, removed outdated uses of 'peak.util.advice' where 'protocols.advice' is the actual home of the function.
Added 'peak.util.mockdb', a "mock object" implementation of a DBAPI 2.0 driver module. 'mockdb' connections can be told to 'expect()' queries and 'provide()' data to their callers, and will raise AssertionErrors when they are used in a way that doesn't conform to your supplied expectations. This is intended to be used for unit testing components that depend on a database connection: you can verify that they send the right SQL, and you can provide them with dummy data to use. There is also a 'mockdb:' URL and peak.storage driver, so you can easily use a mock DB connection in place of a real one within a PEAK application, for testing purposes. Note, however, that 'peak.util.mockdb' is a DBAPI 2.0 driver in itself, and thus can also be used to test DBAPI usage outside of PEAK.
Moved 'peak.util.advice' tests to 'protocols.tests'.
Added tests for class advice, both generating it, and handling it with module inheritance. Also, fixed an issue with module inheritance and Interface definitions, where Interface complains about "concrete attribute __name__" when the module simulator tries to tell the Interface class what its name is. Now the simulator only tries to tell nested classes what their names are, which conveniently bypasses Interfaces.
Added basic multimethod/generic function/business rules dispatch library.
Re-org/refactoring of many items from the TODO list for 0.5, including: * moved peak.binding.imports -> peak.util.imports, added importSuite() * Decided not to do binding.Acquire, it should just be a documented idiom * Moved LDAP and lockfile URLs to peak.storage.LDAP and peak.running.lockfiles, respectively * Moved factories.getObjectInstance -> spi, updated peak.ini to load naming.spi as the provider. * Consolidated naming.references into naming.names * Made ParsedURLs compile their pattern strings, and automatically make their 'fromX()' methods classmethods (and the same is true for other 'struct' types. * Refactored cursors and connections out into distinct SQLCursor/LDAPCursor types, based on a common AbstractCursor. * Added TooManyResults/TooFewResults errors to peak.exceptions
Added more docs and a test to the FileParsing framework. Refactored AbstractConfigParser to make it easier to define how differently-processed configuration sections will be handled. Misc. TODO additions.
Added test suite for uuid module.
Added test suite for EigenData module, and fixed some minor issues with it and binding.components.
Reworked for standardized 'api' modules for package exports. Also renamed interpretSpec and interpretSequence to 'importObject' and 'importSequence' respectively, as they seem to be a bit clearer names. All the tests still pass, but be sure to delete your build/ directory and remove the existing 'peak' package from your Python site-packages directory if you have one.
First pass of random conversions from TW -> peak
Pre-release documentation and cleanup sweep, part 3. Rearranged all the test stuff to meet Zope.org's test packaging conventions. Added module docstrings to the Database package, and shuffled a few things around there to break up the code better. Looks like the last package left for this treatment is Utils...
cvs-admin@eby-sarna.com Powered by ViewCVS 1.0-dev |
ViewCVS and CVS Help |