{ "info": { "author": "Alexander Berkovich", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Desktop Environment", "Topic :: Education", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "## AlexBerUtils\n\nAlexBerUtils is collection of the small utilities. See CHANGELOG.md for detail description.\n\n\n\n### Getting Help\n\n\n### QuickStart\n```bash\npip3 install -U alex-ber-utils\n```\n\n\n### Installing from Github\n\n```bash\npython3 -m pip install -U https://github.com/alex-ber/AlexBerUtils/archive/master.zip\n```\nOptionally installing tests requirements.\n\n```bash\npython3 -m pip install -U https://github.com/alex-ber/AlexBerUtils/archive/master.zip#egg=alex-ber-utils[tests]\n```\n\nOr explicitly:\n\n```bash\nwget https://github.com/alex-ber/AlexBerUtils/archive/master.zip -O master.zip; unzip master.zip; rm master.zip\n```\nAnd then installing from source (see below).\n\n\n### Installing from source\n```bash\npython3 -m pip install . # only installs \"required\"\n```\n```bash\npython3 -m pip install .[test] # installs dependencies for tests\n```\n```bash\npython3 -m pip install .[md] # installs multidispatcher (used in method_overloading_test.py)\n```\n##\n\nFrom the directory with setup.py\n```bash\npython3 setup.py test #run all tests\n```\n```bash\npytest\n```\n\n\n\n## Requirements\n\n\nAlexBerUtils requires the following modules.\n\n* Python 3.7+\n\n* PyYAML==5.1\n\n# Changelog\nAll notable changes to this project will be documented in this file.\n\n\\#https://pypi.org/manage/project/alex-ber-utils/releases/\n\n## [Unrelased]\n\n## [0.2.5] - 2019-05-22\n### Changed\n- Fixed bug in UploadCommand, git push should be before git tag.\n\n\n## [0.2.4] - 2019-05-22\n### Changed\n- Fixed bug in setup.py, incorrect order between VERSION and UploadCommand (no tag was created on upload)\n\n## [0.2.1] - 2019-05-22\n### Changed\n- setup url fixed.\n- Added import of Enum to alexber.utils package.\n\n## [0.2.0] - 2019-05-22\n### Changed\n- setup.py - keywords added.\n\n## [0.1.1] - 2019-05-22\n### Changed\n- README.md fixed typo.\n\n## [0.1.0] - 2019-05-22\n### Changed\n- alexber.utils.UploadCommand - bug fixed, failed on git tag, because VERSION was undefined.\n\n\n## [0.0.1] - 2019-05-22\n### Added\n- alexber.utils.StrAsReprMixinEnum - Enum Mixin that has __str__() equal to __repr__().\n- alexber.utils.AutoNameMixinEnum- Enum Mixin that generate value equal to the name.\n- alexber.utils.MissingNoneMixinEnum - Enum Mixin will return None if value will not be found.\n- alexber.utils.LookUpMixinEnum - Enim Mixin that is designed to be used for lookup by value. \n\n If lookup fail, None will be return. Also, __str__() will return the same value as __repr__().\n- alexber.utils.threadlocal_var, get_threadlocal_var, del_threadlocal_var. \n\n Inspired by https://stackoverflow.com/questions/1408171/thread-local-storage-in-python\n\n- alexber.utils.UploadCommand - Support setup.py upload.\n\n UploadCommand is intented to be used only from setup.py\n\n It's builds Source and Wheel distribution.\n\n It's uploads the package to PyPI via Twine.\n\n It's pushes the git tags.\n\n- alexber.utils.uuid1mc is is a hybrid between version 1 & version 4. This is v1 with random MAC (\"v1mc\").\n\n uuid1mc() is deliberately generating v1 UUIDs with a random broadcast MAC address.\n\n The resulting v1 UUID is time dependant (like regular v1), but lacks all host-specific information (like v4).\n\n Note: somebody reported that ran into trouble using UUID1 in Amazon EC2 instances.\n\n\n- alexber.utils.importer.importer - Convert str to Python construct that target is represented.\n- alexber.utils.importer.new_instance - Convert str to Python construct that target is represented. \nargs and kwargs will be passed in to appropriate __new__() / __init__() / __init_subclass__() methods.\n- alexber.utils.inspects.issetdescriptor - Return true if the object is a method descriptor with setters.\n\n But not if ismethod() or isclass() or isfunction() are true.\n- alexber.utils.inspects.ismethod - Return false if object is not a class and not a function. \nOtherwise, return true iff signature has 2 params.\n- alexber.utils.parsers.safe_eval - The purpose of this function is convert numbers from str to correct type.\n\n This function support convertion of built-in Python number to correct type (int, float)\n\n This function doesn't support decimal.Decimal or datetime.datetime or numpy types. \n- alexber.utils.parsers.is_empty - if value is None returns True.\n\n if value is empty iterable (for example, empty str or emptry list),returns true otherwise false.\n\n Note: For not iterable values, behaivour is undefined.\n- alexber.utils.parsers.parse_boolean - if value is None returns None.\n\n if value is boolean, it is returned as it is.\n if value is str and value is equals ignoring case to \"True\", True is returned.\n if value is str and value is equals ignoring case to \"False\", False is returned.\n\n For every other value, the answer is undefined. \n\n\n\n- alexber.utils.props.Properties - A Python replacement for java.util.Properties class\n\n This is modelled as closely as possible to the Java original.\n\n Created - Anand B Pillai .\n\n Update to Python 3 by Alex.\n\n Also there are some tweeks that was done by Alex.\n\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/alex-ber/AlexBerUtils", "keywords": "tools tool utils enum enums threadlocal UploadCommand upload uuid1mc uuid UUID UUID1 UUID4 UU1DMC issetdescriptor ismethod importer new_instance safe_eval is_empty parse_boolean Properties java.util.Properties", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "alex-ber-utils", "package_url": "https://pypi.org/project/alex-ber-utils/", "platform": "", "project_url": "https://pypi.org/project/alex-ber-utils/", "project_urls": { "Homepage": "https://github.com/alex-ber/AlexBerUtils" }, "release_url": "https://pypi.org/project/alex-ber-utils/0.2.5/", "requires_dist": [ "PyYAML (==5.1)", "multidispatch (==0.2) ; extra == 'md'", "atomicwrites (==1.3.0) ; extra == 'tests'", "attrs (==19.1.0) ; extra == 'tests'", "colorama (==0.4.1) ; extra == 'tests'", "mock (==2.0.0) ; extra == 'tests'", "more-itertools (==6.0.0) ; extra == 'tests'", "pbr (==5.1.3) ; extra == 'tests'", "pluggy (==0.9.0) ; extra == 'tests'", "py (==1.8.0) ; extra == 'tests'", "pytest (==4.3.1) ; extra == 'tests'", "pytest-assume (==1.2.2) ; extra == 'tests'", "pytest-mock (==1.10.1) ; extra == 'tests'", "PyYAML (==5.1) ; extra == 'tests'", "six (==1.12.0) ; extra == 'tests'" ], "requires_python": ">=3.7.1", "summary": "AlexBerUtils is collection of the small utilities", "version": "0.2.5" }, "last_serial": 5304081, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8e85ecd3f8e403dd38c2f7674254aa38", "sha256": "785fabf4a754bfe4643bff8e429dc3dbbdfe458a9a961222a9d0186a0916508a" }, "downloads": -1, "filename": "alex_ber_utils-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8e85ecd3f8e403dd38c2f7674254aa38", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15708, "upload_time": "2019-05-22T14:03:29", "url": "https://files.pythonhosted.org/packages/51/40/7d499e6cd7aec95f83a23f083cdbeabcaa6f47d428c1c8e442f99f2f51ff/alex_ber_utils-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc8d2705b2be66e7d794d5e614ae82df", "sha256": "b786289af5cc0d0a5de1d303536cc855e240e462c06c2bf64f1218cc72116eb6" }, "downloads": -1, "filename": "alex_ber_utils-0.0.1.tar.gz", "has_sig": false, "md5_digest": "fc8d2705b2be66e7d794d5e614ae82df", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12250, "upload_time": "2019-05-22T14:03:31", "url": "https://files.pythonhosted.org/packages/57/91/0507a2d47e4d6907f23f19c8344bdf7e4a88a4b873ce61f8f5aa9f1614b2/alex_ber_utils-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "fa287d90f049b5d993ddff35b30517b0", "sha256": "c10fb28f629a688b187f08f26f9ef4095c9306d6b36d511fcf59741c5d96e75f" }, "downloads": -1, "filename": "alex_ber_utils-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fa287d90f049b5d993ddff35b30517b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15796, "upload_time": "2019-05-22T14:10:39", "url": "https://files.pythonhosted.org/packages/20/37/65ff67669b3e196f24e8324892df13f8d18db2af58793329032093c2b400/alex_ber_utils-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fef723c5bc043bccc5cb5b802456ba21", "sha256": "6e70ea47ff7c7d840294432330c664b7030c222bd285691aed7641c017988d70" }, "downloads": -1, "filename": "alex_ber_utils-0.1.0.tar.gz", "has_sig": false, "md5_digest": "fef723c5bc043bccc5cb5b802456ba21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12316, "upload_time": "2019-05-22T14:10:41", "url": "https://files.pythonhosted.org/packages/06/f4/07533958984d231dd14546e682102606476d1f2b35222085ee13c6ec0920/alex_ber_utils-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f3ca5a9bdd5cd30bbf846b5e34de03b9", "sha256": "69984daa5d695ba48d789470e824391a61ba297ca7821c33fe99aab6c484a5f3" }, "downloads": -1, "filename": "alex_ber_utils-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f3ca5a9bdd5cd30bbf846b5e34de03b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15807, "upload_time": "2019-05-22T14:17:20", "url": "https://files.pythonhosted.org/packages/e1/c4/12c231d4072e1b582ae4f4df32570e7cd552005fda06bf267752ae39583d/alex_ber_utils-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90a9fe4795d174763a5368fd9a750b6c", "sha256": "d5b7da391102cadb5b1a79162d9cd3e9aa506ac6f26337eab90fa6336533aa06" }, "downloads": -1, "filename": "alex_ber_utils-0.1.1.tar.gz", "has_sig": false, "md5_digest": "90a9fe4795d174763a5368fd9a750b6c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12323, "upload_time": "2019-05-22T14:17:22", "url": "https://files.pythonhosted.org/packages/0c/46/d943942fb5a8b6a413ded7061b140b2ca189fe8b18145f60741ec79cf93a/alex_ber_utils-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "626c3c489b63d08b14c884b2dd3c4671", "sha256": "c21c0a33df8c8b008fe3d218c4b875b62f3fd2bcb6ff8662fe0bc4de6ed522ab" }, "downloads": -1, "filename": "alex_ber_utils-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "626c3c489b63d08b14c884b2dd3c4671", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15889, "upload_time": "2019-05-22T14:34:19", "url": "https://files.pythonhosted.org/packages/e2/7f/5f58ad1fefdd425ebce9dd2f1fa74ace8c2cf1c2c5aacf8f55077972c693/alex_ber_utils-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01ecc02f124c2c0b62787e3be559202b", "sha256": "597146c0a7578680d59207c2860d90d762a7b188f3f1ae89917a37c05eccb96b" }, "downloads": -1, "filename": "alex_ber_utils-0.2.0.tar.gz", "has_sig": false, "md5_digest": "01ecc02f124c2c0b62787e3be559202b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12445, "upload_time": "2019-05-22T14:34:21", "url": "https://files.pythonhosted.org/packages/9a/ac/cf7171bfeae32b8acca4259392243ed176f9367e672971eeef9e8edcb53b/alex_ber_utils-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "83ba4cb08337c3a676b795d73149ddba", "sha256": "f48400d7baa5f2533e7df7a0bc9d609a6331ffbc4eba9713c176fef8c148a63a" }, "downloads": -1, "filename": "alex_ber_utils-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "83ba4cb08337c3a676b795d73149ddba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15918, "upload_time": "2019-05-22T15:18:24", "url": "https://files.pythonhosted.org/packages/2b/3b/c7781609d10f931b3a50bd3a3599750fead862144c484f410ac5312f308c/alex_ber_utils-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "350fd7d08277f856aa9d0ec13630234a", "sha256": "7bfefe6ec6dee49a519b659d0c7c1b6b15687bda07eedb23561bb4ea17937617" }, "downloads": -1, "filename": "alex_ber_utils-0.2.1.tar.gz", "has_sig": false, "md5_digest": "350fd7d08277f856aa9d0ec13630234a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12478, "upload_time": "2019-05-22T15:18:26", "url": "https://files.pythonhosted.org/packages/d5/18/8b07b7d799e726ba40451822c9143106882366eef84063b2e4dfedaa6d31/alex_ber_utils-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "119e8d30ccd3741f711c89f362054038", "sha256": "aa698c88c14e667c55324ce456db9c069dcf1d2bf83e36d224b487c5c2f92c35" }, "downloads": -1, "filename": "alex_ber_utils-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "119e8d30ccd3741f711c89f362054038", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15968, "upload_time": "2019-05-22T18:33:52", "url": "https://files.pythonhosted.org/packages/d4/59/233d8294a4cd1cdf7d61c9df3a1fdf6cf22fb63a8e17ba190cfc72c1c7c8/alex_ber_utils-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b6ded7c8e782bfc194ac86e1c47689a6", "sha256": "355274d33efb726586fbe443272240e81e04df55dd631e87054ef0512d754d55" }, "downloads": -1, "filename": "alex_ber_utils-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b6ded7c8e782bfc194ac86e1c47689a6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12545, "upload_time": "2019-05-22T18:33:54", "url": "https://files.pythonhosted.org/packages/21/55/436c5983ce28f4ae128bd249577b1749565d933b4a0d9302949eba380ad2/alex_ber_utils-0.2.2.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "bec8434397e09ba034f13ac664e86570", "sha256": "98942b58533b366ba06a041b48ec8d07c143fb94c7b49b2e54bee10a26c1ac6a" }, "downloads": -1, "filename": "alex_ber_utils-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "bec8434397e09ba034f13ac664e86570", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15968, "upload_time": "2019-05-22T18:42:36", "url": "https://files.pythonhosted.org/packages/0a/36/51f509d47c7b55823808ed5513114cea6b8093113a1f91f3762a15ea978c/alex_ber_utils-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e5008e61f236f7bc4d4247b2261648b", "sha256": "96cf17697cae5a41311a6783bf1fa82c362dca2df4070c0ae503db90b324be00" }, "downloads": -1, "filename": "alex_ber_utils-0.2.4.tar.gz", "has_sig": false, "md5_digest": "5e5008e61f236f7bc4d4247b2261648b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12543, "upload_time": "2019-05-22T18:42:37", "url": "https://files.pythonhosted.org/packages/40/74/b531b51588d942cf63d6e28f8228197f245b7a27c8dfc7e2579ca39daa5b/alex_ber_utils-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "332680a721a9d1d2895fbca4018b51e9", "sha256": "20b1c61e7c2d46b5dc60097c1cc26ec3441f56288fa412584b02b8276528c46d" }, "downloads": -1, "filename": "alex_ber_utils-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "332680a721a9d1d2895fbca4018b51e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15992, "upload_time": "2019-05-22T18:56:14", "url": "https://files.pythonhosted.org/packages/e0/86/f513dc41cf11f2e97b5f5ea5a7012973d6260813ad485f13e6b2ad5bc232/alex_ber_utils-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6d410c0a6ccbe19ca7473ccae35378a", "sha256": "a2ef41e3de3e4d2ae0a7d84c1bc2b5e4bc21d5efeb1e4bbf81b35c49d415b662" }, "downloads": -1, "filename": "alex_ber_utils-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f6d410c0a6ccbe19ca7473ccae35378a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12582, "upload_time": "2019-05-22T18:56:16", "url": "https://files.pythonhosted.org/packages/44/56/50411401d56d464afbd45a6f0ab1aacc428b6e0f1beb2448d70933e2c622/alex_ber_utils-0.2.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "332680a721a9d1d2895fbca4018b51e9", "sha256": "20b1c61e7c2d46b5dc60097c1cc26ec3441f56288fa412584b02b8276528c46d" }, "downloads": -1, "filename": "alex_ber_utils-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "332680a721a9d1d2895fbca4018b51e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.1", "size": 15992, "upload_time": "2019-05-22T18:56:14", "url": "https://files.pythonhosted.org/packages/e0/86/f513dc41cf11f2e97b5f5ea5a7012973d6260813ad485f13e6b2ad5bc232/alex_ber_utils-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6d410c0a6ccbe19ca7473ccae35378a", "sha256": "a2ef41e3de3e4d2ae0a7d84c1bc2b5e4bc21d5efeb1e4bbf81b35c49d415b662" }, "downloads": -1, "filename": "alex_ber_utils-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f6d410c0a6ccbe19ca7473ccae35378a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.1", "size": 12582, "upload_time": "2019-05-22T18:56:16", "url": "https://files.pythonhosted.org/packages/44/56/50411401d56d464afbd45a6f0ab1aacc428b6e0f1beb2448d70933e2c622/alex_ber_utils-0.2.5.tar.gz" } ] }