{
"info": {
"author": "OpenTrade Solutions",
"author_email": "info@opentradesolutions.com",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"Intended Audience :: Financial and Insurance Industry",
"Intended Audience :: Information Technology",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Database :: Database Engines/Servers",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "\nOpenTick\n========\n\n\n.. image:: https://github.com/opentradesolutions/opentrade/raw/master/web/img/ot.png\n :target: https://github.com/opentradesolutions/opentrade/raw/master/web/img/ot.png\n :alt: OpenTrade Logo\n\n\nOpenTick is a fast tick database for financial timeseries data, built on `FoundationDB `_ with simplified SQL layer. Here is the Python binding for OpenTick Database. For more information, please check `OpenTradeSolutions website `_.\n\nFeatures:\n=========\n\n\n* Built-in price adjustment support\n* Nanosecond support\n* Python, C++ and Go SDK\n* Both sync and async query\n* Implicit SQL statement prepare\n\nInstallation on Ubuntu\n======================\n\nYou need to use **Go >=1.11** which has module support.\n\n.. code-block:: bash\n\n sudo apt install -y python\n wget https://www.foundationdb.org/downloads/6.0.18/ubuntu/installers/foundationdb-server_6.0.18-1_amd64.deb\n wget https://www.foundationdb.org/downloads/6.0.18/ubuntu/installers/foundationdb-clients_6.0.18-1_amd64.deb\n sudo dpkg -i foundationdb-clients_6.0.18-1_amd64.deb foundationdb-server_6.0.18-1_amd64.deb\n git clone https://github.com/opentradesolutions/opentick\n make build\n sudo apt install nodejs\n sudo npm install -g pm2\n pm2 start ./opentick\n\n**Note:** FoundationDB runs in memory storage mode and only one process by default. You can change it to disk storage as belows:\n\n.. code-block:: bash\n\n user@host$ fdbcli\n fdb> configure ssd\n\nFore more configuration on FoundationDB, please check `FoundationDB Configuration `_\n\nUsage\n=====\n\n`Python `_\n\n`C++ `_\n\n`Go `_\n\nPerformance\n===========\n\n100k ohlcv bar inserted in 1 second.\n\n.. code-block:: bash\n\n user@host:~/opentick/bindings/go$ go run test.go\n 2018/11/27 21:27:23 4.500470184s 5.500314708s 0 100000 all insert futures get done\n 2018/11/27 21:27:25 861.306778ms 1.139363333s 0 10 all batch insert futures get done\n 2018/11/27 21:27:26 805.542584ms 100000 retrieved with ranges\n 2018/11/27 21:27:27 1.782497936s 100000 retrieved with async\n 2018/11/27 21:27:29 1.424262818s 100000 retrieved with one sync\n\n.. code-block:: bash\n\n user@host:~/opentick/bindings/python$ ./test.py\n 2018-11-27 21:29:10.168138 0:00:00.200577 0:00:06.724991 0 100000 all insert futures get done\n 2018-11-27 21:29:12.192570 0:00:00.176540 0:00:00.959563 0 10 all batch insert futures get done\n 2018-11-27 21:29:13.460025 0:00:01.267462 100000 retrieved with ranges\n 2018-11-27 21:29:15.077686 0:00:01.617666 100000 retrieved with async\n 2018-11-27 21:29:16.777043 0:00:01.699361 100000 retrieved with one sync\n\n.. code-block:: bash\n\n user@host:~/opentick/bindings/cpp$ make test\n 21:33:19.231156889: 4.22207s 4.84954s 0 100000 all insert futures get done\n 21:33:20.172744180: 0.447708s 0.934337s 0 10 all batch insert futures get done\n 21:33:21.677161076: 1.49497s 100000 retrieved with async\n\nSample Code (C++)\n=================\n\n\n* \n **Create database and table**\n\n .. code-block:: C++\n\n auto conn = Connection::Create(\"127.0.0.1\", 1116);\n conn->Start();\n conn->Execute(\"create database if not exists test\");\n conn->Use(\"test\");\n conn->Execute(R\"(\n create table if not exists test(sec int, interval int, tm timestamp,\n open double, high double, low double, close double, v double, vwap\n double, primary key(sec, interval, tm))\n )\");\n\n* \n **Execute**\n\n .. code-block:: C++\n\n // opentick prepares the sql statement automatically, no need to prepare explicitly\n auto fut = conn->ExecuteAsync(\n \"select * from test where sec=1 and interval=?\", Args{1}));\n auto res = fut->Get(); // blocked wait until execution done\n // Get last 2 rows ordering by primary key\n auto res = conn->Execute(\n \"select tm from test where sec=1 and interval=? limit -2\", Args{1});\n\n* \n **Insert**\n\n .. code-block:: C++\n\n static const std::string kInsert =\n \"insert into test(sec, interval, tm, open, high, low, close, vol, vwap) \"\n \"values(?, ?, ?, ?, ?, ?, ?, ?, ?)\";\n std::vector futs;\n for (auto i = 0; i < 1000; ++i) {\n futs.push_back(conn->ExecuteAsync(kInsert, Args{1, 1, system_clock::now(), 2.2, 2.4, 2.1, 2.3, 1000000, 2.25}));\n }\n // wait for all insertion done\n for (auto fut : futs) fut->Get();\n\n* \n **Batch Insert**\n\n .. code-block:: C++\n\n Argss argss;\n for (auto i = 0; i < 1000; ++i) {\n argss.push_back(Args{1, i, system_clock::now(), 2.2, 2.4, 2.1, 2.3, 1000000, 2.25});\n }\n conn->BatchInsert(kInsert, argss);\n\n* \n **Price Adjustments**\n\n.. code-block:: C++\n\n auto res = conn->Execute(\n \"select tm, adj(open), adj(high), adj(low), adj(close), adj(vol) from test where sec=1 and interval=? limit -2\", Args{1});\n\nFor more details, please checkout `adj_test.go `_\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/opentradesolutions/opentick",
"keywords": "",
"license": "Apache License",
"maintainer": "",
"maintainer_email": "",
"name": "opentick",
"package_url": "https://pypi.org/project/opentick/",
"platform": "",
"project_url": "https://pypi.org/project/opentick/",
"project_urls": {
"Homepage": "https://github.com/opentradesolutions/opentick"
},
"release_url": "https://pypi.org/project/opentick/1.2.0/",
"requires_dist": [
"pytz",
"six (>=1.10.0)",
"pymongo (>=3.7.0)"
],
"requires_python": "",
"summary": "OpenTick SDK",
"version": "1.2.0",
"yanked": false,
"yanked_reason": null
},
"last_serial": 6045515,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "afdf9a89b23629a8d98e721896fe7528",
"sha256": "0c88b1c0ae94461b557fd903d1ec5d1bdb4565ee8b2f062b750cf6ffac3b6de0"
},
"downloads": -1,
"filename": "opentick-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "afdf9a89b23629a8d98e721896fe7528",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8526,
"upload_time": "2019-04-09T02:32:57",
"upload_time_iso_8601": "2019-04-09T02:32:57.181632Z",
"url": "https://files.pythonhosted.org/packages/49/92/15fec37a6d595f5f2326efc346ede217ed43527d6cee4b92f33b15f64a5a/opentick-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "878076dbb89e1a2c8543cb35d0ff8223",
"sha256": "6b389df8c22c57d7c504839b0f911f4c8bda93bc27aa7f65622cc9ad9f0beb91"
},
"downloads": -1,
"filename": "opentick-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "878076dbb89e1a2c8543cb35d0ff8223",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4052,
"upload_time": "2019-04-09T02:32:59",
"upload_time_iso_8601": "2019-04-09T02:32:59.415429Z",
"url": "https://files.pythonhosted.org/packages/e8/38/d704d1516cd1e351b8ce2fd3166369087ac40622f09ba94e0a3e8e534ec6/opentick-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "8eba90fc03ca59e3a209f50f3c817783",
"sha256": "4c107fffabc1aab6f992205594e4cc9d916eeb3e461bc2119a3ab7c2d33fa08c"
},
"downloads": -1,
"filename": "opentick-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8eba90fc03ca59e3a209f50f3c817783",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8909,
"upload_time": "2019-04-09T07:07:46",
"upload_time_iso_8601": "2019-04-09T07:07:46.006857Z",
"url": "https://files.pythonhosted.org/packages/61/c7/19510b147c67e17811a2b84addbec19a77f7ae5b95ad64a6c486792fa923/opentick-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "f14c8414cd7053720034aa8afebeb2c4",
"sha256": "c0a6b1f1c9bc74c81b631bdf0de90f2544d503f57411f0f54fdce06d76791d0f"
},
"downloads": -1,
"filename": "opentick-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "f14c8414cd7053720034aa8afebeb2c4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5978,
"upload_time": "2019-04-09T07:07:47",
"upload_time_iso_8601": "2019-04-09T07:07:47.472463Z",
"url": "https://files.pythonhosted.org/packages/9f/fc/3e53955c9b06f44139f88d3fb4e9aab4d05a0dc0f1c162d5f622fdedb514/opentick-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "611ff7c0c5e24afa1a1626b77ef830ca",
"sha256": "ea8067ebc2c181c5eae80a2d3cf3a86c5fe8b8f216e32ba7b0b629afd9e74065"
},
"downloads": -1,
"filename": "opentick-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "611ff7c0c5e24afa1a1626b77ef830ca",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9011,
"upload_time": "2019-04-09T07:15:34",
"upload_time_iso_8601": "2019-04-09T07:15:34.230322Z",
"url": "https://files.pythonhosted.org/packages/62/99/47c8bb096c425d00547e6a3cca123b2d7ab71b8508b58e58e9e3242a8734/opentick-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "4ecb1bd808f04483b522fff7a33eec83",
"sha256": "b6f4a584d313d916e96fe3627c5b16f8e362cc493a4cc19016b9fc54e4734bb3"
},
"downloads": -1,
"filename": "opentick-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "4ecb1bd808f04483b522fff7a33eec83",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6407,
"upload_time": "2019-04-09T07:15:35",
"upload_time_iso_8601": "2019-04-09T07:15:35.865115Z",
"url": "https://files.pythonhosted.org/packages/55/85/20c84367e5914bb9672acb95358104eef4d6ea8cb6819beab6edd479c447/opentick-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "010c18c3ed523f17d8ba56f581f1c42a",
"sha256": "5b62f9e7f7d20039a04707668e632e8811ae15b5508cafc5ec56a45360fabcbf"
},
"downloads": -1,
"filename": "opentick-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "010c18c3ed523f17d8ba56f581f1c42a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9119,
"upload_time": "2019-04-09T07:21:49",
"upload_time_iso_8601": "2019-04-09T07:21:49.540981Z",
"url": "https://files.pythonhosted.org/packages/25/f1/400988cb141ecdbee6313f8870744053d349695f234e39377adec1985b69/opentick-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "ecb93f413853433f4cb770d2706fbee7",
"sha256": "1ab538cf691b0f4822565b6adbd2cece2d3746635e210da1c76f06ca3f410422"
},
"downloads": -1,
"filename": "opentick-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "ecb93f413853433f4cb770d2706fbee7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6454,
"upload_time": "2019-04-09T07:21:51",
"upload_time_iso_8601": "2019-04-09T07:21:51.096459Z",
"url": "https://files.pythonhosted.org/packages/f4/60/ac60c38be7644dcf109f2781463388a7c4cd12f9b9720263335de5bb4139/opentick-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.4": [
{
"comment_text": "",
"digests": {
"md5": "ec69fca748ab99bb64e30cb8afd5975a",
"sha256": "d7594dd9df9e60a7ce1faec3d20c053c35cfbcb64c5ab37b978c25777719db85"
},
"downloads": -1,
"filename": "opentick-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ec69fca748ab99bb64e30cb8afd5975a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9138,
"upload_time": "2019-10-09T09:33:45",
"upload_time_iso_8601": "2019-10-09T09:33:45.754859Z",
"url": "https://files.pythonhosted.org/packages/24/ae/e331f5bec10e5bea7e9b3a2b25fb4112a7a0ea59ef66dfa71babace4224e/opentick-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "62cf608c3136f858ccc0167bcedcda3c",
"sha256": "e87605325272d8c39eebebf5fd4247a59b51f660f078902af53e753c0d8aa2f0"
},
"downloads": -1,
"filename": "opentick-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "62cf608c3136f858ccc0167bcedcda3c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6497,
"upload_time": "2019-10-09T09:33:47",
"upload_time_iso_8601": "2019-10-09T09:33:47.898473Z",
"url": "https://files.pythonhosted.org/packages/ac/6c/88ac285220d2541aa5f178754822393b3b938ad37d9f74bad0a4dff958e8/opentick-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.0.5": [
{
"comment_text": "",
"digests": {
"md5": "5715b25c4347d4edfd574210ba9c2d41",
"sha256": "2d18bccb8e9835c5f96b3a8d5572735c5b94e9925cc188b4dd7d593cc89c3ef5"
},
"downloads": -1,
"filename": "opentick-1.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5715b25c4347d4edfd574210ba9c2d41",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10671,
"upload_time": "2019-10-21T04:04:54",
"upload_time_iso_8601": "2019-10-21T04:04:54.582595Z",
"url": "https://files.pythonhosted.org/packages/d1/49/dcdb9c0196a2ba1d237e20a559696382709dec24aa440b672b8d3099183c/opentick-1.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a8249e8d05e456baf67fdb5bd437d418",
"sha256": "d147e5554f5bc9c56e0b124c7928be174d1370a6b6cb5a6446d7afb5550c94de"
},
"downloads": -1,
"filename": "opentick-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "a8249e8d05e456baf67fdb5bd437d418",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6705,
"upload_time": "2019-10-21T04:04:56",
"upload_time_iso_8601": "2019-10-21T04:04:56.657102Z",
"url": "https://files.pythonhosted.org/packages/3c/7b/00a4b74e79e2ba645c89f5cbe61e0eb192e0250f2db2489d760c08595e1f/opentick-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "6cfb259a468eed38fc38cbbfd25eef99",
"sha256": "0df9697b14becc4dbcfc7024eba6c925f1c9df02a3b409c6cd7f0e1f62a6be99"
},
"downloads": -1,
"filename": "opentick-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6cfb259a468eed38fc38cbbfd25eef99",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11423,
"upload_time": "2019-10-25T19:16:49",
"upload_time_iso_8601": "2019-10-25T19:16:49.586376Z",
"url": "https://files.pythonhosted.org/packages/18/07/4dab8dfb6949b85905934020cefff0f5e33966e2e8c0c8b1a1258ad078f1/opentick-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "b371d963d391f06bb7997316dd0e0cd6",
"sha256": "57ce3c7894f8c803d9cc960c0ab4bff18a9e6361995db7b5561b7351a5859cce"
},
"downloads": -1,
"filename": "opentick-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b371d963d391f06bb7997316dd0e0cd6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7434,
"upload_time": "2019-10-25T19:16:51",
"upload_time_iso_8601": "2019-10-25T19:16:51.667576Z",
"url": "https://files.pythonhosted.org/packages/8f/bc/4e79707d146d9b362ad7dd490fbfd2422b9d5715a18fab899eded773aa47/opentick-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "68aec7d7c08e1d6e676d206308e19cd7",
"sha256": "2b62bb9e9e57544b57e02fc88416a278a6bcc4a943b07d817a3bcda9c59a8ccd"
},
"downloads": -1,
"filename": "opentick-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "68aec7d7c08e1d6e676d206308e19cd7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11454,
"upload_time": "2019-10-26T04:07:39",
"upload_time_iso_8601": "2019-10-26T04:07:39.406795Z",
"url": "https://files.pythonhosted.org/packages/c3/49/bbfabfa61a5696a381e427836482a6560130345042b7bb329236054bf12b/opentick-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "2cc832709ad37c60a6360cf73b32631c",
"sha256": "89939d4bbbc68169beb6f3bcf0e25eef8e69b5eb626873ac487b428f40ca5e88"
},
"downloads": -1,
"filename": "opentick-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "2cc832709ad37c60a6360cf73b32631c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7457,
"upload_time": "2019-10-26T04:07:41",
"upload_time_iso_8601": "2019-10-26T04:07:41.530142Z",
"url": "https://files.pythonhosted.org/packages/ad/e6/9ad4011a5eec10c773e5a660be2647ba00b35458817b19cc8f36b7b8638b/opentick-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"1.2.0": [
{
"comment_text": "",
"digests": {
"md5": "d9e6821110ede04464ac2e73c5be6139",
"sha256": "973a18189652cbac447669b75efc81114605a5e26d74f54261d8b96a88a1a159"
},
"downloads": -1,
"filename": "opentick-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d9e6821110ede04464ac2e73c5be6139",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11521,
"upload_time": "2019-10-29T06:53:46",
"upload_time_iso_8601": "2019-10-29T06:53:46.996318Z",
"url": "https://files.pythonhosted.org/packages/c1/02/60094e22f011d3946ce675b8bd12fbe1069ea80c1b7eae493ddf54eb87b4/opentick-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "72df968d59f5a215caeae8461a316690",
"sha256": "06693181cf676f57aa51f98b6ba3c1eaa5ffb61bbe0039de757b200a1d4479c8"
},
"downloads": -1,
"filename": "opentick-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "72df968d59f5a215caeae8461a316690",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7514,
"upload_time": "2019-10-29T06:53:48",
"upload_time_iso_8601": "2019-10-29T06:53:48.989564Z",
"url": "https://files.pythonhosted.org/packages/68/25/129ecf5c43591b0057d67e5c7532574361c0cf3aa407aec95b6bb2c72d54/opentick-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "d9e6821110ede04464ac2e73c5be6139",
"sha256": "973a18189652cbac447669b75efc81114605a5e26d74f54261d8b96a88a1a159"
},
"downloads": -1,
"filename": "opentick-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d9e6821110ede04464ac2e73c5be6139",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11521,
"upload_time": "2019-10-29T06:53:46",
"upload_time_iso_8601": "2019-10-29T06:53:46.996318Z",
"url": "https://files.pythonhosted.org/packages/c1/02/60094e22f011d3946ce675b8bd12fbe1069ea80c1b7eae493ddf54eb87b4/opentick-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "72df968d59f5a215caeae8461a316690",
"sha256": "06693181cf676f57aa51f98b6ba3c1eaa5ffb61bbe0039de757b200a1d4479c8"
},
"downloads": -1,
"filename": "opentick-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "72df968d59f5a215caeae8461a316690",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7514,
"upload_time": "2019-10-29T06:53:48",
"upload_time_iso_8601": "2019-10-29T06:53:48.989564Z",
"url": "https://files.pythonhosted.org/packages/68/25/129ecf5c43591b0057d67e5c7532574361c0cf3aa407aec95b6bb2c72d54/opentick-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}