{
"info": {
"author": "Jeff Knupp",
"author_email": "jeff@jeffknupp.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Software Development :: Libraries :: Application Frameworks",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "sandman2\n========\n\n|Build Status| |Coverage Status|\n\n`sandman2 documentation `__\n\n``sandman2`` automagically generates a RESTful API service from your\nexisting database, without requiring you to write a line of code. Simply\npoint ``sandman2`` to your database, add salt for seasoning, and voila!,\na fully RESTful API service with hypermedia support starts running,\nready to accept HTTP requests.\n\nThis is a big deal. It means every single database you interact with,\nfrom the SQLite database that houses your web browser\u2019s data up to your\nproduction PostgreSQL server can be endowed with a REST API and accessed\nprogramatically, using any number of HTTP client libraries available in\n*every* language. ``sandman2`` *frees your data*.\n\n**For developers:**\n\nImagine you\u2019re working for AnonymousCorp and need to access Group Y\u2019s\ndata, which is presented to you through some horrible API or GUI.\nWouldn\u2019t it be nice if you could just interact with that database\nthrough a REST API?\n\nMore than that, imagine if you could interact with the database through\na REST API **and no one had to write any code**. Not you. Not Group Y.\nNo one. That means no boilerplate ORM code, no database connection\nlogic. Nothing. ``sandman2`` can be run as a command-line tool\n(``sandman2ctl``) that just takes your database information as\nparameters and connects to it, introspects the schema, generates a\nRESTful API, and starts the server.\n\nWhat Happened to Sandman (1)?\n-----------------------------\n\n```sandman`` `__, the precursor\nto ``sandman2``, is no longer being maintained. ``sandman`` had almost\nidentical functionality but had an architecture that reflected the\ncapabilities of the underlying ORM, SQLAlchemy. As of the ``0.9``\nrelease, SQLAlchemy introduced the ``automap`` construct. This\nfundamentally changed the way that ``sandman`` *could* interact with the\nunderlying database in a way that greatly simplified things. All that\nwas needed was the actual effort to rewrite ``sandman`` from scratch\u2026\n\nAfter wrestling with the idea for a while, I finally gave in and started\nthe rewrite project. ``sandman2`` is that project. While I\u2019ll continue\nto support ``sandman`` in the nearterm, ``sandman2`` definitely\nrepresents the way forward.\n\n**NOTE**: ``sandman2`` is not yet at feature parity with the original\n``sandman``, but should be soon. Getting there is currently the top\npriority.\n\nQuickstart\n----------\n\nInstall ``sandman2`` using ``pip``: ``$ pip install sandman2``. This\nprovides the script ``sandman2ctl``, which just takes the database URI\nstring, described\n`here `__. For\nexample, to connect to a SQLite database in the same directory you\u2019re\nrunning the script, you would run:\n\n.. code:: bash\n\n $ sandman2ctl sqlite+pysqlite:///database_file_name\n\nTo connect to a PostgreSQL database, make sure you install a driver like\n``psycopg2`` using ``pip``, then use the following connection string:\n\n.. code:: bash\n\n $ sandman2ctl postgresql+psycopg2://scott:tiger@localhost/mydatabase\n\nAgain, see `the SQLAlchemy\ndocumentation `__\nfor a more comprehensive discussion of connection strings.\n\nSupported Databases\n-------------------\n\n``sandman2`` supports all databases that the underlying ORM, SQLAlchemy,\nsupports. Presently, that includes:\n\n- MySQL\n- PostgreSQL\n- Oracle\n- Microsoft SQL Server\n- SQLite\n- Sybase\n- Drizzle\n- Firebird\n\nThird-party packages extend support to:\n\n- IBM DB2\n- Amazon Redshift\n- SQL Anywhere\n- MonetDB\n\nAdmin Interface\n---------------\n\nOne of the best things about the original\n```sandman`` `__ was the *Admin\nInterface*. Not only does ``sandman2`` include the Admin Interface, but\nit modernizes it as well. The layout has been greatly improved,\nespecially when dealing with larger numbers of tables. All of the\noriginal functionality of the Admin Interface remains unchanged.\n\nHere\u2019s a shot of the new look:\n\n.. figure:: http://jeffknupp.com/images/admin-view.png\n :alt: admin interface awesomesauce screenshot\n\n admin interface awesomesauce screenshot\n\nCustomizing\n-----------\n\nIf ``sandman2ctl`` doesn\u2019t give you fine-grained enough control over\nyour REST endpoints, or you\u2019d like to restrict the set of tables made\navailable via ``sandman2ctl``, you can easily integrate ``sandman2``\ninto your application. See the\n`documentation `__ for more\ninfo.\n\nRunning ``sandman2`` under Docker\n---------------------------------\n\n``sandman2`` has an official docker image at `Docker\nHub `__. Simply\n``docker pull jeffknupp/sandman2`` to get the latest version. It\nsupports the most popular database engines, but not all that\n``sandman2`` currently natively supports. If you\u2019d like to see support\nfor your RDBMS, either add a pull request on this repo (if possible) or\ncreate a new issue with the details of your database\u2019s Python driver.\n\nExample\n^^^^^^^\n\nHere\u2019s how one would run ``sandman2`` to connect to a PostgreSQL\ndatabase running on one\u2019s host machine (i.e.\u00a0not a remote database,\nwhich is far simpler) under Docker **(on a Mac, explained below)**:\n\n1. ``$ docker pull jeffknupp/sandman2``\n2. ``$ docker run -d -e DB_TYPE=postgres -e DB_DRIVER=psycopg2 -e USERNAME=jknupp -e DB_HOST=host.docker.internal -e DATABASE=jknupp -e DB_PORT=5432 -p 9000:5000 sandman2``\n3. ``$ curl localhost:9000/meta`` or open a browser to\n ``http://localhost:9000/admin/``\n\n*Note, ``DB_HOST=host.docker.internal`` is only necessary for databases\nthat reside on the host system (and the value only works on macOS).* To\nconnect to a database on a remote machine, simply replace that value\nwith the machine\u2019s IP or hostname.\n\nParameters\n^^^^^^^^^^\n\nHere are the parameters available to specify your connection information\nand their meaning:\n\n- ``$DB_TYPE`` - The type of RDBMS to connect to (e.g.\u00a0``postgres`` or\n ``mysql``)\n- ``$DB_DRIVER`` - The name of the Python library to use as a driver\n (e.g.\u00a0``psycopg2`` or ``pymysql``)\n- ``$USERNAME`` - Database username\n- ``$PASSWORD`` - Database password\n- ``$DB_HOST`` - Database IP or hostname\n- ``$DB_PORT`` - Database port\n- ``$DATABASE`` - Name of database to connect to\n\nPass each value separately to the ``docker run`` command with\n``-e =``. Not all are required, but which ones are\nrequired differs based on your target RDBMS.\n\n.. |Build Status| image:: https://travis-ci.com/jeffknupp/sandman2.svg?branch=master\n :target: https://travis-ci.com/jeffknupp/sandman2\n.. |Coverage Status| image:: https://coveralls.io/repos/jeffknupp/sandman2/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/jeffknupp/sandman2?branch=master\n\n\n",
"description_content_type": "",
"docs_url": "https://pythonhosted.org/sandman2/",
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/jeffknupp/sandman2/",
"keywords": "",
"license": "Apache Software License",
"maintainer": "",
"maintainer_email": "",
"name": "sandman2",
"package_url": "https://pypi.org/project/sandman2/",
"platform": "any",
"project_url": "https://pypi.org/project/sandman2/",
"project_urls": {
"Homepage": "http://github.com/jeffknupp/sandman2/"
},
"release_url": "https://pypi.org/project/sandman2/1.2.2/",
"requires_dist": [
"Flask (>=1.0.3)",
"Flask-SQLAlchemy (==2.4.0)",
"SQLAlchemy (==1.3.3)",
"Flask-Admin (>=1.5.3)",
"Flask-HTTPAuth (>=3.2.4)"
],
"requires_python": "",
"summary": "Automated REST APIs for legacy (existing) databases",
"version": "1.2.2"
},
"last_serial": 5594286,
"releases": {
"0.0.2": [],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "41a38a0af9c7b1389c98f20444562b76",
"sha256": "b187237c15faab685afdf6dbf151059199ab8ffd110385c4087b375e42e3c7a6"
},
"downloads": -1,
"filename": "sandman2-0.0.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "41a38a0af9c7b1389c98f20444562b76",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 13730,
"upload_time": "2014-10-24T17:49:13",
"url": "https://files.pythonhosted.org/packages/7d/6b/1326d537bfa5ad76bd1926d8d0ede66ce947246a069259671a30a9fafdcb/sandman2-0.0.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cf043550e6763fac281ac3699c5df52d",
"sha256": "98264eb140a3e684f8a97b4f629160d7f360c57cd75653a98f6114106a8b7b06"
},
"downloads": -1,
"filename": "sandman2-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "cf043550e6763fac281ac3699c5df52d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11509,
"upload_time": "2014-10-24T17:49:11",
"url": "https://files.pythonhosted.org/packages/5d/a6/0f3f38cb4e0017f7c0598290233533ad6b87f10e6c087200e718ae07896d/sandman2-0.0.3.tar.gz"
}
],
"0.0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "bebc8f3cb5967be7516f514749d0f842",
"sha256": "a9708fe69d0d89a532e26b7a53ed36831d3de8877ec34779394a420fb14f6c9b"
},
"downloads": -1,
"filename": "sandman2-0.0.3.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "bebc8f3cb5967be7516f514749d0f842",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 14425,
"upload_time": "2014-10-28T16:01:21",
"url": "https://files.pythonhosted.org/packages/de/20/c4a36c585b4da944c26d27cee306f414d5d26a3c390df71f47daf0eb7541/sandman2-0.0.3.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d558df65cf76a951a17204a8481909b8",
"sha256": "19481bc2026e64fd7d495285436b408cb84fd85eb03320c9324325a1cc0a8791"
},
"downloads": -1,
"filename": "sandman2-0.0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "d558df65cf76a951a17204a8481909b8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12198,
"upload_time": "2014-10-28T16:01:18",
"url": "https://files.pythonhosted.org/packages/70/00/1416b70947160c71845d6557aaaca759fa9f35f177303475999ae86dfab6/sandman2-0.0.3.1.tar.gz"
}
],
"0.0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "d47096423cb37974a940e3049072c3a1",
"sha256": "4793d892ff00c7cad82ccefd94c2ea997f4ad766dc8c33e7140a31d499ff19da"
},
"downloads": -1,
"filename": "sandman2-0.0.3.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "d47096423cb37974a940e3049072c3a1",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 14512,
"upload_time": "2014-10-28T16:03:08",
"url": "https://files.pythonhosted.org/packages/bf/e2/6b5025b875aee48f53ae4353bf49a1c6bb597fa35b0becfb28638ee5f924/sandman2-0.0.3.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0aaf9eb48dc7a4a2f1880e6c37b44c68",
"sha256": "923178ca50cace8bbf107ac2f0ea43e438bdc33ea09788c97bda45e785bf2a62"
},
"downloads": -1,
"filename": "sandman2-0.0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "0aaf9eb48dc7a4a2f1880e6c37b44c68",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12276,
"upload_time": "2014-10-28T16:03:06",
"url": "https://files.pythonhosted.org/packages/6c/87/58cdcbea34a8418051e442ef57eee22045dd320b728703111b211654ae86/sandman2-0.0.3.2.tar.gz"
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "d09b0df28af85e32b6b5f2196a96fc5c",
"sha256": "dbe0971fd8f69fcb9059dafaf7e618f6e35558f121e5842266375a8469ed4695"
},
"downloads": -1,
"filename": "sandman2-0.0.4-py2-none-any.whl",
"has_sig": false,
"md5_digest": "d09b0df28af85e32b6b5f2196a96fc5c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 15550,
"upload_time": "2014-10-29T15:54:32",
"url": "https://files.pythonhosted.org/packages/10/a1/6a148b94cbee322bdd80cffe74ad01637342124c62e752edfa37515d0574/sandman2-0.0.4-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6d1f3061ab5cbeda3252d5e8239e3ece",
"sha256": "37ea5da2302f0b979ce2f9dc62e0988a87a654c4890dc088b6c07c7c4e8a5098"
},
"downloads": -1,
"filename": "sandman2-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "6d1f3061ab5cbeda3252d5e8239e3ece",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13143,
"upload_time": "2014-10-29T15:54:29",
"url": "https://files.pythonhosted.org/packages/b8/40/dd204a8d4a82752c9420ed7f7d31d2932cdbab00481e590bcaf153710772/sandman2-0.0.4.tar.gz"
}
],
"0.0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "9acca8a07b37e03bf36f6b60bf2c6e87",
"sha256": "e35b0bc60f441f678246b44a3a16225706f6ac541a45822532fc6ee3d6a00c97"
},
"downloads": -1,
"filename": "sandman2-0.0.4.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "9acca8a07b37e03bf36f6b60bf2c6e87",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 15587,
"upload_time": "2014-10-29T15:58:59",
"url": "https://files.pythonhosted.org/packages/78/ab/f81a9c126f5dc38237db4fb0aef3ec9d78441beb5f5d3cc4b6cbac9433f5/sandman2-0.0.4.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f999582e44f0cb0f8386d72e3fa76462",
"sha256": "6536e6d6dd0a9058381bff397fc0a277fa19f01d1cd7ff935e39b1cd8288cffa"
},
"downloads": -1,
"filename": "sandman2-0.0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "f999582e44f0cb0f8386d72e3fa76462",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13143,
"upload_time": "2014-10-29T15:58:56",
"url": "https://files.pythonhosted.org/packages/2f/18/768ee483d3c9293a795e0c01fe78d4f68d555c5183e676f551e42e707e31/sandman2-0.0.4.1.tar.gz"
}
],
"0.0.6": [
{
"comment_text": "",
"digests": {
"md5": "4e471e2c8cc420cf7a3460146d1837ab",
"sha256": "6e14e36393cce753090a1525ca8d6c39a0a4a1e0c1e3bd22546369d4175d1f65"
},
"downloads": -1,
"filename": "sandman2-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "4e471e2c8cc420cf7a3460146d1837ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13986,
"upload_time": "2015-09-17T00:04:51",
"url": "https://files.pythonhosted.org/packages/76/04/e14a9e40af83ea7516e1d177235063735599ef0f2074dd809e5078a54940/sandman2-0.0.6.tar.gz"
}
],
"0.0.7": [
{
"comment_text": "",
"digests": {
"md5": "28fa9b41cffe86912cb8336f567dd27b",
"sha256": "70bd3bdb0a57984c60b953075da656b4fc15a5b3f39dfc13aef09380da84d04f"
},
"downloads": -1,
"filename": "sandman2-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "28fa9b41cffe86912cb8336f567dd27b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 412330,
"upload_time": "2016-01-22T17:11:00",
"url": "https://files.pythonhosted.org/packages/8e/14/c55f87d786b3156709deb23df5ec6031e88dfc6e39e8b0b09bc1693d9e38/sandman2-0.0.7.tar.gz"
}
],
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "961eace58933c011c7956a83127f8cab",
"sha256": "0bc744871db82b93f84a7f0b94d2896fb3ed648835ebdf4dea57ec9dc741556e"
},
"downloads": -1,
"filename": "sandman2-0.1.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "961eace58933c011c7956a83127f8cab",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19468,
"upload_time": "2016-08-03T19:26:53",
"url": "https://files.pythonhosted.org/packages/8b/1e/3bfc2469c64fd4d07971740352d9ff883611333d6208c8a83d2a4ec6d705/sandman2-0.1.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d41671474e948d9793bd4c3b6eb2214e",
"sha256": "1f6af5ecc550099020da316bf276f5cd0f383f34d460ab5aaa3e62b4502a3075"
},
"downloads": -1,
"filename": "sandman2-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "d41671474e948d9793bd4c3b6eb2214e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 749457,
"upload_time": "2016-08-03T19:26:50",
"url": "https://files.pythonhosted.org/packages/d4/b2/e7eda7e57eece58dc0627035397cc43260b73d83e97e0f5bf7e725130a76/sandman2-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "813015224558f1d6bebcca32e90f0e75",
"sha256": "285ecc1f10596ba0d35d17479aecd129d46437c76f6a5013104d798cb00d00dd"
},
"downloads": -1,
"filename": "sandman2-0.1.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "813015224558f1d6bebcca32e90f0e75",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 18958,
"upload_time": "2016-08-30T01:09:48",
"url": "https://files.pythonhosted.org/packages/f9/04/7c78c570c0a793f2daa931a1f7b03a80010f1267e0a89102c7ad404e5048/sandman2-0.1.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d7fa245adc78e9d65498ceb9f64bc818",
"sha256": "eec81b716b4f076434877f60e99773393821ac892297e4206b3a53467d858d3f"
},
"downloads": -1,
"filename": "sandman2-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "d7fa245adc78e9d65498ceb9f64bc818",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14496,
"upload_time": "2016-08-30T01:09:50",
"url": "https://files.pythonhosted.org/packages/f2/b7/a99212442f4fba49410902ccf4007b129040c55b77690d3fd41ab5ef8c47/sandman2-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "ac9692a91549dbeaec930fe00d906f28",
"sha256": "f53ae021d96a0e4a021875141d87d5f99a68f55a0a3637e9287c3f00bca3a65f"
},
"downloads": -1,
"filename": "sandman2-0.1.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "ac9692a91549dbeaec930fe00d906f28",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 18993,
"upload_time": "2016-08-30T01:19:36",
"url": "https://files.pythonhosted.org/packages/d8/39/6e61a01bbcf73f1c081ca64d7f002ee4b54b5aeece91727b85b5f247232a/sandman2-0.1.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7fd401d2b56a1d2f7898b8f8a9b9c863",
"sha256": "9a32c0ea803219e09e77a316adb2727728b9e2436c90e47c42120d73d5ab8ac3"
},
"downloads": -1,
"filename": "sandman2-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "7fd401d2b56a1d2f7898b8f8a9b9c863",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14529,
"upload_time": "2016-08-30T01:19:39",
"url": "https://files.pythonhosted.org/packages/50/6c/a32765527efbc0af5e99b6e8dc02a47d6ab5391a8618b5d94f48cdb703f4/sandman2-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "27fdb6ee4418f7bd3af127bd09097f2d",
"sha256": "c1a321e76a569edc573c4bae6738b9f436d2d885439c01e6f2b835e52abce430"
},
"downloads": -1,
"filename": "sandman2-0.1.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "27fdb6ee4418f7bd3af127bd09097f2d",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19209,
"upload_time": "2016-08-30T01:28:49",
"url": "https://files.pythonhosted.org/packages/39/d7/8481dfcec93c853280134ac63a08ce66e43db02e3d98297f41d0ac9e4047/sandman2-0.1.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a9719abca2f09b46447213f77660ad03",
"sha256": "ec399d2f12085b77ef65ad10ca7633ad5a0cd158092110a714a41b7d4bf1a043"
},
"downloads": -1,
"filename": "sandman2-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "a9719abca2f09b46447213f77660ad03",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14756,
"upload_time": "2016-08-30T01:28:50",
"url": "https://files.pythonhosted.org/packages/f7/cb/d58f4172bdeaa935041318dc6e7ae2dbf9bf09344182ef3b7dd450a5dc0d/sandman2-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "b76561882abc70bb9a14718ea820a573",
"sha256": "868d6ee1b123faa86df5e0787c0f22f1b27acf53d1d8d5f06d408965fa00e720"
},
"downloads": -1,
"filename": "sandman2-0.1.4-py2-none-any.whl",
"has_sig": false,
"md5_digest": "b76561882abc70bb9a14718ea820a573",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19193,
"upload_time": "2016-08-30T01:33:40",
"url": "https://files.pythonhosted.org/packages/64/d9/62ebcf989b1d4308b8a414f4cb53fb5dd9d28ddd757036fb8aab7a1f769d/sandman2-0.1.4-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6bb84e4c2b985edf7d14bba2667280d5",
"sha256": "04c872ee0ab3ba40f11999423d62460313db6778a072f90b5b500071baf0df12"
},
"downloads": -1,
"filename": "sandman2-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "6bb84e4c2b985edf7d14bba2667280d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14586,
"upload_time": "2016-08-30T01:33:42",
"url": "https://files.pythonhosted.org/packages/09/e2/5e5318ebadfdb038080c063dd37aac7486917c7db2150651de189c0364ce/sandman2-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "684d36863db5e87474267fec6267adad",
"sha256": "c48d3617dae2f2b9ea7d933ca022043db35a6538ec70a9ca570cb3e9eade8b92"
},
"downloads": -1,
"filename": "sandman2-0.1.5-py2-none-any.whl",
"has_sig": false,
"md5_digest": "684d36863db5e87474267fec6267adad",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19194,
"upload_time": "2016-08-30T02:04:37",
"url": "https://files.pythonhosted.org/packages/43/93/64b7a8f0c0f4f7e1e1b473d0600470c2b8a3428712e8e3bf5e37afd31448/sandman2-0.1.5-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "68d56d871a1b47b064dbbcd92433501d",
"sha256": "24afbdc55bd23d927996bba3abae4b3ba0a2f39e5d185c4a9761d6a522cb89c7"
},
"downloads": -1,
"filename": "sandman2-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "68d56d871a1b47b064dbbcd92433501d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14588,
"upload_time": "2016-08-30T02:04:40",
"url": "https://files.pythonhosted.org/packages/80/96/9b3c63966952546ca8f754d22cf2984516318dd9a1bed6890f4c353d7eb6/sandman2-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "1e492e05a2aba630d6c4b281db563e27",
"sha256": "f989825132d8ff2d1cbda1e57a6ec1ca56beb85c65bcf3e8041ccc9e085ba9a9"
},
"downloads": -1,
"filename": "sandman2-0.1.6-py2-none-any.whl",
"has_sig": false,
"md5_digest": "1e492e05a2aba630d6c4b281db563e27",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19180,
"upload_time": "2016-08-30T02:07:21",
"url": "https://files.pythonhosted.org/packages/40/d2/2017d44082ae15a817aeaf613f465de011d51ac97966e68e86ce53ae5869/sandman2-0.1.6-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "77fc0b2f4af6dabfc2404022e4001f0a",
"sha256": "2f28b5ae4c5a2a8c8c678f0367cc5ba6dede685f2701d689c9e258475f14bdb3"
},
"downloads": -1,
"filename": "sandman2-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "77fc0b2f4af6dabfc2404022e4001f0a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14581,
"upload_time": "2016-08-30T02:07:24",
"url": "https://files.pythonhosted.org/packages/29/f4/79c4e3fa2a411e6201915d33f4e3d6b46f8b09d9c7ebbbbb730b0e6d9417/sandman2-0.1.6.tar.gz"
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "234b12ebc627e6db2b606c0b3362d2f1",
"sha256": "dac2c3fc72097770109ef32ea17f1a424c3effcba806413524a870c19ff3eda9"
},
"downloads": -1,
"filename": "sandman2-0.1.7-py2-none-any.whl",
"has_sig": false,
"md5_digest": "234b12ebc627e6db2b606c0b3362d2f1",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19748,
"upload_time": "2016-08-31T17:53:23",
"url": "https://files.pythonhosted.org/packages/9e/74/f34274c8dbb846de2baf7cae757211e6ef0050a7f08bcda7e578713abf01/sandman2-0.1.7-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "802bf298223ae9a4801e008089a18c6d",
"sha256": "26636311c7af5412d583f731cd70de206b680081a3106cc190278f358f6025e9"
},
"downloads": -1,
"filename": "sandman2-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "802bf298223ae9a4801e008089a18c6d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 749718,
"upload_time": "2016-08-31T17:53:25",
"url": "https://files.pythonhosted.org/packages/1a/2f/185a1132175576386f0ac8c1d3ff890c3001497f8d71c73b6bfd62a59ef1/sandman2-0.1.7.tar.gz"
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "96ebe95773e5a8440fe3b97c4cb7ac8a",
"sha256": "874fcd3f1b80a401eb464d3c3438362f1b44f10ca446fba63e14690db6e7948c"
},
"downloads": -1,
"filename": "sandman2-1.0.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "96ebe95773e5a8440fe3b97c4cb7ac8a",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19565,
"upload_time": "2016-09-12T18:31:35",
"url": "https://files.pythonhosted.org/packages/28/d6/a62224562bf8c6e1d2d5fba88e43ae5e2c080f98b3d9adb66f04f8e13bd3/sandman2-1.0.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "209733f72b81e5ba25d1c3d9caae6dcb",
"sha256": "8dce6dbaaf3905033a574a9d993c1973fd3aae35f36e327add9b3b819352f1d3"
},
"downloads": -1,
"filename": "sandman2-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "209733f72b81e5ba25d1c3d9caae6dcb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14757,
"upload_time": "2016-09-12T18:31:37",
"url": "https://files.pythonhosted.org/packages/ba/1a/87d225ab0c22155a9dd31e596a5e631a5f8661e56c6544805df1aa7d650b/sandman2-1.0.1.tar.gz"
}
],
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "3d86898a58126b861c508f2bbbb265f9",
"sha256": "52243c0555d9b362bebfbcdd4951bc689fa1451af0d3325ee2c0fdfe4ed3f5ab"
},
"downloads": -1,
"filename": "sandman2-1.0.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "3d86898a58126b861c508f2bbbb265f9",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19429,
"upload_time": "2016-09-13T12:36:21",
"url": "https://files.pythonhosted.org/packages/05/9a/dd12b9e0f8cbba03141554dd519b3b10b308979af465f4d5559d7a1d96a8/sandman2-1.0.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f67c5f0dc46546db5812340b04c84aab",
"sha256": "ce78ae863f4bc02ae84a5ea813c0ed9a000d837235c23cb7b200c6cc739de193"
},
"downloads": -1,
"filename": "sandman2-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "f67c5f0dc46546db5812340b04c84aab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14647,
"upload_time": "2016-09-13T12:36:23",
"url": "https://files.pythonhosted.org/packages/60/3c/8fff2a9f66d79af2983a8d4e8f7ab4f40a1e5f8e5fee0c8bf7c034ce6a42/sandman2-1.0.2.tar.gz"
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "941600a9437d839afe7258865a4229fe",
"sha256": "0648a9d12fc0783d59ef6319c012534b8cb284bca817b3603ace8cf141823c98"
},
"downloads": -1,
"filename": "sandman2-1.0.3-py2-none-any.whl",
"has_sig": false,
"md5_digest": "941600a9437d839afe7258865a4229fe",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19429,
"upload_time": "2016-09-18T23:56:08",
"url": "https://files.pythonhosted.org/packages/44/dc/2c479aedd822609aed032fc533252d514ad7e37ff9064c8f2582ab397891/sandman2-1.0.3-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "39a8d286a964f0b0b219681778ea0ebf",
"sha256": "d5a85ed5bfa12150a47d9e2b6596dc849072b157162f04224497006fd0fec662"
},
"downloads": -1,
"filename": "sandman2-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "39a8d286a964f0b0b219681778ea0ebf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14028,
"upload_time": "2016-09-18T23:56:10",
"url": "https://files.pythonhosted.org/packages/55/5b/b23b9ff22577205b5171bf94dbc6230fd5111b6d131f60c386e1f422d8b6/sandman2-1.0.3.tar.gz"
}
],
"1.0.4": [
{
"comment_text": "",
"digests": {
"md5": "b0cd48570257ec3e1ea1ca33c8aba2ee",
"sha256": "45375add8a93b73fa383cc1b215f01b34ab42cbcd13f6b5a6fbad2bb3273e297"
},
"downloads": -1,
"filename": "sandman2-1.0.4-py2-none-any.whl",
"has_sig": false,
"md5_digest": "b0cd48570257ec3e1ea1ca33c8aba2ee",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 20422,
"upload_time": "2016-09-20T19:34:02",
"url": "https://files.pythonhosted.org/packages/de/5d/c49e0eee0cbadd53832f3807adb199d6c514065c88e52b31125597523988/sandman2-1.0.4-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2b1b7fd0f4a1cfd6738f39f17c982a55",
"sha256": "05f733cd8e7c02a3dbc4910885158a134e80debe8869f7fbb8d0938e1ff8ef1c"
},
"downloads": -1,
"filename": "sandman2-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "2b1b7fd0f4a1cfd6738f39f17c982a55",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14585,
"upload_time": "2016-09-20T19:34:05",
"url": "https://files.pythonhosted.org/packages/05/d3/78b9b1e6cef8282bfa66854d3f906a09be5559390b66a7be32c7c3d09892/sandman2-1.0.4.tar.gz"
}
],
"1.0.5": [
{
"comment_text": "",
"digests": {
"md5": "14a38d8edb11ccb7d994970caca5d851",
"sha256": "0ca24d2e113462901601d2238f45abf44b67db38803db01fe8b4789308802696"
},
"downloads": -1,
"filename": "sandman2-1.0.5-py2-none-any.whl",
"has_sig": false,
"md5_digest": "14a38d8edb11ccb7d994970caca5d851",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 19444,
"upload_time": "2016-11-14T08:57:17",
"url": "https://files.pythonhosted.org/packages/a8/fe/f497aea6780efa5e2345ecbb5112ed4a4267a057ea6b444715f85771eddc/sandman2-1.0.5-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "387cc0cc926fd87679c385f98fc53fc6",
"sha256": "12fd7db46db41142c7c65b5987e2c55ceb00d7af04f52ee319869419d628cc28"
},
"downloads": -1,
"filename": "sandman2-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "387cc0cc926fd87679c385f98fc53fc6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15465,
"upload_time": "2016-11-14T08:57:19",
"url": "https://files.pythonhosted.org/packages/15/cc/15835c9e445cb2cf0341d56c87f1b72aba70f510b3c7a90ff6026cf64be7/sandman2-1.0.5.tar.gz"
}
],
"1.0.6": [
{
"comment_text": "",
"digests": {
"md5": "9adc71c4bef35b399a8a17273d5e6033",
"sha256": "48367350074076cc02be089dcf04669fbca8348d8e9218ad26fcc45c8334e834"
},
"downloads": -1,
"filename": "sandman2-1.0.6-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "9adc71c4bef35b399a8a17273d5e6033",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 20957,
"upload_time": "2017-01-03T18:45:33",
"url": "https://files.pythonhosted.org/packages/3b/6f/bd3de76ac3c381de789f22de915ab3b4eb2624ae8e752fbf8ef607f0e6cc/sandman2-1.0.6-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e25a16306462c78acc738d882f382d03",
"sha256": "fe34664721b93a3bb95e85f6952dc77830c6832f4fb28d587215de3c71146636"
},
"downloads": -1,
"filename": "sandman2-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "e25a16306462c78acc738d882f382d03",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 751278,
"upload_time": "2017-01-03T18:45:36",
"url": "https://files.pythonhosted.org/packages/36/00/6a7b5c08a5ab9eeedaaff301b572be4f92b0e0d0d4a9a06a0e1fa3a99e7e/sandman2-1.0.6.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "b82cacd3362fd0d4b99125aa38b2e161",
"sha256": "1f0a4a254201f3ee380c2a434b61dfde9546a46c8c9d864722004cd53bf0752a"
},
"downloads": -1,
"filename": "sandman2-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b82cacd3362fd0d4b99125aa38b2e161",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15457,
"upload_time": "2018-11-30T15:41:12",
"url": "https://files.pythonhosted.org/packages/a9/e6/9ed4e278426a2e8e8629316375c7d3ad7d7bfd653e14fa36f45ebd728ce0/sandman2-1.1.0.tar.gz"
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "1d849e94541fca1619c22a389d648500",
"sha256": "c023639f51116e402d362e5a6fab427f7a35f4bd0476936d316ce8e7be0dd4bd"
},
"downloads": -1,
"filename": "sandman2-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "1d849e94541fca1619c22a389d648500",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15455,
"upload_time": "2018-11-30T15:47:49",
"url": "https://files.pythonhosted.org/packages/25/42/0b779d2da40df97c67f22663bdb3dd28f7b4c0df762c860e60d7c069403c/sandman2-1.1.1.tar.gz"
}
],
"1.1.2": [
{
"comment_text": "",
"digests": {
"md5": "4db7df06e9ae5210258bc69935730116",
"sha256": "3d10e3b210e81267e92da1d7052c4b67ada9a7e8b443f67a37699a890dc30470"
},
"downloads": -1,
"filename": "sandman2-1.1.2.tar.gz",
"has_sig": false,
"md5_digest": "4db7df06e9ae5210258bc69935730116",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17298,
"upload_time": "2018-11-30T15:58:27",
"url": "https://files.pythonhosted.org/packages/b4/ea/91ee888395634c6e8ea7373467339172bbda0a46175d57364e8de3ce4cd5/sandman2-1.1.2.tar.gz"
}
],
"1.2.0": [
{
"comment_text": "",
"digests": {
"md5": "cfadeda9168238b065fd211dd42f118c",
"sha256": "18dc9b663a3fa801a9e0d291648f11299fff2e9d84830a8a30b18fb5d9b96589"
},
"downloads": -1,
"filename": "sandman2-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "cfadeda9168238b065fd211dd42f118c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17613,
"upload_time": "2019-01-10T17:22:35",
"url": "https://files.pythonhosted.org/packages/34/43/65317a5a01c16d494a68b37bc21d9cbe17c3fd089b76835fdbda60f1973b/sandman2-1.2.0.tar.gz"
}
],
"1.2.1": [
{
"comment_text": "",
"digests": {
"md5": "cac87df3b8d60df642c69309efb1c1b6",
"sha256": "6eba58de817944e5268769eb68605c488a9e2a81bc1477e85df57980bc245529"
},
"downloads": -1,
"filename": "sandman2-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cac87df3b8d60df642c69309efb1c1b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 21037,
"upload_time": "2019-05-29T00:28:19",
"url": "https://files.pythonhosted.org/packages/30/fe/c26ea7b03804a5906b7b2246e07a7cf2a33f6f514e089812825342270d1c/sandman2-1.2.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "befa53e8f3b5a9e7911c541e282f7bd0",
"sha256": "dc1e5192609d00ceff548da11af088f0bbeaebff5fa758f39d4c90424bf28e49"
},
"downloads": -1,
"filename": "sandman2-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "befa53e8f3b5a9e7911c541e282f7bd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17314,
"upload_time": "2019-05-29T00:28:22",
"url": "https://files.pythonhosted.org/packages/83/c2/941269a56a1928fcb020cd430c51be77bbde739c1f76fe24cb4f87775f48/sandman2-1.2.1.tar.gz"
}
],
"1.2.2": [
{
"comment_text": "",
"digests": {
"md5": "d3349c3081183553f0b1700aa53e32c7",
"sha256": "09576d807ffe427d2e8986f8953329a8363435de6670a47b77d1fd9825a9707e"
},
"downloads": -1,
"filename": "sandman2-1.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d3349c3081183553f0b1700aa53e32c7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 21898,
"upload_time": "2019-07-27T23:31:47",
"url": "https://files.pythonhosted.org/packages/fb/6c/45415747b187fd7198fb93ce285a81feb98690f72b8c29b2b6c17d11cd1f/sandman2-1.2.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "20ef715bfc2bc16c357fa97eca37bc87",
"sha256": "b863bf0970795a79401db628d52e398a21ae9e2d2e819364a61a86cf32e88799"
},
"downloads": -1,
"filename": "sandman2-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "20ef715bfc2bc16c357fa97eca37bc87",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17295,
"upload_time": "2019-07-27T23:31:50",
"url": "https://files.pythonhosted.org/packages/89/eb/4e2a81802fb5ab4a86a1d20c92207f8cfc0ecf48c1d62d36aa45dc798abb/sandman2-1.2.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "d3349c3081183553f0b1700aa53e32c7",
"sha256": "09576d807ffe427d2e8986f8953329a8363435de6670a47b77d1fd9825a9707e"
},
"downloads": -1,
"filename": "sandman2-1.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d3349c3081183553f0b1700aa53e32c7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 21898,
"upload_time": "2019-07-27T23:31:47",
"url": "https://files.pythonhosted.org/packages/fb/6c/45415747b187fd7198fb93ce285a81feb98690f72b8c29b2b6c17d11cd1f/sandman2-1.2.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "20ef715bfc2bc16c357fa97eca37bc87",
"sha256": "b863bf0970795a79401db628d52e398a21ae9e2d2e819364a61a86cf32e88799"
},
"downloads": -1,
"filename": "sandman2-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "20ef715bfc2bc16c357fa97eca37bc87",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17295,
"upload_time": "2019-07-27T23:31:50",
"url": "https://files.pythonhosted.org/packages/89/eb/4e2a81802fb5ab4a86a1d20c92207f8cfc0ecf48c1d62d36aa45dc798abb/sandman2-1.2.2.tar.gz"
}
]
}