fastapi-assist 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ankit Prajapati
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,661 @@
1
+ Metadata-Version: 2.4
2
+ Name: fastapi_assist
3
+ Version: 0.1.0
4
+ Summary: Production-ready FastAPI project scaffolding with async ORM, migrations, Docker, logging, and modular app architecture.
5
+ Author: Ankit Prajapati
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Ankitp2002/fastapi_assist
8
+ Project-URL: Repository, https://github.com/Ankitp2002/fastapi_assist
9
+ Project-URL: Issues, https://github.com/Ankitp2002/fastapi_assist/issues
10
+ Keywords: fastapi,python,cli,scaffolding,fastapi-cli,tortoise-orm,aerich,docker,backend,api
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Framework :: FastAPI
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Topic :: Software Development :: Libraries
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Requires-Python: >=3.10
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: typer
28
+ Requires-Dist: aiofiles
29
+ Requires-Dist: aiomysql
30
+ Requires-Dist: click
31
+ Requires-Dist: cython
32
+ Requires-Dist: dotenv
33
+ Requires-Dist: fastapi
34
+ Requires-Dist: jinja2
35
+ Requires-Dist: openpyxl
36
+ Requires-Dist: orjson
37
+ Requires-Dist: pandas
38
+ Requires-Dist: numpy
39
+ Requires-Dist: pydantic[email]
40
+ Requires-Dist: pydantic-settings
41
+ Requires-Dist: python-multipart
42
+ Requires-Dist: setuptools
43
+ Requires-Dist: tortoise-orm[aiomysql]<2,>=1.1
44
+ Requires-Dist: uvicorn
45
+ Requires-Dist: uvicorn-worker
46
+ Requires-Dist: xlsxwriter
47
+ Requires-Dist: aerich[toml]<1,>=0.10
48
+ Provides-Extra: dev
49
+ Requires-Dist: pytest; extra == "dev"
50
+ Requires-Dist: pytest-asyncio; extra == "dev"
51
+ Requires-Dist: httpx; extra == "dev"
52
+ Requires-Dist: ruff; extra == "dev"
53
+ Requires-Dist: typer; extra == "dev"
54
+ Dynamic: license-file
55
+
56
+ # FastAssist
57
+
58
+ **A production-ready FastAPI project foundation — scaffold, configure, and start building.**
59
+
60
+ FastAssist is a developer-focused CLI toolkit that generates a **complete, well-structured FastAPI project** with modular applications, async database integration, migrations, logging, Docker support, and reusable application components.
61
+
62
+ Instead of spending hours creating the same project structure, configuring databases, setting up migrations, writing boilerplate, and preparing Docker files, FastAssist gives you a **ready-to-serve project foundation**.
63
+
64
+ > **You create the project. FastAssist creates the foundation. You build the business logic.**
65
+
66
+ ---
67
+
68
+ ## ✨ Why FastAssist?
69
+
70
+ Starting a FastAPI application from scratch often requires setting up:
71
+
72
+ - Project architecture
73
+ - Application modules
74
+ - Configuration management
75
+ - Environment variables
76
+ - Database connection
77
+ - Async ORM
78
+ - Database migrations
79
+ - Logging
80
+ - Error handling
81
+ - Rate limiting
82
+ - Models
83
+ - Schemas
84
+ - Views
85
+ - Routers
86
+ - Docker
87
+ - Docker Compose
88
+ - Deployment scripts
89
+
90
+ FastAssist automates this repetitive setup.
91
+
92
+ With a few CLI commands, you get a complete project structure that is ready for development and can be run using Docker without manually configuring the container environment.
93
+
94
+ ---
95
+
96
+ # 🚀 Quick Start
97
+
98
+ ## 1. Install FastAssist
99
+
100
+ ```bash
101
+ pip install fa-assist
102
+ ```
103
+
104
+ ## 2. Initialize your project
105
+
106
+ ```bash
107
+ fa_assist init project my_project
108
+ ```
109
+
110
+ FastAssist creates the complete project architecture, configuration, database setup, logging, Docker setup, and supporting utilities.
111
+
112
+ ## 3. Add an application
113
+
114
+ ```bash
115
+ fa_assist add app users
116
+ ```
117
+
118
+ That's it.
119
+
120
+ Your project is ready for you to start adding your business logic.
121
+
122
+ ---
123
+
124
+ # 🏗️ Generated Project Architecture
125
+
126
+ A project generated by FastAssist follows a modular structure designed for scalable FastAPI applications.
127
+
128
+ ```text
129
+ my_project/
130
+
131
+ ├── configuration/
132
+ │ ├── config.py
133
+ │ ├── custom_error.py
134
+ │ ├── db.py
135
+ │ ├── logger.py
136
+ │ ├── rate_limit.py
137
+ │ └── server.py
138
+
139
+ ├── apps/
140
+ │ ├── __init__.py
141
+ │ ├── constants.py
142
+ │ ├── db_operations.py
143
+ │ ├── https_response.py
144
+ │ ├── models.py
145
+ │ ├── reg_models.py
146
+ │ ├── reg_routers.py
147
+ │ ├── schemas.py
148
+ │ ├── utils.py
149
+ │ │
150
+ │ └── users/
151
+ │ ├── __init__.py
152
+ │ ├── models.py
153
+ │ ├── schemas/
154
+ │ │ └── __init__.py
155
+ │ ├── views/
156
+ │ │ ├── __init__.py
157
+ │ │ └── api_users_view.py
158
+ │ ├── constants.py
159
+ │ ├── dependencies.py
160
+ │ ├── enums.py
161
+ │ ├── internal_api_calls.py
162
+ │ └── utils.py
163
+
164
+ ├── credential/
165
+ ├── independent_scripts/
166
+ ├── logs/
167
+
168
+ ├── main.py
169
+ ├── .env
170
+
171
+ ├── Dockerfile
172
+ ├── .docker-compose.yaml
173
+ ├── docker_setup.sh
174
+ ├── deployment.sh
175
+
176
+ └── ...
177
+ ```
178
+
179
+ The generated architecture can be extended as your application grows.
180
+
181
+ ---
182
+
183
+ # 🧩 Multi-App Architecture
184
+
185
+ FastAssist is designed for applications that contain multiple business domains.
186
+
187
+ For example:
188
+
189
+ ```text
190
+ apps/
191
+ ├── users/
192
+ ├── authentication/
193
+ ├── products/
194
+ ├── orders/
195
+ ├── payments/
196
+ └── notifications/
197
+ ```
198
+
199
+ Each application gets its own isolated structure for:
200
+
201
+ - Models
202
+ - Schemas
203
+ - Views
204
+ - Constants
205
+ - Enums
206
+ - Dependencies
207
+ - Utilities
208
+ - Internal API operations
209
+
210
+ This keeps large FastAPI projects modular and maintainable.
211
+
212
+ Create an application with:
213
+
214
+ ```bash
215
+ fa_assist add app products
216
+ ```
217
+
218
+ No need to manually create the directories and boilerplate files.
219
+
220
+ ---
221
+
222
+ # 🗄️ Async Database with Tortoise ORM
223
+
224
+ FastAssist comes with an async database foundation using **Tortoise ORM**.
225
+
226
+ The generated project includes database configuration and integration so you can define your models without manually building the entire database layer.
227
+
228
+ Example:
229
+
230
+ ```python
231
+ from tortoise import fields
232
+ from tortoise.models import Model
233
+
234
+
235
+ class User(Model):
236
+ id = fields.IntField(pk=True)
237
+ name = fields.CharField(max_length=100)
238
+ email = fields.CharField(
239
+ max_length=255,
240
+ unique=True,
241
+ )
242
+ ```
243
+
244
+ The architecture is designed around asynchronous FastAPI applications and async database operations.
245
+
246
+ ---
247
+
248
+ # 🔄 Database Migrations with Aerich
249
+
250
+ FastAssist integrates **Aerich** for managing Tortoise ORM migrations.
251
+
252
+ Your workflow becomes:
253
+
254
+ ```text
255
+ Create / Update Model
256
+
257
+ Create Migration
258
+
259
+ Apply Migration
260
+
261
+ Continue Development
262
+ ```
263
+
264
+ Typical Aerich commands:
265
+
266
+ ```bash
267
+ aerich migrate
268
+ ```
269
+
270
+ ```bash
271
+ aerich upgrade
272
+ ```
273
+
274
+ This provides a clean way to version and apply database schema changes as your project evolves.
275
+
276
+ ---
277
+
278
+ # 🐳 Docker Ready
279
+
280
+ **Don't worry about Docker setup. FastAssist handles the foundation for you.**
281
+
282
+ Every generated project includes Docker-related files such as:
283
+
284
+ ```text
285
+ Dockerfile
286
+ .docker-compose.yaml
287
+ docker_setup.sh
288
+ deployment.sh
289
+ ```
290
+
291
+ This allows your FastAPI application to be containerized without manually creating the initial Docker configuration.
292
+
293
+ The goal is simple:
294
+
295
+ ```text
296
+ Generate Project
297
+
298
+ Configure Environment
299
+
300
+ Start Docker
301
+
302
+ Run FastAPI
303
+ ```
304
+
305
+ You can use Docker for consistent development, testing, and deployment environments.
306
+
307
+ ---
308
+
309
+ # 📝 Automatic Logging
310
+
311
+ FastAssist provides centralized logging configuration as part of the generated project.
312
+
313
+ Instead of configuring logging separately for every project, the generated architecture provides a common logging foundation.
314
+
315
+ This can be used for:
316
+
317
+ - Application logs
318
+ - API activity
319
+ - Errors
320
+ - Debugging
321
+ - Database-related events
322
+ - Production diagnostics
323
+
324
+ Logs can be organized through the generated `logs/` directory.
325
+
326
+ ---
327
+
328
+ # ⚙️ Configuration Management
329
+
330
+ The generated project includes a dedicated configuration layer.
331
+
332
+ ```text
333
+ configuration/
334
+ ├── config.py
335
+ ├── db.py
336
+ ├── logger.py
337
+ ├── rate_limit.py
338
+ ├── server.py
339
+ └── custom_error.py
340
+ ```
341
+
342
+ This keeps infrastructure-related configuration separate from application business logic.
343
+
344
+ Environment-specific values can be managed through `.env`.
345
+
346
+ ---
347
+
348
+ # 🧱 Built-in Application Foundation
349
+
350
+ When you create an application:
351
+
352
+ ```bash
353
+ fa_assist add app users
354
+ ```
355
+
356
+ FastAssist generates the common building blocks automatically.
357
+
358
+ ```text
359
+ users/
360
+ ├── models.py
361
+ ├── constants.py
362
+ ├── enums.py
363
+ ├── dependencies.py
364
+ ├── internal_api_calls.py
365
+ ├── utils.py
366
+
367
+ ├── schemas/
368
+ │ └── __init__.py
369
+
370
+ └── views/
371
+ ├── __init__.py
372
+ └── api_users_view.py
373
+ ```
374
+
375
+ You don't need to repeatedly create these files for every application.
376
+
377
+ Simply add your own business logic.
378
+
379
+ ---
380
+
381
+ # 🎯 Developer Experience
382
+
383
+ FastAssist is built around one simple idea:
384
+
385
+ > **Remove repetitive setup, not engineering decisions.**
386
+
387
+ You still control your:
388
+
389
+ - Database models
390
+ - Business rules
391
+ - API design
392
+ - Validation
393
+ - Authentication
394
+ - Application logic
395
+ - Database queries
396
+ - Infrastructure decisions
397
+
398
+ FastAssist simply gives you the foundation.
399
+
400
+ ---
401
+
402
+ # 🔥 Before FastAssist
403
+
404
+ A typical new FastAPI project may require:
405
+
406
+ ```text
407
+ Create directories
408
+
409
+ Create configuration
410
+
411
+ Configure environment
412
+
413
+ Configure database
414
+
415
+ Install/configure ORM
416
+
417
+ Configure migrations
418
+
419
+ Configure logging
420
+
421
+ Create application modules
422
+
423
+ Create models
424
+
425
+ Create schemas
426
+
427
+ Create views
428
+
429
+ Create routers
430
+
431
+ Configure Docker
432
+
433
+ Configure Docker Compose
434
+
435
+ Write startup scripts
436
+
437
+ Finally start development
438
+ ```
439
+
440
+ A lot of this work is repetitive.
441
+
442
+ ---
443
+
444
+ # ⚡ With FastAssist
445
+
446
+ ```bash
447
+ pip install fa-assist
448
+
449
+ fa_assist init project my_project
450
+
451
+ fa_assist add app users
452
+ ```
453
+
454
+ Then:
455
+
456
+ ```text
457
+ FastAssist
458
+
459
+
460
+ ┌─────────────────────────┐
461
+ │ Complete Project Setup │
462
+ ├─────────────────────────┤
463
+ │ FastAPI │
464
+ │ Async ORM │
465
+ │ Migrations │
466
+ │ Logging │
467
+ │ Configuration │
468
+ │ Models │
469
+ │ Schemas │
470
+ │ Views │
471
+ │ Routers │
472
+ │ Docker │
473
+ │ Deployment Foundation │
474
+ └─────────────────────────┘
475
+
476
+
477
+ Your Business Logic
478
+ ```
479
+
480
+ ---
481
+
482
+ # 🛠️ Example Workflow
483
+
484
+ Create a project:
485
+
486
+ ```bash
487
+ fa_assist init project ecommerce
488
+ ```
489
+
490
+ Create applications:
491
+
492
+ ```bash
493
+ fa_assist add app users
494
+ fa_assist add app products
495
+ fa_assist add app orders
496
+ ```
497
+
498
+ Your project can then evolve into:
499
+
500
+ ```text
501
+ ecommerce/
502
+
503
+ ├── configuration/
504
+
505
+ ├── apps/
506
+ │ ├── users/
507
+ │ ├── products/
508
+ │ └── orders/
509
+
510
+ ├── logs/
511
+ ├── credential/
512
+ ├── independent_scripts/
513
+
514
+ ├── Dockerfile
515
+ ├── .docker-compose.yaml
516
+ ├── deployment.sh
517
+ └── main.py
518
+ ```
519
+
520
+ From this point, your primary job is to implement the actual product requirements.
521
+
522
+ ---
523
+
524
+ # 📦 Installation
525
+
526
+ ```bash
527
+ pip install fa-assist
528
+ ```
529
+
530
+ ### Development installation
531
+
532
+ Clone the repository and install development dependencies:
533
+
534
+ ```bash
535
+ pip install -e ".[dev]"
536
+ ```
537
+
538
+ ---
539
+
540
+ # 💻 Requirements
541
+
542
+ - Python **3.10+**
543
+ - FastAPI
544
+ - Tortoise ORM
545
+ - Aerich
546
+ - Uvicorn
547
+ - Docker _(for containerized execution)_
548
+
549
+ ---
550
+
551
+ # 🧪 Development
552
+
553
+ Install the development dependencies:
554
+
555
+ ```bash
556
+ pip install -e ".[dev]"
557
+ ```
558
+
559
+ Run tests:
560
+
561
+ ```bash
562
+ pytest
563
+ ```
564
+
565
+ Development tooling includes:
566
+
567
+ - `pytest`
568
+ - `pytest-asyncio`
569
+ - `httpx`
570
+ - `ruff`
571
+
572
+ ---
573
+
574
+ # 🖥️ CLI
575
+
576
+ ## Initialize a project
577
+
578
+ ```bash
579
+ fa_assist init project <project_name>
580
+ ```
581
+
582
+ Example:
583
+
584
+ ```bash
585
+ fa_assist init project my_project
586
+ ```
587
+
588
+ ## Add an application
589
+
590
+ ```bash
591
+ fa_assist add app <app_name>
592
+ ```
593
+
594
+ Example:
595
+
596
+ ```bash
597
+ fa_assist add app users
598
+ ```
599
+
600
+ ---
601
+
602
+ # 🗺️ Roadmap
603
+
604
+ FastAssist is actively designed to evolve into a broader FastAPI development toolkit.
605
+
606
+ Potential future features include:
607
+
608
+ - [ ] CRUD generators
609
+ - [ ] Authentication scaffolding
610
+ - [ ] JWT authentication
611
+ - [ ] Automatic API generation
612
+ - [ ] Schema generators
613
+ - [ ] Celery integration
614
+ - [ ] Redis integration
615
+ - [ ] Background task scaffolding
616
+ - [ ] Docker environment customization
617
+ - [ ] Production deployment templates
618
+ - [ ] Testing scaffolding
619
+ - [ ] API documentation customization
620
+ - [ ] Additional project templates
621
+ - [ ] More CLI development utilities
622
+
623
+ ---
624
+
625
+ # 🤝 Contributing
626
+
627
+ Contributions, ideas, and improvements are welcome.
628
+
629
+ If you find a bug or have an idea for improving FastAssist, feel free to open an issue or submit a pull request.
630
+
631
+ Before submitting changes, run:
632
+
633
+ ```bash
634
+ pytest
635
+ ```
636
+
637
+ ---
638
+
639
+ # 📄 License
640
+
641
+ FastAssist is released under the **MIT License**.
642
+
643
+ ---
644
+
645
+ # FastAssist
646
+
647
+ ### Build FastAPI applications, not boilerplate.
648
+
649
+ ```bash
650
+ pip install fa-assist
651
+
652
+ fa_assist init project my_project
653
+
654
+ fa_assist add app users
655
+ ```
656
+
657
+ **Scaffold → Configure → Build.**
658
+
659
+ Your project foundation is ready.
660
+
661
+ **Now build your business logic.**