[buildout]
extends =
# Exact version of Zope
  ztk-versions.cfg
  zope-versions.cfg
  ../../component/cups/buildout.cfg
  ../../component/dbus/buildout.cfg
  ../../component/file/buildout.cfg
  ../../component/fonts/buildout.cfg
  ../../component/ghostscript/buildout.cfg
  ../../component/git/buildout.cfg
  ../../component/graphviz/buildout.cfg
  ../../component/gzip/buildout.cfg
  ../../component/haproxy/buildout.cfg
  ../../component/hookbox/buildout.cfg
  ../../component/findutils/buildout.cfg
  ../../component/librsvg/buildout.cfg
  ../../component/imagemagick/buildout.cfg
  ../../component/inkscape/buildout.cfg
  ../../component/kumo/buildout.cfg
  ../../component/libdmtx/buildout.cfg
  ../../component/libffi/buildout.cfg
  ../../component/libpng/buildout.cfg
  ../../component/libreoffice-bin/buildout.cfg
  ../../component/matplotlib/buildout.cfg
  ../../component/mesa/buildout.cfg
  ../../component/numpy/buildout.cfg
  ../../component/pandas/buildout.cfg
  ../../component/percona-toolkit/buildout.cfg
  ../../component/patch/buildout.cfg
  ../../component/pillow/buildout.cfg
  ../../component/pycrypto-python/buildout.cfg
  ../../component/pysvn-python/buildout.cfg
  ../../component/python-ldap-python/buildout.cfg
  ../../component/rdiff-backup/buildout.cfg
  ../../component/scikit-learn/buildout.cfg
  ../../component/stunnel/buildout.cfg
  ../../component/subversion/buildout.cfg
  ../../component/tesseract/buildout.cfg
  ../../component/w3-validator/buildout.cfg
  ../../component/w3m/buildout.cfg
  ../../component/xorg/buildout.cfg
  ../../component/poppler/buildout.cfg
  ../../component/zabbix/buildout.cfg
  ../../component/sed/buildout.cfg
  ../../component/coreutils/buildout.cfg
  ../../component/grep/buildout.cfg
  ../../component/dash/buildout.cfg
  ../../component/wget/buildout.cfg
  ../../component/aspell/buildout.cfg
  ../../component/cloudooo/buildout.cfg
  ../../component/jsl/buildout.cfg
  ../../component/6tunnel/buildout.cfg
  ../../component/findutils/buildout.cfg
  ../../component/userhosts/buildout.cfg
  ../../component/postfix/buildout.cfg
  ../../software/ipython_notebook/software.cfg
  ../../software/neoppod/software-common.cfg
# keep neoppod extends last

parts +=
  erp5-util-develop
  slapos-cookbook-develop
  slapos-cookbook
  rdiff-backup
  aspell
  aspell-en-dictionary
  apache
  apache-antiloris
  file
  findutils
  graphviz
  haproxy
  jsl
  stunnel
  w3m
  poppler
  libpng
  ghostscript
  mroonga-mariadb
  imagemagick
  inkscape
  libdmtx
  dmtx-utils
  kumo
  libreoffice-bin
  w3-validator
  tesseract
  hookbox
  perl-DBD-mariadb
  perl-DBI
  percona-toolkit
  zabbix-agent
  dash
  wget
  userhosts
  postfix

# Buildoutish
  eggs
  testrunner
  test_suite_runner

# basic Xorg
  libXdmcp
  libXext
  libXau
  libSM
  libXrender

# fonts
  liberation-fonts
  ipaex-fonts
  ipa-fonts
  ocrb-fonts
  android-fonts

# Cloudooo specific part
  cloudooo-develop
  cloudooo

# get git repositories
  erp5
  genbt5list

# some additional utils
  zodbanalyze

# Create instance template
  template

# jupyter
  ipython-notebook
  instance-jupyter

# override instance-jupyter not to render into default template.cfg
[instance-jupyter]
rendered = ${buildout:directory}/template-jupyter.cfg

[download-base]
<= download-base-neo
url = ${:_profile_base_location_}/${:filename}

[check-recipe]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link

[mariadb-resiliency-after-import-script]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/template/instance-mariadb-resiliency-after-import-script.sh.in
md5sum = b32d9ee1cb85f85d8d2f2b58f58459f1
mode = 755

