{"id":20148803,"url":"https://github.com/yoshiya0503/hermetica","last_synced_at":"2026-05-25T03:01:50.243Z","repository":{"id":57437212,"uuid":"54104666","full_name":"yoshiya0503/Hermetica","owner":"yoshiya0503","description":"📖Hermetica is scaffold tools, and wiki to implement better flask applications.","archived":false,"fork":false,"pushed_at":"2018-05-31T06:34:56.000Z","size":53,"stargazers_count":64,"open_issues_count":0,"forks_count":8,"subscribers_count":8,"default_branch":"development","last_synced_at":"2025-03-23T21:51:54.209Z","etag":null,"topics":["architectural-patterns","best-practices","flask","pip","python","scaffolding","web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yoshiya0503.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-17T09:18:37.000Z","updated_at":"2025-02-02T09:55:09.000Z","dependencies_parsed_at":"2022-09-11T02:50:32.222Z","dependency_job_id":null,"html_url":"https://github.com/yoshiya0503/Hermetica","commit_stats":null,"previous_names":["yoshiya0503/flask-best-practices"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshiya0503%2FHermetica","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshiya0503%2FHermetica/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshiya0503%2FHermetica/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yoshiya0503%2FHermetica/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yoshiya0503","download_url":"https://codeload.github.com/yoshiya0503/Hermetica/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103915,"owners_count":21048244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architectural-patterns","best-practices","flask","pip","python","scaffolding","web"],"created_at":"2024-11-13T22:39:07.859Z","updated_at":"2026-05-25T03:01:45.199Z","avatar_url":"https://github.com/yoshiya0503.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hermetica\n\n[![PyPI](https://img.shields.io/pypi/v/nine.svg)](https://pypi.org/project/Hermetica/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/Hermetica.svg)](https://pypi.org/project/Hermetica/)\n[![CircleCI](https://circleci.com/gh/yoshiya0503/Hermetica/tree/master.svg?style=shield)](https://circleci.com/gh/yoshiya0503/Hermetica)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](CONTRIBUTING.md#pull-requests)\n[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)\n\n---\n\nTHIS IS NOT WEB FRAMEWORK TO REPLACE FLASK.\n\nHermetica is scaffold tools, and wiki to implement better flask applications.\n\nWhen we try to build web applications by using flask web framework, there are to many patterns and practices.\nThis diversity make it difficult to implement apps that have simple architecture.\nIn other words, because of too many manners, options, and patters, to implement more bigger applications is not so easy.\n(but, to implement small app by using flask is extreamly easy)\n\nTherefor, we try to implement the scaffold tools head for better architecture applications as mach as possible\nbased on our many experiences.\n\n* better and common directory structure\n* scaffold to create tipycal API, model.\n* select powerful packages(like SQLAlchemy Nose)\n\n# Installation\n\nWe dare to support only python 3.x, because python 2.x will eventually deprecated almost all systems, and we have to get used to python 3.x quickly.\n\n```\npip install hermetica\n```\n\n# Usage\n\n### Overview the usage\n\nhermetica has some subcommands, to create scaffold api, decorator, model.\n\n* api (url and routing method base or class base or flask-restful)\n* model (database models, sqlalchemy or mongoengine)\n* decorator (you can insert some code before enter the api, like a 'authentication')\n\n```\n→ hermetica --help\nUsage: hermetica [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  api        create api\n  decorator  create decorator\n  init       initialize your flask app\n  model      create model\n```\n\n### initialize your flask project.\n\n```\n→ hermetica init --help\nUsage: hermetica init [OPTIONS]\n\n  initialize your flask app\n\nOptions:\n  --api [restful|decorator|class]\n                                  Flask-Restful or Flask decorator or\n                                  methodview\n  --db [sqlalchemy|mongoengine]   SQLAlchemy or Mongoengine or None\n  --decorator                     create decorator or None\n  --redis                         using Redis or None\n  --docker                        using container\n  --help                          Show this message and exit.\n```\n\nAfter create project scaffold, you will check `Pipfile` contents, if there are shortages in list of packages, you can\nadd other packages into `Pipfile`, and lock your package.\n(We recommend you to use `pipenv` https://github.com/pypa/pipenv)\n\nHermetica support docker. you can see `Dockerfile` and `docker-compose.yml` at your root of project.\nWe recommend you to use docker-compose, it will helpful to separate from other projects.\n\n```\npipenv lock\n\n# if you set docker option, you can up the app container\ndocker-compose build\ndocker-compose up\n```\n\n### add api to your flask project.\n\n```\n→ hermetica api --help\nUsage: hermetica api [OPTIONS] NAME\n\n  create api\n\nOptions:\n  --api [restful|decorator|class]\n                                  Flask-Restful or Flask decorator or\n                                  methodview\n  --version TEXT                  API version\n  --help                          Show this message and exit.\n```\n\n### add model to your flask project.\n\n```\n→ hermetica model --help\nUsage: hermetica model [OPTIONS] NAME\n\n  create model\n\nOptions:\n  --db [sqlalchemy|mongoengine]  SQLAlchemy or Mongoengine or None\n  --help                         Show this message and exit.\n```\n\n### add decorator to your flask project.\n\n```\n→ hermetica decorator --help\nUsage: hermetica decorator [OPTIONS] NAME\n\n  create decorator\n\nOptions:\n  --help  Show this message and exit.\n```\n\n# Development\n\nThis repos is too young, so we provide few useful features yet.\nwe will grad if you send PRs...\n\n# See Before Wiki (Flask Best Practices)\n\nWhy we apply broken change? Because, before repo source code is slightly trivial,\nand we believe this change will not cause any negative impact to others.\n\nTo create scaffold tools for flask will cause good affect the world rather than remain trivial code.\nBut there are no warries. Flask-best-Practices contents (wiki docs) remain here (but only for japanese).\n\nhttps://github.com/yoshiya0503/Hermetica/wiki\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoshiya0503%2Fhermetica","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoshiya0503%2Fhermetica","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoshiya0503%2Fhermetica/lists"}