FastAPI-fastkit 1.1.2__py3-none-any.whl → 1.1.3__py3-none-any.whl

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.
@@ -1 +1 @@
1
- __version__ = 'v1.1.2'
1
+ __version__ = 'v1.1.3'
@@ -190,10 +190,12 @@ Once the server is running, visit:
190
190
  The application exposes the following tools and endpoints via MCP:
191
191
 
192
192
  ### MCP-Specific Endpoints
193
+
193
194
  - **mcp_hello**: Simple hello world endpoint (`/mcp-routes/hello`)
194
195
  - **mcp_status**: MCP configuration status (`/mcp-routes/status`)
195
196
 
196
197
  ### API Endpoints via MCP
198
+
197
199
  - **get_items**: List items with pagination
198
200
  - **get_item**: Get specific item by ID
199
201
  - **create_item**: Create new item (requires auth)
@@ -229,21 +231,19 @@ COPY scripts/ scripts/
229
231
  CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
230
232
  ```
231
233
 
232
- ## Contributing
233
-
234
- 1. Fork the repository
235
- 2. Create a feature branch
236
- 3. Make your changes
237
- 4. Run tests and linting
238
- 5. Submit a pull request
239
-
240
- ## License
241
-
242
- This project is licensed under the MIT License.
243
-
244
234
  ## Support
245
235
 
246
236
  For support and questions:
247
237
  - Create an issue in the repository
248
238
  - Check the FastAPI documentation: https://fastapi.tiangolo.com/
249
239
  - Check the FastAPI-MCP documentation: https://github.com/tadata-org/fastapi_mcp
240
+
241
+ # Project Origin
242
+
243
+ This project was created based on the template from the [FastAPI-fastkit](https://github.com/bnbong/FastAPI-fastkit) project.
244
+
245
+ The `FastAPI-fastkit` is an open-source project that helps Python and FastAPI beginners quickly set up a FastAPI-based application development environment in a framework-like structure.
246
+
247
+ ### Template Information
248
+ - Template creator: [bnbong](mailto:bbbong9@gmail.com)
249
+ - FastAPI-fastkit project maintainer: [bnbong](mailto:bbbong9@gmail.com)
@@ -2,11 +2,6 @@ FROM python:3.12-slim
2
2
 
3
3
  WORKDIR /app
4
4
 
5
- RUN apt-get update && \
6
- apt-get install -y --no-install-recommends \
7
- build-essential \
8
- && rm -rf /var/lib/apt/lists/*
9
-
10
5
  COPY requirements.txt .
11
6
  COPY setup.py .
12
7
  COPY src/ src/
@@ -1,5 +1,3 @@
1
- version: '3'
2
-
3
1
  services:
4
2
  db:
5
3
  image: postgres:16-alpine
@@ -0,0 +1,37 @@
1
+ # FastAPI Single Module Template
2
+
3
+ This template provides a minimal FastAPI application that runs with a single `main.py` module.
4
+
5
+ ## Structure
6
+ ```
7
+ .
8
+ ├── README.md
9
+ ├── requirements.txt
10
+ ├── pyproject.toml
11
+ ├── setup.py
12
+ ├── setup.cfg
13
+ ├── src/
14
+ │ └── main.py
15
+ └── tests/
16
+ ├── conftest.py
17
+ └── test_main.py
18
+ ```
19
+
20
+ ## Run
21
+ ```bash
22
+ uvicorn src.main:app --reload
23
+ ```
24
+
25
+ ## Requirements
26
+ - Python >= 3.9
27
+ - FastAPI, Uvicorn
28
+
29
+ # Project Origin
30
+
31
+ This project was created based on the template from the [FastAPI-fastkit](https://github.com/bnbong/FastAPI-fastkit) project.
32
+
33
+ The `FastAPI-fastkit` is an open-source project that helps Python and FastAPI beginners quickly set up a FastAPI-based application development environment in a framework-like structure.
34
+
35
+ ### Template Information
36
+ - Template creator: [bnbong](mailto:bbbong9@gmail.com)
37
+ - FastAPI-fastkit project maintainer: [bnbong](mailto:bbbong9@gmail.com)
@@ -0,0 +1,27 @@
1
+ [project]
2
+ name = "<project_name>"
3
+ version = "0.1.0"
4
+ description = "<description>"
5
+ authors = [
6
+ {name = "<author>", email = "<author_email>"},
7
+ ]
8
+ readme = "README.md"
9
+ license = "MIT"
10
+ requires-python = ">=3.9"
11
+ dependencies = [
12
+ "fastapi>=0.115.8",
13
+ "uvicorn[standard]>=0.34.0",
14
+ ]
15
+
16
+ [dependency-groups]
17
+ dev = [
18
+ "pytest>=8.3.4",
19
+ "httpx>=0.28.1",
20
+ ]
21
+
22
+ [build-system]
23
+ requires = ["hatchling"]
24
+ build-backend = "hatchling.build"
25
+
26
+ [tool.hatch.build.targets.wheel]
27
+ packages = ["src"]
@@ -0,0 +1,6 @@
1
+ fastapi==0.115.8
2
+ uvicorn[standard]==0.34.0
3
+ pydantic==2.10.6
4
+ pydantic-settings==2.7.1
5
+ pytest==8.3.4
6
+ httpx==0.28.1
@@ -0,0 +1,4 @@
1
+ [tool:pytest]
2
+ pythonpath = src
3
+ testpaths = tests
4
+ python_files = test_*.py
@@ -0,0 +1,17 @@
1
+ from setuptools import setup
2
+
3
+ install_requires: list[str] = [
4
+ "fastapi",
5
+ "uvicorn",
6
+ ]
7
+
8
+ description = "[FastAPI-fastkit templated] <description>"
9
+
10
+ setup(
11
+ name="<project_name>",
12
+ description=description,
13
+ author="<author>",
14
+ author_email=f"<author_email>",
15
+ packages=["src"],
16
+ install_requires=install_requires,
17
+ )
@@ -0,0 +1,16 @@
1
+ # --------------------------------------------------------------------------
2
+ # Main server application module
3
+ # --------------------------------------------------------------------------
4
+ from fastapi import FastAPI
5
+
6
+ app = FastAPI(title="<project_name>")
7
+
8
+
9
+ @app.get("/")
10
+ async def root() -> dict[str, str]:
11
+ return {"message": "Hello from FastAPI Single Module!"}
12
+
13
+
14
+ @app.get("/health")
15
+ async def health() -> dict[str, str]:
16
+ return {"status": "healthy"}
@@ -0,0 +1,15 @@
1
+ # --------------------------------------------------------------------------
2
+ # pytest runtime configuration module
3
+ # --------------------------------------------------------------------------
4
+ from collections.abc import Generator
5
+
6
+ import pytest
7
+ from fastapi.testclient import TestClient
8
+
9
+ from src.main import app
10
+
11
+
12
+ @pytest.fixture(scope="module")
13
+ def client() -> Generator[TestClient, None, None]:
14
+ with TestClient(app) as c:
15
+ yield c
@@ -0,0 +1,16 @@
1
+ # --------------------------------------------------------------------------
2
+ # Main endpoint testcases
3
+ # --------------------------------------------------------------------------
4
+ from fastapi.testclient import TestClient
5
+
6
+
7
+ def test_root(client: TestClient) -> None:
8
+ res = client.get("/")
9
+ assert res.status_code == 200
10
+ assert res.json()["message"].startswith("Hello from FastAPI Single Module")
11
+
12
+
13
+ def test_health(client: TestClient) -> None:
14
+ res = client.get("/health")
15
+ assert res.status_code == 200
16
+ assert res.json() == {"status": "healthy"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FastAPI-fastkit
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: Fast, easy-to-use starter kit for new users of Python and FastAPI
5
5
  Author-Email: bnbong <bbbong9@gmail.com>
6
6
  License: MIT
@@ -1,8 +1,8 @@
1
- fastapi_fastkit-1.1.2.dist-info/METADATA,sha256=FrgnCG-vcT6_4FaUo7oiFNkkqSN9ePAeVXt3magDLLY,7545
2
- fastapi_fastkit-1.1.2.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
- fastapi_fastkit-1.1.2.dist-info/entry_points.txt,sha256=IONmgb7zWPnJWsCOcpF3u1yP6AWnPjrgWIv49mr1DZE,76
4
- fastapi_fastkit-1.1.2.dist-info/licenses/LICENSE,sha256=2a9cYM3Uy8DW-so6zpYaqUafYT1Dznd3OCWCFe5CKNA,1066
5
- fastapi_fastkit/__init__.py,sha256=SxggpWymF-dg4KVl5WRySAioMDVlBsthmNPWNsFSsio,23
1
+ fastapi_fastkit-1.1.3.dist-info/METADATA,sha256=YD-DBDTcZtu0EA-r1ciw5IPhPsaf6VQyiFHkS2BbJek,7545
2
+ fastapi_fastkit-1.1.3.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
+ fastapi_fastkit-1.1.3.dist-info/entry_points.txt,sha256=IONmgb7zWPnJWsCOcpF3u1yP6AWnPjrgWIv49mr1DZE,76
4
+ fastapi_fastkit-1.1.3.dist-info/licenses/LICENSE,sha256=2a9cYM3Uy8DW-so6zpYaqUafYT1Dznd3OCWCFe5CKNA,1066
5
+ fastapi_fastkit/__init__.py,sha256=dz3N21DcviB4zWnlzFEKLh7UveYS7Lr2AgKczyHfLBo,23
6
6
  fastapi_fastkit/__main__.py,sha256=-FS9yUe4IEgDbJjFC1xso-pFCxRzUJ447j6bYpsBTBM,271
7
7
  fastapi_fastkit/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  fastapi_fastkit/backend/inspector.py,sha256=DKaAAp3jE7mfu7aN18rGiGeYSTZ4mtYRMNks5B53CJU,45213
@@ -156,7 +156,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/__init__.py-tpl,sha
156
156
  fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/conftest.py-tpl,sha256=RDBpnXBFHty_r7asKQnKbLPDFTdtPknyYpXueX7fPUc,491
157
157
  fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/test_main.py-tpl,sha256=XaA1nrFsPZNNlNW99IKba0rXo0i3FjcmP8_CdLpp4eQ,1149
158
158
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/.env-tpl,sha256=mmBW2Rz0aEIEuU6qDmr1jC5WF2vhU1u-A_7xsQe7iEc,664
159
- fastapi_fastkit/fastapi_project_template/fastapi-mcp/README.md-tpl,sha256=-JJRutOj_g1f_ScEVDnQzuFgFG34kvJ2AbWVCbkfVc8,6107
159
+ fastapi_fastkit/fastapi_project_template/fastapi-mcp/README.md-tpl,sha256=dB3fsdlrhW2pLIIRKRxGrA_yqttEbeDtgQlA6YstKYc,6395
160
160
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl,sha256=1vuXebz2dtX2vQNL5P0KHYBLEaBMpI7nAnm6D2T2eEk,1644
161
161
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl,sha256=srdXte30vjEp4rMYqLs-R9dhSOa6xh2HruWyrfqvJEs,688
162
162
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/format.sh-tpl,sha256=lMHoGl8naqGqYnW3WQ5zKJSkFFrWa4EvooA3xyj5Duk,215
@@ -187,10 +187,10 @@ fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_items.py-tpl,sha
187
187
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_mcp.py-tpl,sha256=BJUJWSlPQNCRPUGkw3UvCqPQJqI4B0CKk01imG4TNkg,2655
188
188
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/.env-tpl,sha256=9aEuqkEeGGT_rJTV7HBmjCSqQDgr6BBaWOiAcWH9hyg,152
189
189
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/.gitignore-tpl,sha256=8QwgyX8vpYhDtg1bcrBjf99yiLQRRO1OkBsGMRfggKY,269
190
- fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/Dockerfile-tpl,sha256=rXVErHAFEBp70u8DM4me4864lJ5s44MtMCoUaDWP7CM,450
190
+ fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/Dockerfile-tpl,sha256=HyRl4Dc4d2ZLIZXov_7oqX7uJ8_nXtEZKfJ6HfBeJyI,319
191
191
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/README.md-tpl,sha256=959SSsG-ZCZ7edlWW817Sp6OlNkEARmQ0DogjsJ4iWo,3779
192
192
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/alembic.ini-tpl,sha256=iuWH5I4GY3v3-Sx8VHiLxY8OY_lrrBOXlou8fd0GEZ0,3743
193
- fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/docker-compose.yml-tpl,sha256=i8a83eUPgPnlla3NkX8_11Zg9Bi3VS6qSxl3WkZVFgI,927
193
+ fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/docker-compose.yml-tpl,sha256=QLafkdBz_NK-2TXOP0XVUu5TklewBU1UTESv_-PmtYo,913
194
194
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/pyproject.toml-tpl,sha256=AVr5nGos-6-E31XlImhZgIpp0cIH9ygDVV4xic_RrZ0,1669
195
195
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/requirements.txt-tpl,sha256=pIy5r1d2CnzQ4RViXHSAdnIIXrQSRGgd3jV-j-ri4aw,694
196
196
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
@@ -226,6 +226,14 @@ fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/template-config.yml-tp
226
226
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
227
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/conftest.py-tpl,sha256=nLU0b7-ogFu9fh1fiVaubzoP7YHedqm4ZKZLC-JlJT0,1836
228
228
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/test_items.py-tpl,sha256=yTo_ikmylVK4MCSEZ5gDFpuAl1M7kmHJrK5x_B7xnj4,1323
229
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/README.md-tpl,sha256=ohpJQPLhqgRA31b-zNkA-_JVi4een-V3aAUDyliJfZ0,961
230
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/pyproject.toml-tpl,sha256=2uVXpMb0dmht3X11ik4NEgEM88DG0mje2h1td_4lfs4,487
231
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/requirements.txt-tpl,sha256=kkaLYpbA9WcxfXEpXOGn8SN-yi9h8bSCZMIUhWu7Mxo,113
232
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/setup.cfg-tpl,sha256=TZwd8ZS3L0k5sRBry5KicHLvfzncyYSwNDB-aaJDZVQ,74
233
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/setup.py-tpl,sha256=TvnetqA-GuvlzNvBb-SwrlMfJUyegQcnVdg31zJxzfA,339
234
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/src/main.py-tpl,sha256=bpefO7NCAum0xzydTztGudoFE46iRivUnd-4jy4Qo2w,459
235
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/tests/conftest.py-tpl,sha256=2x6--q4JTW1E5IUh_nHisGLP66kYgS-YyYQkV2iGQOQ,445
236
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/tests/test_main.py-tpl,sha256=U6FSXulB-icHdy9O0LxAc0Md7T5C8FlnvyG4kwjhFOs,567
229
237
  fastapi_fastkit/fastapi_project_template/modules/api/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
238
  fastapi_fastkit/fastapi_project_template/modules/api/routes/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
239
  fastapi_fastkit/fastapi_project_template/modules/api/routes/new_route.py-tpl,sha256=Y98urbQo0aUjKsd5LdnqhGUp7OrWhl4O-eyA0k06bj4,1243
@@ -237,4 +245,4 @@ fastapi_fastkit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
237
245
  fastapi_fastkit/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
238
246
  fastapi_fastkit/utils/logging.py,sha256=oU7BnWInxzl_Gk8kGQ0f6cKdNHZcOVVcSHY4I9MTmR8,6431
239
247
  fastapi_fastkit/utils/main.py,sha256=hbF9HdJSEKRU0Yn69hMCIMzapyezjxTbKjxVTe98olQ,5593
240
- fastapi_fastkit-1.1.2.dist-info/RECORD,,
248
+ fastapi_fastkit-1.1.3.dist-info/RECORD,,