[template-mariadb]
<= download-base
filename = instance-mariadb.cfg.in
md5sum = 9312af2f9d9faf06d2f26f073ad60180
link-binary =
  ${coreutils:location}/bin/basename
  ${coreutils:location}/bin/cat
  ${coreutils:location}/bin/cp
  ${coreutils:location}/bin/ls
  ${coreutils:location}/bin/tr
  ${coreutils:location}/bin/uname
  ${gettext:location}/lib/gettext/hostname
  ${grep:location}/bin/grep
  ${sed:location}/bin/sed
  ${mariadb:location}/bin/mysqlbinlog

[template-kumofs]
<= download-base
filename = instance-kumofs.cfg.in
md5sum = 763db0c4a94649296e74fe1f53c03940

[template-cloudooo]
<= download-base
filename = instance-cloudoo.cfg.in
md5sum = 5691b7f12d22bfb8a926dfcb592f12c8

[template-zope-conf]
<= download-base
filename = zope.conf.in
md5sum = 77ab4f229a92e02603028a0bd3772edd

[site-zcml]
<= download-base
filename = site.zcml
md5sum = d32417746fcf671d4e86a70379815039

[template-my-cnf]
<= download-base
filename = my.cnf.in
md5sum = d50920c942b8ee98402f8551fef38383

[template-mariadb-initial-setup]
<= download-base
filename = mariadb_initial_setup.sql.in
md5sum = 6465212fdc7fe9076a0c929d9f14da14

[template-create-erp5-site]
<= download-base
filename = instance-create-erp5-site.cfg.in
md5sum = 71cef1d06065951ab4cf43eb13f311a3

[template-create-erp5-site-real]
<= download-base
filename = instance-create-erp5-site-real.cfg.in
md5sum = 79f789360e71146486c82a7a10834bae

[template-postfix]
< = download-base
filename = instance-postfix.cfg.in
md5sum = 90a017581116f14014a039d38ef36ffd

[template-postfix-master-cf]
< = download-base
filename = postfix_master.cf.in
md5sum = 9ac81647368068a1a98a785d08074b43

[template-postfix-main-cf]
< = download-base
filename = postfix_main.cf.in
md5sum = d51897728755e14d8005344608098009

[template-postfix-aliases]
< = download-base
filename = postfix_aliases.in
md5sum = 0969fbb25b05c02ef3c2d437b2f4e1a0

[template]
recipe = slapos.recipe.template:jinja2
# XXX: "template.cfg" is hardcoded in instanciation recipe
rendered = ${buildout:directory}/template.cfg
template = ${:_profile_base_location_}/instance.cfg.in
md5sum = d73b1a55ed599c54da71535dd31357fd
mode = 640
context =
    key mariadb_link_binary template-mariadb:link-binary
    key zope_link_binary template-zope:link-binary
    key apache_location apache:location
    key aspell_location aspell:location
    key bin_directory buildout:bin-directory
    key buildout_bin_directory buildout:bin-directory
    key cairo_location cairo:location
    key coreutils_location coreutils:location
    key cups_location cups:location
    key curl_location curl:location
    key cyrus_sasl_location cyrus-sasl:location
    key dash_location dash:location
    key dbus_glib_location dbus-glib:location
    key dbus_location dbus:location
    key dcron_location dcron:location
    key erp5_location erp5:location
    key file_location file:location
    key findutils_location findutils:location
    key fontconfig_location fontconfig:location
    key fonts_location fonts:location
    key freetype_location freetype:location
    key glib_location glib:location
    key glu_location glu:location
    key gzip_location gzip:location
    key haproxy_location haproxy:location
    key instance_common_cfg instance-common:rendered
    key jsl_location jsl:location
    key jupyter_enable_default erp5-defaults:jupyter-enable-default
    key kumo_location kumo:location
    key libICE_location libICE:location
    key libSM_location libSM:location
    key libX11_location libX11:location
    key libXau_location libXau:location
    key libXdmcp_location libXdmcp:location
    key libXext_location libXext:location
    key libXrender_location libXrender:location
    key libexpat_location libexpat:location
    key libffi_location libffi:location
    key libpng12_location libpng12:location
    key libreoffice_bin_location libreoffice-bin:location
    key librsvg_location librsvg:location
    key libxcb_location libxcb:location
    key local_bt5_repository local-bt5-repository:list
    key logrotate_location logrotate:location
    key mariadb_location mariadb:location
    key mariadb_resiliency_after_import_script mariadb-resiliency-after-import-script:target
    key matplotlibrc_location matplotlibrc:location
    key mesa_location mesa:location
    key openssl_location openssl:location
    key pixman_location pixman:location
    key postfix_location postfix:location
    key root_common root-common:target
    key site_zcml site-zcml:target
    key sixtunnel_location 6tunnel:location
    key slapos_core_version versions:slapos.core
    key stunnel_location stunnel:location
    key template_apache_conf template-apache-backend-conf:target
    key template_balancer template-balancer:target
    key template_cloudooo template-cloudooo:target
    key template_create_erp5_site template-create-erp5-site:target
    key template_create_erp5_site_real template-create-erp5-site-real:target
    key template_erp5 template-erp5:target
    key template_haproxy_cfg template-haproxy-cfg:target
    key template_jupyter_cfg instance-jupyter:rendered
    key template_kumofs template-kumofs:target
    key template_mariadb template-mariadb:target
    key template_mariadb_initial_setup template-mariadb-initial-setup:target
    key template_monitor monitor-template:rendered
    key template_my_cnf template-my-cnf:target
    key template_postfix template-postfix:target
    key template_postfix_aliases template-postfix-aliases:target
    key template_postfix_main_cf template-postfix-main-cf:target
    key template_postfix_master_cf template-postfix-master-cf:target
    key template_zeo template-zeo:target
    key template_zope template-zope:target
    key template_zope_conf template-zope-conf:target
    key userhosts_location userhosts:location
    key wget_location wget:location
    key xdamage_location xdamage:location
    key xfixes_location xfixes:location
    key zlib_location zlib:location
    key extra_path_list eggs:extra-paths

