{ "info": { "author": "Shay Palachy", "author_email": "shay.palachy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ipgdrive\n########\n|PyPI-Status| |PyPI-Versions| |LICENCE|\n\nA service that writes the public ip address of the host computer to a file on Google Drive.\n\n.. code-block:: python\n\n # after setting up ~/.config/ipgdrive/cfg.json\n # setup a cronjob to write the public ip address to \n # Google doc every 5 minutes\n ipgdrive setupjob -m 5\n\n.. contents::\n\n.. section-numbering::\n\n\nInstallation\n============\n\n.. code-block:: bash\n\n pip install ipgdrive\n\n\nSetup\n=====\n\nTo enable Google Drive access, follow the `instructions here `_ to create a service account with Google Drive access, and create a json key file for it.\n\nDon't forget to follow all the above instructions, including sharing your spreadsheet with an email you have in your ``json_key['client_email']`` (Otherwise you\u2019ll get a ``SpreadsheetNotFound`` or an ``APIError`` with ``\"PERMISSION_DENIED\"`` exception when trying to open it).\n\nPlace this file in the ``~/.config/ipgdrive/`` folder, and rename it to ``google_drive_service_account_key.json``.\n\nAdditionally, create a ``cfg.json`` file inside the ``~/.config/ipgdrive/`` folder, and populate it with the following values:\n\n.. code-block:: json\n\n {\n \"spreadsheet_name\": \"my_server_public_ip\",\n \"username\": \"momo\",\n \"freq_minutes\": 5\n }\n\nThe username is for the user running the process on the server, NOT the Google account username.\n\n\nUse\n===\n\n.. code-block:: python\n\n # after setting up ~/.config/ipgdrive/cfg.json\n # setup a cronjob to write the public ip address to \n # Google doc every 5 minutes\n ipgdrive setupjob -m 5\n\n\nContributing\n============\n\nPackage author and current maintainer is Shay Palachy (shay.palachy@gmail.com); You are more than welcome to approach him for help. Contributions are very welcomed.\n\nInstalling for development\n----------------------------\n\nClone:\n\n.. code-block:: bash\n\n git clone git@github.com:shaypal5/ipgdrive.git\n\n\nInstall in development mode, including test dependencies:\n\n.. code-block:: bash\n\n cd ipgdrive\n pip install -e '.[test]'\n\n\nRunning the tests\n-----------------\n\nTo run the tests use:\n\n.. code-block:: bash\n\n cd ipgdrive\n pytest\n\n\nAdding documentation\n--------------------\n\nThe project is documented using the `numpy docstring conventions`_, which were chosen as they are perhaps the most widely-spread conventions that are both supported by common tools such as Sphinx and result in human-readable docstrings. When documenting code you add to this project, follow `these conventions`_.\n\n.. _`numpy docstring conventions`: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt\n.. _`these conventions`: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt\n\nAdditionally, if you update this ``README.rst`` file, use ``python setup.py checkdocs`` to validate it compiles.\n\n\nCredits\n=======\n\nCreated by `Shay Palachy `_ (shay.palachy@gmail.com).\n\n\n.. |PyPI-Status| image:: https://img.shields.io/pypi/v/ipgdrive.svg\n :target: https://pypi.python.org/pypi/ipgdrive\n\n.. |PyPI-Versions| image:: https://img.shields.io/pypi/pyversions/ipgdrive.svg\n :target: https://pypi.python.org/pypi/ipgdrive\n\n.. |Build-Status| image:: https://travis-ci.org/shaypal5/ipgdrive.svg?branch=master\n :target: https://travis-ci.org/shaypal5/ipgdrive\n\n.. |LICENCE| image:: https://img.shields.io/badge/License-MIT-yellow.svg\n :target: https://github.com/shaypal5/ipgdrive/blob/master/LICENSE\n\n.. |Codecov| image:: https://codecov.io/github/shaypal5/ipgdrive/coverage.svg?branch=master\n :target: https://codecov.io/github/shaypal5/ipgdrive?branch=master\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/shaypal5/ipgdrive", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ipgdrive", "package_url": "https://pypi.org/project/ipgdrive/", "platform": "", "project_url": "https://pypi.org/project/ipgdrive/", "project_urls": { "Homepage": "https://github.com/shaypal5/ipgdrive" }, "release_url": "https://pypi.org/project/ipgdrive/0.0.12/", "requires_dist": [ "python-crontab", "requests", "birch", "gspread", "oauth2client", "click", "pytest ; extra == 'test'", "coverage ; extra == 'test'", "pytest-cov ; extra == 'test'", "pyyaml ; extra == 'test'", "collective.checkdocs ; extra == 'test'", "pygments ; extra == 'test'", "python-crontab ; extra == 'test'", "requests ; extra == 'test'", "birch ; extra == 'test'", "gspread ; extra == 'test'", "oauth2client ; extra == 'test'", "click ; extra == 'test'" ], "requires_python": ">=3.5", "summary": "Write host public ip to Google Drive.", "version": "0.0.12" }, "last_serial": 4575082, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "2b2c95ee4899bc0374db14a0317715af", "sha256": "1f8129359141c546d4ab6d2c640c905b124f2f63580bbd9049fea60320414c6f" }, "downloads": -1, "filename": "ipgdrive-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "2b2c95ee4899bc0374db14a0317715af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7059, "upload_time": "2018-12-07T15:13:42", "url": "https://files.pythonhosted.org/packages/0c/ab/2b2fb229987e42272724330a0c9562379bb4a76ad114265b8dfa4982b948/ipgdrive-0.0.10-py3-none-any.whl" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "8bbb3237c9550fb9c260317ad14deac6", "sha256": "2cf9afec59e1e7c042549c0be36a08f028e301b7f8f47ab3b71d52c7f1b8b4f9" }, "downloads": -1, "filename": "ipgdrive-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "8bbb3237c9550fb9c260317ad14deac6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7460, "upload_time": "2018-12-08T12:15:10", "url": "https://files.pythonhosted.org/packages/fc/1f/579a6c96f7eb4d77419bdfbe8dd8850418e1fff40f3764bf0edc24fd8db8/ipgdrive-0.0.11-py3-none-any.whl" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "c2947dd431d13db45ee428f9e947c4be", "sha256": "73c195d6c5b649ae90ad32b059c7b50fca934d4daf73d73b06669cc417e6744a" }, "downloads": -1, "filename": "ipgdrive-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "c2947dd431d13db45ee428f9e947c4be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7482, "upload_time": "2018-12-08T12:20:43", "url": "https://files.pythonhosted.org/packages/96/dd/eef3fc8ad0c4ba55ed1447034688699d4dbc0329e35cc64aa98b4da9ba16/ipgdrive-0.0.12-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ff5dfe91627de513452a93922fb37261", "sha256": "ebe520f9af803d17022d7969efe3427a4ec4aebf2ec9b127fa3fb4f98ceedb04" }, "downloads": -1, "filename": "ipgdrive-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ff5dfe91627de513452a93922fb37261", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5651, "upload_time": "2018-12-07T13:32:04", "url": "https://files.pythonhosted.org/packages/90/15/f4e579080ea656a9f1ee152027a50990bdc1f15b3491d5c60ad348ba8d11/ipgdrive-0.0.2-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3746f7d7f238b2df3201bdc9bbf46cdb", "sha256": "4544e032b729199e49cb60b1b526d7797b586de866a8bae6efa1fe4a54ee695e" }, "downloads": -1, "filename": "ipgdrive-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "3746f7d7f238b2df3201bdc9bbf46cdb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5901, "upload_time": "2018-12-07T13:34:14", "url": "https://files.pythonhosted.org/packages/ce/98/4ef13d620e37b088973ec7f5bf8022dbba5a556da3eaf020684f88ab4264/ipgdrive-0.0.3-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a1c7f26131824c7848745d03646e13d0", "sha256": "9635517c938b67f5a0bc470f9a741c404b0508f74bb464002c21edc3fa00c1db" }, "downloads": -1, "filename": "ipgdrive-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a1c7f26131824c7848745d03646e13d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6557, "upload_time": "2018-12-07T13:57:17", "url": "https://files.pythonhosted.org/packages/5c/7a/56f2b8d66685a61416bfe8c30cf3f20a454dadbf90ebcbe46c24e3736d5c/ipgdrive-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "7ae606aabb916b821e479541d6781ce9", "sha256": "cd0630a66487867088ab2bc0285b01666ddaa91ee6a454e4033614129824d863" }, "downloads": -1, "filename": "ipgdrive-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "7ae606aabb916b821e479541d6781ce9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5935, "upload_time": "2018-12-07T14:09:28", "url": "https://files.pythonhosted.org/packages/e6/fa/f57bcc79e9fcda91a9a60b014c9af24f9727c46419173f7c78eaba4543ca/ipgdrive-0.0.7-py3-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "7f875ce667979c298f859818a0759dbe", "sha256": "b562e67cee1008c15ca209426f110a321944d831e40727d3820c7edbfb01ae27" }, "downloads": -1, "filename": "ipgdrive-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "7f875ce667979c298f859818a0759dbe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7490, "upload_time": "2018-12-07T14:24:04", "url": "https://files.pythonhosted.org/packages/45/0e/93a3cbc84ba51053523dbdc036bfabf3fb6029d4258c8d98c0c47ddfcfb6/ipgdrive-0.0.8-py3-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "d77f14088aec88204a85c6ff83fbad6c", "sha256": "8f8444d829f2dc38f77d7d2c49f2abc79cc7eda170bd0c6312d8ee3d51c5640b" }, "downloads": -1, "filename": "ipgdrive-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "d77f14088aec88204a85c6ff83fbad6c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7027, "upload_time": "2018-12-07T15:05:13", "url": "https://files.pythonhosted.org/packages/24/70/38e436112df4fe014ba79edcfada7ed1f05bdfbe35c555d4ada470b7130e/ipgdrive-0.0.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c2947dd431d13db45ee428f9e947c4be", "sha256": "73c195d6c5b649ae90ad32b059c7b50fca934d4daf73d73b06669cc417e6744a" }, "downloads": -1, "filename": "ipgdrive-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "c2947dd431d13db45ee428f9e947c4be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7482, "upload_time": "2018-12-08T12:20:43", "url": "https://files.pythonhosted.org/packages/96/dd/eef3fc8ad0c4ba55ed1447034688699d4dbc0329e35cc64aa98b4da9ba16/ipgdrive-0.0.12-py3-none-any.whl" } ] }