{ "info": { "author": "basis-ai.com", "author_email": "contact@basis-ai.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": "[Bedrock](https://bedrock.basis-ai.com) helps data scientists own the end-to-end deployment of machine learning workflows. `bdrk` is the official client library for interacting with APIs on Bedrock platform.\n\n## Usage\n\nIn order to use `bdrk`, you need to register an account with Basis AI. Please email `contact@basis-ai.com` to get started. Once an account is created, you will be issued a personal API token that you can use to authenticate with Bedrock.\n\n### Installing Bedrock client\n\nYou can install Bedrock client library from PyPi with the following command. We recommend running it in a virtual environment to prevent potential dependency conflicts.\n\n```bash\npip install bdrk\n```\n\nNote that the client library is officially supported for python 3.7 and above.\n\n#### Installing optional dependencies\n\nThe following optional dependencies can be installed to enable additional featues.\n\nCommand line support:\n\n```bash\npip install bdrk[cli]\n```\n\nFeauture Store support:\n\n```bash\npip install bdrk[fs]\n```\n\n### Setting up your environment\n\nOnce installed, you need to add a well formed `bedrock.hcl` configuration file in your project's root directory. The configuration file specifies which script to run for training and deployment as well as their respective base Docker images. You can find an example directory layout [here](https://github.com/basisai/churn_prediction).\n\nWhen using the module locally, you may need to define the following environment variables for `bedrock_client` and lab runs to make API calls to Bedrock. These variables will be automatically set on your workload container when running in cluster.\n\n```bash\nBEDROCK_API_DOMAIN=https://bedrock.basis-ai.com\nBEDROCK_API_TOKEN=\n```\n\n### bedrock_client library\n\nThe `bedrock_client` library provides utility functions for your training runs.\n\n#### Logging training metrics\n\nYou can easily export training metrics to Bedrock by adding logging code to `train.py`. The example below demonstrates logging charts and metrics for visualisation on Bedrock platform.\n\n```python\nimport logging\n\nfrom bedrock_client.bedrock.api import BedrockApi\n\nlogger = logging.getLogger(__name__)\nbedrock = BedrockApi(logger)\nbedrock.log_metric(\"Accuracy\", 0.97)\nbedrock.log_chart_data([0, 1, 2, 3], [0.1, 0.5, 0.7, 0.9])\n```\n\n### bdrk library\n\nThe `bdrk` library provides APIs for interacting with the Bedrock platform.\n\n```python\nfrom bdrk.v1 import ApiClient, Configuration, PipelineApi\nfrom bdrk.v1.models import (\n PipelineResourcesSchema,\n TrainingPipelineRunSchema,\n)\n\nconfiguration = Configuration()\nconfiguration.api_key[\"X-Bedrock-Access-Token\"] = \"MY-TOKEN\"\nconfiguration.host = \"https://api.bdrk.ai\"\n\napi_client = ApiClient(configuration)\npipeline_api = PipelineApi(api_client)\n\npipeline = pipeline_api.get_training_pipeline_by_id(pipeline_id=\"MY-PIPELINE\")\nrun_schema = TrainingPipelineRunSchema(\n environment_public_id=\"MY-ENVIRONMENT\",\n resources=PipelineResourcesSchema(cpu=\"500m\", memory=\"200M\"),\n script_parameters={\"MYPARAM\": \"1.23\"},\n)\nrun = pipeline_api.run_training_pipeline(\n pipeline_id=pipeline.public_id, training_pipeline_run_schema=run_schema\n)\n\n```\n\n### Lab run\n\nThe `labrun` command can be used to launch test runs of local training code on the Bedrock platform.\n\n```sh\n # Set environment variables with credentials for this session\n $ unset HISTFILE # Don't save history for this session\n $ export BEDROCK_API_DOMAIN=https://api.bdrk.ai\n $ export BEDROCK_API_TOKEN=\n\n $ bdrk labrun --help\n\n $ bdrk labrun --verbose --domain $BEDROCK_API_DOMAIN submit \\\n $HOME/basis/span-example-colourtest \\\n bedrock.hcl \\\n canary-dev \\\n --cpu 0.6 \\\n --memory 1.1G \\\n -p ALPHA=0.9 \\\n -p L5_RATIO=0.1 \\\n -s DUMMY_SECRET_A=foo \\\n -s DUMMY_SECRET_B=bar\n\n $ bdrk labrun logs \n\n $ bdrk labrun artefact \n```\n\n\n# bdrk changelog\n\n## v0.1.4 (2019-10-09)\n\n### bdrk.v1\n\n- Added `get_training_pipeline_runs` function to retrieve all runs from a pipeline\n\n\n## v0.1.3 (2019-10-01)\n\n### bdrk.v1\n\n- Added `bdrk.v1.ModelApi` with function `get_artefact_details`.\n ```python\n from bdrk.v1 import ModelApi\n model_api = ModelApi(api_client)\n artefact = model_api.get_artefact_details(public_id=pipeline.model_id, artefact_id=run.artefact_id)\n ```\n- `bdrk.v1.models.UserSchema.email_address` made required.\n\n### bdrk.v1_utils\n\n- Added utility functions for downloading and unzipping artefacts\n\n ```py\n from bdrk.v1 import ApiClient, Configuration\n from bdrk.v1_util import download_and_unzip_artefact\n\n configuration = Configuration()\n configuration.api_key[\"X-Bedrock-Access-Token\"] = \"YOUR-TOKEN-HERE\"\n configuration.host = \"https://api.bdrk.ai\"\n api_client = ApiClient(configuration)\n\n # There are other utility methods as well\n # `get_artefact_stream`, `download_stream`, `unzip_file_to_dir`\n download_and_unzip_artefact(\n api_client=api_client,\n model_id=\"model-repository-id\",\n model_artefact_id=\"model-version-id\",\n output_dir=\"/tmp/artefact\",\n )\n ```\n\n### Lab run\n\nThe labrun feature allows you to run and interact with one-off training runs.\n\n- Changed command from `bedrock labrun` to `bdrk labrun submit`.\n- Added secrets using `-s DUMMY_SECRET_A=foo` flag.\n- Added downloading of logs and model artefacts.\n - `bdrk labrun logs `\n - `bdrk labrun artefact `\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/basisai/span", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "bdrk", "package_url": "https://pypi.org/project/bdrk/", "platform": "", "project_url": "https://pypi.org/project/bdrk/", "project_urls": { "Homepage": "https://github.com/basisai/span" }, "release_url": "https://pypi.org/project/bdrk/0.1.4/", "requires_dist": [ "requests", "six", "Click ; extra == 'cli'", "docker ; extra == 'cli'", "jsonschema ; extra == 'cli'", "pyhcl ; extra == 'cli'", "redis ; extra == 'fs'", "fakeredis ; extra == 'fs'", "msgpack ; extra == 'fs'" ], "requires_python": "", "summary": "Client library for Bedrock platform", "version": "0.1.4" }, "last_serial": 5948354, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "58a35f48c250b876af9f6132cf837822", "sha256": "8371eadf1df55038a748463cb775180d87abb5b5d824a23eb97d87890b75eaaf" }, "downloads": -1, "filename": "bdrk-0.0.1-py3.7.egg", "has_sig": false, "md5_digest": "58a35f48c250b876af9f6132cf837822", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 190651, "upload_time": "2019-10-01T04:15:06", "url": "https://files.pythonhosted.org/packages/e1/f9/3e3f6e7f6c15a35b820bb354ca8e6bc0d270af8b542d85bbd381433b5840/bdrk-0.0.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "c3f799d28946e52e982d82f7a8a54b33", "sha256": "830f25aeff4f9bc3a366768cf04c46fb80ebc3b10cc67d9ffed8354cec7e459c" }, "downloads": -1, "filename": "bdrk-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c3f799d28946e52e982d82f7a8a54b33", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24617, "upload_time": "2019-07-24T07:11:41", "url": "https://files.pythonhosted.org/packages/47/1f/b2ee8e0e577a9f3ee3e0e8e961fd7f0bbbba75a21ceb2a6b10a6f2eeeaac/bdrk-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22bbd6341d23d744d2896f082e2a6c59", "sha256": "dde58ab943a80a3152e0fb9195bbd1b24fd21824f0fd3bc0f745102f7b7e11f9" }, "downloads": -1, "filename": "bdrk-0.0.1.tar.gz", "has_sig": false, "md5_digest": "22bbd6341d23d744d2896f082e2a6c59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17492, "upload_time": "2019-07-24T07:11:44", "url": "https://files.pythonhosted.org/packages/54/34/2f752a8fe7193363f7212fdc3f8a3859122d14e552cd9f938b48fd31b9e3/bdrk-0.0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d8c68510060a65746b282a914cc39621", "sha256": "841b943cacc5ed6414b1ce10d7ec62c8a7fc4add98e11a8e46e40e1f08b619d8" }, "downloads": -1, "filename": "bdrk-0.1.1-py3.7.egg", "has_sig": false, "md5_digest": "d8c68510060a65746b282a914cc39621", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 200003, "upload_time": "2019-10-01T04:15:09", "url": "https://files.pythonhosted.org/packages/f2/e5/65e08cc14b1e6d5b6388975e855b7210591b97ca51a927182b5f9452eb23/bdrk-0.1.1-py3.7.egg" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7fcdd807e2c7b8d82e4293925ef49ccd", "sha256": "acf8dee58e506a91d8b2e6d89edcfbaa780d349d9979b561b6ff0ffac821cad7" }, "downloads": -1, "filename": "bdrk-0.1.2-py3.7.egg", "has_sig": false, "md5_digest": "7fcdd807e2c7b8d82e4293925ef49ccd", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 199948, "upload_time": "2019-10-01T04:15:13", "url": "https://files.pythonhosted.org/packages/28/9c/593b41ae6287c200cc11a63cd54b281f6d5e045ae832635fb424d5b16bbd/bdrk-0.1.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "ea340c78383880629057693683ee2473", "sha256": "5db97c19a90b01560f27a262e4c92bfa8a8c3198f095b6e82dde72b4a15c49ae" }, "downloads": -1, "filename": "bdrk-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ea340c78383880629057693683ee2473", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 136806, "upload_time": "2019-09-18T10:04:33", "url": "https://files.pythonhosted.org/packages/df/1d/19b55fd4287cc8042a270e5fd9cc029686aa3678510c97550976cd08f94a/bdrk-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "954a1c4906876b093b23c73a79322879", "sha256": "e63ebea6620ebd52624b5d6ec11f5b24633f4661638895b315884d26289b17c3" }, "downloads": -1, "filename": "bdrk-0.1.2.tar.gz", "has_sig": false, "md5_digest": "954a1c4906876b093b23c73a79322879", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43875, "upload_time": "2019-09-18T10:04:36", "url": "https://files.pythonhosted.org/packages/ef/36/5cab8bb618ca2187195a6446f9329e10f7b591a273a2d389229fbe699d11/bdrk-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f5ffde9600ec96123afdc09741c3c2bb", "sha256": "38f8d083d1f19bc209f305c2b1f057695d4a26188a7282487018e70398e82b73" }, "downloads": -1, "filename": "bdrk-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f5ffde9600ec96123afdc09741c3c2bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 95774, "upload_time": "2019-10-01T04:15:00", "url": "https://files.pythonhosted.org/packages/c5/1c/4f2b05a2bcbc667952a14edef885c50370441861326af3ec24821134518c/bdrk-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e8b62428aeeffc5c20387cc697761147", "sha256": "c26ad2faeb2c7ec3f0ee34123269602e97993517598682203bbe6e5be9b43838" }, "downloads": -1, "filename": "bdrk-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e8b62428aeeffc5c20387cc697761147", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50358, "upload_time": "2019-10-01T04:15:19", "url": "https://files.pythonhosted.org/packages/84/a5/d5ac67a03568197ba57cf71c90d5eff038ef260bce4c01535fb1bcf109bd/bdrk-0.1.3.tar.gz" } ], "0.1.3rc1": [ { "comment_text": "", "digests": { "md5": "23f0195df9b2a3232b71625bb978d038", "sha256": "badfbb9cd468a90b19f6d2aa2b7edd8fec3d80e0ac9b4e5e4691375a9487fe50" }, "downloads": -1, "filename": "bdrk-0.1.3rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "23f0195df9b2a3232b71625bb978d038", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 96357, "upload_time": "2019-10-01T04:15:03", "url": "https://files.pythonhosted.org/packages/60/b5/4d8a49d80723c95e1f1439bfdf5c5f7f1b31ece703541aa3834d1657b11d/bdrk-0.1.3rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1661262e688161b34991f22bab94c05", "sha256": "c632bbdd72fe8935c5190292f4a889317d5ba6db6b0f29aadb5e33c0479d76c1" }, "downloads": -1, "filename": "bdrk-0.1.3rc1.tar.gz", "has_sig": false, "md5_digest": "a1661262e688161b34991f22bab94c05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51849, "upload_time": "2019-10-01T04:15:15", "url": "https://files.pythonhosted.org/packages/8d/65/4a596f019458f890a3e5c06fed02f118411039031b1f8064fc20e8ec02bd/bdrk-0.1.3rc1.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "33908c474376a7db2bb4a189f94166c2", "sha256": "310ad659d9b358ee7078117a8fe3ebb6f172092aaada647e0f4ed74002236af0" }, "downloads": -1, "filename": "bdrk-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "33908c474376a7db2bb4a189f94166c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88340, "upload_time": "2019-10-09T08:00:29", "url": "https://files.pythonhosted.org/packages/2c/85/8c2ad50d66292739490d0dc342da828dab066e01f799bc51db749781884f/bdrk-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c7554bc2d522b77a0ecd47ceb15b9f2", "sha256": "55691cc556c6a5d736bcc1e7e536a18d7fc9c8d43c12bde5716eea5a67e6d12f" }, "downloads": -1, "filename": "bdrk-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6c7554bc2d522b77a0ecd47ceb15b9f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50802, "upload_time": "2019-10-09T08:00:32", "url": "https://files.pythonhosted.org/packages/a9/a2/b232416a9e11e50507e46b63936e7c95c34481261643962802ba84382f8d/bdrk-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33908c474376a7db2bb4a189f94166c2", "sha256": "310ad659d9b358ee7078117a8fe3ebb6f172092aaada647e0f4ed74002236af0" }, "downloads": -1, "filename": "bdrk-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "33908c474376a7db2bb4a189f94166c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88340, "upload_time": "2019-10-09T08:00:29", "url": "https://files.pythonhosted.org/packages/2c/85/8c2ad50d66292739490d0dc342da828dab066e01f799bc51db749781884f/bdrk-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c7554bc2d522b77a0ecd47ceb15b9f2", "sha256": "55691cc556c6a5d736bcc1e7e536a18d7fc9c8d43c12bde5716eea5a67e6d12f" }, "downloads": -1, "filename": "bdrk-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6c7554bc2d522b77a0ecd47ceb15b9f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50802, "upload_time": "2019-10-09T08:00:32", "url": "https://files.pythonhosted.org/packages/a9/a2/b232416a9e11e50507e46b63936e7c95c34481261643962802ba84382f8d/bdrk-0.1.4.tar.gz" } ] }