{ "info": { "author": "Y-Bro", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# APG\nCode generation tool, which helps you to start a project without pain.\n\n**Contents**\n- [Installation](#Installation)\n- [Usage](#Usage)\n\n## Installation\n```bash\npip install apg\n```\n\n**Dependencies**\n - make\n - docker\n - docker-compose\n - cookiecutter\n - Click\n - npm (for ReactJS projects)\n \n## Usage\n#### Create a new project in the current directory:\n```bash\n$ apg init \n```\n**Available frameworks:**\n - ***flask*** ([Flask](http://flask.pocoo.org/) used as basis, we added webargs, Swagger, pytest and other handy stuff)\n - ***aiohttp*** ([AIOHTTP](http://flask.pocoo.org/) used as basis, but we completely reorganized it to look more like flask. Also added Swagger, webargs and so on)\n - ***react*** (Only basic functionality of ReactJS application)\n\nOnce you've done that, commands listed below will be available\n\n**Flask project:**\n```bash\n$ make dev # build application containers and run in developer mode\n$ make build # build application containers\n$ make up # run application in production mode\n$ make stop # stop application and running containers\n$ make db # initialize database\n$ make migrate # create data migration for database\n$ make bash # run bash shell inside application container\n$ make shell # run pimped out python console\n$ make dbshell # run databse console\n$ make test # run autotests (all project files)\n$ make test file= # to run all test files in folder\n$ make test file=/ # to run all tests in single file\n$ make test file=/:: # to run single test case\n```\n\n**AIOHTTP project:**\n```bash\n$ make dev # build application containers and run in developer mode\n$ make shell # run pimped out python console\n$ make check # check apispec\n$ make dbshell # run database console\n$ make migrate # create data migration for database\n$ make upgrade # apply data migrations to database\n$ make test # run autotests (all project files)\n$ make test file= # to run all test files in folder\n$ make test file=/ # to run all tests in single file\n$ make test file=/:: # to run single test case\n```\n\n> After you run `make dev` command \n>The API documentation will be available (SwaggerUI)\n> - Flask - http://127.0.0.1:5000/api/doc/\n> - aiohttp - http://127.0.0.1:8080/api/doc/\n\n**React project:**\n```bash\n$ npm start:dev # in standalone project start dev-server, otherwise compile project in dist folder and start watching it\n$ npm build:prod # build production\n```\n\n#### Add a new module to the current project (current directory):\n```bash\n$ apg module \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/n0nSmoker/apg", "keywords": "apg,generate project,framework,cookie-cutter", "license": "", "maintainer": "", "maintainer_email": "", "name": "apg", "package_url": "https://pypi.org/project/apg/", "platform": "", "project_url": "https://pypi.org/project/apg/", "project_urls": { "Homepage": "https://github.com/n0nSmoker/apg" }, "release_url": "https://pypi.org/project/apg/0.4.8/", "requires_dist": null, "requires_python": "", "summary": "Awesome project generation tool", "version": "0.4.8", "yanked": false, "yanked_reason": null }, "last_serial": 6011372, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "e661431cecaef7dfdaa992ca7323cad0", "sha256": "72a18d02a73e246d3ecc8629632bc67fc5012f88b0ea386ccfc29d97aaa572de" }, "downloads": -1, "filename": "apg-0.3.tar.gz", "has_sig": false, "md5_digest": "e661431cecaef7dfdaa992ca7323cad0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1777, "upload_time": "2019-07-09T17:28:05", "upload_time_iso_8601": "2019-07-09T17:28:05.763514Z", "url": "https://files.pythonhosted.org/packages/58/9c/433a687fe20ccf27b19a12be913c2a492877d37b8cb7e0b39bb02b8bc017/apg-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "fd2c69fdec36c79e7f7173b08e0d025c", "sha256": "ef888a543e7bc6b060dc4bf43d62cdc8b5a8b5a5e8b80ee94e186410518d718e" }, "downloads": -1, "filename": "apg-0.3.1.tar.gz", "has_sig": false, "md5_digest": "fd2c69fdec36c79e7f7173b08e0d025c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3499, "upload_time": "2019-07-09T17:37:50", "upload_time_iso_8601": "2019-07-09T17:37:50.097713Z", "url": "https://files.pythonhosted.org/packages/93/aa/0aa2cc0450af7925ba2d0a508ae5e6a2b4c512e9f700af59115c6395b56b/apg-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "b2bad0ec33a7d6b7f0f3168f8f4741c4", "sha256": "8bc30487e1c135c3c4fdae964eba930fa0a0eae3222819d2dd692778345a28d1" }, "downloads": -1, "filename": "apg-0.3.2.tar.gz", "has_sig": false, "md5_digest": "b2bad0ec33a7d6b7f0f3168f8f4741c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3495, "upload_time": "2019-07-09T17:43:08", "upload_time_iso_8601": "2019-07-09T17:43:08.764329Z", "url": "https://files.pythonhosted.org/packages/0b/a0/7f40e0eb446fe0bc35742f161ef14a83829770599112cf0a38029faba99d/apg-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "c19b911748e20e5d41da71d672ce5026", "sha256": "b59becdae2bf968afd1b60971248e694dca1d367b82f58bae03ebaab92068c1d" }, "downloads": -1, "filename": "apg-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c19b911748e20e5d41da71d672ce5026", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3723, "upload_time": "2019-07-09T17:45:09", "upload_time_iso_8601": "2019-07-09T17:45:09.584704Z", "url": "https://files.pythonhosted.org/packages/e4/54/dc9a603a0e2283533cf6b334872341521d8ea10b9cbfdcac3ec2e05d49d3/apg-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "27115e099ed8112875b29dcb3b3050f2", "sha256": "410a1d2744a69279a37bf7bbd9634fb2260af4251a70839d5c38086b4cd39104" }, "downloads": -1, "filename": "apg-0.3.4.tar.gz", "has_sig": false, "md5_digest": "27115e099ed8112875b29dcb3b3050f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3722, "upload_time": "2019-07-09T17:46:15", "upload_time_iso_8601": "2019-07-09T17:46:15.128471Z", "url": "https://files.pythonhosted.org/packages/64/bf/7491df50eac749524fc5faecd1e1679bc45563a1a8887136baf145961db8/apg-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "708572fc32c859805019d824c6b6a3df", "sha256": "7ce0569ba93d2ef0ab4b59e102484a11a01a279f995b9b7fe9031d189be293d6" }, "downloads": -1, "filename": "apg-0.3.5.tar.gz", "has_sig": false, "md5_digest": "708572fc32c859805019d824c6b6a3df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3732, "upload_time": "2019-07-09T17:49:14", "upload_time_iso_8601": "2019-07-09T17:49:14.940745Z", "url": "https://files.pythonhosted.org/packages/66/d1/9cc0f2371216e36476ee8db8030e9b0b2d8d5e23bde224095ccdee4b6109/apg-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "2048a0b8699d83e671e40025466a4131", "sha256": "8a705eeddc4e8f9aab8494d8ec462e2a871c9a9f01c92212813a22d65ba9e9f9" }, "downloads": -1, "filename": "apg-0.3.6.tar.gz", "has_sig": false, "md5_digest": "2048a0b8699d83e671e40025466a4131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3774, "upload_time": "2019-07-09T17:51:08", "upload_time_iso_8601": "2019-07-09T17:51:08.543795Z", "url": "https://files.pythonhosted.org/packages/a3/b4/173c4919b304e1cc7074d4d4c11018746c834f8dc6dca7730dd404dde843/apg-0.3.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "c9a8c109dca37d187fbddc1f2887e2bb", "sha256": "5c037dae3740a4df82ce798bb5f26edac9b9c56daba3d4403c458efbeef4f119" }, "downloads": -1, "filename": "apg-0.3.7.tar.gz", "has_sig": false, "md5_digest": "c9a8c109dca37d187fbddc1f2887e2bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3782, "upload_time": "2019-09-25T14:20:35", "upload_time_iso_8601": "2019-09-25T14:20:35.077023Z", "url": "https://files.pythonhosted.org/packages/ca/cb/83bea9b175a2307a0cd9d449e7f19ebd982690fce6ddff8725318dbcb65f/apg-0.3.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "78823d5dc70d02067be9e15ede0d62fd", "sha256": "6f2e7a6cffc3715cb2b0c95bad3ca733f3a8bb3723fe158615da268500200451" }, "downloads": -1, "filename": "apg-0.3.8.tar.gz", "has_sig": false, "md5_digest": "78823d5dc70d02067be9e15ede0d62fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3808, "upload_time": "2019-09-25T14:26:15", "upload_time_iso_8601": "2019-09-25T14:26:15.046409Z", "url": "https://files.pythonhosted.org/packages/cd/ae/69b820f3d8a2ac9499ce9d81f4487ff9384d5e7e8cbb82770c8f7598eaa9/apg-0.3.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "a2e3dcbfd89ae57d122181b58a2565a1", "sha256": "45226841757060f573d7152df0c60913cd7267658b5016425d0f9d7887738713" }, "downloads": -1, "filename": "apg-0.3.9.tar.gz", "has_sig": false, "md5_digest": "a2e3dcbfd89ae57d122181b58a2565a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3821, "upload_time": "2019-09-25T14:28:35", "upload_time_iso_8601": "2019-09-25T14:28:35.202601Z", "url": "https://files.pythonhosted.org/packages/85/9f/01a9a17d276bb618bbf31029e8ecdcba2c71e26734b20b1209586e963b55/apg-0.3.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "14465edd1b975e4a989573927e6cee3a", "sha256": "28911eb781b1d87807e6408b371d33dc645bed1b054203064c3689943c28ec48" }, "downloads": -1, "filename": "apg-0.4.tar.gz", "has_sig": false, "md5_digest": "14465edd1b975e4a989573927e6cee3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4376, "upload_time": "2019-09-25T14:32:03", "upload_time_iso_8601": "2019-09-25T14:32:03.494282Z", "url": "https://files.pythonhosted.org/packages/40/47/3436a0fe7c6acb5f89989da0fac450db83a949d10ebeb75bb0c6f2aa4485/apg-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "dd7e7e0c40a46fcc2938be4ad7c0ff5b", "sha256": "d11f86548816eb99184af18bdf404aef974812008f8f8e8ff0c62de368c72bab" }, "downloads": -1, "filename": "apg-0.4.1.tar.gz", "has_sig": false, "md5_digest": "dd7e7e0c40a46fcc2938be4ad7c0ff5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19664, "upload_time": "2019-09-25T14:34:10", "upload_time_iso_8601": "2019-09-25T14:34:10.786136Z", "url": "https://files.pythonhosted.org/packages/b5/3c/500518cb346ffbbd46d113e3c3a95a49208212445563dead0fa521353834/apg-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "534f066f8f3def34bc61cf1716813782", "sha256": "eaaede6a4eb02b612e606b404ddc41049c999ef55b8a400895b417d8fd7c67ae" }, "downloads": -1, "filename": "apg-0.4.2.tar.gz", "has_sig": false, "md5_digest": "534f066f8f3def34bc61cf1716813782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19656, "upload_time": "2019-09-25T14:36:47", "upload_time_iso_8601": "2019-09-25T14:36:47.001481Z", "url": "https://files.pythonhosted.org/packages/9c/c9/83036118f6dde634e6160f2a554ac00a7347d4a335a7ea0e8a8b48b06dcb/apg-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "771d38ef02bdbb395204553c9f7c4910", "sha256": "2fbd53a271fc46e15cf14b884125d653454b406cb829ab3bfd9645bcd96bb925" }, "downloads": -1, "filename": "apg-0.4.3.tar.gz", "has_sig": false, "md5_digest": "771d38ef02bdbb395204553c9f7c4910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9109026, "upload_time": "2019-09-25T14:41:56", "upload_time_iso_8601": "2019-09-25T14:41:56.920692Z", "url": "https://files.pythonhosted.org/packages/ac/2a/376b4873c8bce4d26f40b3a240b7bd5ff45dd9abbf3d164bdb8adf6fea1c/apg-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "ce6a257f3afa46d793d834c92852a968", "sha256": "6283bee52abba4d57d08f95a7ae9457f033976d0b9be6a483940088d3adcc0e3" }, "downloads": -1, "filename": "apg-0.4.4.tar.gz", "has_sig": false, "md5_digest": "ce6a257f3afa46d793d834c92852a968", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9109002, "upload_time": "2019-09-26T13:59:49", "upload_time_iso_8601": "2019-09-26T13:59:49.970582Z", "url": "https://files.pythonhosted.org/packages/5a/91/aac2d7f9dbbc6812d34a443f5b5d35788618f09ab6a87ff2d6a5cf4e37a1/apg-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "72b9d7b49bca5ffaf83756c4df243856", "sha256": "d98cc94abd3de921668c7e09851b8aae110b48717a9937546871f3c8015a61e7" }, "downloads": -1, "filename": "apg-0.4.5.tar.gz", "has_sig": false, "md5_digest": "72b9d7b49bca5ffaf83756c4df243856", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9108987, "upload_time": "2019-09-26T14:04:14", "upload_time_iso_8601": "2019-09-26T14:04:14.538990Z", "url": "https://files.pythonhosted.org/packages/99/5f/76940b08a3e96e7e29e5ceda1b9f5a836f5dd56cbc22879ad8b213853202/apg-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "4a794a536afb9a4e2ae81589927b423a", "sha256": "e8dca298c92a6466c99bf414b94dae3bca8f90d3cb80dbc7ba0ff3d2b3294e61" }, "downloads": -1, "filename": "apg-0.4.6.tar.gz", "has_sig": false, "md5_digest": "4a794a536afb9a4e2ae81589927b423a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9109046, "upload_time": "2019-10-09T12:40:52", "upload_time_iso_8601": "2019-10-09T12:40:52.627274Z", "url": "https://files.pythonhosted.org/packages/2c/49/fb182b251892fdb5dda253acdb8d00dc02c7e5f39ab44fe8ed21861bc979/apg-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "b96a6bf020dfe44b2e3b51ac3e4ea9b8", "sha256": "a3ce671fd062f60e5e45f0b7922fa5652221079a566a72463f245fc5dccc2db3" }, "downloads": -1, "filename": "apg-0.4.7.tar.gz", "has_sig": false, "md5_digest": "b96a6bf020dfe44b2e3b51ac3e4ea9b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9109355, "upload_time": "2019-10-10T10:43:31", "upload_time_iso_8601": "2019-10-10T10:43:31.198783Z", "url": "https://files.pythonhosted.org/packages/b4/eb/7a1ec26c348ff84ae3d0c8521b9f5160cdc110f11494f5f94e8cd9b83a93/apg-0.4.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "c1db532fa4752608257d7ac8a8d09c0f", "sha256": "12c32314e9ab485983aef63777324ed19ae18cb97d95aa651fd5f74400361e56" }, "downloads": -1, "filename": "apg-0.4.8.tar.gz", "has_sig": false, "md5_digest": "c1db532fa4752608257d7ac8a8d09c0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9110092, "upload_time": "2019-10-22T07:44:39", "upload_time_iso_8601": "2019-10-22T07:44:39.534787Z", "url": "https://files.pythonhosted.org/packages/28/08/c58a0eb32b525a0d56eddc989daf443f3027ccf3d8ff2139c14ac43b7b6d/apg-0.4.8.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c1db532fa4752608257d7ac8a8d09c0f", "sha256": "12c32314e9ab485983aef63777324ed19ae18cb97d95aa651fd5f74400361e56" }, "downloads": -1, "filename": "apg-0.4.8.tar.gz", "has_sig": false, "md5_digest": "c1db532fa4752608257d7ac8a8d09c0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9110092, "upload_time": "2019-10-22T07:44:39", "upload_time_iso_8601": "2019-10-22T07:44:39.534787Z", "url": "https://files.pythonhosted.org/packages/28/08/c58a0eb32b525a0d56eddc989daf443f3027ccf3d8ff2139c14ac43b7b6d/apg-0.4.8.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }