mkrp


Namemkrp JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
Summary A CLI to generate utils files for new projects.
upload_time2024-05-07 10:52:30
maintainerNone
docs_urlNone
authorHenrique Sebastião
requires_python<4.0,>=3.12
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Make Repository

[![CI](https://github.com/henriquesebastiao/mkrp/actions/workflows/ci.yml/badge.svg)](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[![CI](https://github.com/henriquesebastiao/mkrp/actions/workflows/ci.yml/badge.svg)](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"
}
        
Elapsed time: 0.23039s