|
| 1 | +<div align = "center"> |
1 | 2 |
|
2 | | -<h1 align = "center"> |
3 | | - Python GIT Template <br> |
4 | | - <a href="https://github.com/ZenithClown/python-git-template/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/ZenithClown/python-git-template?style=plastic"></a> |
5 | | - <a href="https://github.com/ZenithClown/python-git-template/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/ZenithClown/python-git-template?style=plastic"></a> |
6 | | - <a href="https://github.com/ZenithClown/python-git-template/network"><img alt="GitHub forks" src="https://img.shields.io/github/forks/ZenithClown/python-git-template?style=plastic"></a> |
7 | | - <img src = "https://img.shields.io/badge/python-3.6-lightgrey?style=plastic&logo=python"> |
8 | | - <br> |
9 | | - <a href = "https://www.linkedin.com/in/dpramanik/"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/linkedin.svg"/></a> |
10 | | - <a href = "https://github.com/ZenithClown"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/github.svg"/></a> |
11 | | - <a href = "https://gitlab.com/ZenithClown/"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/gitlab.svg"/></a> |
12 | | - <a href = "https://www.researchgate.net/profile/Debmalya_Pramanik2"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/researchgate.svg"/></a> |
13 | | - <a href = "https://www.kaggle.com/dPramanik/"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/kaggle.svg"/></a> |
14 | | - <a href = "https://app.pluralsight.com/profile/Debmalya-Pramanik/"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/pluralsight.svg"/></a> |
15 | | - <a href = "https://stackoverflow.com/users/6623589/"><img height="16" width="16" src="https://unpkg.com/simple-icons@v3/icons/stackoverflow.svg"/></a> |
16 | | -</h1> |
17 | | - |
18 | | -<p align = "justify"><b>TEMPLATE Design</b> built specifically for python Language, with necessary file structure as required. <strike>This TEMPLATE DOES NOT COME with a LICENSE File, but you can easily add a required license from GitHub. However, special files like .gitignore .gitattributes are included.</strike> The TEMPLATE now includes as LICENSE file, and other files are kept as is.</p> |
19 | | - |
20 | | -<p><strike> |
21 | | - |
22 | | -Follow the steps to create a new license file as below: |
23 | | -- Open the Repository |
24 | | -- Click "Add file" > "Create a New File" |
25 | | -- Type the name of the File as: LICENSE or LICENSE.txt or LICENSE.md |
26 | | -- Click on "Choose a License Template" |
27 | | -- Review and Submit |
28 | | -- Commit Changes as Required |
29 | | - |
30 | | -</strike></p> |
31 | | - |
32 | | -**NOTE:** some optional usage, specifications, and helpful links are as below: |
33 | | - 1. You can add GitHub Repository Badges from [Shields IO](https://shields.io/) - if this is a Public Repository; |
34 | | - 2. TAB (size = 4) has been used for indentation, except this file (README.md). |
35 | | - 3. `.github/workflows` is added however, it is recomended that you create your own workflows either using **GitHub Actions** or on your own. |
36 | | - 4. Basic `docker` files are added for convention, modify it as per requirement. Recomended to delete the file, if not required. |
37 | | - 5. The repository uses `markdown` instead of `rich text format`, so make necessary changes to file extension/type as required. |
| 3 | +# Python GIT Template |
| 4 | + |
| 5 | +[](https://github.com/ZenithClown/python-git-template/issues) |
| 6 | +[](https://github.com/ZenithClown/python-git-template/network) |
| 7 | +[](https://github.com/ZenithClown/python-git-template/stargazers) |
| 8 | +[](https://github.com/ZenithClown/python-git-template/blob/master/LICENSE) |
| 9 | + |
| 10 | +[](https://github.com/ZenithClown/python-git-template/actions/workflows/code-linting.yml) |
| 11 | +[](https://github.com/ZenithClown/python-git-template/actions/workflows/dependabot/dependabot-updates) |
| 12 | + |
| 13 | +</div> |
| 14 | + |
| 15 | +<div align = "justify"> |
| 16 | + |
| 17 | +A *simple and modern template* for Python module development with additional workflows, code linting checks, etc. to quickly |
| 18 | +build necessary file structure. The repository is build as a *template repository* that can be used to create the same directory |
| 19 | +structure, branches (optional) and files. To create a repository from this template: |
| 20 | + |
| 21 | + * Select "Use this Template" > "Create New Repository" from the dropdown menu, |
| 22 | + * Optionally, you can include all the branches (not-recommended) from the menu, and |
| 23 | + * Follow the steps to create repository information and choose the visibility. |
38 | 24 |
|
39 | 25 | ## Quick Start Guide |
40 | | -<p align = "justify">Introduced in 2019, users can now create a repository from templates in GitHub. To do this, simply head over to any repository settings and enable "Template Repository" from the Options Menu. When creating a <i>new repository</i> from this template, you can just click on <b><code>Use this template</code></b> available in this repository (refer the picture below).</p> |
41 | 26 |
|
42 | | -<img alt = "use_this_template_demo" src = "./assets/use_this_template_demo.png"> |
| 27 | +Introduced in 2019, users can now create a repository from templates in GitHub. To do this, simply head over to any repository |
| 28 | +settings and enable "Template Repository" from the Options Menu. When creating a *new repository* from this template, you can |
| 29 | +just click on **`Use this Template`** available in this repository (refer the picture below). |
43 | 30 |
|
44 | | -### Creating a NEW Repository from Template |
45 | | -<p align = "justify">Template Repository is not limited to GitHub, and you can setup your own local-file structure for the same. The following describes the usage of <code>rsync</code> which is available in most linux distros, <a href = "https://linux.die.net/man/1/rsync">more information on rsync</a>.</p> |
| 31 | +[](./assets/use_this_template_demo.png) |
| 32 | + |
| 33 | +The template repository is not limited to GitHub, but can be widely used by using simple shell commands to copy and sync the |
| 34 | +contents like below: |
46 | 35 |
|
47 | 36 | ```bash |
48 | | -# Note the use of rsync |
49 | 37 | rsync -rh ~/source/directory /destination/directory |
50 | 38 | ``` |
51 | 39 |
|
52 | | -## Setup Information |
53 | | -<p align = "justify">The template provides a <i>general</i> structure that I use (highly motivated from pandas dir and coding structure). There needs to be several things that need to be changed, just after initializing with the template, which are as follows:</p> |
| 40 | +The above tool reflects the wide adaptibility and simplicity of usage of the code that provides forward integration with any |
| 41 | +external models/libraries. |
54 | 42 |
|
55 | | -- `PKG` variable under `setup.py` has to be replaced with the module name and directory name `pkg-name`, |
56 | | -- Define High-Level Version Name (like 0.0.1, 0.1, 1.1, etc.) in `pkg-name/VERSION` file, to be interpreted by `setup.py`, and |
57 | | -- Define/Check/Update Author Name, Copyright Information (if any) in `setup.py` and `pkg-name/__init__.py`. |
| 43 | +## Project License |
58 | 44 |
|
59 | | -**TIP:** Install using `pip` by moving into the parent directory, with the following folder: |
60 | | -```bash |
61 | | -debmalya@machine:~$ ls -l |
62 | | -drwxrwxr-x 3 debmalya debmalya 4096 Aug 30 12:04 PYTHON_GIT_TEMPLATE |
63 | | -``` |
64 | | -Finally, install it via: |
65 | | -```python |
66 | | -pip install ./PYTHON_GIT_TEMPLATE # Normal Installation |
67 | | -pip install -e ./PYTHON_GIT_TEMPLATE # Installation in Editable Mode |
68 | | -``` |
| 45 | +This repository follows [MIT License](./LICENSE) but you're free to use any type of license; choose a type of |
| 46 | +[*licese*](https://choosealicense.com/) as suitable for your project/required by your organization. |
| 47 | + |
| 48 | +## GitHub Workflows |
| 49 | + |
| 50 | +The project is configured with utility workflows for *continuous integration and development* for automating process like |
| 51 | +dependency checks, code lintings, etc. The following workflows are available. |
| 52 | + |
| 53 | +### Dependabot Updates |
| 54 | + |
| 55 | +The [`workflow`](.github/dependabot.yml) can be used to automatically check for requirements that can be required by the |
| 56 | +package. To use this, a `requirements.txt` file needs to be maintained, on which a new PR is automatically created when a new |
| 57 | +release is available. To use this effectively, create two new labels `pip` and `dependencies` for the repository, as the |
| 58 | +bot can automatically label the new pull requests accordingly. |
| 59 | + |
| 60 | +### Code Linting using Flake8 |
69 | 61 |
|
70 | | -## flake8 Convention |
71 | 62 | Use the command `flake8 . --count --exit-zero --max-complexity=10 --statistics` to generate a report. |
| 63 | + |
| 64 | +</div> |
0 commit comments