[monitor-template-dummy]
<= download-base
# This is a placeholder, to be overriden by extending monitor SR
filename = dummy.cfg
md5sum = d41d8cd98f00b204e9800998ecf8427e

[monitor-template]
rendered = ${monitor-template-dummy:target}

[template-erp5]
<= download-base
filename = instance-erp5.cfg.in
md5sum = b5f49c90017684aa3389ef3f97ece509

[template-zeo]
<= download-base
filename = instance-zeo.cfg.in
md5sum = 84aba4fa10d3087fbcc1d979df90fab9

[template-zope]
<= download-base
filename = instance-zope.cfg.in
md5sum = e65672c423d603e5fa516ad811cc1fa9
link-binary =
  ${aspell:location}/bin/aspell
  ${dmtx-utils:location}/bin/dmtxwrite
  ${git:location}/bin/git
  ${graphviz:location}/bin/dot
  ${grep:location}/bin/grep
  ${imagemagick:location}/bin/convert
  ${imagemagick:location}/bin/identify
  ${jsl:location}/bin/jsl
  ${librsvg:location}/bin/rsvg-convert
  ${mariadb:location}/bin/mysql
  ${mariadb:location}/bin/mysqldump
  ${openssl:location}/bin/openssl
  ${poppler:location}/bin/pdfinfo
  ${poppler:location}/bin/pdftohtml
  ${poppler:location}/bin/pdftotext
  ${sed:location}/bin/sed
  ${tesseract:location}/bin/tesseract
  ${w3m:location}/bin/w3m

[template-balancer]
<= download-base
filename = instance-balancer.cfg.in
md5sum = 049d4153990374dc130403c04accaf13

[template-haproxy-cfg]
<= download-base
filename = haproxy.cfg.in
md5sum = 3defd473e2cea17ae36bba7752494858

[bt5-repository]
# Format:
#   <url or path> [...]
#
# Use absolute paths for local repositories, and URLs for non-local otherwise.
#
list = ${local-bt5-repository:list}

[local-bt5-repository]
# Same as bt5-repository, but only local repository.
# Used to generate bt5lists.
list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap

