{ "info": { "author": "Martijn van Dongen", "author_email": "martijnvandongen@binx.io", "bugtrack_url": null, "classifiers": [], "description": "# awslabs\n[awslabs](https://gitlab.com/binxio/awslabs) is a program that challenges your AWS knowledge.\n\n## Installing\n\nThe simplest method is to install awslabs with `pip3`:\n\n pip3 install .\n\n## Development installation\nTo start for development type the following:\n\n```bash\nmake init\nmake develop\n```\n\n## Run awslabs for development\nType the following:\n\n```bash\npipenv run python -m awslabs list \n```\n\nTo run a track you are working on type:\n\n```bash\npipenv run python -m awslabs start\n```\n\n## Package awslabs\nTo package awslabs type:\n\n```bash\nmake dist \n```\n\n## TODO\n\nRefine the following ideas.\n\nErrors:\n* Ensure it can only be used in python3\n\nRefactor/fix:\n* The deep if/else/try-statements makes it a horror\n* Remove the meta files/folders (__init__.py / __pycachec__ etc)\n* Consider replacing mytrack.py to yaml\n* Make region independent\n* Make the cloudformation input json compatible, and optionally a different file with a parameter in click\n* Make it easy to save progress details in\n\nFeatures:\n* Add tests (cloudformation already has the \"perfect\" cloudformation scripts)\n* Users can first read the track (awslabs trackname / awslabs trackname info)\n* Group tracks in \"basic\" and \"advanced\" (to be able to do the advanced, you need to have basic knowledge)\n* Write start time to config for report in the feedback the progress\n* Make awslabs track stop (or abort) such that it will warn if resources are still running\n* Add a short description to the tracks to improve track selection\n\n```\n$ awslabs\n\nTracks available:\n\n Basic:\n ec2 Deploy ec2 instance with init\n autoscaling Deploy an autoscaling group\n s3 Use the S3 service\n ml-api Use the machine learning api's\n\n Advanced:\n kinesis-athena Kinesis, Firehose, S3, Athena\n ecs ECS Cluster with Service Discovery\n wordpress Learn ELB, Autoscaling, RDS, Route53\n```\n\n## Create a simple challenge\nTo create a challenge, do the following:\n\n- Create a directory in tracks called eg. `mytrack`,\n- create a `mytrack.py` file in `mytrack`\n- create a directory `challenges` in `mytrack`\n- create multiple challenge files starting from `01.py` and so on.\n\n## Tracks\nTracks are called `mytrack.py` and must contain at a minimum the following:\n\n```python\nfrom awslabs.track import Track\n\nclass MyTrack(Track):\n \"\"\"\n A track description, can be multiline and contain links etc.\n \"\"\"\n name = \"TrackName\"\n description = __doc__\n level = \"basic\"\n short_description = \"a short description\"\n```\n\n## Challenges\nChallenges are named `01.py` and so on, and must contain at a minimum the following:\n\n```python\nfrom awslabs.challenge import Challenge\n\nclass MyChallenge(Challenge):\n \"\"\"\n Put your challenge\n \"\"\"\n title = \"My Challenge\"\n description = __doc__\n\n def start(self) -> None:\n self.instructions()\n\n def validate(self) -> None:\n self.save('key', 'a-value-to-save') # save a value to the session\n self.get('key') # load a value from the session\n self.check() # check the challenge\n self.success('') # mark the challenge as succesful \n self.fail('') # mark the challenge as failure\n```\n\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/binxio/awslabs", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "awslabs", "package_url": "https://pypi.org/project/awslabs/", "platform": "any", "project_url": "https://pypi.org/project/awslabs/", "project_urls": { "Homepage": "https://github.com/binxio/awslabs" }, "release_url": "https://pypi.org/project/awslabs/0.1.1/", "requires_dist": [ "boto3", "requests", "configparser", "click", "cfn-flip", "pylint" ], "requires_python": "", "summary": "This cli contains aws labs to try.", "version": "0.1.1" }, "last_serial": 4782874, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d274824735278bbff2704020b64e3358", "sha256": "0a49cf4fedb9427f4b1a4ceca541a315d75dd86e4454a86bda5b9e5d7e35aa52" }, "downloads": -1, "filename": "awslabs-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d274824735278bbff2704020b64e3358", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7935, "upload_time": "2018-08-01T19:45:50", "url": "https://files.pythonhosted.org/packages/4f/52/4d45de2fee5d26d58aa4eea614fcd5b035a2da2cae4eac7a6e3100f69f65/awslabs-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "159a1c924f85cd4e2d6477f623040264", "sha256": "2d100d3a75ea14993091526731c92790925f9ed0cf967f4ec1dd5e2983777af8" }, "downloads": -1, "filename": "awslabs-0.0.1.tar.gz", "has_sig": false, "md5_digest": "159a1c924f85cd4e2d6477f623040264", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4167, "upload_time": "2018-08-01T19:45:51", "url": "https://files.pythonhosted.org/packages/d6/9a/d9029236a5b25e24d842037ee2aebdb92610b4b53aa6d9482ca742b124b3/awslabs-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "e1735e621524576560740ba1c9b9e6f1", "sha256": "ab0b190730fafcbce10220c4b4921a373891e761130bca41c7fbccbda46f5bb7" }, "downloads": -1, "filename": "awslabs-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e1735e621524576560740ba1c9b9e6f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7943, "upload_time": "2018-08-03T15:18:53", "url": "https://files.pythonhosted.org/packages/7a/cf/23717492b1491c917c4de9681cb4718394f8ab0f6d4653d8d12ac79bee30/awslabs-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffd741e84cea9b8ad7cc761333aea44f", "sha256": "a4c5754e6c5cee431718a7e030c57760975200a0e5fca92d7cfd548171c90b34" }, "downloads": -1, "filename": "awslabs-0.0.2.tar.gz", "has_sig": false, "md5_digest": "ffd741e84cea9b8ad7cc761333aea44f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4195, "upload_time": "2018-08-03T15:18:54", "url": "https://files.pythonhosted.org/packages/5e/17/de5c636f4d9e30f377e1956424ca989b1d18f6156cbb69e347aed22e906b/awslabs-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "03ddbcceef0247f023851206e742891e", "sha256": "5aa852faa2bf25b02006bc31218fffac324ad4441dff9b239430eeb810d65c33" }, "downloads": -1, "filename": "awslabs-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "03ddbcceef0247f023851206e742891e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15999, "upload_time": "2018-08-03T15:21:04", "url": "https://files.pythonhosted.org/packages/a3/ff/4014f9de4a0bf88c480719c7f1aa35d6f0b3d2c63eba6c2c46ea3f0c6b1c/awslabs-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e0b1419d729095cc583129b63611938", "sha256": "6ad43945ad5f21951309a397db7d84d400ebd9a62316843450408be95dfa0281" }, "downloads": -1, "filename": "awslabs-0.0.3.tar.gz", "has_sig": false, "md5_digest": "2e0b1419d729095cc583129b63611938", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6826, "upload_time": "2018-08-03T15:21:05", "url": "https://files.pythonhosted.org/packages/77/95/83ddee6f2f7a5802140ad1cc53c6b9a1fe3d439e5ac04be796a26098a64a/awslabs-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "1dde9bc9b671f6333e6a0b6caf1272d8", "sha256": "b8cdfb389c79adabfa6e2ae939404cfcfec1f02e615f8c210b357e1fce853056" }, "downloads": -1, "filename": "awslabs-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1dde9bc9b671f6333e6a0b6caf1272d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18806, "upload_time": "2018-08-03T19:13:04", "url": "https://files.pythonhosted.org/packages/04/3e/28887e9b200122335ac891ff870fc1a9d948e672460437f24fcba97b4f49/awslabs-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5586e9b98cf2c8ad9dd542b3bca4658c", "sha256": "d35c0c300142e69c899ae2c35493e88660e6cdb200dc34a34ba05ca8340894fb" }, "downloads": -1, "filename": "awslabs-0.0.4.tar.gz", "has_sig": false, "md5_digest": "5586e9b98cf2c8ad9dd542b3bca4658c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8461, "upload_time": "2018-08-03T19:13:06", "url": "https://files.pythonhosted.org/packages/6a/13/a5d096964e14bc025f7c124ee9f1f171bd014d8496ead6f6362c8e91ca89/awslabs-0.0.4.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "34e2b559468edfc692c15a305eaf464a", "sha256": "ef42e448a03c95297fd8d0649dc269b910ad4013d2de2fd4cc73915531621ba8" }, "downloads": -1, "filename": "awslabs-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "34e2b559468edfc692c15a305eaf464a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18847, "upload_time": "2018-08-03T19:49:57", "url": "https://files.pythonhosted.org/packages/46/7b/b7c026c887d92ac08159c3c81429cc811c0e9c03d505e21660676eb1130b/awslabs-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4fa0b1f1d70d5b90924c2cb0b457a2d", "sha256": "22896e5d48a3e52e82c5d603889b3c2674e3af1bc648dc022e79144f222d43ce" }, "downloads": -1, "filename": "awslabs-0.0.6.tar.gz", "has_sig": false, "md5_digest": "f4fa0b1f1d70d5b90924c2cb0b457a2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8513, "upload_time": "2018-08-03T19:50:00", "url": "https://files.pythonhosted.org/packages/28/fa/7c38c18c55d3c01689bb78f61e693bfcfee0c50141728302b39a8c2a3132/awslabs-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "2bcf5fa5cef0956ebd4eaba334366a55", "sha256": "e264034319f644aadf5d8f5c7bc9a114e3ad602af046cce6f08ad6b5a1585fda" }, "downloads": -1, "filename": "awslabs-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "2bcf5fa5cef0956ebd4eaba334366a55", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18844, "upload_time": "2018-08-03T19:55:10", "url": "https://files.pythonhosted.org/packages/07/43/109af29077466b7ee89410017dc5cad961b498a228de10f13e2903c8fb38/awslabs-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a2f34a3bf1ad900cfc8a1bfb11b5a65", "sha256": "a6d7a9d42f5880926186c7d832c2580c234c3f81cc7fc27abd75f7e20da1b63e" }, "downloads": -1, "filename": "awslabs-0.0.7.tar.gz", "has_sig": false, "md5_digest": "9a2f34a3bf1ad900cfc8a1bfb11b5a65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8505, "upload_time": "2018-08-03T19:55:11", "url": "https://files.pythonhosted.org/packages/48/12/dc988317ace5ebb69081bb9276b0d9d221a73bf8f7c3bde2d10178428236/awslabs-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "e1e5b7efb13dd92c75557aa31b727a51", "sha256": "f0bcb95194677c9fb20abad33777441d495c51867dea826dd36912b88f21d457" }, "downloads": -1, "filename": "awslabs-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "e1e5b7efb13dd92c75557aa31b727a51", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17429, "upload_time": "2018-08-03T20:10:45", "url": "https://files.pythonhosted.org/packages/94/4b/33bb34f5b4cbc6fb602f5c946e8fa058eab000a3031aa16db170e025bf7a/awslabs-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a12fbbdfe11ece5b049c136336747e59", "sha256": "0bc8f691630447b076609fc0a169278dbf0d260e651e607f8f2c4ba6281f00b8" }, "downloads": -1, "filename": "awslabs-0.0.8.tar.gz", "has_sig": false, "md5_digest": "a12fbbdfe11ece5b049c136336747e59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8496, "upload_time": "2018-08-03T20:10:46", "url": "https://files.pythonhosted.org/packages/fb/8c/360c322e130773590e2feb575d50907b897c0d776992e08a97fd31a140f3/awslabs-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "eb7238b28171a521ea88b9eb5ebc4ea4", "sha256": "0334e289772c17c40193d20ee66928167508459b0f890a438e7a5f856c2c4158" }, "downloads": -1, "filename": "awslabs-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "eb7238b28171a521ea88b9eb5ebc4ea4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39439, "upload_time": "2019-02-05T16:35:23", "url": "https://files.pythonhosted.org/packages/53/10/9dc78b76431e91f08cc355b88ae44582333785577369e94eb267c8fc0476/awslabs-0.0.9-py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "0db3703a8ab69fd7d31dd9dfb11875e6", "sha256": "6d88713b0260c57252c60bae246384047150a2d9d3054561985edcdc8a661195" }, "downloads": -1, "filename": "awslabs-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0db3703a8ab69fd7d31dd9dfb11875e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37996, "upload_time": "2018-10-03T05:38:09", "url": "https://files.pythonhosted.org/packages/f0/1e/8b1e7a9032d95547d6509f016c0966fcc80d788cca8b9c9bbe4feb81acda/awslabs-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4e25cc433150f0085b53341e3ddf5137", "sha256": "565071ade4538b3026b68df6f5bc805436510d58e278e2c4c10bf2a6644b1916" }, "downloads": -1, "filename": "awslabs-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4e25cc433150f0085b53341e3ddf5137", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39436, "upload_time": "2019-02-05T16:38:39", "url": "https://files.pythonhosted.org/packages/90/52/63eef3e4f91c830d54e105a9a01ae3a95c4ad9793d3f397815ce1592ef7a/awslabs-0.1.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4e25cc433150f0085b53341e3ddf5137", "sha256": "565071ade4538b3026b68df6f5bc805436510d58e278e2c4c10bf2a6644b1916" }, "downloads": -1, "filename": "awslabs-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4e25cc433150f0085b53341e3ddf5137", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39436, "upload_time": "2019-02-05T16:38:39", "url": "https://files.pythonhosted.org/packages/90/52/63eef3e4f91c830d54e105a9a01ae3a95c4ad9793d3f397815ce1592ef7a/awslabs-0.1.1-py3-none-any.whl" } ] }