Skip to content

Reduce our dependencies #20

@jamadden

Description

@jamadden

We have a massive dependency tree:

Successfully installed Acquisition-4.4.2 BTrees-4.4.1 ExtensionClass-4.3.0 
PyYAML-3.12 ZConfig-3.2.0 ZEO-5.1.0 ZODB-5.3.0 fudge-1.1.0 isodate-0.5.4 
nti.externalization nti.i18n-1.0.0 nti.property-1.0.0 nti.schema-1.3.0 nti.testing-2.0.0
nti.wref-1.0.0 nti.zodb-1.0.0 perfmetrics-2.0 persistent-4.2.4.2 
pyhamcrest-1.9.0 pytz-2017.2 repoze.zodbconn-0.15 simplejson-3.11.1 six-1.11.0
transaction-2.1.2 zc.lockfile-1.2.1 zc.zlibstorage-1.2.0 zdaemon-4.2.0 zodbpickle-0.6.0
zope.annotation-4.5 zope.browser-2.2.0 zope.browserpage-4.2.0 zope.browserresource-4.2.1
zope.cachedescriptors-4.3.0 zope.component-4.4.0 zope.configuration-4.1.0 
zope.container-4.2.1 zope.contenttype-4.3.0 zope.copy-4.1.0 zope.copypastemove-4.1.0
zope.datetime-4.2.0 zope.deferredimport-4.2.0 zope.deprecation-4.3.0 
zope.dottedname-4.2 zope.dublincore-4.2.0 zope.event-4.3.0 zope.exceptions-4.2.0 
zope.file-1.0.0 zope.filerepresentation-4.2.0 zope.formlib-4.4 zope.hookable-4.1.0 
zope.i18n-4.2.0 zope.i18nmessageid-4.1.0 zope.interface-4.4.2 zope.intid-4.3.0 
zope.keyreference-4.1.0 zope.lifecycleevent-4.2.0 zope.location-4.1.0 
zope.mimetype-2.2.0 zope.minmax-2.2.0 zope.pagetemplate-4.3.0 
zope.preference-4.0.0 zope.processlifetime-2.2.0 zope.proxy-4.3.0 
zope.publisher-4.3.2 zope.schema-4.5.0 zope.security-4.1.1 zope.size-4.2.0 
zope.tal-4.3.0 zope.tales-4.1.1 zope.testing-4.6.2 zope.testrunner-4.7.0
zope.traversing-4.1.0 zope.vocabularyregistry-1.0.0

We can't possibly really need all of those in the core.

For example, we only depend on zope.preference to be able to list it in configure.zcml. That's probably not our job.

For another example, we only depend on BTrees to be able to include OOBTree.OOBTree in isinstance(thing, MAPPING_TYPES) call. Shouldn't that just be isinstance(thing, collections.Mapping) (and allow the user to register mapping types with the collections.Mapping ABC, as it is intended for.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions