|
| 1 | +# 🚀 QuickStart |
1 | 2 |
|
2 | | -<<<<<<< HEAD |
| 3 | +[](https://github.com/Ruh-Al-Tarikh/quickstart/actions/workflows/ci.yml) |
| 4 | +[](https://www.python.org/) |
| 5 | +[](LICENSE) |
3 | 6 |
|
4 | | -🚀 QuickStart |
| 7 | +A minimal, developer-friendly **Python starter template** for building **Prefect workflows**, **CLI tools**, or **reusable libraries** — fast. |
5 | 8 |
|
6 | | -<<<<<<< HEAD |
| 9 | +Perfect for automation, orchestration, experiments, and learning without boilerplate overload. |
7 | 10 |
|
8 | | -======= |
| 11 | +--- |
9 | 12 |
|
10 | | -[](https://github.com/Ruh-Al-Tarikh/quickstart/actions/workflows/python-publish.yml) |
11 | | ->>>>>>> e9fa83a9161933a6486eb1bee48501f812e0fdf8 |
| 13 | +## ✨ What This Template Is For |
12 | 14 |
|
13 | | -# quickstart |
| 15 | +This repo is designed to be flexible. You can use it as: |
14 | 16 |
|
15 | | -A minimal Python "quickstart" project template to get a small script or package up and running quickly. |
| 17 | +- 🧭 **Prefect automation project** (flows, tasks, deployments) |
| 18 | +- 🖥️ **CLI tool** (`quickstart run`, `quickstart deploy`, etc.) |
| 19 | +- 📦 **Python library** (importable, testable, publishable) |
16 | 20 |
|
17 | | -Badges |
18 | | -- Build / CI:  |
19 | | -- Python versions:  |
20 | | -- License:  |
| 21 | +--- |
| 22 | + |
| 23 | +## 📚 Table of Contents |
21 | 24 |
|
22 | | -Table of contents |
23 | 25 | - [About](#about) |
| 26 | +- [Project Layout](#project-layout) |
24 | 27 | - [Prerequisites](#prerequisites) |
25 | | -- [Quick start](#quick-start) |
| 28 | +- [Quick Start](#quick-start) |
26 | 29 | - [Usage](#usage) |
| 30 | +- [Prefect Workflows](#prefect-workflows) |
| 31 | +- [CLI Usage](#cli-usage) |
27 | 32 | - [Development](#development) |
28 | 33 | - [Testing](#testing) |
29 | 34 | - [Linting & Formatting](#linting--formatting) |
30 | | -- [Packaging](#packaging) |
| 35 | +- [Packaging & Publishing](#packaging--publishing) |
| 36 | +- [Continuous Integration](#continuous-integration) |
31 | 37 | - [Contributing](#contributing) |
32 | 38 | - [License](#license) |
33 | 39 | - [Contact](#contact) |
34 | 40 |
|
35 | | -About |
36 | | ------ |
37 | | -quickstart is a small Python starter project that demonstrates a clean layout and includes common development tasks (venv, install, run, tests, lint). Use it as a scaffold for CLI tools, libraries or small services. |
38 | | - |
39 | | -Prerequisites |
40 | | -------------- |
41 | | -- Python 3.8 or newer (3.11+ recommended) |
42 | | -- Git |
43 | | -- Recommended: pip, virtualenv (or use python -m venv) |
44 | | -- Optional tools: poetry / pipx / tox for alternative workflows |
45 | | - |
46 | | -Quick start |
47 | | ------------ |
48 | | -1. Clone the repo |
49 | | - - Unix / PowerShell |
50 | | - ```bash |
51 | | - git clone https://github.com/Ruh-Al-Tarikh/quickstart.git |
52 | | - cd quickstart |
53 | | - ``` |
54 | | - |
55 | | -2. Create a virtual environment and activate it |
56 | | - - macOS / Linux: |
57 | | - ```bash |
58 | | - python -m venv .venv |
59 | | - source .venv/bin/activate |
60 | | - ``` |
61 | | - - Windows PowerShell: |
62 | | - ```powershell |
63 | | - python -m venv .venv |
64 | | - .\.venv\Scripts\Activate.ps1 |
65 | | - ``` |
66 | | - |
67 | | -3. Install dependencies |
68 | | - - If using requirements.txt: |
69 | | - ```bash |
70 | | - pip install -r requirements.txt |
71 | | - ``` |
72 | | - - If the project uses editable install (package layout): |
73 | | - ```bash |
74 | | - pip install -e . |
75 | | - ``` |
76 | | - |
77 | | -Usage |
78 | | ------ |
79 | | -- Run the main script (example): |
80 | | - ```bash |
81 | | - python -m quickstart |
82 | | - ``` |
83 | | -- Or if a CLI entry point is defined (after pip install -e .): |
84 | | - ```bash |
85 | | - quickstart --help |
86 | | - ``` |
87 | | - |
88 | | -Example |
89 | | -------- |
90 | | -If the repository contains a small module with a function, a minimal usage example might look like: |
91 | | - |
92 | | -```python |
93 | | -from quickstart import say_hello |
94 | | -
|
95 | | -def main(): |
96 | | - print(say_hello("World")) |
97 | | -
|
98 | | -if __name__ == "__main__": |
99 | | - main() |
100 | | -``` |
101 | | -
|
102 | | -Development |
103 | | ------------ |
104 | | -Install developer dependencies (example using requirements-dev.txt): |
105 | | -```bash |
106 | | -pip install -r requirements-dev.txt |
107 | | -``` |
108 | | -
|
109 | | -Common dev tasks: |
110 | | -- Run the app locally: python -m quickstart |
111 | | -- Run a REPL with project on path: |
112 | | - ```bash |
113 | | - python -c "import quickstart; print(quickstart.__version__)" |
114 | | - ``` |
115 | | -
|
116 | | -Testing |
117 | | -------- |
118 | | -This project uses pytest (adjust to your test runner). |
119 | | -
|
120 | | -Install test deps: |
121 | | -```bash |
122 | | -pip install pytest |
123 | | -``` |
124 | | -
|
125 | | -Run tests: |
126 | | -```bash |
127 | | -pytest |
128 | | -``` |
129 | | -
|
130 | | -For coverage: |
131 | | -```bash |
132 | | -pip install coverage |
133 | | -coverage run -m pytest |
134 | | -coverage report |
135 | | -``` |
136 | | -
|
137 | | -Linting & Formatting |
138 | | --------------------- |
139 | | -Recommended tools: |
140 | | -- black (formatter) |
141 | | -- ruff / flake8 (linter) |
142 | | -- isort (imports) |
143 | | -
|
144 | | -Install and run: |
145 | | -```bash |
146 | | -pip install black ruff isort |
147 | | -black . |
148 | | -ruff . |
149 | | -isort . |
150 | | -``` |
151 | | -
|
152 | | -Type checking |
153 | | -------------- |
154 | | -If you use type hints, run mypy: |
155 | | -```bash |
156 | | -pip install mypy |
157 | | -mypy quickstart |
158 | | -``` |
159 | | -
|
160 | | -Packaging |
161 | | ---------- |
162 | | -If packaging as an installable Python package, include a pyproject.toml (PEP 621) or setup.cfg + setup.py. Example (build wheel and sdist): |
163 | | -```bash |
164 | | -pip install build |
165 | | -python -m build |
166 | | -``` |
167 | | -
|
168 | | -Publishing |
169 | | ----------- |
170 | | -To publish to PyPI (example with twine): |
171 | | -```bash |
172 | | -pip install twine |
173 | | -python -m build |
174 | | -twine upload dist/* |
175 | | -``` |
176 | | -
|
177 | | -<<<<<<< HEAD |
178 | | -# Built as a minimal, developer-friendly starter for learning and experimenting with Prefect automation workflows |
179 | | -
|
180 | | -======= |
181 | | -
|
182 | | -[](https://dl.circleci.com/status-badge/redirect/gh/Ruh-Al-Tarikh/pyray/tree/master) |
183 | | ->>>>>>> 269e2ceec142f421a1b5e705bc06ae73d159e53c |
184 | | -======= |
185 | | -Continuous Integration |
186 | | ----------------------- |
187 | | -Add a GitHub Actions workflow (e.g., .github/workflows/ci.yml) to run tests, lint and build on push/PR. |
188 | | -
|
189 | | -Contributing |
190 | | ------------- |
191 | | -Contributions are welcome. Please: |
192 | | -1. Create an issue to discuss major changes. |
193 | | -2. Open a branch: git checkout -b feat/your-feature |
194 | | -3. Make changes with tests. |
195 | | -4. Create a pull request. |
196 | | -
|
197 | | -Use conventional commits or describe the change clearly in the PR. |
198 | | -
|
199 | | -License |
200 | | -------- |
201 | | -This project is provided under the MIT License. See LICENSE file for details. |
202 | | -
|
203 | | -Contact |
204 | | -------- |
205 | | -Created by Ruh-Al-Tarikh. For questions or help, open an issue or contact the maintainer via GitHub. |
206 | | -
|
207 | | -Optional files to include in the repo |
208 | | -- requirements.txt |
209 | | -- requirements-dev.txt |
210 | | -- pyproject.toml / setup.cfg or setup.py |
211 | | -- .gitignore (.venv, __pycache__, .pytest_cache) |
212 | | -- tests/ (pytest tests) |
213 | | -- LICENSE (MIT) |
214 | | -- .github/workflows/ci.yml (CI pipeline) |
215 | | ->>>>>>> e9fa83a9161933a6486eb1bee48501f812e0fdf8 |
| 41 | +--- |
| 42 | + |
| 43 | +## About |
| 44 | + |
| 45 | +**QuickStart** is a clean Python starter project that includes: |
| 46 | + |
| 47 | +- Virtual environments |
| 48 | +- Editable installs |
| 49 | +- Prefect-ready structure |
| 50 | +- CLI entry points |
| 51 | +- Testing, linting, formatting |
| 52 | +- Packaging & CI support |
| 53 | + |
| 54 | +Use it to bootstrap: |
| 55 | +- Prefect automation pipelines |
| 56 | +- Internal developer tools |
| 57 | +- Lightweight Python services |
| 58 | +- Learning or prototyping projects |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## Project Layout |
| 63 | + |
| 64 | +```text |
| 65 | +quickstart/ |
| 66 | +├─ quickstart/ |
| 67 | +│ ├─ __init__.py |
| 68 | +│ ├─ flows.py # Prefect flows |
| 69 | +│ ├─ tasks.py # Prefect tasks |
| 70 | +│ ├─ cli.py # CLI entry point |
| 71 | +│ └─ core.py # Shared library logic |
| 72 | +├─ tests/ |
| 73 | +├─ pyproject.toml |
| 74 | +├─ requirements.txt |
| 75 | +├─ requirements-dev.txt |
| 76 | +└─ README.md |
0 commit comments