{ "info": { "author": "Nahom Tamerat", "author_email": "nahomt@amestsantim.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# pyCSPro\nPython library for parsing CSPro dictionaries and cases.\n\n## Install\npip:\n```bash\npip install pycspro\n```\n\ngit:\n```bash\ngit clone https://github.com/amestsantim/pycspro\ncd pycspro\npython setup.py install\n```\n\n## Usage\nThe library is simple to use and has only two classes. DictionaryParser and CaseParser.\nThere is also a medium article that explains, in considerable detail, how it works. You can find it here:\n\n[Working With CSPro Data Using Python (Pandas)](https://medium.com/@nahomt/working-with-cspro-data-using-python-pandas-9a6161b84ffa?sk=5e19e932f9090a21432c716aac0e7401)\n\n### DictionaryParser\nThis class receives a raw dictionary text and parses it into a Python dictionary which we can then manipulate to acomplish various tasks.\n\n#### parse()\nThis method accepts the contents of a dictionary file (.dcf) and returns a dictionary object, which is basically a nested Python dictionary.\n```python\nfrom pycspro import DictionaryParser\n\nraw_dictionary = open('CensusDictionary.dcf', 'r').read()\ndictionary_parser = DictionaryParser(raw_dict)\nparsed_dictionary = dictionary_parser.parse()\nprint(json.dumps(parsed_dict, indent=4))\n```\n\n```json\n{\n \"Dictionary\": {\n \"Name\": \"CEN2000\",\n \"Label\": \"Popstan Census\",\n \"Note\": \"\",\n \"Version\": \"CSPro 7.2\",\n \"RecordTypeStart\": 1,\n \"RecordTypeLen\": 1,\n \"Positions\": \"Relative\",\n \"ZeroFill\": true,\n \"DecimalChar\": false,\n \"Languages\": [],\n \"Relation\": [],\n \"Level\": {\n \"Name\": \"QUEST\",\n \"Label\": \"Questionnaire\",\n \"Note\": \"\",\n \"IdItems\": [\n {\n \"Name\": \"PROVINCE\",\n \"Label\": \"Province\",\n \"Note\": \"\",\n \"Len\": 2,\n \"ItemType\": \"Item\",\n \"DataType\": \"Numeric\",\n \"Occurrences\": 1,\n \"Decimal\": 0,\n \"DecimalChar\": false,\n \"ZeroFill\": true,\n \"OccurrenceLabel\": [],\n \"Start\": 2,\n \"ValueSets\": [\n {\n \"Name\": \"PROV_VS1\",\n \"Label\": \"Province\",\n \"Note\": \"\",\n \"Value\": [\n \"1;Artesia\",\n \"2;Copal\",\n \"3;Dari\",\n \"4;Eris\",\n \"5;Girda\",\n \"6;Hali\",\n \"7;Kerac\",\n \"8;Lacuna\",\n \"9;Laya\",\n \"10;Lira\",\n \"11;Matanga\",\n \"12;Patan\",\n \"13;Rift\",\n \"14;Terra\",\n \"15;Tumar\"\n ]\n }\n ]\n },\n ...\n```\n\n#### get_column_labels()\nThis method accepts a record name and returns a dictionary where keys are the item names and the values are the item labels for all the items within the given record.\n```json\n{\n 'H01_TYPE': 'Type of housing',\n 'H02_WALL': 'Wall type',\n 'H03_ROOF': 'Roof type',\n 'H04_FLOOR': 'Floor type',\n 'H05_ROOMS': 'Number of rooms',\n 'H06_TENURE': 'Tenure'\n}\n```\nThis is useful for replacing the column labels in the Data Frame.\n```python\nhousing = dfs['HOUSING']\nhousing.rename(columns = dictionary_parser.get_column_labels('HOUSING'))\n```\n\n#### get_value_labels()\nThis method accepts a record name and returns a dictionary where keys are the item names and the values are yet another dictionary. This dictionaries key-value paris are all the possible values and their respective labels.\n```json\n{\n 'P02_REL': {1: 'Head', 2: 'Spouse', 3: 'Child', 4: 'Parent', 5: 'Other', 6: 'Nonrelative', 9: 'Not Reported'},\n 'P03_SEX': {1: 'Male', 2: 'Female'}\n}\n```\n\nThis can be used to replace values by their more meaningful labels in a Data Frame.\n```python\nperson = dfs['PERSON']\nperson.replace(dictionary_parser.get_value_labels('PERSON'))\n```\n\n### CaseParser\nThe CaseParser class is responsible for cutting up raw CSPro cases into tables by using a parsed dictionary (CaseParser). It produces a nested dictionary where each record is yet another dictionary. The resulting format is well suited to be converted into a Pandas Data Frame by using the from_dict method of pandas DataFrame class.\n\nDuring instantiation, you can also pass in a cutting_mask to the CaseParser class to specify only the columns (items) you are interested in. This can be useful when there are a large number of items in a record.\n```python\ncutting_mask = {\n 'QUEST': ['PROVINCE', 'DISTRICT'],\n 'PERSON': ['P03_SEX', 'P04_AGE', 'P11_LITERACY', 'P15_OCC'],\n 'HOUSING': ['H01_TYPE', 'H05_ROOMS', 'H07_RENT', 'H08_TOILET', 'H13_PERSONS']\n}\ncase_parser = CaseParser(parsed_dictionary, cutting_mask)\n```\n\n#### parse()\nThe parse method receives a list of cases and returns a nested dictionary of records.\n```python\nimport pandas as pd\nfrom pycspro import CaseParser\n\ncase_parser = CSProCaseParser(parsed_dictionary)\nparsed_cases = case_parser.parse(cases) # where cases is a list of CSPro cases\n# parsed_cases will be Python dictionary where the keys are the record names\n# and values would be a dictionary with columns as keys and column values as a Python list\nfor table_name, table in parsed_cases.items():\n pd.DataFrame.from_dict(table)\n```\n\n## Live Demo\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/amestsantim/pycspro-example/master?filepath=Using%20pyCSPro.ipynb)\n\nThere is a Jupyter Notebook on Binder (great project!) that you can play with, in a live environment (in your browser) and see how easy it is to use this library. Please, take it for a spin!\n\n## Syntax Checking\nThis library uses a finite state machine to check the syntax of dictionaries. However, in the current version, some simplifying assumptions were made.\nThese are:\nDictionaries are assumed to have only a single Level\nSubItems are not considered and will cause an error if present\n\n## Performance\nWhen reading and loading cases directly from CSWeb's MySQL database, you should be passing in to the CaseParser about 50,000 cases at a time and then converting the result into a Pandas DataFrame. In the next iteration, send in another 50,000 cases and on return, convert to a DataFrame and append to the previous DataFrame. That way, you can grow your DataFrame to a large size without consuming a lot of memory.\n\n## To Dos\nSome edge cases such as SPECIAL values etc might not have been handled. If you run in to such edge cases, please submit an issue (or even better, a pull request) and hopefully, we will have them ironed out soon enough!\n\n## License\nMIT\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/amestsantim/pycspro", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pycspro", "package_url": "https://pypi.org/project/pycspro/", "platform": "", "project_url": "https://pypi.org/project/pycspro/", "project_urls": { "Homepage": "https://github.com/amestsantim/pycspro" }, "release_url": "https://pypi.org/project/pycspro/1.0.3/", "requires_dist": [ "transitions" ], "requires_python": ">=3.6", "summary": "A Python library for parsing CSPro dictionaries and cases.", "version": "1.0.3" }, "last_serial": 5977333, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "f37c3c98e6e73049a601e98df7d42085", "sha256": "d09ac4b50057cdf5b3f55cd1b2140eaa8690961dda5242dfa6f3aa73a2ef4828" }, "downloads": -1, "filename": "pycspro-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f37c3c98e6e73049a601e98df7d42085", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7914, "upload_time": "2019-10-10T09:01:29", "url": "https://files.pythonhosted.org/packages/c0/c1/6301beab066c6f8e5f9b1cdb8a1054848952f2e2be6e8a829adb8e2aa05c/pycspro-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bfed89fe51ef4c579fc9f122512798f4", "sha256": "5d087ea2531d6aa35d5f316c5600983308eb2a6897eee841dd9b68460fe14947" }, "downloads": -1, "filename": "pycspro-0.0.1.tar.gz", "has_sig": false, "md5_digest": "bfed89fe51ef4c579fc9f122512798f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6867, "upload_time": "2019-10-10T09:01:33", "url": "https://files.pythonhosted.org/packages/ec/a3/96ca57da5b52af342dc02b9e5c4530866ee098c46b13b533c318c815a11c/pycspro-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "272ecc1f892abfe3fa65e7fe635aa0a0", "sha256": "3798cd6a0d2bff585770c5ababb4a8697427dc1b4640bce01b334e3f5288b85e" }, "downloads": -1, "filename": "pycspro-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "272ecc1f892abfe3fa65e7fe635aa0a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7935, "upload_time": "2019-10-10T10:51:12", "url": "https://files.pythonhosted.org/packages/46/ca/2af7cdca551d8de3da4c7124eaff40da205313a3aaa384c617783ace5a48/pycspro-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f7eea46fe7e4f78464c7d3cb7d56118", "sha256": "04a1c3d797379bcc9120cfb9d277825d748bd90e3258306504bcb3d79e4a157f" }, "downloads": -1, "filename": "pycspro-0.0.2.tar.gz", "has_sig": false, "md5_digest": "2f7eea46fe7e4f78464c7d3cb7d56118", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6923, "upload_time": "2019-10-10T10:51:17", "url": "https://files.pythonhosted.org/packages/f3/f2/ffe244b4a9bb008a14510586f5d0e06cf4a98e867718cdc471a038edb4e0/pycspro-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "79b9f0a62e846fda4de03371e53730bf", "sha256": "f71924c0bdf43298f87bf06c1002ec11ec62a36710fd3ff89ab1f6054fc3542d" }, "downloads": -1, "filename": "pycspro-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "79b9f0a62e846fda4de03371e53730bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7891, "upload_time": "2019-10-10T10:58:24", "url": "https://files.pythonhosted.org/packages/bb/36/167d61f969690e0defbaf15a101a69bcdc6d0dbbbd81088abc9948e11f3a/pycspro-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7b4bb36245c77242551da69b0aefc49", "sha256": "26e37b49090c63f63ed207be39f33ce0e823c47c5a870ca0965f30ac4a76ee26" }, "downloads": -1, "filename": "pycspro-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e7b4bb36245c77242551da69b0aefc49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6892, "upload_time": "2019-10-10T10:58:26", "url": "https://files.pythonhosted.org/packages/bd/d3/a18a0b3ceb3eb3f6eadfb59fa5351edd17957f18ba18abd8d24a8d337c80/pycspro-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "9ae8d90e5be3e57951e5c9789abfb981", "sha256": "90cc89b7d819577d78fd20be0894bf0f015f1092f0abaf65f0fe98f391ae9913" }, "downloads": -1, "filename": "pycspro-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9ae8d90e5be3e57951e5c9789abfb981", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7936, "upload_time": "2019-10-10T11:03:05", "url": "https://files.pythonhosted.org/packages/bc/0d/ef9c8913889c1359d2a2e163081544dcdab06490c9cd7113d6a1e602a265/pycspro-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fbb4048d4948246c7070abc033f53273", "sha256": "f2480a6d5264e96f075ae101b54dc73a1c007b36f24860d155957cccd95af239" }, "downloads": -1, "filename": "pycspro-0.0.4.tar.gz", "has_sig": false, "md5_digest": "fbb4048d4948246c7070abc033f53273", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6920, "upload_time": "2019-10-10T11:03:07", "url": "https://files.pythonhosted.org/packages/ef/f3/d3a2ea34dcae164ea1f558791a48baebe618edb8c703d95ec5322d400c6c/pycspro-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "648aa3aa6ccf39590b124875e762b0ee", "sha256": "62b6ae142fa0ce40344682ad1f0883629d8de5ac9c536c3ca0342ecc0c848b98" }, "downloads": -1, "filename": "pycspro-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "648aa3aa6ccf39590b124875e762b0ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7937, "upload_time": "2019-10-10T11:36:54", "url": "https://files.pythonhosted.org/packages/87/49/4326d1ec3f1adc090e186e843d057be313427c4efd9bf376fdb0dab67e64/pycspro-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0954518a974db5f240bb9e455594350c", "sha256": "a514fad36793a15780cedd424ba31a35ae05d531f9b7d98444eca511e5832ad9" }, "downloads": -1, "filename": "pycspro-0.0.5.tar.gz", "has_sig": false, "md5_digest": "0954518a974db5f240bb9e455594350c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6918, "upload_time": "2019-10-10T11:36:58", "url": "https://files.pythonhosted.org/packages/37/5f/451330b4b26ed0cf905b874d03e816e522d9bb76026be8df86e49a754b48/pycspro-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "0cf9486c3e772bcea4a17342683777fe", "sha256": "236e0461e4a0a4e3abec6ea6feb44aac5c4ddf2ff2fe07b0dbc58270ba1d7859" }, "downloads": -1, "filename": "pycspro-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0cf9486c3e772bcea4a17342683777fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7962, "upload_time": "2019-10-10T11:41:00", "url": "https://files.pythonhosted.org/packages/25/f9/145d350c978636761ca8d461d1c26fcf6f9d56a207ed7222b1f4d002150e/pycspro-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5980fa1f94d89bcc7324fb0f6997be6a", "sha256": "b6fa5d7d45afc87489510ddb6d4c6e26be8d971ced772ac41a970a1c53caa1fd" }, "downloads": -1, "filename": "pycspro-0.0.6.tar.gz", "has_sig": false, "md5_digest": "5980fa1f94d89bcc7324fb0f6997be6a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6940, "upload_time": "2019-10-10T11:41:02", "url": "https://files.pythonhosted.org/packages/3c/59/ff381b854b90251d9e0beeb52caa13019d28f5a022492e85e9f25ea2fc0a/pycspro-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "25909a64cb97098e19e807d716e0279f", "sha256": "e60bff98a92a13896be5ffa0a38f76e01818279d651a96bd1fc131e4a76dffc3" }, "downloads": -1, "filename": "pycspro-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "25909a64cb97098e19e807d716e0279f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7968, "upload_time": "2019-10-10T11:46:29", "url": "https://files.pythonhosted.org/packages/23/ea/4dca541824ada7aedbeeb1951ce7058f5ffc5ca8e2c40eed3b6180819221/pycspro-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38f1c29d5902751a77d4d89ea46b1894", "sha256": "1aaadd3e05a690c9c3769eb60c182f3c7e202d0b2186961cdef2607071a9b1dc" }, "downloads": -1, "filename": "pycspro-0.0.7.tar.gz", "has_sig": false, "md5_digest": "38f1c29d5902751a77d4d89ea46b1894", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6945, "upload_time": "2019-10-10T11:46:34", "url": "https://files.pythonhosted.org/packages/09/a7/df9ac96f9b29e50ccf01fe3b2bc26e59b09dece50fa74b7cc0c226d73100/pycspro-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "e7fc6f3d92f05fb3197eba96b337c590", "sha256": "17816ebfa39a4d82dd41a2f8c5abf8faebafdca4daa1e6533860d2a654370b73" }, "downloads": -1, "filename": "pycspro-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "e7fc6f3d92f05fb3197eba96b337c590", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7952, "upload_time": "2019-10-10T11:50:13", "url": "https://files.pythonhosted.org/packages/41/a2/a779070123206a60c77d84d278284b90c965166465882b55f62fe7f4ddd9/pycspro-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2345130535c3cc837f6043d7ed15c0a0", "sha256": "55cc644b903dddeab077b0b3fecf22172b216cdca5a60d47fc7aa280b6621a82" }, "downloads": -1, "filename": "pycspro-0.0.8.tar.gz", "has_sig": false, "md5_digest": "2345130535c3cc837f6043d7ed15c0a0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6947, "upload_time": "2019-10-10T11:50:15", "url": "https://files.pythonhosted.org/packages/fa/d5/1a4d30bfe6b5ab529053321fa78afc8da6f515f7b9b41420be33b935d090/pycspro-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "2b4452a2392d7ffeeedf9a74d057847d", "sha256": "beb004879c0a5114283b195e8b61515b44b3497655616408b603d7402653b9e3" }, "downloads": -1, "filename": "pycspro-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "2b4452a2392d7ffeeedf9a74d057847d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11458, "upload_time": "2019-10-10T12:04:30", "url": "https://files.pythonhosted.org/packages/f9/71/5616c32086990af23aa786258329bc02c80e013e816e7617eddc884f9403/pycspro-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10efdadb68a790e5e6e30aaf1ed3c8cd", "sha256": "e0c5255ba4371acd2fe39bc4e2576824101459e95e297ec8768cd9db8ee70012" }, "downloads": -1, "filename": "pycspro-0.0.9.tar.gz", "has_sig": false, "md5_digest": "10efdadb68a790e5e6e30aaf1ed3c8cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8223, "upload_time": "2019-10-10T12:04:32", "url": "https://files.pythonhosted.org/packages/7b/3e/c0ed4c04d5ef89e301031bc95e7a46b582b1202ec41b3754ebfbe4ccd907/pycspro-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "55b95b177ab5dc90ebde479f4d71c2ce", "sha256": "ddf280cd4645723d0533194ab8d87ef2adc261011d57c7f231ce1457f49bfec0" }, "downloads": -1, "filename": "pycspro-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "55b95b177ab5dc90ebde479f4d71c2ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11458, "upload_time": "2019-10-10T12:07:17", "url": "https://files.pythonhosted.org/packages/b0/74/8429d021019c99a63461e1afc0bfbfd9d73742abd4b9c8cc25a31a99ecef/pycspro-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5d03978020d06cb8eccf5f33707c36d", "sha256": "1e0ded408b0d01a6c811e2509092cd80f653c5d991a6e3d0e8ec7df8dc0bd44a" }, "downloads": -1, "filename": "pycspro-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f5d03978020d06cb8eccf5f33707c36d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6851, "upload_time": "2019-10-10T12:07:20", "url": "https://files.pythonhosted.org/packages/b2/cb/62992fcddfc476db41cc0da6ed8460be81cabb3b7b48faa304c6071af15d/pycspro-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5354eead5b2c8e3307340d643cd4c578", "sha256": "77ef23a75b7f5b6564030c8b91e97d12b258019a6364e05f8074c43ae1fdb219" }, "downloads": -1, "filename": "pycspro-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5354eead5b2c8e3307340d643cd4c578", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7969, "upload_time": "2019-10-10T12:14:34", "url": "https://files.pythonhosted.org/packages/27/cc/3622ee778aee32aa40aaadea9c3cd678ff6c2e4224e96959b66eb9bafd57/pycspro-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b14200705b1936fbe96c8937eebe37e7", "sha256": "f1c5ee8cd11364710dc1fe81aaee7b7a922ecb556031867fbf0df786baac37e8" }, "downloads": -1, "filename": "pycspro-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b14200705b1936fbe96c8937eebe37e7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6940, "upload_time": "2019-10-10T12:14:36", "url": "https://files.pythonhosted.org/packages/ed/da/a2f2800d2b414d24eaa9164512c42f146fcdacdb796af69f203ef8fd725a/pycspro-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9275412b9e2fb20bab8089f81dd99e85", "sha256": "94e727a3fb5e6b3f4cf4a16441695c0779ab9179159fb0db7b1bab5bf9f8e5fe" }, "downloads": -1, "filename": "pycspro-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9275412b9e2fb20bab8089f81dd99e85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7962, "upload_time": "2019-10-10T12:21:14", "url": "https://files.pythonhosted.org/packages/b4/98/282dbb040ad9e52470c0d95d0b53da0663d476a0a30c44154d4cbc05a1a6/pycspro-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74f72b234f5f330403132f09ea8935eb", "sha256": "478e1e454a33dd36abf5eacd1fc3c47f3b2c3912c303e9fc50a7d4e75f4955ec" }, "downloads": -1, "filename": "pycspro-0.3.0.tar.gz", "has_sig": false, "md5_digest": "74f72b234f5f330403132f09ea8935eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6936, "upload_time": "2019-10-10T12:21:16", "url": "https://files.pythonhosted.org/packages/4b/c4/1805506f9228c605b82a1210343e3bf3aa3b857b983ce373e4d575587eb1/pycspro-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b4738c0e1d06f0cb53bf55e93511d232", "sha256": "d7c406354f25217fb6deab708ecf8c8c07034ba9c04be0c5f4448d7fb2fda07e" }, "downloads": -1, "filename": "pycspro-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b4738c0e1d06f0cb53bf55e93511d232", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7963, "upload_time": "2019-10-10T12:24:25", "url": "https://files.pythonhosted.org/packages/33/20/ab99773aff6710ef1c393b20dfe5f097c27d46f4b48d57848dffb8773c74/pycspro-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5671f14f31fad2d8346a760333ef519", "sha256": "065750a391a9edfb1c4d4d51ac405237b9e65192e1d1e041e5ccfdfc3f319d65" }, "downloads": -1, "filename": "pycspro-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a5671f14f31fad2d8346a760333ef519", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6931, "upload_time": "2019-10-10T12:24:31", "url": "https://files.pythonhosted.org/packages/7a/cd/9017dbd4cc25f3ef3bdac2113829a00b551bd6cbd0a461863971b1650bca/pycspro-0.4.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "4ca8899d3ba8906bf149d0a3c72d1414", "sha256": "e6b757f36ad353a5146ecdc9af8bc1f2221e9a743f4038ce3bbfd51a0ff6d546" }, "downloads": -1, "filename": "pycspro-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4ca8899d3ba8906bf149d0a3c72d1414", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7721, "upload_time": "2019-10-10T13:01:42", "url": "https://files.pythonhosted.org/packages/4c/12/6f47aa3417fa64e04df8c78b7a09eebf1e0eb02868192b522d625bcae22f/pycspro-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26bf31674a56e76656a1e78be42f2c4a", "sha256": "a10745a98ed4a47c1bed83162643a646d03791290d836426390a347874a0c0b0" }, "downloads": -1, "filename": "pycspro-0.9.0.tar.gz", "has_sig": false, "md5_digest": "26bf31674a56e76656a1e78be42f2c4a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6394, "upload_time": "2019-10-10T13:01:43", "url": "https://files.pythonhosted.org/packages/bf/fd/1be59bfccf1fd476c3b4332e58e8d784c6303351d6b86f289d9443f22760/pycspro-0.9.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "b9f9986f91fb89b595a7666bbd66e424", "sha256": "71eb7c84242d16795856da6a0f099067c2f95abab5f18a321b96f37543633b57" }, "downloads": -1, "filename": "pycspro-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b9f9986f91fb89b595a7666bbd66e424", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 8694, "upload_time": "2019-10-13T06:50:30", "url": "https://files.pythonhosted.org/packages/de/03/e03054931778ad0ba36883b0d1248dd4e090d9e8f45403cfc751fabf995c/pycspro-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be4f185844b989ff4bb3774df5d8f9cb", "sha256": "f6624639a1676a57f2c358521be0c71e3b9bffba84e145295ddf9454b369569b" }, "downloads": -1, "filename": "pycspro-1.0.2.tar.gz", "has_sig": false, "md5_digest": "be4f185844b989ff4bb3774df5d8f9cb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7572, "upload_time": "2019-10-13T06:50:32", "url": "https://files.pythonhosted.org/packages/29/85/1e458e41b97d800c3a2915ee92155f852777c536d63528efd31f2e3a6bc5/pycspro-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "6120dd6ad5d5a2365fd78f8ffd782e63", "sha256": "9c8f7c2a9bfced774d134e04c824a6f3bd5eeb85f22164769ec9637f495801bf" }, "downloads": -1, "filename": "pycspro-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6120dd6ad5d5a2365fd78f8ffd782e63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9079, "upload_time": "2019-10-15T13:27:34", "url": "https://files.pythonhosted.org/packages/ae/77/e529e2838a00d52602781ebbb724dae9855e22380f382242791a3ec7da63/pycspro-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf9068c5ca5f5f7560c7571f71fc9e57", "sha256": "76e4be73a2bb8f2d42d3ed789b8d4e8e67eedc0cc6ab06e3acd051b133d8ebcd" }, "downloads": -1, "filename": "pycspro-1.0.3.tar.gz", "has_sig": false, "md5_digest": "bf9068c5ca5f5f7560c7571f71fc9e57", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8001, "upload_time": "2019-10-15T13:27:37", "url": "https://files.pythonhosted.org/packages/66/c0/310a09e6b89e868a054d8d61dff8cac556f9ff71000c8335967869f61da1/pycspro-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6120dd6ad5d5a2365fd78f8ffd782e63", "sha256": "9c8f7c2a9bfced774d134e04c824a6f3bd5eeb85f22164769ec9637f495801bf" }, "downloads": -1, "filename": "pycspro-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6120dd6ad5d5a2365fd78f8ffd782e63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9079, "upload_time": "2019-10-15T13:27:34", "url": "https://files.pythonhosted.org/packages/ae/77/e529e2838a00d52602781ebbb724dae9855e22380f382242791a3ec7da63/pycspro-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf9068c5ca5f5f7560c7571f71fc9e57", "sha256": "76e4be73a2bb8f2d42d3ed789b8d4e8e67eedc0cc6ab06e3acd051b133d8ebcd" }, "downloads": -1, "filename": "pycspro-1.0.3.tar.gz", "has_sig": false, "md5_digest": "bf9068c5ca5f5f7560c7571f71fc9e57", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8001, "upload_time": "2019-10-15T13:27:37", "url": "https://files.pythonhosted.org/packages/66/c0/310a09e6b89e868a054d8d61dff8cac556f9ff71000c8335967869f61da1/pycspro-1.0.3.tar.gz" } ] }