{ "info": { "author": "Jarry Shaw", "author_email": "jarryshaw@icloud.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development", "Topic :: Utilities" ], "description": "======================================\nimpfxxk -- Import for Humans \ud83d\udc85\ud83c\udffb\n======================================\n\nThis is to be a project on modifying ``sys.metapath`` and\nmaking Python ``import`` statement as smooth as possible.\n\nInspiration\n===========\n\nThis idea was originally inspired from the |bro|_ language,\nwhere it uses ``@load`` statement what ``import`` doses in\nPython, except that the ``@load`` statement takes a\nrelative path as its specifier. For example:\n\n.. code:: bro\n\n @load ./sample_local.bro\n @load ../sample_parent.bro\n @load ../sample/child.bro\n\nwith the project structure as following:\n\n.. code:: text\n\n root\n |-- foo\n | |-- this_script.bro\n | |-- sample_local.bro\n | |-- sample\n | |-- child.bro\n |-- sample_parent.bro\n\nwhich means, the ``@load`` statement is always relative to\nwhere it comes from, rather than a *working directory*\nor *package root* as in Python.\n\nThus, we intend to make the Python ``import`` statement\nworks just like ``@load``. This is the back story of the\n``impfxxk`` project.\n\nExpectation\n===========\n\nWhen your project is as such:\n\n.. code:: text\n\n root\n |-- foo\n | |-- this_script.py\n | |-- sample_local.py\n | |-- sample\n | |-- child.py\n |-- sample_parent.py\n\nNormally, you will want to do:\n\n.. code:: python\n\n import .sample_local\n import .sample.child\n import ..sample_parent\n\nthere can be some issues when the Python interpreter tries\nto figure out what is what when you are not running it at\n``/root/foo/``, where the relative paths are ought to be.\n\nHowever, with ``impfxxk``, you can simply add a statement\n(it's not decided yet) before your original ``import``\nstatements, just like |future| does; and your code will\nwork just as you wish.\n\n.. |bro| replace:: Bro/Zeek\n.. _bro: https://www.zeek.org\n\n.. |future| replace:: ``__future__``\n.. _future: https://docs.python.org/3/library/__future__.html\n\n\n", "description_content_type": "text/x-rst; charset=UTF-8", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/JarryShaw/impfxxk", "keywords": "import metapath", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "impfxxk", "package_url": "https://pypi.org/project/impfxxk/", "platform": "", "project_url": "https://pypi.org/project/impfxxk/", "project_urls": { "Homepage": "https://github.com/JarryShaw/impfxxk" }, "release_url": "https://pypi.org/project/impfxxk/0.0.0.dev0/", "requires_dist": null, "requires_python": "", "summary": "Import for Humans \ud83d\udc85\ud83c\udffb", "version": "0.0.0.dev0" }, "last_serial": 5377057, "releases": { "0.0.0.dev0": [ { "comment_text": "", "digests": { "md5": "c885895d85ee5b938f7f0b865178e8ef", "sha256": "009af476401b12bc85e90871c061857348076f7bcda01f82a58dcbd7678c051a" }, "downloads": -1, "filename": "impfxxk-0.0.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "c885895d85ee5b938f7f0b865178e8ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3278, "upload_time": "2019-06-09T07:33:04", "url": "https://files.pythonhosted.org/packages/f0/db/494563e6420db90e76ee7a110ca3554383e87f964ffe0c5509d1abcd7734/impfxxk-0.0.0.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0134df1f8a1fa34e5f66a93ab3b360f", "sha256": "e38c5e0e350b61a5959fbe1005bc1b03f4adc539586fbf02a63f483dbbdd132e" }, "downloads": -1, "filename": "impfxxk-0.0.0.dev0.tar.gz", "has_sig": false, "md5_digest": "e0134df1f8a1fa34e5f66a93ab3b360f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3276, "upload_time": "2019-06-09T07:33:07", "url": "https://files.pythonhosted.org/packages/4c/43/92b4580a12c5a3f497878665e475c81626450308140ac8f9bb73e0340b89/impfxxk-0.0.0.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c885895d85ee5b938f7f0b865178e8ef", "sha256": "009af476401b12bc85e90871c061857348076f7bcda01f82a58dcbd7678c051a" }, "downloads": -1, "filename": "impfxxk-0.0.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "c885895d85ee5b938f7f0b865178e8ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3278, "upload_time": "2019-06-09T07:33:04", "url": "https://files.pythonhosted.org/packages/f0/db/494563e6420db90e76ee7a110ca3554383e87f964ffe0c5509d1abcd7734/impfxxk-0.0.0.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0134df1f8a1fa34e5f66a93ab3b360f", "sha256": "e38c5e0e350b61a5959fbe1005bc1b03f4adc539586fbf02a63f483dbbdd132e" }, "downloads": -1, "filename": "impfxxk-0.0.0.dev0.tar.gz", "has_sig": false, "md5_digest": "e0134df1f8a1fa34e5f66a93ab3b360f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3276, "upload_time": "2019-06-09T07:33:07", "url": "https://files.pythonhosted.org/packages/4c/43/92b4580a12c5a3f497878665e475c81626450308140ac8f9bb73e0340b89/impfxxk-0.0.0.dev0.tar.gz" } ] }