{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "pYthon Utilities\r\n================\r\n\r\n\u5b89\u88c5\r\n\r\n::\r\n\r\n $ pip install yu\r\n\r\nextractors - \u6570\u636e\u63d0\u53d6\r\n---------------------\r\n\r\n\u6570\u636e\u63d0\u53d6\uff0c\u652f\u6301:\r\n\r\n- Field\r\n\r\n - SkipField - \u76f4\u63a5\u8df3\u8fc7\r\n - PassField - \u4e0d\u505a\u8f6c\u6362\r\n - StringField - \u5b57\u7b26\u4e32\uff0c\u652f\u6301\u957f\u5ea6\u9a8c\u8bc1\r\n - IntegerField - \u6574\u6570\uff0c\u652f\u6301\u6700\u5927\u3001\u6700\u5c0f\u503c\u9a8c\u8bc1\r\n - FloatField - \u6d6e\u70b9\u6570\r\n - DateField - \u65e5\u671f\r\n\r\n- RowExtractor\r\n- CSVExtractor\r\n\r\n\u793a\u4f8b\r\n~~~~\r\n\r\ncsv.extract \u7684\u7528\u6cd5:\r\n\r\n.. code:: python\r\n\r\n import csv\r\n from yu.extractors import csv as ce\r\n\r\n\r\n fields = [\r\n ce.StringField(min_length=2, max_length=4), # \u59d3\u540d\r\n ce.SkipField(), # \u6c11\u65cf\r\n ce.IntegerField(max_value=150), # \u5e74\u9f84\r\n ce.FloatField(min_value=5, max_value=200), # \u4f53\u91cd\r\n ce.DateField(), # \u751f\u65e5\r\n ce.PassField(), # \u5907\u6ce8\r\n ]\r\n\r\n\r\n with open('data/person.csv') as fp:\r\n reader = csv.reader(fp)\r\n for row in ce.extract(reader, fields=fields):\r\n print(row)\r\n\r\nexcel.extract \u7684\u7528\u6cd5\r\n~~~~~~~~~~~~~~~~~~~~\r\n\r\n.. code:: python\r\n\r\n import xlrd\r\n from yu.extractors import excel as ee\r\n\r\n fields = [\r\n ee.StringField(min_length=2, max_length=4), # \u59d3\u540d\r\n ee.SkipField(), # \u6c11\u65cf\r\n ee.IntegerField(max_value=150), # \u5e74\u9f84\r\n ee.FloatField(min_value=5, max_value=200), # \u4f53\u91cd\r\n ee.DateField(), # \u751f\u65e5\r\n ee.PassField(), # \u5907\u6ce8\r\n ]\r\n\r\n book = xlrd.open_workbook('data/person.xlsx')\r\n sheet = book.sheet_by_name('person')\r\n for row in ee.extract(sheet, fields=fields):\r\n print(row)\r\n\r\nutils - \u5176\u4ed6\u5de5\u5177\r\n----------------\r\n\r\n\u5305\u62ec\r\n\r\n- cached_property - \u4ee3\u7801\u6765\u81ea Django \u9879\u76ee\r\n- InstanceMeta - \u7c7b\u7684\u81ea\u52a8\u5b9e\u4f8b\u5316\r\n- Instance - \u7c7b\u7684\u81ea\u52a8\u5b9e\u4f8b\u5316\uff08\u7ee7\u627f\u65b9\u5f0f\uff09\r\n\r\nInstanceMeta \u793a\u4f8b\r\n~~~~~~~~~~~~~~~~~\r\n\r\n.. code:: python\r\n\r\n from yu.utils import InstanceMeta\r\n\r\n class Color(metaclass=InstanceMeta, abstract=True):\r\n def __str__(self):\r\n return f'{self.name} = {self.value}'\r\n\r\n class Red(Color):\r\n name = 'red'\r\n value = 'FF0000'\r\n\r\n class Green(Color):\r\n name = 'green'\r\n value = '00FF00'\r\n\r\n print(Red)\r\n print(Green)\r\n\r\nformula\r\n-------\r\n\r\n\u7528\u6cd5\uff1a\r\n\r\n.. code:: python\r\n\r\n # \u5b9a\u4e49\u516c\u5f0f\r\n try:\r\n \u9762\u79ef\u516c\u5f0f = Formula('\u9762\u79ef = \u957f * \u5bbd', '\u957f\u65b9\u5f62\u9762\u79ef')\r\n except FormulaError as exc:\r\n print(exc)\r\n\r\n # \u8fdb\u884c\u8ba1\u7b97\r\n context = {\r\n '\u957f': 16,\r\n '\u5bbd': 15,\r\n }\r\n try:\r\n \u9762\u79ef\u516c\u5f0f(context)\r\n except FormulaError as exc:\r\n print(exc)\r\n\r\n # \u8bfb\u53d6\u7ed3\u679c\r\n print(context['\u9762\u79ef'])\r\n\r\n\u4fee\u6539\u8bb0\u5f55\r\n--------\r\n\r\nv0.5.0\r\n\r\n- 2017-12-28 \u6dfb\u52a0 yu.formula\r\n\r\nv0.4.1\r\n\r\n- 2017-12-20 \u5b8c\u5584 yu.extractors, \u5c01\u88c5\u8fd4\u56de\u503c\r\n\r\nv0.4.0\r\n\r\n- 2017-12-15 \u589e\u52a0 argparseutils \u6a21\u5757\uff0c\u652f\u6301 DateType, DatetimeType\r\n\r\nv0.2.2\r\n\r\n- 2017-12-15 \u5b8c\u5584 extractors.excel \u548c extractors.csv\r\n\r\nv0.2.1\r\n\r\n- 2017-12-11 \u53d1\u5e03\u91cc\u589e\u52a0 README.md, data/\\*\r\n\r\nv0.2.0\r\n\r\n- 2017-12-10 \u6dfb\u52a0 yu.extractors.excel\uff0c\u5904\u7406 Excel \u6587\u4ef6\u7684\u6570\u636e\u63d0\u53d6\r\n\r\nv0.1.1\r\n\r\n- 2017-12-09 \u6dfb\u52a0 yu.extractors.csv, \u5904\u7406 CSV \u6587\u4ef6\u7684\u6570\u636e\u63d0\u53d6\r\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/huyx/yu", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "yu", "package_url": "https://pypi.org/project/yu/", "platform": "", "project_url": "https://pypi.org/project/yu/", "project_urls": { "Homepage": "https://github.com/huyx/yu" }, "release_url": "https://pypi.org/project/yu/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "pYthon Utilities.", "version": "0.5.0" }, "last_serial": 3446612, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "67aeb1e3551383e4b179dfba49d39325", "sha256": "aca7d719da0cd33c832e40e41025c2f01a1add6fed1e4719f97761e862b2955a" }, "downloads": -1, "filename": "yu-0.0.2.tar.gz", "has_sig": false, "md5_digest": "67aeb1e3551383e4b179dfba49d39325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 709, "upload_time": "2017-12-08T08:48:46", "url": "https://files.pythonhosted.org/packages/86/94/dc406ac8453699b0ce42bd43a11f9ce35e18ea77768e9f26c3ea5d76a97d/yu-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "0d51924595c8747850e8a553f342b3e7", "sha256": "3a366de35048d7cc948c582b4dbb4b65d474433045a3f024aa9d750cf0940bf8" }, "downloads": -1, "filename": "yu-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0d51924595c8747850e8a553f342b3e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4406, "upload_time": "2017-12-09T13:32:15", "url": "https://files.pythonhosted.org/packages/69/2f/a50712278a71928e96d41b083f1177a99f4509fa274f5614c554ae0fde9b/yu-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b3589e24149e33705e11a5dfb79e9b52", "sha256": "29537ae11cf494c91ddbded4d2c5890bb76fb5efd2213267fb2abb695abc98bc" }, "downloads": -1, "filename": "yu-0.1.1.tar.gz", "has_sig": false, "md5_digest": "b3589e24149e33705e11a5dfb79e9b52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4998, "upload_time": "2017-12-09T14:06:46", "url": "https://files.pythonhosted.org/packages/ab/1e/be8fe1e89ba06a0b82cf59ab44a04fc9de0a161d8b64bfe19d9862d66496/yu-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "652aa79a3bfc8f3c9a9ca9690c633201", "sha256": "b4b1bb8f379871e9f6c014210f633a896cfe651bb5792394c9de3e06b37b3520" }, "downloads": -1, "filename": "yu-0.2.0.tar.gz", "has_sig": false, "md5_digest": "652aa79a3bfc8f3c9a9ca9690c633201", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6880, "upload_time": "2017-12-10T04:01:43", "url": "https://files.pythonhosted.org/packages/01/ee/466bcf5f9bcdaee3f04951b4331eb926d93f62025cd2a48d23be47411426/yu-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1c310fc90222beb6eef56ed69b8a6b8b", "sha256": "953a5b819c0eb9240299c848fd7bc3c2aec5d37a755acf9a06fe1aa0ddcd9896" }, "downloads": -1, "filename": "yu-0.2.1.tar.gz", "has_sig": false, "md5_digest": "1c310fc90222beb6eef56ed69b8a6b8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15301, "upload_time": "2017-12-11T02:57:57", "url": "https://files.pythonhosted.org/packages/78/e3/0b63e71a47a0d1b132d58202469e0636def7c20c00932973cccf9cfe778c/yu-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "bb9c835d3ea24a7743f43479980abe67", "sha256": "f8f6f1649100c10a9fa22884dd435135544b68a43638e8a8fdc916e201a4c518" }, "downloads": -1, "filename": "yu-0.2.2.tar.gz", "has_sig": false, "md5_digest": "bb9c835d3ea24a7743f43479980abe67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15463, "upload_time": "2017-12-15T06:27:38", "url": "https://files.pythonhosted.org/packages/82/3e/0dfa800268472251585401f63d9d37990964e3e343730cc760bebe7565de/yu-0.2.2.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6e6876d20d78d9afa8961af32b02a97e", "sha256": "bc7282e04772d396de27ec7d315f50d2846ef48c9e0111e4f2291e81cd37caae" }, "downloads": -1, "filename": "yu-0.4.1.tar.gz", "has_sig": false, "md5_digest": "6e6876d20d78d9afa8961af32b02a97e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15954, "upload_time": "2017-12-20T07:57:34", "url": "https://files.pythonhosted.org/packages/97/41/7391b87b05095d1ded0b870ca3275d37ae3d8dd74b166ac162239c3e7379/yu-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "6d3de7c039257c6ee27ee9579b3116c5", "sha256": "18bc80ca4a5d337d8ab9ece292cea1df8e14c126c1961ce0ab7af6a8c8deb600" }, "downloads": -1, "filename": "yu-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6d3de7c039257c6ee27ee9579b3116c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16870, "upload_time": "2017-12-28T04:48:44", "url": "https://files.pythonhosted.org/packages/0b/67/e1e447d0e33bd4641cd6c04c9f4a0338cea95bbfb9b49e29f902d3c91dad/yu-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6d3de7c039257c6ee27ee9579b3116c5", "sha256": "18bc80ca4a5d337d8ab9ece292cea1df8e14c126c1961ce0ab7af6a8c8deb600" }, "downloads": -1, "filename": "yu-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6d3de7c039257c6ee27ee9579b3116c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16870, "upload_time": "2017-12-28T04:48:44", "url": "https://files.pythonhosted.org/packages/0b/67/e1e447d0e33bd4641cd6c04c9f4a0338cea95bbfb9b49e29f902d3c91dad/yu-0.5.0.tar.gz" } ] }