{ "info": { "author": "Numer.ai", "author_email": "contact@numer.ai", "bugtrack_url": null, "classifiers": [], "description": "# numerai-cli\n\n[![CircleCI](https://circleci.com/gh/numerai/numerai-cli.svg?style=svg)](https://circleci.com/gh/numerai/numerai-cli)\n[![PyPI](https://img.shields.io/pypi/v/numerai-cli.svg?color=brightgreen)](https://pypi.org/project/numerai-cli/)\n\nThis is a CLI for setting up a Numerai compute node and deplying your models to it. This sets up a compute cluster in AWS (Amazon Web Services), and is architected to cost a minimal amount of money to run (on average, you will spend less than $1 per month).\n\nQuestions or feedback? Join us at [RocketChat](https://community.numer.ai/channel/compute)\n\n![Architecture Diagram](https://github.com/numerai/numerai-cli/blob/master/docs/compute_architecture.png)\n\n- [Prerequisites](#prerequisites)\n- [Setup](#setup)\n- [Quickstart](#quickstart)\n- [Compute Node Architecture](#compute-node-architecture)\n- [Docker Example Explained](#docker-example)\n- [Commands](#commands)\n- [Troubleshooting](#troubleshooting)\n- [Prerequisites Help](#prerequisites-help)\n- [Uninstall](#uninstall)\n\n## Prerequisites\n\nAll you need is:\n\n1. AWS (Amazon Web Services) account setup with an API key\n2. A Numerai API key\n3. Docker setup on your machine\n4. Python3 (your model code doesn't have to use Python3, but this CLI tool needs it)\n\nSee the [Prerequisites Help](#prerequisites-help) section if you need help getting these setup.\n\nThis project has been tested and found working on OSX, Windows 10, and Ubuntu 18.04, but should theoretically work anywhere that docker and Python are available.\n\n## Setup\n\nInstall this library with:\n\n```\npip3 install numerai-cli\n```\n\n## Quickstart\n\nThe following instructions will get you setup with a compute node in a matter of minutes:\n\n```\nmkdir example-numerai\ncd example-numerai\n\nnumerai setup\nnumerai docker copy-example\nnumerai docker deploy\n```\n\n`numerai setup` will prompt your for AWS and Numerai API keys. Please refer to the [AWS](#aws) and [Numerai API Key](#numerai-api-key) sections for instructions on how to obtain those.\n\nYour compute node is now setup and ready to run. Look in the `.numerai/submission_url.txt` file to see your submission url that you will provide to Numerai as your webhook url. Go to [your Numerai account](https://numer.ai/account) and select the \"Compute\" section to enter it there.\n\n![Account Settings](https://github.com/numerai/numerai-cli/blob/master/docs/account_settings.png)\n\nThe default example does _not_ stake, so you will still have to manually do that every week. Alternatively, check out the bottom of predict.py for example code on how to stake automatically.\n\n### Testing\n\nYou can test the webhook url directly like so:\n\n```\nnumerai compute test-webhook\n```\n\nIf the command succeeds, it will return quickly with a status of \"pending\". This means that your container has been scheduled to run but hasn't actually started yet.\n\nYou can check that your job has been scheduled by running:\n\n```\nnumerai compute status\n```\n\nAnd once it's in the `RUNNING` state, you can look at the logs:\n\n```\nnumerai compute logs\n```\n\nYou can also check for the raw AWS logs at https://console.aws.amazon.com/ecs/home?region=us-east-1#/clusters/numerai-submission-ecs-cluster/tasks or logs from your container at https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logStream:group=/fargate/service/numerai-submission\n\nNOTE: the container takes a little time to schedule. The first time it runs also tends to take longer (2-3min), with subsequent runs starting a lot faster.\n\n#### Local Testing\n\nYou can test your container locally by running:\n\n```\nnumerai docker run\n```\n\nThis will run the container exactly like it runs in the cloud. Keep in mind that this will be limited by your machine's RAM, or in the case of Windows/OSX, you can increase how much memory is allocated to docker: [Windows](https://docs.docker.com/docker-for-windows/#advanced) or [OSX](https://docs.docker.com/docker-for-mac/#advanced)\n\n### Common Problems\n\n#### `numerai` not in PATH\n\n```\nnumerai: command not found\n```\n\nTry and run `~/.local/bin/numerai` on osx/linux or `%LOCALAPPDATA%\\Programs\\Python\\Python37-32\\Scripts\\numerai.exe` on Windows.\n\nAlternatively, exit your terminal/command prompt and re-open it. By default, pip will try to add itself to your PATH for subsequent runs, but it requires you to restart the terminal.\n\n#### Docker not installed\n\n```\n...\nsubprocess.CalledProcessError: Command 'docker run --rm -it -v /home/jason/tmp/.numerai:/opt/plan -w /opt/plan hashicorp/terraform:light init' returned non-zero exit status 127.\n```\n\nIf you're certain that docker is installed, make sure that your user can execute docker, ie. try to run `docker ps`. If that's the issue, then depending on your system, you can do the following:\n\n##### Windows/OSX\n\nMake sure the docker application is running and finished booting up. It can take a few minutes to be completely ready. When clicking on the docker tray icon, it should say \"Docker Desktop is Running\".\n\nIf you're using Docker Toolbox on Windows, then make sure you've opened the \"Docker Quickstart Terminal\".\n\n##### Linux\n\n```\nsudo usermod -aG docker $USER\n```\n\nThen reboot or logout/login for this to take effect.\n\n#### Wrong AWS API key\n\n```\n...\nError: error validating provider credentials: error calling sts:GetCallerIdentity: InvalidClientTokenId: The security token included in the request is invalid.\n status code: 403, request id: 32500359-7d9e-11e9-b0ed-596aba1b72c5\n...\nsubprocess.CalledProcessError: Command 'docker run -e \"AWS_ACCESS_KEY_ID=...\" -e \"AWS_SECRET_ACCESS_KEY=...\" --rm -it -v /home/jason/tmp/.numerai:/opt/plan -w /opt/plan hashicorp/terraform:light apply -auto-approve' returned non-zero exit status 1.\n```\n\n#### Drive not shared\n\nIf you get:\n\n```\ndocker: Error response from daemon: Drive has not been shared\n```\n\nThen you need to share your drive. See https://docs.docker.com/docker-for-windows/#shared-drives for details.\n\n## Compute Node Architecture\n\n`numerai setup` under the hood uses [Terraform](https://www.terraform.io/) to setup an AWS environment with the following:\n\n- An ECR (Elastic Container Repository) for storing docker containers\n- A Fargate task to run your compute job in the ECS (Elastic Container Service)\n- A lambda endpoint that schedules your compute job to run\n\nThere's actually a bunch of other bits of glue in AWS that are setup to run this, but these 3 are the most important. The lambda endpoint corresponds to the submission url that your provide back to Numerai. The ECR is where `numerai docker deploy` will push your image to. Fargate is where your task actually runs in the ECS, and it's where you'll want to look if things don't appear to be actually submitting.\n\n### Submission Webhook URL\n\nThis is the url that you provide back to Numerai. It's the thing that triggers the lambda and schedules your job to run. Once you've setup the webhook in your Numerai account, it will be called Saturday morning right after a new round opens, and if your job fails (determined by not having submitted all submissions sucessfully) then it will be triggered again around 24 hours later.\n\n## Docker example\n\nLets look at the docker example's files:\n\n```\n\u25b6 tree\n.\n\u251c\u2500\u2500 Dockerfile\n\u251c\u2500\u2500 model.py\n\u251c\u2500\u2500 predict.py\n\u251c\u2500\u2500 requirements.txt\n\u2514\u2500\u2500 train.py\n```\n\n### Dockerfile\n\nAnd then lets look at the Dockerfile:\n\n```\nFROM python:3\n\nADD requirements.txt .\nRUN pip install -r requirements.txt\n\nADD . .\n\nARG NUMERAI_PUBLIC_ID\nENV NUMERAI_PUBLIC_ID=$NUMERAI_PUBLIC_ID\n\nARG NUMERAI_SECRET_KEY\nENV NUMERAI_SECRET_KEY=$NUMERAI_SECRET_KEY\n\nCMD [ \"python\", \"./predict.py\" ]\n```\n\nSo breaking this down line by line:\n\n```\nFROM python:3\n```\n\nThis Dockerfile inherits from `python:3`, which provides us a working Python environment.\n\n```\nADD requirements.txt .\nRUN pip install -r requirements.txt\n```\n\nWe then add the requirements.txt file, and pip install every requirement from it. The `ADD` keyword will take a file from your current directory and copy it over to the Docker container.\n\n```\nADD . .\n```\n\nAfter that, we add everything in the current directory. This will include all of your code, as well as any other files such as serialized models that you've saved to the current directory.\n\n```\nARG NUMERAI_PUBLIC_ID\nENV NUMERAI_PUBLIC_ID=$NUMERAI_PUBLIC_ID\n\nARG NUMERAI_SECRET_KEY\nENV NUMERAI_SECRET_KEY=$NUMERAI_SECRET_KEY\n```\n\nThese are docker aguments that `numerai train/run/deploy` will always pass into docker. They are then set in your environment, so that you can access them from your script like so:\n\n```\nimport os\npublic_id = os.environ[\"NUMERAI_PUBLIC_ID\"]\nsecret_key = os.environ[\"NUMERAI_SECRET_KEY\"]\n```\n\n```\nCMD [ \"python\", \"./predict.py\" ]\n```\n\nThis sets the default command to run your docker container. This is overriden in the `numerai docker train` command, but otherwise this will be the command that is always run when using `numerai docker run` and `numerai docker deploy`\n\n### model.py\n\nThe model code lives in here. We're using numerox, but realistically this file could host any kind of model.\n\n### train.py\n\nThe code that gets run when running `numerai docker train`\n\n### predict.py\n\nThe code that gets run when running `numerai docker run` and is deployed to run in the numerai compute node after executing `numerai docker deploy`\n\n## Commands\n\n### numerai setup\n\nThe following command will setup a full Numerai compute cluster in AWS:\n\n```\nnumerai setup\n```\n\nIf this is your first time running, it will also ask for your AWS and Numerai API keys. These keys are stored in $HOME/.numerai for future runs.\n\nThere will be a bunch of output about how it's setting up the AWS cluster, but the only important part is at the end:\n\n```\n...\nOutputs:\n\ndocker_repo = 505651907052.dkr.ecr.us-east-1.amazonaws.com/numerai-submission\nsubmission_url = https://wzq6vxvj8j.execute-api.us-east-1.amazonaws.com/v1/submit\n```\n\n- submission_url is your webhook url that you will provide to Numerai. Save this for later. If you forget it, a copy is stored in `.numerai/submission_url.txt`.\n- docker_repo will be used in the next step but you don't need to worry about it since it's all automated for you\n\nThis command is idempotent and safe to run multiple times.\n\n### numerai docker copy-example\n\nIf you don't have a model already setup, then you should copy over the docker example.\n\n```\nnumerai docker copy-example\n```\n\nWARNING: this will overwrite the following files if they exist: Dockerfile, model.py, train.py, predict.py, and requirements.txt\n\nThere is also a more complicated example using multiple Numerai accounts:\n\n```\nnumerai docker copy-example --python3-multiaccount\n```\n\nAs well as using R:\n\n```\nnumerai docker copy-example --rlang\n```\n\n### numerai docker train (optional, but highly recommended)\n\nTrains your model by running `train.py`. This assumes a file called `train.py` exists and serializes your model to this directory. See the example if you want inspiration for how to do this.\n\n```\nnumerai docker train\n```\n\n### numerai docker run (optional)\n\nTo test your docker container locally, you can run it with this command. This will run the default CMD for the Dockerfile, which for the default example is `predict.py`.\n\n```\nnumerai docker run\n```\n\n### numerai docker deploy\n\nBuilds and pushes your docker image to the AWS docker repo\n\n```\nnumerai docker deploy\n```\n\n### numerai destroy\n\nIf you ever want to delete the AWS environment to save costs or start from scratch, you can run the following:\n\n```\nnumerai destroy\n```\n\nThis will delete everything, including the lambda url, the docker container and associated task, as well as all the logs\n\nThis command is idempotent and safe to run multiple times.\n\n## Troubleshooting\n\n### Container uses up too much memory and gets killed\n\nBy default, Numerai compute nodes are limited to 8GB of RAM. If you need more, you can open up `.numerai/variables.tf` and update the `fargate_cpu` and `fargate_memory` settings to the following:\n\n```\nvariable \"fargate_cpu\" {\n description = \"Fargate instance CPU units to provision (1 vCPU = 1024 CPU units)\"\n default = \"4096\"\n}\n\nvariable \"fargate_memory\" {\n description = \"Fargate instance memory to provision (in MiB)\"\n default = \"30720\"\n}\n```\n\n30720MB=30GB and is the maximum that Amazon can support.\n\nAfter you've done this, re-run `numerai setup`.\n\nNote: this will raise the costs of running your compute node, see http://fargate-pricing-calculator.site.s3-website-us-east-1.amazonaws.com/ for estimated costs. You only pay for the time it's running, rounded to the nearest minute.\n\n### Billing Alerts\n\nUnfortunately, there's no automated way to setup billing alerts. If you wish to be alerted when costs pass some threshold, you should follow the instructions at https://www.cloudberrylab.com/resources/blog/how-to-configure-billing-alerts-for-your-aws-account/ to setup one.\n\nWe estimate costs to be less than $5 per month unless your compute takes more than 12 hours a week. Also keep in mind that increasing the RAM/CPU as described in the previous section will increase your costs.\n\n## Prerequisites Help\n\n### AWS\n\nYou need to signup for AWS and create an administrative IAM user\n\n1. Sign up for an AWS account: https://portal.aws.amazon.com/billing/signup\n2. Create an IAM user with Administrative access: https://console.aws.amazon.com/iam/home?region=us-east-1#/users$new\n 1. Give user a name and select \"Programmatic accesss\"\n 2. For permissions, click \"Attach existing policies directly\" and click the check box next to \"AdministratorAccess\"\n 3. Save the \"Access key ID\" and \"Secret access key\" from the last step. You will need them later\n\n### Numerai API Key\n\n1. You will need to create an API key by going to https://numer.ai/account and clicking \"Add\" under the \"Your API keys\" section.\n2. Select the following permissions for the key: \"Upload submissions\", \"Make stakes\", \"View historical submission info\", \"View user info\"\n3. Your secret key will pop up in the bottom left of the page. Copy this somewhere safe.\n4. You public ID will be listed when you click \"View\" under \"Your API keys\". Copy this somewhere safe as well.\n\n### Python\n\nIf you don't already have Python3, you can get it from https://www.python.org/downloads/ or install it from your system's package manager.\n\n[conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/) is also a good option to get a working Python environment out of the box\n\n### Docker\n\n#### MacOS\n\nIf you have homebrew installed:\n\n```\nbrew cask install docker\n```\n\nOtherwise you can install manually at https://hub.docker.com/editions/community/docker-ce-desktop-mac\n\nYou should also increase the RAM allocated to the VM by changing \"Memory\" in the following: https://docs.docker.com/docker-for-mac/#advanced\n\n#### Windows\n\nInstall docker desktop at https://hub.docker.com/editions/community/docker-ce-desktop-windows\n\nAfter you've installed docker, you _must_ enable drive sharing: https://docs.docker.com/docker-for-windows/#shared-drives\n\nYou should also increase the RAM allocated to the VM by changing \"Memory\" in the following: https://docs.docker.com/docker-for-windows/#advanced\n\n##### Docker Toolbox\n\nIf your machine doesn't have Hyper-V enabled, then you will have to install docker toolbox: https://github.com/docker/toolbox/releases\n\nAfter it's installed, open the \"Docker QuickStart Terminal\" and run the following to increase its RAM:\n\n```\ndocker-machine rm default\ndocker-machine create -d virtualbox --virtualbox-cpu-count=2 --virtualbox-memory=4096 --virtualbox-disk-size=50000 default\n```\n\nAlso note, your code must live somewhere under your User directory (ie. C:\\Users\\USER_NAME\\ANY_FOLDER). This is a restriction of docker toolbox not sharing paths correctly otherwise.\n\n#### Linux\n\nInstall docker through your distribution.\n\nUbuntu/Debian:\n\n```\nsudo apt install docker.io\n```\n\nAlso make sure to add your user to the docker group:\n\n```\nsudo groupadd docker\nsudo usermod -aG docker $USER\n```\n\nThen reboot or logout/login for this to take effect.\n\nFor other Linux distros, check out https://docs.docker.com/install/linux/docker-ce/centos/ and find your distro on the sidebar.\n\n## Uninstall\n\nDestroy the AWS environment\n\n```\nnumerai destroy\n```\n\nAnd then uninstall the package:\n\n```\npip3 uninstall numerai-cli\n```\n\n## Contributions\n\n- Thanks to [uuazed](https://github.com/uuazed) for their work on [numerapi](https://github.com/uuazed/numerapi)\n- Thanks to [kwgoodman](https://github.com/kwgoodman) for their work on [numerox](https://github.com/kwgoodman/numerox)\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/numerai/numerai-cli", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "numerai-cli", "package_url": "https://pypi.org/project/numerai-cli/", "platform": "", "project_url": "https://pypi.org/project/numerai-cli/", "project_urls": { "Homepage": "https://github.com/numerai/numerai-cli" }, "release_url": "https://pypi.org/project/numerai-cli/0.1.19/", "requires_dist": [ "click (>=7)", "boto3", "numerapi", "colorama", "requests" ], "requires_python": "", "summary": "A library for helping to deploy a Numer.ai compute node", "version": "0.1.19" }, "last_serial": 5672997, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "8784d5e64f268614058ab22a5d0b3516", "sha256": "485e37c36c9ed7c80529b614a3a41a998058500bc0660e0ee6f29184a18597d4" }, "downloads": -1, "filename": "numerai_cli-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8784d5e64f268614058ab22a5d0b3516", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5380728, "upload_time": "2019-05-23T21:36:10", "url": "https://files.pythonhosted.org/packages/dd/cb/dda7d8b13a69fbe74e0da150ec56f2194110b3b0b84d3714261b50e428b4/numerai_cli-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "273821058fc3341eae17ff33d92ba342", "sha256": "449c1ede4e6d2d65439260b01c3705da0896df28d76b272a33daf982b6039d01" }, "downloads": -1, "filename": "numerai-cli-0.1.tar.gz", "has_sig": false, "md5_digest": "273821058fc3341eae17ff33d92ba342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5381256, "upload_time": "2019-05-23T21:36:14", "url": "https://files.pythonhosted.org/packages/b4/26/2106182a0c4a44d3a65f27d9d8a3338ca9bb1018c932b945c2a7eeded2da/numerai-cli-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d0d96b4c3900e8a8fb8ba5f47c775029", "sha256": "0ffc4e5d7576c7e4a660a27bfa5eb8c908a0a628af8b646ad7af0a789960658d" }, "downloads": -1, "filename": "numerai_cli-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d0d96b4c3900e8a8fb8ba5f47c775029", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5380757, "upload_time": "2019-05-23T21:38:17", "url": "https://files.pythonhosted.org/packages/17/9a/2d874931a4f227e24728a6a71e23fd90d57fdd6aa10fdbea9b18fa538ca3/numerai_cli-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5968ee27d92c37250fd336e9d9a946ce", "sha256": "4ff450bc1196293981050d12167e3c586a7db96c96ba6e5756b9fa86729f61d4" }, "downloads": -1, "filename": "numerai-cli-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5968ee27d92c37250fd336e9d9a946ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5381280, "upload_time": "2019-05-23T21:38:21", "url": "https://files.pythonhosted.org/packages/45/88/f9d7795451d89b7542539196ce9b96e9eed848d15884c108b1001fd155d5/numerai-cli-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "49610bf1f807c2cb9277dcfca91e0595", "sha256": "9a944063ab777ec83f32e864d85c9c724e458924d4b30c580ee22b69f7d6be0b" }, "downloads": -1, "filename": "numerai_cli-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "49610bf1f807c2cb9277dcfca91e0595", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5389816, "upload_time": "2019-06-04T00:15:55", "url": "https://files.pythonhosted.org/packages/73/54/c3f0f4536a953887379ea182a51ed19d091dbedca56dcae59a824c1719bb/numerai_cli-0.1.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fb0ba3060749109abeac824759c77e6", "sha256": "687255a597d1b2f11aec3830baf90c9daee22837439bccdf72499be792f174fe" }, "downloads": -1, "filename": "numerai-cli-0.1.10.tar.gz", "has_sig": false, "md5_digest": "2fb0ba3060749109abeac824759c77e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5387489, "upload_time": "2019-06-04T00:15:58", "url": "https://files.pythonhosted.org/packages/55/9a/3d41be8fd662d3cdec8c074050be2bdb604285585d06876ab8b7fe4ba14d/numerai-cli-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "098108d84dd73a4ada65d7e164219c63", "sha256": "84ec5783c21ab913c41c590ce60e1961883c757a15476475334c7810c71b5d18" }, "downloads": -1, "filename": "numerai_cli-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "098108d84dd73a4ada65d7e164219c63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5391136, "upload_time": "2019-06-07T19:39:55", "url": "https://files.pythonhosted.org/packages/b6/fe/705fc02e415966203e89e5b01a2fb5efd5c9ebefbf4742bbf436139e6e77/numerai_cli-0.1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4fa6034e7d207a7282ba59956250c40d", "sha256": "fd4db0595d2d3472c4d8fa53add77c2b3ff53de5def3388517ed0a928363034a" }, "downloads": -1, "filename": "numerai-cli-0.1.11.tar.gz", "has_sig": false, "md5_digest": "4fa6034e7d207a7282ba59956250c40d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5388728, "upload_time": "2019-06-07T19:39:58", "url": "https://files.pythonhosted.org/packages/fe/59/e2a45856139c0451d6ede48612340ad1d59d06018d9115193cdd3c188fc5/numerai-cli-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "8d2c4e3c8f68b9f72850a522d8f21682", "sha256": "6073f4dd967d468152efba47f0bc9658a901b25bd958a537ddf00eee19dee4c5" }, "downloads": -1, "filename": "numerai_cli-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "8d2c4e3c8f68b9f72850a522d8f21682", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5391172, "upload_time": "2019-06-09T19:04:52", "url": "https://files.pythonhosted.org/packages/00/24/91e6c9cc96a869f4d3210bbf0513663af00e80025cdc2f42847efb1cb907/numerai_cli-0.1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cce5a2d3f94394a5dbb63c191974026", "sha256": "635c93eeb80d817077e573416ca19e793b7b5fc1d5265c92693a14f9ce9a9dc6" }, "downloads": -1, "filename": "numerai-cli-0.1.12.tar.gz", "has_sig": false, "md5_digest": "7cce5a2d3f94394a5dbb63c191974026", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5388758, "upload_time": "2019-06-09T19:04:56", "url": "https://files.pythonhosted.org/packages/89/77/6047428938eb2768d8ed87862cdeb61c5479f7d4873a5be6d9b66f4954fc/numerai-cli-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "35a623314012534980b414a32288416c", "sha256": "b994130565de8271acd8282624d12b65236914efe0d455db3b06b6c70906e821" }, "downloads": -1, "filename": "numerai_cli-0.1.13-py3-none-any.whl", "has_sig": false, "md5_digest": "35a623314012534980b414a32288416c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5396707, "upload_time": "2019-06-14T00:00:22", "url": "https://files.pythonhosted.org/packages/f5/ce/5facbb431ce9a821ca123ac6df283e4c4bf96d60124341179fa0fb7f6ef6/numerai_cli-0.1.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10600ca595f0011c1bc4c277eb8f990e", "sha256": "2ea7fc76b4a5269262b3c65343e68eb5ad0504e46cf04ab6a4b95261ec1f2833" }, "downloads": -1, "filename": "numerai-cli-0.1.13.tar.gz", "has_sig": false, "md5_digest": "10600ca595f0011c1bc4c277eb8f990e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5391631, "upload_time": "2019-06-14T00:00:25", "url": "https://files.pythonhosted.org/packages/7c/be/f3caf9ee974c5a1887c5b850f0807460e589360196cff2dd4e48da7e9fd2/numerai-cli-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "2e07ccd47e81ef8a6e2ab4bf97ee9154", "sha256": "69ffeac3bfe3ed42683d19fa8fcbb04993d385cac9f6621dae9d649dd57b1f8e" }, "downloads": -1, "filename": "numerai_cli-0.1.14-py3-none-any.whl", "has_sig": false, "md5_digest": "2e07ccd47e81ef8a6e2ab4bf97ee9154", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5397252, "upload_time": "2019-06-21T22:17:40", "url": "https://files.pythonhosted.org/packages/77/73/9af98e61eade75fc8af29ea499751910e07047ebd3e7024c910df020f38b/numerai_cli-0.1.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34cc35e8f37018fd2707c7be2f618246", "sha256": "3f9505a925f53622e1a36174b7d992de908d992eba5890fdf69300264a0a3c54" }, "downloads": -1, "filename": "numerai-cli-0.1.14.tar.gz", "has_sig": false, "md5_digest": "34cc35e8f37018fd2707c7be2f618246", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5392224, "upload_time": "2019-06-21T22:17:43", "url": "https://files.pythonhosted.org/packages/52/4c/b2b265e7fe4d85d2b1a850bc8dccc3c3bdeb019acfd7cc019c838680d120/numerai-cli-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "f2757813f526b0c1baaaa6450e409a40", "sha256": "dfbebaa6eb73155119198efb5b9faaa5eda6f4e1e8afd12bb5e4ee86b4c0857d" }, "downloads": -1, "filename": "numerai_cli-0.1.15-py3-none-any.whl", "has_sig": false, "md5_digest": "f2757813f526b0c1baaaa6450e409a40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5408440, "upload_time": "2019-07-12T18:01:24", "url": "https://files.pythonhosted.org/packages/c0/eb/a73ca6cc86e8aee7042615e2fde0f320059fa01fe727b8a8083e27493191/numerai_cli-0.1.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ff283a52ffe6c08cb9dec0182b79e65", "sha256": "20cd21445c6cfe5ce673026995ebc5031819df16089295d523559314dbf313fe" }, "downloads": -1, "filename": "numerai-cli-0.1.15.tar.gz", "has_sig": false, "md5_digest": "8ff283a52ffe6c08cb9dec0182b79e65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5400101, "upload_time": "2019-07-12T18:01:27", "url": "https://files.pythonhosted.org/packages/3b/9b/266beb3745e9e52c3497f779de90311a07047ab272add4d366d20cca2171/numerai-cli-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "893d7682887495443d0277927ea2c7da", "sha256": "bce21862e750d4639e322216344bc2ef863971e3b57f115db7175234ccc16a29" }, "downloads": -1, "filename": "numerai_cli-0.1.16-py3-none-any.whl", "has_sig": false, "md5_digest": "893d7682887495443d0277927ea2c7da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5409598, "upload_time": "2019-07-12T20:33:50", "url": "https://files.pythonhosted.org/packages/d1/d8/64da1c8327bcb5e8e3b674a0f21b68dd7b822f72d7afa5c5fafcf72b803e/numerai_cli-0.1.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4d97e4f41979ddbd151afee3571557a", "sha256": "6b91523adaf182adad4b423d66daafafe0f34ece9181eb2573f78746039f7f15" }, "downloads": -1, "filename": "numerai-cli-0.1.16.tar.gz", "has_sig": false, "md5_digest": "b4d97e4f41979ddbd151afee3571557a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5400871, "upload_time": "2019-07-12T20:33:52", "url": "https://files.pythonhosted.org/packages/db/6e/57a187cd43cb7ad9856bafa24dba3b599039ae103fde6be4a6241d5dbd7f/numerai-cli-0.1.16.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "c007ba1cea609b331eabbc5c5eee9e2c", "sha256": "6826d88fb0bda5ea7b9edb0908de9c0d75d4f4f9c9a5f0137dbe57024b9a5f01" }, "downloads": -1, "filename": "numerai_cli-0.1.17-py3-none-any.whl", "has_sig": false, "md5_digest": "c007ba1cea609b331eabbc5c5eee9e2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5409599, "upload_time": "2019-07-12T20:38:12", "url": "https://files.pythonhosted.org/packages/63/f9/d3fd3eb326a9159e876f7c94dcd1ca632736eca472a49a3f8be9a0b9c063/numerai_cli-0.1.17-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69944b006d326b83bddaa1b8b8faabdf", "sha256": "e1263df887fc0fa2b1b93e71b7fbe423e475fadf4d78fdde8d98a0dbbd81b7b2" }, "downloads": -1, "filename": "numerai-cli-0.1.17.tar.gz", "has_sig": false, "md5_digest": "69944b006d326b83bddaa1b8b8faabdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5400870, "upload_time": "2019-07-12T20:38:15", "url": "https://files.pythonhosted.org/packages/f6/8b/70b846e6a7d0dec0ba2d3346643d831edbf37f89841a6cf863a2b22adde9/numerai-cli-0.1.17.tar.gz" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "6a5516940c548b9f8061c78c548ca56a", "sha256": "c94952db86280f0dfbad318af7ada64ccc93a4e6f087345bb2afef7afbc89be0" }, "downloads": -1, "filename": "numerai_cli-0.1.18-py3-none-any.whl", "has_sig": false, "md5_digest": "6a5516940c548b9f8061c78c548ca56a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5409543, "upload_time": "2019-07-13T19:38:14", "url": "https://files.pythonhosted.org/packages/49/da/b3f388c8a08dc0597f856c7dbd1fed592794616f4770acb1967b1c2f97aa/numerai_cli-0.1.18-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2092193965acd157bc116c5936af3ddc", "sha256": "54f00bd34aa43861ca6fa4cd9045b49a89b50c3e2cc65b03293bf66e97d7af33" }, "downloads": -1, "filename": "numerai-cli-0.1.18.tar.gz", "has_sig": false, "md5_digest": "2092193965acd157bc116c5936af3ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5400895, "upload_time": "2019-07-13T19:38:18", "url": "https://files.pythonhosted.org/packages/89/42/ea4b0945a9f96ab99e342c11cce9ff4491162e9193cec6dfdde012caa6f5/numerai-cli-0.1.18.tar.gz" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "75c4741cd23cdbed54503dcbb2b5c36b", "sha256": "db4ee510d6439092554b246033017eb79a2da7563c63977c3751b9bd905f2d20" }, "downloads": -1, "filename": "numerai_cli-0.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "75c4741cd23cdbed54503dcbb2b5c36b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5409667, "upload_time": "2019-08-13T18:03:30", "url": "https://files.pythonhosted.org/packages/49/f1/42120370ebfb993b6f4cb829fdc22c6f824112dd676e90977b58afc4e7a4/numerai_cli-0.1.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f43db9b4dc7b3e5cafde9228337a8246", "sha256": "6ab028f7684b0ebf485d192217a7bc5ea5a61bea71a6422be483589a2403323a" }, "downloads": -1, "filename": "numerai-cli-0.1.19.tar.gz", "has_sig": false, "md5_digest": "f43db9b4dc7b3e5cafde9228337a8246", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5401111, "upload_time": "2019-08-13T18:03:34", "url": "https://files.pythonhosted.org/packages/80/6d/d105657ef7f0cca37f2a0d1def9c05b71d79a619f197b74041003c88d621/numerai-cli-0.1.19.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "10db38604e159fad448b770833047384", "sha256": "e35f41bedaaa1327016790bf61094a1fd84268353cb4d7b56139e59ceb53b504" }, "downloads": -1, "filename": "numerai_cli-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "10db38604e159fad448b770833047384", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5380855, "upload_time": "2019-05-23T22:16:52", "url": "https://files.pythonhosted.org/packages/b7/9a/b6a7d2cd768017fcec733b7d87045a430e25af12e5c9b5b043fb8ab5f1bc/numerai_cli-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69b762dfc7048c0132c9ff852393d83d", "sha256": "db92326a74d06609c3b9a50ef84a3d0c9e3340e9de471ee38afaa74602f0222e" }, "downloads": -1, "filename": "numerai-cli-0.1.2.tar.gz", "has_sig": false, "md5_digest": "69b762dfc7048c0132c9ff852393d83d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5381318, "upload_time": "2019-05-23T22:16:57", "url": "https://files.pythonhosted.org/packages/86/d6/912974979c69b0c3feb222e2a9cc3f2d4cc6b55700d8aabc1617bd6c9d51/numerai-cli-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "81e01312009dd23ebadb4c4d1dab2537", "sha256": "2275e018030338a399f0dd1dae990a95269845bf129a7e2987f464f970c5d1f3" }, "downloads": -1, "filename": "numerai_cli-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "81e01312009dd23ebadb4c4d1dab2537", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5385363, "upload_time": "2019-05-23T23:10:07", "url": "https://files.pythonhosted.org/packages/20/cf/48311368011d53d8c96950c72a3cbb130631d5bbcd6db6765f47550194ae/numerai_cli-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae0ef02161e653dff88217871009bc2b", "sha256": "6d37bf465bdfea338076037214059c3506f7ab93591e77b6da00cf224858f6df" }, "downloads": -1, "filename": "numerai-cli-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ae0ef02161e653dff88217871009bc2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5382473, "upload_time": "2019-05-23T23:10:09", "url": "https://files.pythonhosted.org/packages/9a/26/61fa9603160c34695ad265276d0db7c6ec0309302c00dc9dbf01844c056d/numerai-cli-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "85fea1243a2b78b19a9e5e228c2c2195", "sha256": "145968ea2572743659be74eb7fd81e18318b8f92db064e9344ca9bd5e0374ea2" }, "downloads": -1, "filename": "numerai_cli-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "85fea1243a2b78b19a9e5e228c2c2195", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5386393, "upload_time": "2019-05-28T23:45:56", "url": "https://files.pythonhosted.org/packages/ac/6a/8aa08d911c56d3c0ac5be150083f767862f77026705e0b3f1fa4c973e42f/numerai_cli-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e8a782c37dc74c6b71c3e135fed9fad", "sha256": "131d77b7a8cb6ec7a0ed673c8934ccbf3b1f504f041bd93fa49887b20e0a4469" }, "downloads": -1, "filename": "numerai-cli-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3e8a782c37dc74c6b71c3e135fed9fad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5383597, "upload_time": "2019-05-28T23:46:00", "url": "https://files.pythonhosted.org/packages/5c/71/6b9dabb62c8cfd19b40fd5ee3d3c8f22a74c3d7a4424c0b8fb81ab4ddb98/numerai-cli-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "0250d7e01822bfddb11b19d4112910f0", "sha256": "b376ec0b3290aa5a1693a3e2669c22e187ba2b3086055f835b19fbbf2d4b7b7b" }, "downloads": -1, "filename": "numerai_cli-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "0250d7e01822bfddb11b19d4112910f0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5386389, "upload_time": "2019-05-28T23:59:46", "url": "https://files.pythonhosted.org/packages/36/f8/5c68f301a95a68bf111b15bdcf59a1b4b459d5b4cac162323574a73e8705/numerai_cli-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "896cf6887d0409f36e9cc3f3170f7091", "sha256": "4c2d00ca0b76af2d0b446c49564d4636225296d54f66e837d262931d7cf92f4e" }, "downloads": -1, "filename": "numerai-cli-0.1.5.tar.gz", "has_sig": false, "md5_digest": "896cf6887d0409f36e9cc3f3170f7091", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5383571, "upload_time": "2019-05-28T23:59:59", "url": "https://files.pythonhosted.org/packages/49/49/4264f16e804a4f502a9729ef71e30c798c032032353ef5d53c73848d3363/numerai-cli-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "9ac173fa212f8107fa46b40a3342b1f4", "sha256": "ba91fd5526dd2c8e758892b00f07dfce9304a51933f47481fd44c344d5e86368" }, "downloads": -1, "filename": "numerai_cli-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9ac173fa212f8107fa46b40a3342b1f4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5386799, "upload_time": "2019-05-30T17:22:13", "url": "https://files.pythonhosted.org/packages/c5/a7/78e2a3537a8a0b8eef0200b3e21adf682fc079e7d32d6632a29b572b7aaf/numerai_cli-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2d737466df4489f93273721155641e1", "sha256": "b4d84b2ac8b7725431f3fcbf9bede64f3d27a87d976ae633a71ec1b6c30516b5" }, "downloads": -1, "filename": "numerai-cli-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c2d737466df4489f93273721155641e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5384988, "upload_time": "2019-05-30T17:22:16", "url": "https://files.pythonhosted.org/packages/47/39/3dbb12282b1716c3ea75dc28838a0ab89e8c01438b13904e3ad9fbbecd97/numerai-cli-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "a10abf8ddb4d4e0d5fc27792211fac89", "sha256": "71e69f7c8fb010bc9816a710ef07fbc8be72a9c624880d863566cbdbc1240d24" }, "downloads": -1, "filename": "numerai_cli-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a10abf8ddb4d4e0d5fc27792211fac89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5387424, "upload_time": "2019-05-30T18:07:12", "url": "https://files.pythonhosted.org/packages/bb/93/26bdcdf534189038a9556a503d9c8d78bbb5c2e933fd652b79bd0eae89ab/numerai_cli-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "023320866218baf8625e4406eb81f2ef", "sha256": "a9a300214d5680d68875b971f562da04c60b3347a03294d08f3a62a7bf3c9464" }, "downloads": -1, "filename": "numerai-cli-0.1.7.tar.gz", "has_sig": false, "md5_digest": "023320866218baf8625e4406eb81f2ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5385824, "upload_time": "2019-05-30T18:07:16", "url": "https://files.pythonhosted.org/packages/36/c4/65dc90a33b6960ed55acefa121691d6c00a3f884d669435cdc26ab28762a/numerai-cli-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "dbbeb4217e67bd9a8f9a0fa3a113ca2b", "sha256": "6a537ca7337dd136b87919f4da358d5f8d4c632811bab5f5549d95f1458d9b84" }, "downloads": -1, "filename": "numerai_cli-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "dbbeb4217e67bd9a8f9a0fa3a113ca2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5387659, "upload_time": "2019-05-30T20:33:18", "url": "https://files.pythonhosted.org/packages/78/df/ef00d397c1ab6bf492d6416003fec346d25ea9777dbe1e04ce58f2ed640d/numerai_cli-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fec91c1cb8dbfa3503dcb2aebcac798", "sha256": "57ef867ab55b1f67c4e986242c312f22fc9d3f14296ee31a5b39c248aad4e4f4" }, "downloads": -1, "filename": "numerai-cli-0.1.8.tar.gz", "has_sig": false, "md5_digest": "9fec91c1cb8dbfa3503dcb2aebcac798", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5386030, "upload_time": "2019-05-30T20:33:20", "url": "https://files.pythonhosted.org/packages/61/9a/b2a135bab9588014421f324a998b4cbb03cb0a3a9050f65d02e075205516/numerai-cli-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "c8856f0ccbca5dd2f8f0fabfb4487012", "sha256": "0c6fb06963b1a92b8ba67b11cda694d77d97f3e2fa5cea0cb3019db46323501a" }, "downloads": -1, "filename": "numerai_cli-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "c8856f0ccbca5dd2f8f0fabfb4487012", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5387720, "upload_time": "2019-05-31T17:17:18", "url": "https://files.pythonhosted.org/packages/b5/66/2e393f92b512ebe4c8b0f7f08ef52ce8c3ca02b0d17a7d1dfe52e16a36df/numerai_cli-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a887589866c95a866a1468ebb6749b3", "sha256": "73464b145413a40858934520aff3b2c4fa7135bb11ae89ca4100e3d9c9c65838" }, "downloads": -1, "filename": "numerai-cli-0.1.9.tar.gz", "has_sig": false, "md5_digest": "9a887589866c95a866a1468ebb6749b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5386116, "upload_time": "2019-05-31T17:17:22", "url": "https://files.pythonhosted.org/packages/0c/9a/e68e81ecb84baa002ab6975b3930a21d63aa83785322e825ad14c387b375/numerai-cli-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "75c4741cd23cdbed54503dcbb2b5c36b", "sha256": "db4ee510d6439092554b246033017eb79a2da7563c63977c3751b9bd905f2d20" }, "downloads": -1, "filename": "numerai_cli-0.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "75c4741cd23cdbed54503dcbb2b5c36b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5409667, "upload_time": "2019-08-13T18:03:30", "url": "https://files.pythonhosted.org/packages/49/f1/42120370ebfb993b6f4cb829fdc22c6f824112dd676e90977b58afc4e7a4/numerai_cli-0.1.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f43db9b4dc7b3e5cafde9228337a8246", "sha256": "6ab028f7684b0ebf485d192217a7bc5ea5a61bea71a6422be483589a2403323a" }, "downloads": -1, "filename": "numerai-cli-0.1.19.tar.gz", "has_sig": false, "md5_digest": "f43db9b4dc7b3e5cafde9228337a8246", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5401111, "upload_time": "2019-08-13T18:03:34", "url": "https://files.pythonhosted.org/packages/80/6d/d105657ef7f0cca37f2a0d1def9c05b71d79a619f197b74041003c88d621/numerai-cli-0.1.19.tar.gz" } ] }