[genbt5list]
recipe = plone.recipe.command
stop-on-error = true
genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
command =
  ${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
update-command = ${:command}

[erp5_repository_list]
repository_id_list = erp5

# ERP5 defaults, which can be overridden in inheriting recipes (e.g. wendelin)
[erp5-defaults]
# Jupyter is by default disabled in ERP5
jupyter-enable-default = false

[erp5]
recipe = slapos.recipe.build:gitclone
repository = https://lab.nexedi.com/nexedi/erp5.git
branch = master
git-executable = ${git:location}/bin/git

[testrunner]
# XXX: Workaround for fact ERP5Type is not an distribution and does not
#      expose entry point for test runner
recipe = zc.recipe.egg
eggs = ${eggs:eggs}
extra-paths = ${eggs:extra-paths}
entry-points =
  runUnitTest=runUnitTest:main
scripts = runUnitTest
initialization =
  import glob, imp, os, sys
  import App # prevent Testing from importing Zope2.App instead of App
  import Products
  Products.__path__[:0] = filter(None,
    os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep))
  os.environ['SOFTWARE_HOME'] = os.path.abspath(imp.find_module('Zope2')[1])
  os.environ['ZOPE_SCRIPTS'] = ''
  parts_directory = '''${buildout:parts-directory}'''
  repository_id_list = \
    '''${erp5_repository_list:repository_id_list}'''.split()[::-1]
  os.environ['erp5_tests_bt5_path'] = ','.join(sum((
    [bt5_path, os.path.join(bt5_path, '*')]
    for bt5_path in (os.path.join(parts_directory, x, 'bt5')
                     for x in repository_id_list)), []))
  extra_path_list = '''${:extra-paths}'''.split()
  sys.path[:0] = sum((
    glob.glob(os.path.join(x, 'tests'))
    for x in extra_path_list), [])
  sys.path[:0] = sum((
    glob.glob(os.path.join(x, 'Products', '*', 'tests'))
    for x in extra_path_list), [])
  sys.path[:0] = sum((
    glob.glob(os.path.join(x, 'Products', '*', 'tests'))
    for x in os.getenv('INSERT_PRODUCTS_PATH', '').split(os.pathsep)), [])
  os.environ['PATH'] = '${jsl:location}/bin:%s' % os.environ['PATH']
  os.environ['CGI_PATH'] = '${w3-validator:location}/httpd/cgi-bin'

[test_suite_runner]
# XXX: Workaround for fact ERP5Type is not an distribution and does not
#      expose entry point for test runner
recipe = zc.recipe.egg
eggs = ${eggs:eggs}
extra-paths = ${eggs:extra-paths}
entry-points =
  runTestSuite=Products.ERP5Type.tests.runTestSuite:main
scripts = runTestSuite
initialization =
  import os
  import sys
  import Products
  [Products.__path__.insert(0, p) for p in reversed(os.environ.get('INSERT_PRODUCTS_PATH', '').split(':')) if p]
  import Zope2
  os.environ['SOFTWARE_HOME'] = os.path.abspath(os.path.dirname(os.path.dirname(Zope2.__file__)))
  os.environ['ZOPE_SCRIPTS'] = ''
  repository_id_list = list(reversed('''${erp5_repository_list:repository_id_list}'''.split()))
  sys.path[0:0] = ['/'.join(['''${buildout:parts-directory}''', x]) for x in repository_id_list]

[eggs]
<= neoppod
eggs = ${neoppod:eggs}
  ${numpy:egg}
  ${matplotlib:egg}
  ${lxml-python:egg}
  ${pandas:egg}
  ${pillow-python:egg}
  ${python-ldap-python:egg}
  ${pysvn-python:egg}
  ${pycrypto-python:egg}
  ${scikit-learn:egg}
  lock_file
  astor
  PyStemmer
  PyXML
  Pympler
  SOAPpy
  chardet
  collective.recipe.template
  coverage
  erp5diff
  inotifyx
  interval
  ipdb
  Jinja2
  jsonschema
  mechanize
  objgraph
  paramiko
  ply
  pyflakes
  pypdf2
  python-magic
  python-memcached
  pytz
  requests
  threadframe
  timerserver
  urlnorm
  uuid
  xml_marshaller
  xupdate_processor
  feedparser
  validictory
  erp5.util
  huBarcode
  qrcode
  spyne
  httplib2
  suds
  pprofile
  pycountry
  xfw
  jsonschema
# Needed for checking ZODB Components source code
  pylint
  pytracemalloc

# Zope
  Zope2
# Zope acquisition patch
  Acquisition
# for runzeo
  ZEO

# Other Zope 2 packages
  Products.PluggableAuthService
  Products.PluginRegistry

# CMF 2.2
  Products.CMFActionIcons
  Products.CMFCalendar
  Products.CMFCore
  Products.CMFDefault
  Products.CMFTopic
  Products.CMFUid
  Products.DCWorkflow
  Products.GenericSetup
  five.localsitemanager

