| Name | mkrp JSON |
| Version |
0.1.0
JSON |
| download |
| home_page | None |
| Summary | A CLI to generate utils files for new projects. |
| upload_time | 2024-05-07 10:52:30 |
| maintainer | None |
| docs_url | None |
| author | Henrique Sebastião |
| requires_python | <4.0,>=3.12 |
| license | None |
| keywords |
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# Make Repository
[](https://github.com/henriquesebastiao/mkrp/actions/workflows/ci.yml)
`mkrp` is a command-line tool for initial configuration of tools for a new repository.
`mkrp` was designed to speed up the creation of configurations that I (the author, [@henriquesebastiao](https://twitter.com/hick_hs)) commonly use in my projects (Python preferably). If you see any use in this, feel free to use it and improve it if you want.
## Installation
The CLI is available on PyPI and can be installed using `pip` or `pipx`:
```bash
pipx install mkrp
```
## Usage
The following command creates the following configurations:
- `.gitignore` file for Python projects
- GitHub Actions for Python projects that perform the integration tasks are listed below.
- Add development tool settings to `pyproject.toml` for Python projects
Tools configured for Python projects:
- `ruff` - Linting
- `blue` - Formatting
- `isort` - Sorting imports
- `mypy` - Static type checking
- `radon` - Code complexity checking
- `bandit` - Security checking
- `pydocstyle` - Docstring checking
- `pytest` - Testing
- `taskipy` - Task runner
```bash
mkrp python
```
Also configuring a license for the repository with the flag `-l` or `--license`:
```bash
mkrp python -l
```
By default, the MIT license will be configured.
## Sources
- The `.gitignore` file is generated with the [gitignore.io](https://www.toptal.com/developers/gitignore) api
- GitHub Actions CI configurations are configured according to the following model:
```yaml
on: [ push, pull_request ]
name: CI
jobs:
checks:
name: Checks
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ 3.12 ]
check: [ ruff, blue, isort, pydocstyle, radon, mypy, bandit ]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry config virtualenvs.create false
poetry install
- name: Run checks
run: |
task ${{ matrix.check }}
```
- The development tool settings are configured in the `pyproject.toml` file according to the following model:
```toml
[tool.mypy]
ignore_missing_imports = true
check_untyped_defs = true
[tool.isort]
profile = "black"
line_length = 79
[tool.ruff]
line-length = 79
indent-width = 4
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F403", "F401"]
"tests/*" = ["F401", "F811"]
[tool.pytest.ini_options]
pythonpath = "."
python_files = "test.py tests.py test_*.py tests_*.py *_test.py *_tests.py"
[tool.taskipy.tasks]
ruff = "ruff check ."
blue = "blue --check . --diff"
isort = "isort --check --diff ."
mypy = "mypy -p <YOUR-PROJECT>"
radon = "radon cc ./<YOUR-PROJECT> -a -na"
bandit = "bandit -r ./<YOUR-PROJECT>"
pydocstyle = "pydocstyle ./<YOUR-PROJECT> --count --convention=google --add-ignore=D100,D104,D105,D107"
lint = "task ruff && task blue && task isort"
format = 'blue . && isort .'
quality = "task mypy && task radon && task pydocstyle"
pre_test = "task lint"
test = "pytest -s -x --cov=<YOUR-PROJECT> -vv"
post_test = "coverage html"
export-requirements = "rm requirements.txt && poetry export -f requirements.txt --output requirements.txt --without-hashes"
ready = "task lint && task quality && task bandit && pytest -s -x --cov=<YOUR-PROJECT> -vv && task export-requirements"
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "mkrp",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": null,
"author": "Henrique Sebasti\u00e3o",
"author_email": "contato@henriquesebastiao.com",
"download_url": "https://files.pythonhosted.org/packages/75/db/51540bf44bc83be259ca7a8b06ab260278767413549d061193e41ee8fd4c/mkrp-0.1.0.tar.gz",
"platform": null,
"description": "# Make Repository\n\n[](https://github.com/henriquesebastiao/mkrp/actions/workflows/ci.yml)\n\n`mkrp` is a command-line tool for initial configuration of tools for a new repository.\n\n`mkrp` was designed to speed up the creation of configurations that I (the author, [@henriquesebastiao](https://twitter.com/hick_hs)) commonly use in my projects (Python preferably). If you see any use in this, feel free to use it and improve it if you want.\n\n## Installation\n\nThe CLI is available on PyPI and can be installed using `pip` or `pipx`:\n\n```bash\npipx install mkrp\n```\n\n## Usage\n\nThe following command creates the following configurations:\n\n- `.gitignore` file for Python projects\n- GitHub Actions for Python projects that perform the integration tasks are listed below.\n- Add development tool settings to `pyproject.toml` for Python projects\n\nTools configured for Python projects:\n- `ruff` - Linting\n- `blue` - Formatting\n- `isort` - Sorting imports\n- `mypy` - Static type checking\n- `radon` - Code complexity checking\n- `bandit` - Security checking\n- `pydocstyle` - Docstring checking\n- `pytest` - Testing\n- `taskipy` - Task runner\n\n```bash\nmkrp python\n```\n\nAlso configuring a license for the repository with the flag `-l` or `--license`:\n\n```bash\nmkrp python -l\n```\n\nBy default, the MIT license will be configured.\n\n## Sources\n\n- The `.gitignore` file is generated with the [gitignore.io](https://www.toptal.com/developers/gitignore) api\n- GitHub Actions CI configurations are configured according to the following model:\n\n```yaml\non: [ push, pull_request ]\n\nname: CI\n\njobs:\n checks:\n name: Checks\n runs-on: ubuntu-latest\n strategy:\n matrix:\n python-version: [ 3.12 ]\n check: [ ruff, blue, isort, pydocstyle, radon, mypy, bandit ]\n\n steps:\n - uses: actions/checkout@v4\n - name: Set up Python ${{ matrix.python-version }}\n uses: actions/setup-python@v5\n with:\n python-version: ${{ matrix.python-version }}\n - name: Install Dependencies\n run: |\n python -m pip install --upgrade pip\n pip install poetry\n poetry config virtualenvs.create false\n poetry install\n - name: Run checks\n run: |\n task ${{ matrix.check }}\n```\n\n- The development tool settings are configured in the `pyproject.toml` file according to the following model:\n\n```toml\n[tool.mypy]\nignore_missing_imports = true\ncheck_untyped_defs = true\n\n[tool.isort]\nprofile = \"black\"\nline_length = 79\n\n[tool.ruff]\nline-length = 79\nindent-width = 4\n\n[tool.ruff.lint.per-file-ignores]\n\"__init__.py\" = [\"F403\", \"F401\"]\n\"tests/*\" = [\"F401\", \"F811\"]\n\n[tool.pytest.ini_options]\npythonpath = \".\"\npython_files = \"test.py tests.py test_*.py tests_*.py *_test.py *_tests.py\"\n\n[tool.taskipy.tasks]\nruff = \"ruff check .\"\nblue = \"blue --check . --diff\"\nisort = \"isort --check --diff .\"\nmypy = \"mypy -p <YOUR-PROJECT>\"\nradon = \"radon cc ./<YOUR-PROJECT> -a -na\"\nbandit = \"bandit -r ./<YOUR-PROJECT>\"\npydocstyle = \"pydocstyle ./<YOUR-PROJECT> --count --convention=google --add-ignore=D100,D104,D105,D107\"\nlint = \"task ruff && task blue && task isort\"\nformat = 'blue . && isort .'\nquality = \"task mypy && task radon && task pydocstyle\"\npre_test = \"task lint\"\ntest = \"pytest -s -x --cov=<YOUR-PROJECT> -vv\"\npost_test = \"coverage html\"\nexport-requirements = \"rm requirements.txt && poetry export -f requirements.txt --output requirements.txt --without-hashes\"\nready = \"task lint && task quality && task bandit && pytest -s -x --cov=<YOUR-PROJECT> -vv && task export-requirements\"\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.",
"bugtrack_url": null,
"license": null,
"summary": " A CLI to generate utils files for new projects.",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/henriquesebastiao/mkrp/issues",
"Documentation": "https://mkrp.henriquesebastiao.com",
"Homepage": "https://mkrp.henriquesebastiao.com",
"Repository": "https://github.com/henriquesebastiao/mkrp"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "29a67f865d2ddfc66be85ba00360ad95eed72deb59300795a85887e8759df7c4",
"md5": "ec9ed414a79bfe188cc64d75e973f597",
"sha256": "257419a758cd66bd0ea1da3fea7eb99c93d1a34fe706214bfe93d613d3f2cd00"
},
"downloads": -1,
"filename": "mkrp-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ec9ed414a79bfe188cc64d75e973f597",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 8220,
"upload_time": "2024-05-07T10:52:28",
"upload_time_iso_8601": "2024-05-07T10:52:28.063651Z",
"url": "https://files.pythonhosted.org/packages/29/a6/7f865d2ddfc66be85ba00360ad95eed72deb59300795a85887e8759df7c4/mkrp-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75db51540bf44bc83be259ca7a8b06ab260278767413549d061193e41ee8fd4c",
"md5": "0832a733f7043bc1090e4b18dd2db252",
"sha256": "24d17451de7df2e8a5e9314345cbb2371f88de6651217583bd8e66c828ab0c50"
},
"downloads": -1,
"filename": "mkrp-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "0832a733f7043bc1090e4b18dd2db252",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 5613,
"upload_time": "2024-05-07T10:52:30",
"upload_time_iso_8601": "2024-05-07T10:52:30.053374Z",
"url": "https://files.pythonhosted.org/packages/75/db/51540bf44bc83be259ca7a8b06ab260278767413549d061193e41ee8fd4c/mkrp-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-07 10:52:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "henriquesebastiao",
"github_project": "mkrp",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "mkrp"
}