{ "info": { "author": "M\u00e5ns Magnusson", "author_email": "mans.magnusson@scilifelab.se", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\n# Mongo Adapter\n\n[![Build Status][travis-img]][travis-url]\n\nA python implementation of a mongo adapter.\n\nThe idea is to make a base class that handles the connection to a mongod instance.\nIt is nice to handle the connection in the same way for different python projects that involves a mongo database.\n\nThe Mongo Adapter takes a client as init argument and then we connect to a database with `setup(database)`, \nfortunately `mongo_adapter` can handle the client part as well.\n\n**Example:**\n\n```python\nfrom mongo_adapter import MongoAdapter, get_client\n\ndb_name = 'test'\nclient = get_client()\nadapter = MongoAdapter(client, db_name)\n\nassert adapter.db_name == db_name\n```\n\n## Testing\n\nThe package can be used for testing as well\n\n**Example:**\n\n```python\nfrom mongo_adapter import MongoAdapter, get_client\nimport mongomock\n\ndb_name = 'test'\nuri = \"mongomock://\"\nclient = get_client(uri=uri)\nadapter = MongoAdapter(client, db_name)\n\nassert isinsance(client, mongomock.MongoClient)\n```\n\n## installation\n\n**git:**\n\n```bash\ngit clone https://github.com/moonso/mongo_adapter\ncd mongo_adapter\npip install --editable .\n```\n\n**pip:**\n```bash\npip install mongo_adapter\n```\n\n\n## Intended usage\n\nThe intended usage is here illustrated with an example\n\n```python\nfrom mongo_adapter import MongoAdapter, get_client\n\nclass LibraryAdapter(MongoAdapter):\n def setup(self, db_name='library'):\n \"\"\"Overrides the basic setup method\"\"\"\n if self.client is None:\n raise SyntaxError(\"No client is available\")\n if self.db is None:\n self.db = self.client[db_name]\n self.db_name = db_name\n\n self.books_collection = self.db.book\n self.user_collection = self.db.book\n\n def add_book(self, title, author):\n \"\"\"Add a book to the books collection\"\"\"\n result = self.books_collection.insert_one(\n {\n 'title': title,\n 'author': author\n }\n )\n return result\n\nif __name__ == '__main__':\n client = get_client()\n adapter = LibraryAdapter(client, database='library')\n\n adapter.add_book('Moby Dick', 'Herman Melville')\n\n```\n\n## API\n\n### Client\n\n```python\n\ndef check_connection(client):\n \"\"\"Check if the mongod process is running\n\n Args:\n client(MongoClient)\n\n Returns:\n bool\n \"\"\"\n\ndef get_client(host='localhost', port=27017, username=None, password=None,\n uri=None, mongodb=None, timeout=20):\n \"\"\"Get a client to the mongo database\n\n Args:\n host(str): Host of database\n port(int): Port of database\n username(str)\n password(str)\n uri(str)\n timeout(int): How long should the client try to connect\n\n Returns:\n client(pymongo.MongoClient)\n\n \"\"\"\n\n```\n\n### Adapter\n\n```python\nclass MongoAdapter(object):\n \"\"\"Adapter for communicating with a mongo database\"\"\"\n def __init__(self, client=None, db_name=None):\n \"\"\"\n Args:\n client(MongoClient)\n db_name(str)\n \"\"\"\n self.client = client\n self.db = None\n self.db_name = None\n if (db_name and client):\n self.setup(database)\n\n def init_app(self, app):\n \"\"\"Setup via Flask\"\"\"\n host = app.config.get('MONGO_HOST', 'localhost')\n port = app.config.get('MONGO_PORT', 27017)\n self.db_name = app.config['MONGO_DBNAME']\n self.client = app.extensions['pymongo']['MONGO'][0]\n self.db = app.extensions['pymongo']['MONGO'][1]\n LOG.info(\"connecting to database: %s:%s/%s\", host, port, self.db_name)\n\t\tself.setup(self.db_name)\n\n def setup(self, db_name):\n \"\"\"Setup connection to a database\n\n Args:\n db_name(str)\n db(pymongo.Database)\n \"\"\"\n if self.client is None:\n raise SyntaxError(\"No client is available\")\n if self.db is None:\n self.db = self.client[db_name]\n self.db_name = db_name\n LOG.info(\"Use database %s\", self.db_name)\n\n```\n\n\n\n[travis-url]: https://travis-ci.org/moonso/mongo_adapter\n[travis-img]: https://img.shields.io/travis/moonso/mongo_adapter/master.svg?style=flat-square\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/moonso/mongo_adapter", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "mongo-adapter", "package_url": "https://pypi.org/project/mongo-adapter/", "platform": "", "project_url": "https://pypi.org/project/mongo-adapter/", "project_urls": { "Homepage": "https://github.com/moonso/mongo_adapter" }, "release_url": "https://pypi.org/project/mongo-adapter/0.3/", "requires_dist": [ "mongomock", "pymongo", "pytest" ], "requires_python": "", "summary": "A python interface to handle connection to a mongod instance", "version": "0.3" }, "last_serial": 4681725, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "c15cf405b6625a80a0581212467fa3e9", "sha256": "b87faeffd748288ec9a2a4cb22557334038fb8598cb471bfa67021e692a90702" }, "downloads": -1, "filename": "mongo_adapter-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c15cf405b6625a80a0581212467fa3e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7596, "upload_time": "2017-11-07T12:34:37", "url": "https://files.pythonhosted.org/packages/42/9b/37e1662a4b0b31ab04415d15b18687ed10e3800d4cf7f4b17eca46b1f0fd/mongo_adapter-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b76f6e595970ce23cdd26e93799f16a7", "sha256": "854744334539db82b68f6d6f80eefad0e96f0ba59c55ef31d6bc42161cad9bf9" }, "downloads": -1, "filename": "mongo_adapter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b76f6e595970ce23cdd26e93799f16a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5392, "upload_time": "2017-11-07T12:34:38", "url": "https://files.pythonhosted.org/packages/59/f4/8760bf03341d5dd67b2f5dd19940167fc6d917caace2c16018914aac5cfd/mongo_adapter-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "56e0c1d8f03f9fbe2aea0f72a09eb1b2", "sha256": "86e5c765d90258499d2f0e26c95a4a866b900aaf5b5dfae9a89678711f58499d" }, "downloads": -1, "filename": "mongo_adapter-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "56e0c1d8f03f9fbe2aea0f72a09eb1b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7818, "upload_time": "2017-11-08T12:13:28", "url": "https://files.pythonhosted.org/packages/b6/bd/6a4ba206b4f78bf3c19ccee72ac36b1013593d45317acb80e2d8ba2b49b8/mongo_adapter-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb2218a94a86a57608c0cb5412ce7178", "sha256": "9dd07624004ea4963b9fc1d3aeb080b246111d13c3e3f06aefa0c8d15354a142" }, "downloads": -1, "filename": "mongo_adapter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "cb2218a94a86a57608c0cb5412ce7178", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5503, "upload_time": "2017-11-08T12:13:29", "url": "https://files.pythonhosted.org/packages/87/49/a8f49d82fdb55f92fe2dfb7c08b0500c3c7942a5da4f9584df5805c7c038/mongo_adapter-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "e05643118e143ce86a732034375bfd56", "sha256": "1f81e1002170971b518cc4adc4190160f0c488bcb682b620e24ae1c5776810ac" }, "downloads": -1, "filename": "mongo_adapter-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e05643118e143ce86a732034375bfd56", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7801, "upload_time": "2017-11-08T13:10:19", "url": "https://files.pythonhosted.org/packages/7c/3e/52559f59b1d4cb35b5f429ab32edf5acaa9d5eeecdc0a3bcee2992ed8590/mongo_adapter-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef666e6544125d0967ac41e4538fd831", "sha256": "5ef2d66e96c98f36db3dbc654abbe1ee6be36ff7f94343ccfed9d122dadc8f42" }, "downloads": -1, "filename": "mongo_adapter-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ef666e6544125d0967ac41e4538fd831", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5509, "upload_time": "2017-11-08T13:10:20", "url": "https://files.pythonhosted.org/packages/75/49/406df98a7796086dbb0c3d43b34eb18e792fd7516abc08929678ceba735e/mongo_adapter-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8c0dfae6b70e0244aeeb8d7338651903", "sha256": "ebe64ea87fd0638ca9db555a17e05f140140fdc76a2517191f43dbc119e27188" }, "downloads": -1, "filename": "mongo_adapter-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8c0dfae6b70e0244aeeb8d7338651903", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8280, "upload_time": "2018-08-21T14:37:08", "url": "https://files.pythonhosted.org/packages/44/27/9381270da9a2dd4ae6e36ecfacbbc7ae95dea1dcb34442a22b1a54aa8137/mongo_adapter-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b2e2b4033579d685b1e944ebb624ab3", "sha256": "c642299eade8154ea211ece03164dc5fd400c915c4d75991d573cb953f65da3e" }, "downloads": -1, "filename": "mongo_adapter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7b2e2b4033579d685b1e944ebb624ab3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5929, "upload_time": "2018-08-21T14:37:10", "url": "https://files.pythonhosted.org/packages/a0/dc/77f64a47c1587aa4b9203d2daa77fceb352b4c24b50dfa38d4a893c8816e/mongo_adapter-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "318481df7ce445a0fafebab6a38c1b86", "sha256": "78b3d07f0852c626a126ba17801cf8ca24ad520c764df319f0db5c44f048e96e" }, "downloads": -1, "filename": "mongo_adapter-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "318481df7ce445a0fafebab6a38c1b86", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8241, "upload_time": "2018-08-29T10:51:12", "url": "https://files.pythonhosted.org/packages/67/ef/e8e475b30221391088a90d8dc9b8189b71c286fe45c356ec02e2f612dab8/mongo_adapter-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4fbb44b18eaf1d23b5c90bf4c57985d", "sha256": "75d2e88d33d49632f9dd7bc34cd12304a7b8082c71d981e02c7903517d4db8f8" }, "downloads": -1, "filename": "mongo_adapter-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b4fbb44b18eaf1d23b5c90bf4c57985d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5941, "upload_time": "2018-08-29T10:51:14", "url": "https://files.pythonhosted.org/packages/48/04/6a8b6389a2b235f4fa0ee4ce18cdfae3c4c3ad6cfd9f8872d42e13e5a786/mongo_adapter-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "a0344ff4408a9191e41ca77860420fc2", "sha256": "395f7af55e753417b9df50cc186cdd0a61e21fcf6ef7c4d50a8430a87eb22978" }, "downloads": -1, "filename": "mongo_adapter-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0344ff4408a9191e41ca77860420fc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8259, "upload_time": "2019-01-10T15:56:49", "url": "https://files.pythonhosted.org/packages/ae/d8/2dcc4db74cc3f4b771405541c878f8f1969b99e5e7930801452eb1ac1fdc/mongo_adapter-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7574f57f10045ae8ccaba09a9d70db2", "sha256": "f5e5d25e7f74c62b29dda3da197e6996513ad2f7b3ff6ce255fb8040684a80e5" }, "downloads": -1, "filename": "mongo_adapter-0.3.tar.gz", "has_sig": false, "md5_digest": "a7574f57f10045ae8ccaba09a9d70db2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5988, "upload_time": "2019-01-10T15:56:51", "url": "https://files.pythonhosted.org/packages/63/68/de718d8e8d3e7493a50c08365e90d7a4d06a5ed4d2ae7716ef0c95b7af96/mongo_adapter-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a0344ff4408a9191e41ca77860420fc2", "sha256": "395f7af55e753417b9df50cc186cdd0a61e21fcf6ef7c4d50a8430a87eb22978" }, "downloads": -1, "filename": "mongo_adapter-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0344ff4408a9191e41ca77860420fc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8259, "upload_time": "2019-01-10T15:56:49", "url": "https://files.pythonhosted.org/packages/ae/d8/2dcc4db74cc3f4b771405541c878f8f1969b99e5e7930801452eb1ac1fdc/mongo_adapter-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a7574f57f10045ae8ccaba09a9d70db2", "sha256": "f5e5d25e7f74c62b29dda3da197e6996513ad2f7b3ff6ce255fb8040684a80e5" }, "downloads": -1, "filename": "mongo_adapter-0.3.tar.gz", "has_sig": false, "md5_digest": "a7574f57f10045ae8ccaba09a9d70db2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5988, "upload_time": "2019-01-10T15:56:51", "url": "https://files.pythonhosted.org/packages/63/68/de718d8e8d3e7493a50c08365e90d7a4d06a5ed4d2ae7716ef0c95b7af96/mongo_adapter-0.3.tar.gz" } ] }