# Other products
  Products.DCWorkflowGraph
  Products.MimetypesRegistry
  Products.ExternalEditor
  Products.TIDStorage
  Products.LongRequestLogger
  Products.PloneHotfix20160830

# BBB: Temporarily keep zope.app.testing awaiting we use newer version of CMF
#      (for tests like testCookieCrumbler).
  zope.app.testing

# Currently forked in our repository
#    Products.PortalTransforms
# Dependency for our fork of PortalTransforms
  StructuredText

# Needed for parsing .po files from our Localizer subset
  polib

# Used by ERP5 Jupyter backend
  ipykernel

# parameterizing the version of the generated python interpreter name by the
# python section version causes dependency between this egg section and the
# installation of python, which we don't want on an instance
interpreter = ${buildout:python}
scripts =
  repozo
  runzope
  runzeo
  tidstoraged
  tidstorage_repozo
  web_checker_utility = erp5.util.webchecker:web_checker_utility

extra-paths =
  ${erp5:location}

# patches for eggs
patch-binary = ${patch:location}/bin/patch
Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acquisition/aq_dynamic.patch#e8029103350dad364d25747514a20327
Acquisition-patch-options = -p1
Products.DCWorkflow-patches = ${:_profile_base_location_}/../../component/egg-patch/Products.DCWorkflow/workflow_method.patch#975b49e96bae33ac8563454fe5fa9899
Products.DCWorkflow-patch-options = -p1
python-magic-patches = ${:_profile_base_location_}/../../component/egg-patch/python_magic/magic.patch#de0839bffac17801e39b60873a6c2068
python-magic-patch-options = -p1

[zodbanalyze]
recipe = zc.recipe.egg
eggs = erp5.util
entry-points =
  zodbanalyze=erp5.util.zodbanalyze:main
scripts = zodbanalyze

# develop erp5.util from parts/erp5/
[erp5-util-develop]
recipe = zc.recipe.egg:develop
setup = ${erp5:location}

[cloudooo-repository]
branch =
revision = 00604a3a5a69082f7c607665cc6badd5104a32b9

[slapos-deps-eggs]
recipe = zc.recipe.egg
eggs +=
  slapos.toolbox[zodbpack]
scripts +=
  is-local-tcp-port-opened
  is-process-older-than-dependency-set
  zodbpack

[versions]
# See ../../software/neoppod/software-common.cfg for versions common with NEO:
#  neoppod, mysqlclient, slapos.recipe.template & [slapos-deps-eggs]

# patched eggs
Acquisition = 2.13.9+SlapOSPatched001
Products.DCWorkflow = 2.2.4+SlapOSPatched001
pysvn = 1.7.10+SlapOSPatched002
python-ldap = 2.4.28+SlapOSPatched001
python-magic = 0.4.12+SlapOSPatched001

# specify dev version to be sure that an old released version is not used
cloudooo = 1.2.5-dev

# use newer version than specified in ZTK
PasteDeploy = 1.5.2
Pygments = 2.1.3
argparse = 1.4.0
coverage = 4.3.1
zope.dottedname = 4.1.0

# test_UserManagerInterfaces in testERP5Security fails with 1.10.0.
Products.PluggableAuthService = 1.9.0

# we are still using this old stable version.
rdiff-backup = 1.0.5

# use newest version of slapos.cookbook
slapos.cookbook =

# modified version that works fine for buildout installation
SOAPpy = 0.12.0nxd001

# CMF 2.3 is not yet supported.
Products.CMFCalendar = 2.2.3
Products.CMFCore = 2.2.10
Products.CMFDefault = 2.2.4
Products.CMFTopic = 2.2.1
Products.CMFUid = 2.2.1

# newer version requires zope.traversing>=4.0.0a2.
zope.app.appsetup = 3.16.0

# newer version requires zope.i18n>=4.0.0a3
zope.app.publication = 3.14.0

# newer version requires zope.testbrowser>=4
zope.app.testing = 3.8.1

