{"id":19406798,"url":"https://github.com/blankdots/minimalpy","last_synced_at":"2026-01-04T18:47:26.715Z","repository":{"id":37969910,"uuid":"141537968","full_name":"blankdots/minimalpy","owner":"blankdots","description":"Minimal Python 3 project","archived":false,"fork":false,"pushed_at":"2024-04-01T11:04:27.000Z","size":145,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-01T12:26:31.438Z","etag":null,"topics":["aiohttp","minimal","python","python3"],"latest_commit_sha":null,"homepage":"https://minimalpy.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blankdots.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-07-19T07:02:11.000Z","updated_at":"2024-04-15T12:40:54.006Z","dependencies_parsed_at":"2024-04-01T12:25:35.164Z","dependency_job_id":"8c7e38c1-68ad-415b-aaf5-5c9adc8f1d8e","html_url":"https://github.com/blankdots/minimalpy","commit_stats":null,"previous_names":[],"tags_count":12,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blankdots%2Fminimalpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blankdots%2Fminimalpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blankdots%2Fminimalpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blankdots%2Fminimalpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blankdots","download_url":"https://codeload.github.com/blankdots/minimalpy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245295416,"owners_count":20592044,"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":["aiohttp","minimal","python","python3"],"created_at":"2024-11-10T11:44:34.741Z","updated_at":"2026-01-04T18:47:26.669Z","avatar_url":"https://github.com/blankdots.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Minimal Python Project\n\n![Integration Tests](https://github.com/blankdots/minimalpy/workflows/Integration%20Tests/badge.svg)\n![Python Unit Tests](https://github.com/blankdots/minimalpy/workflows/Python%20Unit%20Tests/badge.svg)\n![Python style check](https://github.com/blankdots/minimalpy/workflows/Python%20style%20check/badge.svg)\n![Documentation Checks](https://github.com/blankdots/minimalpy/workflows/Documentation%20Checks/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/blankdots/minimalpy/badge.svg?branch=HEAD)](https://coveralls.io/github/blankdots/minimalpy?branch=HEAD)\n[![Documentation Status](https://readthedocs.org/projects/minimalpy/badge/?version=latest)](https://minimalpy.readthedocs.io/en/latest/?badge=latest)\n\nAn example of a minimal Python 3.11+ project that contains an web application built with [aiohttp](http://aiohttp.readthedocs.io/).\nAt the same time the project exemplifies:\n* aiohttp server;\n* logging formatting;\n* unit tests;\n* [tox automation](https://tox.readthedocs.io) for:\n  * [flake8](http://flake8.pycqa.org/en/latest/) style enforcement;\n  * running unit tests and coverage;\n* github-actions and [coveralls](https://coveralls.io/github/blankdots/minimalpy) integration;\n* [bandit](https://bandit.readthedocs.io) to check common security issues in Python code;\n* building documentation for [readthedocs](https://minimalpy.readthedocs.io).\n\n### Install and Run\n\nInstallation can be done:\n* Github - without cloning\n```\n$ pip install git+https://github.com/blankdots/minimalpy.git\n```\n* cloning repository:\n```\n$ git clone git@github.com:blankdots/minimalpy.git\n$ cd minimalpy\n$ pip install .\n```\n\nAfter install the application can be started like: `$ minimal`\n\n#### Tests and Documentation\n\nIn order to run the tests: `$ tox` in the root directory of the git project.\n\nTo build documentation locally:\n```\n$ cd docs\n$ make html\n```\n\n###  Structure\n\nFollowing a similar structure as described in: [Structuring Your (Python) Project](https://docs.python-guide.org/writing/structure/).\nMain application resides in `minimalpy` folder, documentation in `docs` and unit tests in `tests`.\n\n```\n.\n├── minimalpy\n│   ├── __init__.py\n│   └── server.py\n├── data\n│   └── data.json\n├── docs\n│   ├── conf.py\n│   ├── index.rst\n│   └── Makefile\n├── bandit.yml\n├── LICENSE\n├── README.md\n├── readthedocs.yml\n├── requirements.txt\n├── setup.py\n├── tests\n│   ├── conftest.py\n│   ├── coveralls.py\n│   ├── __init__.py\n│   └── test_server.py\n└── tox.ini\n```\n\n### Build and Deployment\n\nbuild and run using `docker`:\n```\ndocker build -t minimalpy .\ndocker run -p 5430:5430 minimalpy\n```\n\n### License\n\n`minimalpy` python and all it sources are released under `Apache License 2.0`.\n\n\n### Similar Projects\n\nSome projects similar in scope:\n\n* https://github.com/pypa/sampleproject\n* https://github.com/kennethreitz/samplemod\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblankdots%2Fminimalpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblankdots%2Fminimalpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblankdots%2Fminimalpy/lists"}