{ "info": { "author": "zero_zhu", "author_email": "zero_zhu@163.com", "bugtrack_url": null, "classifiers": [], "description": "****\n# nav_calc\n****\nIt is a lib for backtesting.\n\n## multi_assets\n\n\nThis function is used to test strategies involving mutliple assets, like multi-factors model.\n\n### params:\n\n- prz: dataframe, index = dates, columns = stocks\n\n- w_tar: dataframe, target weight, index = dates, columns = stocks\n\nIt is worthwhile to note that the dates in w_tar does not need to be the same as the dates in prz, it can be a subset of the dates in prz.\n\n- dates_reb: array, rebalance dates\n\nIf you want to balance at every w_tar's dates, set dates_reb to w_tar.index\n\n- fee: fee rate, default = 0\n\n### return a dataframe\n\nIt has the following columns:\n\n- reb: 1 indicate it is a rebalance date, 0 for not a rebalance date\n\n- ret_gross: return before fee\n\n- fee: fees to substract from ret_gross\n\n- ret_net: return after fee\n\n- nav: net asset value of the strategy\n\n\n## time_series\n\nThis function is used to test timing strategies, like CTA strategies. \n\n### params:\n\n- prz: array\n\n- pos: array, indicate the strategy's position\n\nIt must be the same size with prz\n\n- fee: fee rate, default 0\n\n- ret_ext: whether to return the extended information; if False(default), return an array which represents the nav of the strategy; if True, return a DataFrame(see below)\n\n### return a dataframe \n\n**(ret_ext = True)**\n\nIt has the following columns:\n\n- price: the price of the underlying asset\n\n- position: the strategy's position\n\n- return: pct_change of the price\n\n- value: position * price\n\n- fee: trading fees\n\n- strategy_return_before_fee:\n\n- strategy_return: post-fee return\n\n- nav: nav of the strategy (post_fee)\n\n- nav_before_fee: \n\n- nav_price: the normalized price\n\n****\n\n# nav_analysis\n****\nIt is a lib for analysis nav (which maybe from nav_calc).\n\n## calc_mdd\n\nFunction to calculate max drawdown\n\n### params\n\n- arr: an array that represents nav or price\n\n### return a dict\n\nThe dict has the following keys:\n\n- mdd_value: the max drawdown in value\n\n- mdd_pct: the max drawdown in percentage\n\n\n## calc_ann_ret\n\nFunction to calculate the annualized return, assuming daily data.\n\n### parmas\n\n- arr: an array that represents nav or price\n\n### return a value\n\n- annualized return\n\n\n## stats\n\nFunction to return both ret and mdd\n\n### params\n\n- arr: an array that represents nav or price\n\n### return a dict which has the following keys\n\n- ret: the total return (not annualized return)\n\n- mdd: the max drawdown in percentage\n\n## stats_yearly\n\n### params\n\n- s: a series that represents nav or price\n\nThe index of s should be date and must be in the form like \"20181010\".\n\n### return a dataframe which has the following columns:\n\n- ret: the total return (not annualized return)\n\n- mdd: the max drawdown in percentage\n\nThe index of the dataframe is 'year'.\n\n## stats_yearly_multi_assets\n\n### params\n\n- df: a dataframe whose each column represents a nav of an asset or strategy.\n\n### return a dataframe which has two-level columns\n\nLevel I: the asset or strategy\n\nLevel II: ret and mdd, the same meaning as in stats_yearly\n\n****\n# general\n****\n## to_db_code\n\n### params\n- ts_code: security code like '600000.SH'\n\n### return\n- db_code: code format in database like 'SH_600000'\n\n### example\n- to_db_code('600000.SH') returns 'SH_600000'\n\n## to_ts_code\n### params:\n- db_code: code format in database like 'SH_600000'\n\n### return:\n- ts_code: security code like '600000.SH'\n\n### example:\n- to_ts_code('SH_600000') returns '600000.SH'\n\n## real_round_2\nprecise round to 0.01 (\u7528\u4e8e\u8ba1\u7b97\u6da8\u8dcc\u505c\u4ef7)\n\n### param\n- a number\n\n### return \n- number rounded\n\n### example\n-read_round_2(5.347) returns 5.35\n\n## check_df_struct\ncheck if two dataframe have identical struct: same shape, same index and same columns\n\n### params\n- df1, df2\n\n### return\n- True if the two dataframe have the same shape, same index and same columns, else False\n\n### example\ncheck_df_struct(df1, df2)\n\n****\n# utils\n****\n## grouping1d\nassign groupid to an array, used to group stocks according a factor\n\n### params\n- arr: the factor array\n- nog: number of group\n- ST = 999: the number need to be specially treated\n\n### return\nan array that contained groupid, nan will be assigned to the 0 group, ST will be assigned to the -1 group\n\n### example\ngrouping1d(np.arange(100),5)\n\n## get_clean_factor_and_forward_returns\n\n### param\n\n- factor: a mult-index series with index = ['date', 'asset'], value = factor value\n\n- prices: a dataframe with index = daily dates and columns = the universe of stocks interested\n\n- bins = 5: number of group (use bins as the variable name in order to be consistence with alphalens)\n\n- periods = (20,60): the holding periods to be tested\n\n### return\n\na multi-index dataframe with index = ['date', 'asset'] and columns:\n\n- XD(i.e. 20D, 60D,...): the forward return\n\n- factor: the factor value\n\n- factor_quantile: the group id (also, to be consistence with alphalens)\n\n### example\n\nfactor_data = get_clean_factor_and_forward_returns(factor, prices)\n\n### reference\n\nalphalens: http://quantopian.github.io/alphalens/index.html\n\n\n## convert_date_in_factor_data\n\nconvert the type of index 'date' in factor_data to datetime \n\n### param\n\nfactor_data: with be changed inplace\n\n### return\n\nNone\n\n\n### example\n\nconvert_date_in_factor_data(factor_data)\n\n****\n# SAA\n****\n## risk_budget\n### params\n- data: the DataFrame consists of asset price data\n- b: the risk budget (list or array)\n\n### return\n- a Series representing the weights\n\n\n## risk_budget_weight_resample\n### params\n- data: the DataFrame consists of asset price data\n- b: the risk budget (list or array)\n- lb: the lookback period\n- freq: the rebalace frequency (str or int)\n\n### return\n- a DataFrame representing the weights at each rebalance date\n\n\n## risk_parity\n### params\n- data: the DataFrame consists of asset price data\n\n### return\n- a Series representing the weights\n\n\n\n## rp_weight_resample\n### params\n- data: the DataFrame consists of asset price data\n- lb: the lookback period\n- freq: the rebalace frequency (str or int)\n\n### return\n- a DataFrame representing the weights at each rebalance date\n\n\n## equalweight_resample\n### params\n- data: the DataFrame consists of asset price data\n- freq: the rebalace frequency (str or int)\n\n### return\n- a DataFrame representing the weights at each rebalance date\n\n\n## calc_nav\n### params\n- data: the DataFrame consists of asset price data\n- wegiths: the DataFrame representing the weights at each rebalance date\n- fee: fee rate\n\n### return\n- df_nav: a DataFrame the contains the backtested nav of the strategy\n- df: a muli_level DataFrame that contains the raw data, the weights and the period return of that assets, at each rebalace data", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/manage/projects/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pybt", "package_url": "https://pypi.org/project/pybt/", "platform": "", "project_url": "https://pypi.org/project/pybt/", "project_urls": { "Homepage": "https://pypi.org/manage/projects/" }, "release_url": "https://pypi.org/project/pybt/0.0.35/", "requires_dist": null, "requires_python": "", "summary": "package for backtesting", "version": "0.0.35" }, "last_serial": 5485694, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a95f4a2e73942eac5a6801560c77817a", "sha256": "1512320a137558a4bd350ccb04b4a48eb3e80096ad06caef3da1a6dde02cd169" }, "downloads": -1, "filename": "pybt-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a95f4a2e73942eac5a6801560c77817a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2053, "upload_time": "2018-11-27T07:58:56", "url": "https://files.pythonhosted.org/packages/77/9c/ca8351747aea7f5bb5e7eb8a0ae833ee703e05ff776d5b20258628473e92/pybt-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "ac7a42e3fe4344fbca56137a3aa92a89", "sha256": "03be55f3800cee1e9ea669e42010f09f45da2051b5bfad13c9e7a2892c0a5ff3" }, "downloads": -1, "filename": "pybt-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ac7a42e3fe4344fbca56137a3aa92a89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3609, "upload_time": "2019-01-17T07:33:30", "url": "https://files.pythonhosted.org/packages/fb/dd/448c80086023f1aa813e0861655b392c4e45006d40b94b0d6b687d18c47a/pybt-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "28f53ccc4aee74bdd685b2c8386b05b8", "sha256": "db467392c66fa563a0fc117c68e9eec5d3b98b5ebe4078757252513c01c707d7" }, "downloads": -1, "filename": "pybt-0.0.11.tar.gz", "has_sig": false, "md5_digest": "28f53ccc4aee74bdd685b2c8386b05b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3636, "upload_time": "2019-01-17T08:41:47", "url": "https://files.pythonhosted.org/packages/47/43/d65955766dbcbcc128c7cba6487aa96b84ac68c64d1e12b12a9b16f1700d/pybt-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "775f17307a27da230b182b0ddf475fb1", "sha256": "728a3d5f2687833ea91a045326bab8fe3e841c82face8514de0d9c352d6546d4" }, "downloads": -1, "filename": "pybt-0.0.12.tar.gz", "has_sig": false, "md5_digest": "775f17307a27da230b182b0ddf475fb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4564, "upload_time": "2019-01-18T07:49:31", "url": "https://files.pythonhosted.org/packages/80/55/37da4166a7e39d7b579e040e5493b1dd9d10da3c16a16057e7c3173434dd/pybt-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "8bb4b4fec521f45fba4242e5dc4f22cd", "sha256": "626718d9797816e9180355e76214e989072b406e33be62a4877d6a68887d1134" }, "downloads": -1, "filename": "pybt-0.0.13.tar.gz", "has_sig": false, "md5_digest": "8bb4b4fec521f45fba4242e5dc4f22cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5029, "upload_time": "2019-01-24T06:03:55", "url": "https://files.pythonhosted.org/packages/2a/b8/26c3ce79295e3e9ce46b806d17145fd9bc9deb8eef7aa9736040acbe16de/pybt-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "e897f0de17cd15d8f38da7d27817e7f3", "sha256": "bb20c998bb794da93677780fa38c0b1c8247dd8463ba0de4b9c85c695bd908ff" }, "downloads": -1, "filename": "pybt-0.0.14.tar.gz", "has_sig": false, "md5_digest": "e897f0de17cd15d8f38da7d27817e7f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5053, "upload_time": "2019-01-24T06:10:35", "url": "https://files.pythonhosted.org/packages/e5/5e/99120988c9c9f3393988b44aa2c4c3d519d59375228a893eb0b075e8ab9a/pybt-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "cfcda8789f18bb053780c5d72cccc078", "sha256": "16dd0ffad55913e00ea27d95f2888497c4adf9067b303f49eecfb3357a4c005d" }, "downloads": -1, "filename": "pybt-0.0.15.tar.gz", "has_sig": false, "md5_digest": "cfcda8789f18bb053780c5d72cccc078", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5054, "upload_time": "2019-01-24T06:19:50", "url": "https://files.pythonhosted.org/packages/fd/46/037f10a14e8616e1c18c5784fe708d2ce649032650139df7086c5432194e/pybt-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "20883225f54c89a26a318b24645b1fcd", "sha256": "a92e819bff39ec4bb7ea9e165f425ccbde002fe35fb8834d62723306a8d54064" }, "downloads": -1, "filename": "pybt-0.0.16.tar.gz", "has_sig": false, "md5_digest": "20883225f54c89a26a318b24645b1fcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5048, "upload_time": "2019-01-24T06:22:15", "url": "https://files.pythonhosted.org/packages/97/74/c5fa3bc401cf164dc52b1d58edc1effe75331d3dd4eb5bc9706a29cae374/pybt-0.0.16.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "fbe15c87c4afde77f4a27ed236d10e73", "sha256": "d7623818b691527c525cf4ba5598b700599b8b8820d00585d6c5319f3a3450c4" }, "downloads": -1, "filename": "pybt-0.0.17.tar.gz", "has_sig": false, "md5_digest": "fbe15c87c4afde77f4a27ed236d10e73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5050, "upload_time": "2019-01-24T06:28:40", "url": "https://files.pythonhosted.org/packages/82/e0/5145168ec2fdda990302900204ed5d7c9c7c9ed612c24d894e12870ea575/pybt-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "7fdd8d8010e93fa3c1254124190c3946", "sha256": "bc036166ef04dd5707155ccb469662d1b98c7b1847154c15e681369870fa2dbb" }, "downloads": -1, "filename": "pybt-0.0.18.tar.gz", "has_sig": false, "md5_digest": "7fdd8d8010e93fa3c1254124190c3946", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6603, "upload_time": "2019-01-28T08:24:13", "url": "https://files.pythonhosted.org/packages/ea/34/4ab05de45ddf46c28e241d9a726ef8d96c74816934b0109d0b5173b0e829/pybt-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "01f0a7fb89fcb26395599b0fa27c74dc", "sha256": "8630134ec79caf437580603e6e98da179c0cd9cc425a026ba927b90067676863" }, "downloads": -1, "filename": "pybt-0.0.19.tar.gz", "has_sig": false, "md5_digest": "01f0a7fb89fcb26395599b0fa27c74dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6670, "upload_time": "2019-01-29T02:55:12", "url": "https://files.pythonhosted.org/packages/85/98/d3b8c30b149b3c4033e872750816f81d6771ff285d4434bf481371ebccb0/pybt-0.0.19.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "24c60ff57fc28e76130c82d2a2f391fb", "sha256": "823023523be0bd15f59a7d2693c72e49cb535202eefd3a40dcc368fcdd3a6ca0" }, "downloads": -1, "filename": "pybt-0.0.2.tar.gz", "has_sig": false, "md5_digest": "24c60ff57fc28e76130c82d2a2f391fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2071, "upload_time": "2018-11-27T08:03:47", "url": "https://files.pythonhosted.org/packages/c6/4f/c8dae32b5e43944ad7ba8396c13c33574a77302711f880e9255df588e42d/pybt-0.0.2.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "afdd64768685a2aeb17abb612d515e52", "sha256": "554a10e2ef1626692cc0339ca0df9ff0ccd825953daf9e0af0f49dc7a36ac161" }, "downloads": -1, "filename": "pybt-0.0.20.tar.gz", "has_sig": false, "md5_digest": "afdd64768685a2aeb17abb612d515e52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17723, "upload_time": "2019-03-04T06:20:01", "url": "https://files.pythonhosted.org/packages/49/5c/45c8e99eb980231bb18f1a557f08cc4f70a662732b5245762efbd7f28a65/pybt-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "6dc8035c5406bb4190396d9bed488cbe", "sha256": "631b7577b2f8eb5a0263fd7dacf7991bfb977824e69638c15ecdf5d958ab1a72" }, "downloads": -1, "filename": "pybt-0.0.21.tar.gz", "has_sig": false, "md5_digest": "6dc8035c5406bb4190396d9bed488cbe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21685, "upload_time": "2019-04-01T01:37:28", "url": "https://files.pythonhosted.org/packages/da/4c/ff1a81efa956b51c00fc5bf346d5c93f30c4b3bc63cd6ffc1acd51221be6/pybt-0.0.21.tar.gz" } ], "0.0.24": [ { "comment_text": "", "digests": { "md5": "8330dc16cfb2e0de4d2fdbc49e6ad04c", "sha256": "5a74e98acf31e685652e1102e845c39c582a872eca668e36f3fb00c9977d10c2" }, "downloads": -1, "filename": "pybt-0.0.24.tar.gz", "has_sig": false, "md5_digest": "8330dc16cfb2e0de4d2fdbc49e6ad04c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 716442, "upload_time": "2019-04-23T03:21:17", "url": "https://files.pythonhosted.org/packages/21/e7/a48c1121ce429a68d30a29fa197cf05e235536801924d1007ca067284015/pybt-0.0.24.tar.gz" } ], "0.0.25": [ { "comment_text": "", "digests": { "md5": "e8832d8ee981073b89b574c6eb38a0dc", "sha256": "73f087c5657a1efc3735232fb4697b163d56b09bd41184ed835476517fa5f179" }, "downloads": -1, "filename": "pybt-0.0.25.tar.gz", "has_sig": false, "md5_digest": "e8832d8ee981073b89b574c6eb38a0dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 717687, "upload_time": "2019-05-19T06:54:10", "url": "https://files.pythonhosted.org/packages/a5/d3/e098d01196eaf03a45281783bf3b7d3b1b0c507d0dc85829e2d9e1ed8bc4/pybt-0.0.25.tar.gz" } ], "0.0.26": [ { "comment_text": "", "digests": { "md5": "9d7873e0ce957c7536a28f5b10e7403a", "sha256": "838823e5f7298beaea6eeef8c924491e5f050aec61e15a17ceddc7eed8c894a2" }, "downloads": -1, "filename": "pybt-0.0.26.tar.gz", "has_sig": false, "md5_digest": "9d7873e0ce957c7536a28f5b10e7403a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 717799, "upload_time": "2019-05-20T05:23:49", "url": "https://files.pythonhosted.org/packages/28/41/a682125a08e5bf590d758b21e1419d1a15f310915a4481f78b21a88c8b20/pybt-0.0.26.tar.gz" } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "bb06276891075038520d8af418d4df71", "sha256": "851734488f802a3231c62dcd41caba5c41973d05e18b8d45bdbf1624468f5cc8" }, "downloads": -1, "filename": "pybt-0.0.32.tar.gz", "has_sig": false, "md5_digest": "bb06276891075038520d8af418d4df71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4218269, "upload_time": "2019-06-24T03:09:56", "url": "https://files.pythonhosted.org/packages/1b/63/70e52238a522dde6b318c45c11ad563a41d2e1c48eefd734a6ca17518822/pybt-0.0.32.tar.gz" } ], "0.0.33": [ { "comment_text": "", "digests": { "md5": "46d2f1ad33b62091e98c6f91745e24cd", "sha256": "1ef7173980c76fb684f29939b428860c27d16825dd597fda54682d68592db900" }, "downloads": -1, "filename": "pybt-0.0.33.tar.gz", "has_sig": false, "md5_digest": "46d2f1ad33b62091e98c6f91745e24cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4220189, "upload_time": "2019-06-24T03:20:48", "url": "https://files.pythonhosted.org/packages/d2/f4/cd495dbee5e25d6c47cc5c3659ea1d7ffbb41cf9c1272279f1187fcf473e/pybt-0.0.33.tar.gz" } ], "0.0.34": [ { "comment_text": "", "digests": { "md5": "8398888382f589992a067cbea93241f4", "sha256": "61d8604cca0e71a138da1780207c3d4b4f4646a68c90f47b74fbc7986f339114" }, "downloads": -1, "filename": "pybt-0.0.34.tar.gz", "has_sig": false, "md5_digest": "8398888382f589992a067cbea93241f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1582367, "upload_time": "2019-07-04T00:49:36", "url": "https://files.pythonhosted.org/packages/db/62/040e98b77491234f735501c79d30fc9ed2ce936b54c13dfca48e9f7ec26f/pybt-0.0.34.tar.gz" } ], "0.0.35": [ { "comment_text": "", "digests": { "md5": "17b17477d7e592ff96fcd19ed7a3d37c", "sha256": "e094b89cc8871d26e75116dd223923cf4df61580ade5c3577891814f1b700fb8" }, "downloads": -1, "filename": "pybt-0.0.35.tar.gz", "has_sig": false, "md5_digest": "17b17477d7e592ff96fcd19ed7a3d37c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2877274, "upload_time": "2019-07-04T09:06:32", "url": "https://files.pythonhosted.org/packages/3a/08/c938bf54292c39a858aaf33ab41da7df80be7cc1bbde34db57bc254fa125/pybt-0.0.35.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "42af328d94ce1b265aebccc77173397d", "sha256": "f170f3138f588c05fa80f6865547cd88d3f71216fc9a3e4e01f8f8182fc9c211" }, "downloads": -1, "filename": "pybt-0.0.5.tar.gz", "has_sig": false, "md5_digest": "42af328d94ce1b265aebccc77173397d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2770, "upload_time": "2018-11-28T06:03:33", "url": "https://files.pythonhosted.org/packages/61/51/c829a521abcff050228c92ecb14c99c6541b6cd46f26e15a8ff5b52e9da8/pybt-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "52335d9fd96c13ba127bfb385ed19156", "sha256": "18718a1e2bf25302dccf2287881d8be1e2c97ee45a479189ad88c53a2333ee09" }, "downloads": -1, "filename": "pybt-0.0.6.tar.gz", "has_sig": false, "md5_digest": "52335d9fd96c13ba127bfb385ed19156", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3208, "upload_time": "2018-11-28T06:21:17", "url": "https://files.pythonhosted.org/packages/08/8a/4fd847a2a28416883f6949d8b1ddbf0df6847df73846d0ce0afb4564241f/pybt-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "5819907492f938abb7ed5ad7acd11116", "sha256": "8d950a5e7af867a4a077b6e33c42952b47bb7849c2a3c2d037b872a32f52b0c2" }, "downloads": -1, "filename": "pybt-0.0.7.tar.gz", "has_sig": false, "md5_digest": "5819907492f938abb7ed5ad7acd11116", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3243, "upload_time": "2018-11-28T06:31:18", "url": "https://files.pythonhosted.org/packages/3a/ab/5c68594b1697272d1df635655279bd29683b5653d798daff7f58dd27fe55/pybt-0.0.7.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "521d2209f59773777e0b5c9ca427a3cc", "sha256": "5bb733099d9d7f5c32c35b9a384aaded75bcb88845eab4c9e0d655cf890d93b4" }, "downloads": -1, "filename": "pybt-0.0.9.tar.gz", "has_sig": false, "md5_digest": "521d2209f59773777e0b5c9ca427a3cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3490, "upload_time": "2018-11-28T06:50:27", "url": "https://files.pythonhosted.org/packages/fe/1a/fd47de666b08a2efe8bdcaedd8d4be96512f9cefe7e27745f2f38a0976c8/pybt-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "17b17477d7e592ff96fcd19ed7a3d37c", "sha256": "e094b89cc8871d26e75116dd223923cf4df61580ade5c3577891814f1b700fb8" }, "downloads": -1, "filename": "pybt-0.0.35.tar.gz", "has_sig": false, "md5_digest": "17b17477d7e592ff96fcd19ed7a3d37c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2877274, "upload_time": "2019-07-04T09:06:32", "url": "https://files.pythonhosted.org/packages/3a/08/c938bf54292c39a858aaf33ab41da7df80be7cc1bbde34db57bc254fa125/pybt-0.0.35.tar.gz" } ] }