# Pinned versions
Pillow = 4.0.0
Products.CMFActionIcons = 2.1.3
Products.DCWorkflowGraph = 0.4.1
# Products.ExternalEditor 2.0.0's dtml is not based on Zope2 OFS's one.
Products.ExternalEditor = 1.1.1
Products.GenericSetup = 1.8.6
Products.LongRequestLogger = 2.0.0
# Products.MimetypesRegistry 2.1 requires AccessControl>=3.0.0Acquisition.
Products.MimetypesRegistry = 2.0.10
Products.PloneHotfix20160830 = 1.3
Products.PluginRegistry = 1.4
Products.TIDStorage = 5.4.9
PyPDF2 = 1.26.0
PyStemmer = 1.3.0
PyXML = 0.8.5
Pympler = 0.4.3
StructuredText = 2.11.1
WSGIUtils = 0.7
# ZEO 5 requires transaction >= 2
ZEO = 4.3.1
ZODB3 = 3.11.0
Zope2 = 2.13.24
astor = 0.5
# astroid 1.4.1 breaks testDynamicClassGeneration
astroid = 1.3.8
backports-abc = 0.5
backports.shutil-get-terminal-size = 1.0.0
chardet = 2.3.0
csp-eventlet = 0.7.0
erp5diff = 0.8.1.7
eventlet = 0.20.1
five.formlib = 1.0.4
five.localsitemanager = 2.0.5
greenlet = 0.4.11
http-parser = 0.8.3
httplib2 = 0.9.2
huBarcode = 1.0.0
interval = 1.0.0
ipdb = 0.10.1
ipykernel = 4.5.2
ipython = 5.1.0
ipython-genutils = 0.1.0
ipywidgets = 5.2.2
logilab-common = 1.3.0
matplotlib = 1.5.3
mistune = 0.7.3
notebook = 4.3.1
numpy = 1.11.3
objgraph = 3.1.0
pandas = 0.19.2
ply = 3.9
polib = 1.0.8
pprofile = 1.10.0
prompt-toolkit = 1.0.9
ptyprocess = 0.5.1
pycountry = 17.1.8
pyflakes = 1.3.0
# pylint 1.5.1 breaks testDynamicClassGeneration
pylint = 1.4.4
python-memcached = 1.58
pytracemalloc = 1.2
pyzmq = 16.0.2
qrcode = 5.3
restkit = 4.2.2
rtjp-eventlet = 0.3.2
scikit-learn = 0.18.1
scipy = 0.18.1
simplegeneric = 0.8.1
socketpool = 0.5.3
spyne = 2.12.14
suds = 0.4
terminado = 0.6
threadframe = 0.2
timerserver = 2.0.2
tornado = 4.4.2
traitlets = 4.3.1
urlnorm = 1.1.4
uuid = 1.30
validictory = 1.1.0
widgetsnbextension = 1.2.6
xfw = 0.10
xupdate-processor = 0.4

# Required by:
# Products.CMFCore==2.2.10
Products.ZSQLMethods = 2.13.5

# Required by:
# tornado==4.4.2
backports.ssl-match-hostname = 3.5.0.1

# Required by:
# tornado==4.4.2
certifi = 2016.9.26

# Required by:
# matplotlib==1.5.3
cycler = 0.10.0

# Required by:
# ipython==5.1.0
# traitlets==4.3.1
decorator = 4.0.10

# Required by:
# SOAPpy===0.12.0nxd001
fpconst = 0.7.2

# Required by:
# objgraph==3.1.0
graphviz = 0.5.2

# Required by:
# notebook==4.3.1
# nbconvert 4.2.0 depends on entrypoints egg that is not available as tar/zip source.
nbconvert = 4.1.0

# Required by:
# nbconvert==4.1.0
# notebook==4.3.1
nbformat = 4.2.0

# Required by:
# Pillow==4.0.0
olefile = 0.44

# Required by:
# ipython==5.1.0
pathlib2 = 2.1.0

# Required by:
# ipython==5.1.0
pexpect = 4.2.1

# Required by:
# ipython==5.1.0
pickleshare = 0.7.4

# Required by:
# matplotlib==1.5.3
# pandas==0.19.2
python-dateutil = 2.6.0

# Required by:
# tornado==4.4.2
singledispatch = 3.4.0.3

# Required by:
# prompt-toolkit==1.0.9
wcwidth = 0.1.7

# Required by:
# zope.app.testing==3.8.1
zope.app.debug = 3.4.1

# Required by:
# zope.app.testing==3.8.1
zope.app.dependable = 3.5.1

# Required by:
# Products.CMFCalendar==2.2.3
# five.formlib==1.0.4
zope.app.form = 4.0.2
