[Zope-dev] Zope.schema extension with marker interface
Hi A bit of context first: We have a zope application, using zope.schema to define our objects. The problem is, we have circular references, units contain references to persons and persons contain references to units. For schema validation, this is solved by subclassing zope.schema.Object and making it aware of reference objects and contained objects. So far so good. Now I'm working on z3c.schema2json (originally by Paul Wilson), allowing zope.schema defined objects to be converted to a dictionary structure. The problem I encounter here is that there is no awareness of reference or containment. This causes endless recursion going from person to unit back to person back to unit, . . A clean way to solve this, would be adding a marker interface IReference/ILazyLoad, . ., to the reference objects. If the serializer encounters the IReference interface, it can be skipped for serialization. The same concept could probably be used for the schema validation. To me the best place to add this marker interface is in zope.shema.interfaces, because it's actually working on zope.schema. I'm happy to fork zope.schema on github and make it working, but I'd like your feedback on this, before I start working on it. Pro's, con's? Scenarios I miss? ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] zope-tests - FAILED: 89, OK: 8
This is the summary for test reports received on the zope-tests list between 2013-06-05 00:00:00 UTC and 2013-06-06 00:00:00 UTC: See the footnotes for test reports of unsuccessful builds. An up-to date view of the builders is also available in our buildbot documentation: http://docs.zope.org/zopetoolkit/process/buildbots.html#the-nightly-builds Reports received Successful - zopetoolkit_trunk - Build # 288 [1]winbot / ZEO_py_265_32 winbot / ZODB_dev py_265_win32 [2]winbot / ZODB_dev py_265_win64 winbot / ZODB_dev py_270_win32 [3]winbot / ZODB_dev py_270_win64 [4]winbot / z3c.authenticator_py_265_32 [5]winbot / z3c.breadcrumb_py_265_32 [6]winbot / z3c.configurator_py_265_32 [7]winbot / z3c.contents_py_265_32 [8]winbot / z3c.coverage_py_265_32 [9]winbot / z3c.datagenerator_py_265_32 [10] winbot / z3c.form_py_265_32 [11] winbot / z3c.formui_py_265_32 [12] winbot / z3c.json_py_265_32 [13] winbot / z3c.jsontree_py_265_32 [14] winbot / z3c.language.switch_py_265_32 [15] winbot / z3c.layer.pagelet_py_265_32 [16] winbot / z3c.layer.ready2go_py_265_32 [17] winbot / z3c.macro_py_265_32 [18] winbot / z3c.menu.ready2go_py_265_32 [19] winbot / z3c.pagelet_py_265_32 [20] winbot / z3c.password_py_265_32 [21] winbot / z3c.ptcompat_py_265_32 [22] winbot / z3c.sampledata_py_265_32 [23] winbot / z3c.table_py_265_32 [24] winbot / z3c.tabular_py_265_32 [25] winbot / z3c.template_py_265_32 [26] winbot / z3c.testing_py_265_32 [27] winbot / zc.lockfile_py_265_32 [28] winbot / zc.queue_py_265_32 [29] winbot / zc.sourcefactory_py_265_32 [30] winbot / zope.app.appsetup_py_265_32 [31] winbot / zope.app.authentication_py_265_32 [32] winbot / zope.app.dependable_py_265_32 [33] winbot / zope.app.http_py_265_32 [34] winbot / zope.app.locales_py_265_32 [35] winbot / zope.app.publication_py_265_32 [36] winbot / zope.applicationcontrol_py_265_32 [37] winbot / zope.authentication_py_265_32 [38] winbot / zope.browsermenu_py_265_32 [39] winbot / zope.browserpage_py_265_32 [40] winbot / zope.browserresource_py_265_32 [41] winbot / zope.catalog_py_265_32 [42] winbot / zope.catalog_py_265_32 [43] winbot / zope.component_py_265_32 [44] winbot / zope.componentvocabulary_py_265_32 [45] winbot / zope.container_py_265_32 [46] winbot / zope.contentprovider_py_265_32 [47] winbot / zope.copypastemove_py_265_32 [48] winbot / zope.datetime_py_265_32 [49] winbot / zope.deferredimport_py_265_32 [50] winbot / zope.dublincore_py_265_32 [51] winbot / zope.error_py_265_32 [52] winbot / zope.exceptions_py_265_32 [53] winbot / zope.formlib_py_265_32 [54] winbot / zope.generations_py_265_32 [55] winbot / zope.i18n_py_265_32 [56] winbot / zope.index_py_265_32 [57] winbot / zope.index_py_265_32 [58] winbot / zope.intid_py_265_32 [59] winbot / zope.keyreference_py_265_32 [60] winbot / zope.location_py_265_32 [61] winbot / zope.login_py_265_32 [62] winbot / zope.mimetype_py_265_32 [63] winbot / zope.minmax_py_265_32 [64] winbot / zope.pagetemplate_py_265_32 [65] winbot / zope.password_py_265_32 [66] winbot / zope.pluggableauth_py_265_32 [67] winbot / zope.principalannotation_py_265_32 [68] winbot / zope.principalregistry_py_265_32 [69] winbot / zope.processlifetime_py_265_32 [70] winbot / zope.ptresource_py_265_32 [71] winbot / zope.publisher_py_265_32 [72] winbot / zope.ramcache_py_265_32 [73] winbot / zope.renderer_py_265_32 [74] winbot / zope.security_py_265_32 [75] winbot / zope.securitypolicy_py_265_32 [76] winbot / zope.sendmail_py_265_32 [77] winbot / zope.sequencesort_py_265_32 [78] winbot / zope.session_py_265_32 [79] winbot / zope.site_py_265_32 [80] winbot / zope.site_py_265_32 [81] winbot / zope.structuredtext_py_265_32 [82] winbot / zope.tal_py_265_32 [83] winbot / zope.tales_py_265_32 [84] winbot / zope.testrunner_py_265_32 [85] winbot / zope.traversing_py_265_32 [86] winbot / zope.viewlet_py_265_32 winbot / ztk_10 py_254_win32 winbot / ztk_10 py_265_win32 [87] winbot / ztk_10 py_265_win64 winbot / ztk_11 py_254_win32 winbot / ztk_11 py_265_win32 [88] winbot / ztk_11 py_265_win64 winbot / ztk_11 py_270_win32 [89] winbot / ztk_11 py_270_win64 Non-OK results -- [1]FAILED winbot / ZEO_py_265_32 https://mail.zope.org/pipermail/zope-tests/2013-June/076033.html [2]FAILED winbot / ZODB_dev py_265_win64 https://mail.zope.org/pipermail/zope-tests/2013-June/075975.html [3]FAILED winbot / ZODB_dev py_270_win64 https://mail.zope.org/pipermail/zope-tests/2013-June/075977.html [4]FAILED winbot / z3c.authenticator_py_265_32 https://mail.zope.org/pipermail/zope-tests/2013-June/075981.html [5]FAILED winbot / z3c.breadcrumb_py_265_32 https://mail.zope.org/pipermail/zope-tests/2013-June/076003.html [6]FAILED winbot