{ "info": { "author": "nteract contributors", "author_email": "nteract@googlegroups.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "# depository\n\nThis repository provides tooling and workflow recommendations for storing, scheduling, and publishing notebooks.\n\n## Automatic Notebook Versioning\n\nEvery save of a notebook creates an immutable copy of the notebook on object storage. \n\nTo ease implementation, we'll rely on S3 as the object store, using [versioned buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html).\n\n\n\n## Storage Paths\n\nAll notebooks are archived to a single versioned S3 bucket with specific prefixes denoting the lifecycle of the notebook:\n\n* `/workspace` - where users edit\n* `/scheduled` - notebooks currently scheduled\n* `/published` - public notebooks (to an organization)\n\nEach notebook path is a namespace that an external service ties into the schedule. We archive off versions, keeping the path intact (until a user changes them). \n\n| Prefix | Intent | \n|---|---|\n| `/workspace/kylek/notebooks/mine.ipynb` | Notebook in \u201cdraft\u201d | \n| `/scheduled/kylek/notebooks/mine.ipynb` | Current scheduled copy | \n| `/published/kylek/notebooks/mine.ipynb` | Current published copy | \n\n\n## Transitioning to this Storage Plan\n\nSince most people are on a regular filesystem, we'll start with writing to the `/workspace` prefix as Archival Storage (writing on save using a `post_save_hook` for a Jupyter contents manager).\n\n## Configuration\n\n```python\nfrom depository import depositoryContentsArchiver\n\n# jupyter config\n# At ~/.jupyter/jupyter_notebook_config.py for user installs\n# At __ for system installs\nc = get_config()\n\nc.NotebookApp.contents_manager_class = depositoryContentsArchiver\n\nc.depository.workspace_prefix = \"/workspace/kylek/notebooks\"\nc.depository.published_prefix = \"/published/kylek/notebooks\" \nc.depository.scheduled_prefix = \"/scheduled/kylek/notebooks\" \n\n# Optional, in case you're using a different contents manager\n# This defaults to notebook.services.contents.manager.ContentsManager\n# c.depository.Archiver.underlying_contents_manager_class = ADifferentContentsManager\n\nc.depository.Backend = \"s3\"\nc.depository.S3.bucket = \"\"\n\n# Note: if depository is used from an EC2 instance with the right IAM role, you don't\n# have to specify these\nc.depository.S3.access_key_id = \nc.depository.S3.secret_access_key = \n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nteract/depository", "keywords": "jupyter storage nteract notebook", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "depository", "package_url": "https://pypi.org/project/depository/", "platform": "", "project_url": "https://pypi.org/project/depository/", "project_urls": { "Documentation": "https://github.com/nteract/depository/#todo", "Funding": "https://nteract.io", "Homepage": "https://github.com/nteract/depository", "Source": "https://github.com/nteract/depository/", "Tracker": "https://github.com/nteract/depository/issues" }, "release_url": "https://pypi.org/project/depository/0.1/", "requires_dist": null, "requires_python": "", "summary": "Storage Workflows for Notebooks", "version": "0.1" }, "last_serial": 4383881, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3198c50d9995866cb8a52017fad7ba92", "sha256": "ee0c31744ad9690e59c3c13477756b2e29a9fccefe4b546f1da377d5a6a3e18b" }, "downloads": -1, "filename": "depository-0.1.tar.gz", "has_sig": false, "md5_digest": "3198c50d9995866cb8a52017fad7ba92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23533, "upload_time": "2018-10-16T20:44:28", "url": "https://files.pythonhosted.org/packages/33/8e/10509e75c9315e26ddd752cfbcd7096637883be25f407dd04ee4b653ee1b/depository-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3198c50d9995866cb8a52017fad7ba92", "sha256": "ee0c31744ad9690e59c3c13477756b2e29a9fccefe4b546f1da377d5a6a3e18b" }, "downloads": -1, "filename": "depository-0.1.tar.gz", "has_sig": false, "md5_digest": "3198c50d9995866cb8a52017fad7ba92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23533, "upload_time": "2018-10-16T20:44:28", "url": "https://files.pythonhosted.org/packages/33/8e/10509e75c9315e26ddd752cfbcd7096637883be25f407dd04ee4b653ee1b/depository-0.1.tar.gz" } ] }