{ "info": { "author": "Octave Lauby", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "olutils\n---\n\n\n# Introduction\n\nThe module ***olutils*** provide common tools to simplify project creation. It includes:\n- class with logger\n- parameter management\n- object management (copy, saving, loading)\n\n\n## Installation\n\nOne can install olutils using pip install command:\n\n```bash\npip install olutils\n```\n\n\n## Usage\n\n\nUse of temporal converters and deep defaultdict:\n\n```python\nimport olutils\n\n\n# Building a deep default dict with datetimes as values\nflights = olutils.deepdefaultdict(lambda x: None, depth=2)\n\n# Filling it\nflights['Paris-NY']['departure'] = olutils.str2dt(\"2019-01-15 08:00+01:00\")\nflights['Paris-NY']['arrival'] = olutils.str2dt(\"2019-01-15 10:30-05:00\")\nflights['NY-Paris']['departure'] = olutils.str2dt(\"2019-01-17 23:00-05:00\")\nflights['NY-Paris']['arrival'] = olutils.str2dt(\"2019-01-15 11:00+01:00\")\n\nflights.pprint()\n```\n\n\nFile reading and object storing:\n\n```python\nimport olutils\n\nmy_dict = {'key_1': \"value_1\", 'key_2': 2}\nmy_rows = [{'col_1': 11, 'col_2': 21}, {'col_1': 21, 'col_2': 22}]\nolutils.save(my_dict, \"output/my_dict.json\")\nolutils.save(my_rows, \"output/my_rows.csv\")\nolutils.save(my_rows, \"output/my_rows.unknown\", mthd=\"json\")\n\nmy_loaded_dict = olutils.load(\"output/my_dict.json\")\nmy_loaded_rows = olutils.load(\"output/my_rows.csv\")\nmy_loaded_rows_ = olutils.load(\"output/my_rows.unknown\", mthd=\"json\")\n```\n\n\n\n# For developers\n\n## Download the project\n\nClone it using code:\n\n```bash\ngit clone https://github.com/OctaveLauby/olutils.git\ncd olutils\n```\n\nOne can make an editable code installation:\n\n```bash\npip install -e .\n```\n\n\n## Virtual Environment\n\nUsing new pipenv feature (`pip install pipenv`)\n\n```bash\npipenv install\npipenv shell\n...\nexit\n```\n\n\n**Comments**:\n\n1. Matplotlib does not have to be imported: plotting submodule is not loaded in that case\n\n2. One can alternatively use classic virtual environment:\n\n```bash\npython -m venv venv\nsource venv/Scripts/activate\npython -m pip install -r requirements.txt\n...\ndeactivate\n```\n\n\n## Distribution\n\n\n1. Building manifest file:\n\n```bash\ncheck-manifest --create\n```\n\n2. Building the wheel:\n\n```bash\npython setup.py bdist_wheel\n```\n\n3. Building the source distribution:\n\n```bash\npython setup.py sdist\n```\n\n4. Publishing:\n\n```bash\npython setup.py bdist_wheel sdist\ntwine upload dist/*\n```\n\n> For TestPyPi publication: `twine upload --repository-url https://test.pypi.org/legacy/ dist/* `\n\n\n> [Not working on Git terminal](https://github.com/pypa/packaging-problems/issues/197) for some reason\n\n\n\n## Testing\n\n```bash\npython -m pytest olutils -vv\npython -m pylint olutils --ignore-patterns=test*\n```\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/OctaveLauby/olutils", "keywords": "utils tools", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "olutils", "package_url": "https://pypi.org/project/olutils/", "platform": "", "project_url": "https://pypi.org/project/olutils/", "project_urls": { "Homepage": "https://github.com/OctaveLauby/olutils" }, "release_url": "https://pypi.org/project/olutils/0.2.0/", "requires_dist": [ "python-dateutil (>=2.8.0)" ], "requires_python": "", "summary": "tools for common operations in a module", "version": "0.2.0" }, "last_serial": 4964448, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "25d627f364abcb04f6e22bd468742213", "sha256": "3f6307f4079423f42d27c7ed28cf3ca0f2ac28f661c9c6e17ff7808fb8fa33e5" }, "downloads": -1, "filename": "olutils-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "25d627f364abcb04f6e22bd468742213", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34969, "upload_time": "2019-03-20T15:59:02", "url": "https://files.pythonhosted.org/packages/06/67/7a54fd44b76a8e60eca7527be1d2ce560aecc8ca619f12fb2e5e60feaa7d/olutils-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c9b1f5b0ffe58c20d0172ecf8bca1c5", "sha256": "34323ea4ecc919fc424797136462e8cf92b00200bf9dc2234e2079a998c414f4" }, "downloads": -1, "filename": "olutils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7c9b1f5b0ffe58c20d0172ecf8bca1c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34426, "upload_time": "2019-03-20T15:59:05", "url": "https://files.pythonhosted.org/packages/2f/d7/a64ab06671ba51df26b0c00b8084f308ccf282e9837b47eeb7a537739313/olutils-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "25d627f364abcb04f6e22bd468742213", "sha256": "3f6307f4079423f42d27c7ed28cf3ca0f2ac28f661c9c6e17ff7808fb8fa33e5" }, "downloads": -1, "filename": "olutils-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "25d627f364abcb04f6e22bd468742213", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34969, "upload_time": "2019-03-20T15:59:02", "url": "https://files.pythonhosted.org/packages/06/67/7a54fd44b76a8e60eca7527be1d2ce560aecc8ca619f12fb2e5e60feaa7d/olutils-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c9b1f5b0ffe58c20d0172ecf8bca1c5", "sha256": "34323ea4ecc919fc424797136462e8cf92b00200bf9dc2234e2079a998c414f4" }, "downloads": -1, "filename": "olutils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7c9b1f5b0ffe58c20d0172ecf8bca1c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34426, "upload_time": "2019-03-20T15:59:05", "url": "https://files.pythonhosted.org/packages/2f/d7/a64ab06671ba51df26b0c00b8084f308ccf282e9837b47eeb7a537739313/olutils-0.2.0.tar.gz" } ] }