{ "info": { "author": "Gsllchb", "author_email": "gsllchb@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# DotDot\n___Make it easy to import the modules in parent directories___\n\n[![released version](https://img.shields.io/pypi/v/DotDot.svg)](https://pypi.org/project/dotdot)\n[![license](https://img.shields.io/github/license/Gsllchb/DotDot.svg)](https://github.com/Gsllchb/DotDot/blob/master/LICENSE.txt)\n[![Build Status](https://travis-ci.org/Gsllchb/DotDot.svg?branch=master)](https://travis-ci.org/Gsllchb/DotDot)\n[![downloads](https://img.shields.io/pypi/dm/DotDot.svg)](https://pypistats.org/packages/dotdot)\n\nIf you want to solve `ValueError: attempted relative import beyond top-level package`, **DotDot** may be helpful for you.\n\n## Installation\nIf it can be installed and imported successfully, it should work correctly.\n\nInstall via **pip**:\n```console\npip install dotdot\n```\n\n## Quick Start\nConsider a common project structure as following:\n```\nFooProject\n \u251c\u2500\u2500 foo\n \u2502 \u251c\u2500\u2500 script.py\n \u2502 \u2514\u2500\u2500 util.py\n \u2514\u2500\u2500 util.py\n```\nNow, `script.py` can import those `util`s by importing `dotdot` first. Like this:\n```python\nimport dotdot\nimport foo.util\nimport util\n```\nMoreover, you can import the modules in grandparent or even great grandparent directory by importing `dotdotdot` or `dotdotdotdot` first.\n\n## How It Works\nDotDot does this magic by changing `sys.path[0]` in __import time__.\n\n\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/Gsllchb/DotDot", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dotdot", "package_url": "https://pypi.org/project/dotdot/", "platform": "", "project_url": "https://pypi.org/project/dotdot/", "project_urls": { "Homepage": "https://github.com/Gsllchb/DotDot" }, "release_url": "https://pypi.org/project/dotdot/1.0.1/", "requires_dist": null, "requires_python": "", "summary": "Make it easy to import the modules in parent directories", "version": "1.0.1" }, "last_serial": 4833606, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "64593d4de0a413c3d1eff1f01f2926f2", "sha256": "51c132c3767f0eebc0b1a2909d364a6777bcc2e2d6d8b7f121780144f4e14366" }, "downloads": -1, "filename": "dotdot-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "64593d4de0a413c3d1eff1f01f2926f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7409, "upload_time": "2019-02-01T04:55:54", "url": "https://files.pythonhosted.org/packages/d7/ec/37cbf589689db43a76e85df51b1437a608c7badd4546cade13b4f011c50f/dotdot-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45e4f4039556308ada18149984f65e25", "sha256": "a3986b1182d5d77e79cd480feac2ced7be1267bc65ab5e0155153807f7abbe55" }, "downloads": -1, "filename": "dotdot-0.1.0.tar.gz", "has_sig": false, "md5_digest": "45e4f4039556308ada18149984f65e25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2887, "upload_time": "2019-02-01T04:55:57", "url": "https://files.pythonhosted.org/packages/5d/3f/58c587523be75234e01198f05a903bf18837eb7c75f9dbbcb7d51831248e/dotdot-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d496651121a7aaa4bbbce889d0a13fda", "sha256": "9152f34097575373f8e7f0cd5f94134f8752dcfdc3d7b8feef571584684e2b31" }, "downloads": -1, "filename": "dotdot-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d496651121a7aaa4bbbce889d0a13fda", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7398, "upload_time": "2019-02-01T06:06:37", "url": "https://files.pythonhosted.org/packages/26/b7/b9aba8f063f38504bf24ba2eb797c8b8662bfafb64f2d5b00522774e9356/dotdot-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5960d34454452e831d56c3541c048928", "sha256": "b673f9a10bc073b88d929d364ec36a1d452986307ebcf83ad9d2a96a2a5b9ef9" }, "downloads": -1, "filename": "dotdot-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5960d34454452e831d56c3541c048928", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2860, "upload_time": "2019-02-01T06:06:38", "url": "https://files.pythonhosted.org/packages/75/32/a595a3151e93b173b3da50906cbf8cd1b0e0ef5be01d47741cdf6227f46e/dotdot-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7d2b5bfb40b0f6d6e871acc313c85a0f", "sha256": "8c7cf86fdfce395184b525aebe44a83a296aaf0df1d3eccacc45fa4c8a05e76e" }, "downloads": -1, "filename": "dotdot-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7d2b5bfb40b0f6d6e871acc313c85a0f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7460, "upload_time": "2019-02-02T07:08:35", "url": "https://files.pythonhosted.org/packages/49/03/54276f313b2dfe0d560b2d81400d09d4724bbbbd916415cbaa5640908d24/dotdot-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0fff7f5d805f482b54eecf85742a0463", "sha256": "cb5493f8a1df44ac5fafae40c6297f01922b363698a31f89cad1cee95c097f9e" }, "downloads": -1, "filename": "dotdot-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0fff7f5d805f482b54eecf85742a0463", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2966, "upload_time": "2019-02-02T07:08:36", "url": "https://files.pythonhosted.org/packages/4e/02/a29b4e0353729ffc92924e87391307e91004a14573ee4f54acf6a98214bd/dotdot-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "6c58b3a3a112eed2245936a0544ab435", "sha256": "7d0a92c56550488106637a16c40b19c06d9d3b624c986f248228c2beacd70446" }, "downloads": -1, "filename": "dotdot-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c58b3a3a112eed2245936a0544ab435", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8011, "upload_time": "2019-02-08T13:52:13", "url": "https://files.pythonhosted.org/packages/8c/15/4e35ad213d83b6451e5a55389d97b78994309e89c7ac69cc0eab2e07084d/dotdot-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcd16971873702168c1b66b12bb567c0", "sha256": "e782ff06dd9c9a2e31d7e5d03b42d3a6f837d609427a6ffeb3016476f0d08efd" }, "downloads": -1, "filename": "dotdot-1.0.0.tar.gz", "has_sig": false, "md5_digest": "dcd16971873702168c1b66b12bb567c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3105, "upload_time": "2019-02-08T13:52:15", "url": "https://files.pythonhosted.org/packages/18/21/7a023ba19be31d3120e14d1141a5a33a8db0fb8bea6a0f0db9112ddd2276/dotdot-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "573ebe5f8a3ff5d6aef75149ec48393c", "sha256": "542c0bbaa73ceaf9afc7c4325e72c1fce44d079f83574812d34ba78089272990" }, "downloads": -1, "filename": "dotdot-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "573ebe5f8a3ff5d6aef75149ec48393c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7955, "upload_time": "2019-02-18T06:30:47", "url": "https://files.pythonhosted.org/packages/a2/e5/00922213c4e743f00ae1ff3b74ff70e7cfb416c1d5a3031b7cbb7ee2c262/dotdot-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a97459ab19e2aff9cf2d2abc80c12c9f", "sha256": "78eb12793f2c0d15d3b1f6850bcc70824a944e425bff5e082c5d49c8698220e7" }, "downloads": -1, "filename": "dotdot-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a97459ab19e2aff9cf2d2abc80c12c9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3111, "upload_time": "2019-02-18T06:30:49", "url": "https://files.pythonhosted.org/packages/84/02/8fdc8b468a96dce2d494d3e72d70ab7742e541cca0c5bba20444dca52a8d/dotdot-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "573ebe5f8a3ff5d6aef75149ec48393c", "sha256": "542c0bbaa73ceaf9afc7c4325e72c1fce44d079f83574812d34ba78089272990" }, "downloads": -1, "filename": "dotdot-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "573ebe5f8a3ff5d6aef75149ec48393c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7955, "upload_time": "2019-02-18T06:30:47", "url": "https://files.pythonhosted.org/packages/a2/e5/00922213c4e743f00ae1ff3b74ff70e7cfb416c1d5a3031b7cbb7ee2c262/dotdot-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a97459ab19e2aff9cf2d2abc80c12c9f", "sha256": "78eb12793f2c0d15d3b1f6850bcc70824a944e425bff5e082c5d49c8698220e7" }, "downloads": -1, "filename": "dotdot-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a97459ab19e2aff9cf2d2abc80c12c9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3111, "upload_time": "2019-02-18T06:30:49", "url": "https://files.pythonhosted.org/packages/84/02/8fdc8b468a96dce2d494d3e72d70ab7742e541cca0c5bba20444dca52a8d/dotdot-1.0.1.tar.gz" } ] }