{"id":24989003,"url":"https://github.com/engineervix/hello-flit","last_synced_at":"2025-03-29T11:29:43.377Z","repository":{"id":37050555,"uuid":"503355547","full_name":"engineervix/hello-flit","owner":"engineervix","description":"This is a python project created with the sole purpose of testing out flit","archived":false,"fork":false,"pushed_at":"2025-03-12T00:06:52.000Z","size":506,"stargazers_count":0,"open_issues_count":12,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-12T01:19:41.357Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/engineervix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"publiccode":null,"codemeta":null}},"created_at":"2022-06-14T12:44:19.000Z","updated_at":"2022-06-14T22:38:03.000Z","dependencies_parsed_at":"2023-10-16T21:07:39.531Z","dependency_job_id":"3971ef26-bcaf-43a9-adf7-ed966356a2a2","html_url":"https://github.com/engineervix/hello-flit","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fhello-flit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fhello-flit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fhello-flit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fhello-flit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/engineervix","download_url":"https://codeload.github.com/engineervix/hello-flit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246177887,"owners_count":20736043,"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":[],"created_at":"2025-02-04T12:11:47.081Z","updated_at":"2025-03-29T11:29:43.360Z","avatar_url":"https://github.com/engineervix.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to Hello Flit 👋\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://testpypi.org/project/hello-flit\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9%20%7C%203.10-blue\" alt=\"Python Version\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://en.wikipedia.org/wiki/Command-line_interface\" target=\"_blank\"\u003e\n  \u003cimg alt=\"CLI application\" src=\"https://badgen.net/badge/icon/terminal?icon=terminal\u0026label\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.gnu.org/gnu/linux-and-gnu.en.html\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Runs on GNU/Linux\" src=\"https://svgshare.com/i/Zhy.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://support.apple.com/en-us/HT201260\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Runs on Mac OSX\" src=\"https://svgshare.com/i/ZjP.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.microsoft.com/en-us/windows\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Runs on Windows\" src=\"https://svgshare.com/i/ZhY.svg\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/engineervix/hello-flit/actions/workflows/main.yml\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://github.com/engineervix/hello-flit/actions/workflows/main.yml/badge.svg\" alt=\"Build Status\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/engineervix/hello-flit/actions/workflows/docs.yml\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://github.com/engineervix/hello-flit/actions/workflows/docs.yml/badge.svg\" alt=\"Docs Build Status\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://codecov.io/gh/engineervix/hello-flit\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://codecov.io/gh/engineervix/hello-flit/branch/main/graph/badge.svg\" alt=\"codecov\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://results.pre-commit.ci/latest/github/engineervix/hello-flit/main\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://results.pre-commit.ci/badge/github/engineervix/hello-flit/main.svg\" alt=\"pre-commit.ci status\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/engineervix/hello-flit/commits/main\" target=\"_blank\"\u003e\n  \u003cimg alt=\"GitHub commits since latest release (by SemVer)\" src=\"https://img.shields.io/github/commits-since/engineervix/hello-flit/latest/main\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/engineervix/hello-flit\" alt=\"License\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/psf/black\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" alt=\"Code style: black\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://conventionalcommits.org\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=flat-square\" alt=\"Conventional Commits\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://commitizen-tools.github.io/commitizen/\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/commitizen-friendly-brightgreen.svg\" alt=\"Commitizen friendly\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e A python project created with the sole purpose of testing out [Flit](https://flit.pypa.io/en/latest/index.html)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n**Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\n\n- [What's Flit?](#whats-flit)\n- [What does this project do?](#what-does-this-project-do)\n- [Project features](#project-features)\n- [Documentation](#documentation)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Development](#development)\n  - [First things first](#first-things-first)\n  - [Getting Started](#getting-started)\n  - [Tests](#tests)\n  - [Code Formatting](#code-formatting)\n- [Versioning / Creating a GitHub Release and Auto Publishing to PyPI](#versioning--creating-a-github-release-and-auto-publishing-to-pypi)\n- [Publishing](#publishing)\n- [Contributing](#contributing)\n- [TODO](#todo)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## What's Flit?\n\nAccording to the official docs:\n\n\u003e **Flit** is a simple way to put Python packages and modules on PyPI. It tries to require less thought about packaging and help you avoid common mistakes. See [Why use Flit?](https://flit.readthedocs.io/en/latest/rationale.html) for more about how it compares to other Python packaging tools.\n\n## What does this project do?\n\nWell, what this project does isn't very important. The main point of this project is to try out packaging with Flit. However, since you asked, this project provides a simple CLI utility to create a directory tree suitable for organizing your work using the Year / Quarter / Month / Week convention, for instance:\n\n```txt\n2017/\n├── qtr_01\n│   ├── 01_Jan\n│   │   ├── wk01_01Jan-07Jan\n│   │   ├── wk02_08Jan-14Jan\n│   │   ├── wk03_15Jan-21Jan\n│   │   ├── wk04_22Jan-28Jan\n│   │   └── wk05_29Jan-04Feb\n│   ├── 02_Feb\n│   │   ├── wk05_29Jan-04Feb\n│   │   ├── wk06_05Feb-11Feb\n│   │   ├── wk07_12Feb-18Feb\n│   │   ├── wk08_19Feb-25Feb\n│   │   └── wk09_26Feb-04Mar\n│   └── 03_Mar\n│       ├── wk09_26Feb-04Mar\n│       ├── wk10_05Mar-11Mar\n│       ├── wk11_12Mar-18Mar\n│       ├── wk12_19Mar-25Mar\n│       └── wk13_26Mar-01Apr\n├── qtr_02\n│   ├── 04_Apr\n│   │   ├── wk13_26Mar-01Apr\n│   │   ├── wk14_02Apr-08Apr\n│   │   ├── wk15_09Apr-15Apr\n│   │   ├── wk16_16Apr-22Apr\n│   │   ├── wk17_23Apr-29Apr\n│   │   └── wk18_30Apr-06May\n│   ├── 05_May\n│   │   ├── wk18_30Apr-06May\n│   │   ├── wk19_07May-13May\n│   │   ├── etc, you get the picture!\n```\n\n## Project features\n\n- This is more-or-less a **typical python package**, with a structure similar to that created using [@audreyfeldroy/cookiecutter-pypackage](https://github.com/audreyfeldroy/cookiecutter-pypackage)\n- Supports Python 3.6+\n- Tests written using [Pytest](https://docs.pytest.org/), linting with [black](https://github.com/psf/black), [flake8](https://flake8.pycqa.org/en/latest/), [isort](https://github.com/PyCQA/isort)\n- Uses [Invoke](https://www.pyinvoke.org/) for task execution\n- Uses [tox](https://tox.wiki/en/latest/) for test automation\n- The CLI is powered by [Typer](https://typer.tiangolo.com)\n- Documentation using [mkdocs](https://mkdocs.org/) and [mkdocs-material](https://squidfunk.github.io/mkdocs-material)\n\n## Documentation\n\nRead the docs: \u003chttps://engineervix.github.io/hello-flit/\u003e\n\n## Installation\n\n```bash\npip install -i https://test.pypi.org/simple --extra-index-url https://pypi.python.org/simple hello-flit\n```\n\n## Usage\n\n```txt\nUsage: hello-flit [OPTIONS] [YEAR]\n\nArguments:\n  [YEAR]  the year for which you'd like to create a directory tree  [default: \u003ccurrent_year\u003e]\n\nOptions:\n  -v, --version         Show the application's version and exit.\n  --install-completion  Install completion for the current shell.\n  --show-completion     Show completion for the current shell, to copy it or\n                        customize the installation.\n  --help                Show this message and exit.\n```\n\n## Development\n\n### First things first\n\n- ensure that you have [Python 3.6+](https://www.python.org/) on your machine, and that you are able to configure python [**virtual environment**](https://realpython.com/python-virtual-environments-a-primer/)s.\n- ensure that you have [git](https://git-scm.com/) setup on your machine.\n\n### Getting Started\n\nFirst, [fork](https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo) this repository, then fire up your command prompt and ...\n\n1. Clone the forked repository\n2. Navigate to the cloned project directory: `cd hello-flit`\n3. activate your python virtual environment and `pip install --upgrade pip`\n4. Install dependencies: `pip install -r requirements_dev.txt`\n5. Setup [pre-commit](https://pre-commit.com/) by running `pre-commit install` followed by `pre-commit install --hook-type commit-msg`. Optionally run `pre-commit run --all-files` to make sure your pre-commit setup is okay.\n\nAt this stage, hopefully everything should be working fine, and you should be able to start hacking on the project.\n\nYou can run the application via `inv run [options]` or\n\n```sh\npython hello_flit/cli.py [options]\n```\n\n### Tests\n\nSimply run `pytest` or `inv test` to run tests in your virtual environment.\n\nTest other Python versions by running `tox`.\n\n### Code Formatting\n\n- Run `invoke lint` to run [`flake8`](https://flake8.pycqa.org/en/latest/), [`black`](https://black.readthedocs.io/en/stable/), [`isort`](https://pycqa.github.io/isort/) and [`mypy`](https://mypy.readthedocs.io/en/stable/) on the code.\n- If you get any errors from `black` and/or `isort`, run `invoke lint --fix` or `invoke lint -f` so that black and isort can format your files. Alternatively, just run `pre-commit`. You can take a look at [.pre-commit-config.yaml](https://github.com/engineervix/hello-flit/blob/main/.pre-commit-config.yaml).\n\n## Versioning / Creating a GitHub Release and Auto Publishing to PyPI\n\nThis project uses both [commitizen-tools](https://github.com/commitizen-tools/commitizen) and [standard-version](https://github.com/conventional-changelog/standard-version) to manage package versions and changelogs. The former is a python package, and is included in [`requirements-dev.txt`](./requirements_dev.txt), while the latter is a Node.js package (you'll need to install it globally: `npm i -g standard-version`), whose config file is [`.versionrc`](./.versionrc).\n\nTo bump to the next version:\n\n```bash\ninv bump\n```\n\nThis will automagically create a tag, update the Changelog, commit the changes and push to your GitHub repo. If the CI tests are successful, a GitHub Release will be created and Flit will publish your package to the [CheeseShop](https://wiki.python.org/moin/CheeseShop).\n\n## Publishing\n\n```bash\n# to TestPyPI\nflit publish --repository testpypi\n\n# to PyPI\nflit publish\n```\n\n## Contributing\n\nContributions, issues and feature requests are most welcome!\n\nFeel free to check the [issues page](https://github.com/engineervix/hello-flit/issues) and take a look at the [contributing guide](https://github.com/engineervix/hello-flit/blob/main/CONTRIBUTING.md) before you get started. In addition, please note the following:\n\n- if you're making code contributions, please try and write some tests to accompany your code, and ensure that the tests pass. Also, were necessary, update the docs so that they reflect your changes.\n- commit your changes via `cz commit`. Follow the prompts. When you're done, `pre-commit` will be invoked to ensure that your contributions and commits follow defined conventions. See `pre-commit-config.yaml` for more details.\n- your commit messages should follow the conventions described [here](https://www.conventionalcommits.org/en/v1.0.0/). Write your commit message in the imperative: \"Fix bug\" and not \"Fixed bug\" or \"Fixes bug.\" This convention matches up with commit messages generated by commands like `git merge` and `git revert`.\nOnce you are done, please create a [pull request](https://github.com/engineervix/hello-flit/pulls).\n\n## TODO\n\n- [x] Replicate this but with a Wagtail / Django package. See [@engineervix/hello-flit-django-modelcluster](https://github.com/engineervix/hello-flit-django-modelcluster)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fhello-flit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineervix%2Fhello-flit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fhello-flit/lists"}