{ "info": { "author": "Douglas Daly", "author_email": "contact@douglasdaly.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "# Frequent\n\n*Frequently used components for Python projects.*\n\n\n[![PyPI Version](https://img.shields.io/pypi/v/frequent.svg)](https://pypi.org/project/frequent/ \"PyPI Page\")\n[![Build Status](https://travis-ci.org/douglasdaly/frequent-py.svg?branch=master)](https://travis-ci.org/douglasdaly/frequent-py \"Travis CI\")\n[![Coverage Status](https://coveralls.io/repos/github/douglasdaly/frequent-py/badge.svg)](https://coveralls.io/github/douglasdaly/frequent-py \"Coveralls\")\n[![Documentation Status](https://readthedocs.org/projects/frequent-py/badge/?version=latest)](https://frequent-py.readthedocs.io/en/latest/?badge=latest \"Documentation\")\n[![Python Versions](https://img.shields.io/pypi/pyversions/frequent.svg)](https://pypi.org/project/frequent \"PyPI Page\")\n\n- Free software: [MIT License](./LICENSE \"License File\")\n- Documentation: https://frequent-py.readthedocs.io/\n\n\n## Features\n\nAll of the components in ``frequent`` have extensive code documentation (as \nwell as extensive usage documentation and examples) and unit tests. The \nmodules (and their associated unit tests) are entirely self-contained and \ndepend solely on the standard library.\n\n- [``config``](./src/frequent/config.py): components providing global \n application configuration settings management and storage.\n\n- [``messaging``](./src/frequent/messaging.py): the foundations for building \n custom messaging frameworks.\n\n- [``repository``](./src/frequent/repository.py): base class (and exception \n classes) for implementing the repository pattern for back-end agnostic object \n storage.\n\n- [``singleton``](./src/frequent/singleton.py): metaclass for creating \n singleton classes.\n\n- [``unit_of_work``](./src/frequent/unit_of_work.py): base classes for \n implementing the unit of work pattern for transactional blocks.\n\n\n## Installation\n\nYou have a few options for installing/using `frequent`. The first is to\ninstall using your package manager of choice, `pipenv` for instance:\n\n```bash\n$ pipenv install frequent\n```\n\nHowever, taking a cue from the excellent \n[boltons](https://github.com/mahmoud/boltons \"boltons on Github\") \npackage, each component is self-contained in its respective file/folder\nallowing for easy vendorization. Components are not dependent on one\nanother and rely solely on the standard library. This makes\nvendorization of a component as simple as copying just the file/folder\nfor the component(s) that you need (same goes for the unit tests).\n\n\n## About\n\nI found myself copying/re-writing certain components for my projects over and\nover again. This library is an attempt to take some of these components I find\nmyself needing frequently (and re-writing *too frequently*) and package them up\nin a convenient and easy-to-use format.\n\n\n## License\n\nFrequent © Copyright 2019, Douglas Daly. All rights reserved. This\nproject is licensed under the MIT License, see the \n[`LICENSE`](./LICENSE \"License File\") file for more details.\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://www.github.com/douglasdaly/frequent-py", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "frequent", "package_url": "https://pypi.org/project/frequent/", "platform": "", "project_url": "https://pypi.org/project/frequent/", "project_urls": { "Documentation": "https://frequent-py.readthedocs.io/", "Homepage": "https://www.github.com/douglasdaly/frequent-py", "Source Code": "https://www.github.com/douglasdaly/frequent-py" }, "release_url": "https://pypi.org/project/frequent/0.1.1/", "requires_dist": [ "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "pytest-timeout ; extra == 'test'", "pytest-xdist ; extra == 'test'" ], "requires_python": ">=3.5", "summary": "Frequently used components for Python projects.", "version": "0.1.1" }, "last_serial": 5631481, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "937037d0051689ac1e0239a516505c3f", "sha256": "ae756efb60d021c4a402a7a0d8a6779f664013b25165fffcada3f6f0ddcfc912" }, "downloads": -1, "filename": "frequent-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "937037d0051689ac1e0239a516505c3f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 6198, "upload_time": "2019-06-10T03:39:45", "url": "https://files.pythonhosted.org/packages/cc/35/eaf87d63b9b7b0b879b75a2304b2b1b2694206dd42bc772ac5cd930e71b5/frequent-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ccfe7d305d74e851478bf83c57ebf85", "sha256": "cdac12fe4e09fcba7e532fc00d7009b48933dee896bc365349d8d5f279988343" }, "downloads": -1, "filename": "frequent-0.0.1.tar.gz", "has_sig": false, "md5_digest": "9ccfe7d305d74e851478bf83c57ebf85", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6550, "upload_time": "2019-06-10T03:39:47", "url": "https://files.pythonhosted.org/packages/f7/d5/ae1b1d82b05107cf50ea57ab955618f07884d8da7a685252167a586c78de/frequent-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "31876a680fc79a6dc68e97109ddad226", "sha256": "5089c2782f176a127909a61eb0a21f9c1ab12b35b02783cc9272efd74449074e" }, "downloads": -1, "filename": "frequent-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "31876a680fc79a6dc68e97109ddad226", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 12834, "upload_time": "2019-07-13T23:27:49", "url": "https://files.pythonhosted.org/packages/ff/2c/9491351b6a2c0258d12f52587c0bff50c6aaa8b8b56cde29678477f7f6fa/frequent-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef207251d58845dc767a0a8d2170ec2b", "sha256": "2ae0fa2f6229cb16095192bb9fbd331f54dc746c98baf84dc56e50de92793f98" }, "downloads": -1, "filename": "frequent-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ef207251d58845dc767a0a8d2170ec2b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11995, "upload_time": "2019-07-13T23:27:51", "url": "https://files.pythonhosted.org/packages/ef/97/0620be11b10527df653f7294a5bc08bc85ba604cbfc39f803cefb26f74ab/frequent-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "21a302c7d1bffa37464ef538e77f9cb2", "sha256": "529fb0249e52459044dc4ff4b51bb89ebf4431666d54af3073431eb9f57c745d" }, "downloads": -1, "filename": "frequent-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "21a302c7d1bffa37464ef538e77f9cb2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 13616, "upload_time": "2019-08-04T20:21:07", "url": "https://files.pythonhosted.org/packages/18/d5/07c8886cd25b7ebd59d0318bf948d76c0a620c76739b52c8d7ba9d019937/frequent-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d3b516cb9ae8f6cbcb959b1626b622e", "sha256": "defe2f456f82966c75e11bc3ce8faea118bc3cd62df864d5f53d33b41097a5cd" }, "downloads": -1, "filename": "frequent-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9d3b516cb9ae8f6cbcb959b1626b622e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13074, "upload_time": "2019-08-04T20:21:08", "url": "https://files.pythonhosted.org/packages/b2/2c/94b065aa2784a031bbfa2e4a17fe4754cfc4873b66a54fdcaeb58b15b665/frequent-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "21a302c7d1bffa37464ef538e77f9cb2", "sha256": "529fb0249e52459044dc4ff4b51bb89ebf4431666d54af3073431eb9f57c745d" }, "downloads": -1, "filename": "frequent-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "21a302c7d1bffa37464ef538e77f9cb2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 13616, "upload_time": "2019-08-04T20:21:07", "url": "https://files.pythonhosted.org/packages/18/d5/07c8886cd25b7ebd59d0318bf948d76c0a620c76739b52c8d7ba9d019937/frequent-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d3b516cb9ae8f6cbcb959b1626b622e", "sha256": "defe2f456f82966c75e11bc3ce8faea118bc3cd62df864d5f53d33b41097a5cd" }, "downloads": -1, "filename": "frequent-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9d3b516cb9ae8f6cbcb959b1626b622e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13074, "upload_time": "2019-08-04T20:21:08", "url": "https://files.pythonhosted.org/packages/b2/2c/94b065aa2784a031bbfa2e4a17fe4754cfc4873b66a54fdcaeb58b15b665/frequent-0.1.1.tar.gz" } ] }