Metadata-Version: 2.1
Name: dcicsnovault
Version: 2.0.0b0
Summary: Storage support for 4DN Data Portals.
Home-page: https://github.com/4dn-dcic/snovault
License: MIT
Author: 4DN-DCIC Team
Author-email: support@4dnucleome.org
Requires-Python: >=3.4,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Pyramid
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Database :: Database Engines/Servers
Requires-Dist: MarkupSafe (==0.23)
Requires-Dist: PasteDeploy (==1.5.2)
Requires-Dist: Pillow (==3.3.0)
Requires-Dist: PyBrowserID (==0.11.0)
Requires-Dist: PyYAML (==3.12)
Requires-Dist: SPARQLWrapper (==1.7.6)
Requires-Dist: SQLAlchemy (==1.2.16)
Requires-Dist: WSGIProxy2 (==0.4.2)
Requires-Dist: WebOb (==1.8.5)
Requires-Dist: WebTest (==2.0.21)
Requires-Dist: aws-requests-auth (==0.4.1)
Requires-Dist: awscli (==1.15.42)
Requires-Dist: bcrypt (==3.1.0)
Requires-Dist: beautifulsoup4 (==4.4.1)
Requires-Dist: boto3 (==1.7.42)
Requires-Dist: botocore (==1.10.42)
Requires-Dist: certifi (==2018.11.29)
Requires-Dist: cffi (==1.7.0)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: colorama (==0.3.7)
Requires-Dist: coverage (==4.1)
Requires-Dist: cryptacular (==1.4.1)
Requires-Dist: dcicutils (==0.8.5)
Requires-Dist: docutils (==0.12)
Requires-Dist: elasticsearch (==5.5.3)
Requires-Dist: elasticsearch-dsl (==5.3.0)
Requires-Dist: flaky (==3.6.1)
Requires-Dist: future (==0.15.2)
Requires-Dist: futures (==3.1.1)
Requires-Dist: html5lib (==1.0b8)
Requires-Dist: humanfriendly (==1.44.7)
Requires-Dist: hupper (==1.5)
Requires-Dist: idna (==2.7)
Requires-Dist: isodate (==0.5.4)
Requires-Dist: jmespath (==0.9.0)
Requires-Dist: jsonschema-serialize-fork (==2.1.1)
Requires-Dist: keepalive (==0.5)
Requires-Dist: loremipsum (==1.0.5)
Requires-Dist: netaddr (==0.7.18)
Requires-Dist: passlib (==1.6.5)
Requires-Dist: pbkdf2 (==1.3)
Requires-Dist: plaster (==1.0)
Requires-Dist: plaster-pastedeploy (==0.6)
Requires-Dist: psutil (==4.3.0)
Requires-Dist: psycopg2 (==2.7.3)
Requires-Dist: py (==1.4.31)
Requires-Dist: pyasn1 (==0.1.9)
Requires-Dist: pycparser (==2.14)
Requires-Dist: pyparsing (==2.2.0)
Requires-Dist: pyramid (==1.10.4)
Requires-Dist: pyramid-localroles (==0.1)
Requires-Dist: pyramid-multiauth (==0.8.0)
Requires-Dist: pyramid-retry (==1.0)
Requires-Dist: pyramid-tm (==2.2.1)
Requires-Dist: pyramid-translogger (==0.1)
Requires-Dist: pytest (==2.9.1)
Requires-Dist: pytest-cov (==2.2.1)
Requires-Dist: pytest-exact-fixtures (==0.1)
Requires-Dist: pytest-instafail (==0.3.0)
Requires-Dist: pytest-mock (==0.11.0)
Requires-Dist: pytest-runner (==4.2)
Requires-Dist: pytest-timeout (==1.0.0)
Requires-Dist: python-dateutil (==2.5.3)
Requires-Dist: python-magic (==0.4.11)
Requires-Dist: pytz (==2016.4)
Requires-Dist: rdflib (==4.2.2)
Requires-Dist: rdflib-jsonld (==0.4.0)
Requires-Dist: requests (==2.20.0)
Requires-Dist: rfc3987 (==1.3.6)
Requires-Dist: rsa (==3.4.2)
Requires-Dist: rutter (==0.2)
Requires-Dist: s3transfer (==0.1.13)
Requires-Dist: setuptools (>=36.6.0,<37.0.0)
Requires-Dist: simplejson (==3.8.2)
Requires-Dist: six (==1.14.0)
Requires-Dist: strict-rfc3339 (==0.7)
Requires-Dist: structlog (==18.1.0)
Requires-Dist: subprocess-middleware (==0.3)
Requires-Dist: transaction (==2.4.0)
Requires-Dist: translationstring (==1.3)
Requires-Dist: urllib3 (==1.23)
Requires-Dist: venusian (==1.2.0)
Requires-Dist: waitress (==1.2.0)
Requires-Dist: xlrd (==1.0.0)
Requires-Dist: zope-deprecation (==4.4.0)
Requires-Dist: zope-interface (==4.6.0)
Requires-Dist: zope-sqlalchemy (==1.2)
Project-URL: Documentation, https://github.com/4dn-dcic/snovault
Project-URL: Repository, https://github.com/4dn-dcic/snovault
Description-Content-Type: text/x-rst

========
Snovault
========

|Build status|_

.. |Build status| image:: https://travis-ci.org/4dn-dcic/snovault.svg?branch=master
.. _Build status: https://travis-ci.org/4dn-dcic/snovault

Overview
========

Snovault is a JSON-LD Database Framework that serves as the backend for the 4DN Data portal and CGAP. Check out our full documentation `here
<https://snovault.readthedocs.io/en/latest/>`_.


Installation
============

Currently these are for Mac OSX using homebrew. If using linux, install dependencies with a different package manager.

Step 0: Install Xcode
---------------------

Install Xcode (from App Store) and homebrew: http://brew.sh

Step 1: Verify Homebrew Itself
------------------------------

Verify that homebrew is working properly::

    $ brew doctor

Step 2: Install Homebrewed Dependencies
---------------------------------------

Install or update dependencies::

    $ brew install libevent libmagic libxml2 libxslt openssl postgresql graphviz python3
    $ brew install freetype libjpeg libtiff littlecms webp  # Required by Pillow
    $ brew cask install adoptopenjdk8
    $ brew install elasticsearch@5.6

NOTES:

* If installation of adtopopenjdk8 fails due to an ambiguity, it should work to do this instead::

    $ brew cask install homebrew/cask-versions/adoptopenjdk8

* If you try to invoke elasticsearch and it is not found,
  you may need to link the brew-installed elasticsearch::

    $ brew link --force elasticsearch@5.6

* If you need to update dependencies::

    $ brew update
    $ rm -rf encoded/eggs

* If you need to upgrade brew-installed packages that don't have pinned versions,
  you can use the following. However, take care because there is no command to directly
  undo this effect::

    $ brew update
    $ brew upgrade
    $ rm -rf encoded/eggs

Step 3: Running Buildout
------------------------

Run buildout::

    $ python3 bootstrap.py --buildout-version 2.9.5 --setuptools-version 36.6.0
    $ bin/buildout


NOTES:

* If you have issues with postgres or the python interface to it (psycogpg2)
  you probably need to install postgresql via homebrew (as above)

* If you have issues with Pillow you may need to install new xcode command line tools.

  - First update Xcode from AppStore (reboot)::

      $ xcode-select --install

  - If you are running macOS Mojave (though this is fixed in Catalina), you may need to run this command as well::

      $ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

  - If you have trouble with zlib, especially in Catalina, it is probably because brew installed it
    in a different location. In that case, you'll want to do the following
    in place of the regular call to buildout::

      $ CFLAGS="-I$(brew --prefix zlib)/include" LDFLAGS="-L$(brew --prefix zlib)/lib" bin/buildout

* If you wish to completely rebuild the application, or have updated dependencies,
  before you go ahead, you'll probably want to do::

    $ make clean

  Then goto Step 3.

Running tests
=============

To run specific tests locally::

    $ bin/test -k test_name

To run with a debugger::

    $ bin/test --pdb

Specific tests to run locally for schema changes::

    $ bin/test -k test_load_workbook

Run the Pyramid tests with::

    $ bin/test


