Developer Roadmap
/Common Packages
TopicStep 56 filesOpen folder on GitHub

Common Packages

1.common-packages.md
View on GitHub

COMMON PAKCAGES

Common Packages

Beberapa package yang sering dipakai

HTTP & API

  • requests - HTTP client sederhana
  • httpx - HTTP client modern
  • fastapi / flask - web framework
  • uvicorn / gunicorn - ASGI/WSGI server

Data & Serialization

  • pydantic - data validation & parsing (wajib kalau FastAPI)
  • python-dotenv - baca .env env vars
  • sqlalchemy - ORM / DB toolkit
  • alembic - DB migrations untuk SQLAlchecmy

Utilities / Quantity

  • rich - output terminal yang cakep
  • loguru - logging
  • pytest - testing
  • black, isort, flake8 / ruff, mypy - formatting, linting, type checking

other

  • pathlib - path handling
  • asyncio - async framework
  • dataclasses - simple class without boilerplate
  • python-dotenv - load environment variables
  • numpy - fundamental numerical library
  • pandas - dataframe / data processing

pyproject.toml

  • file konfigurasi standar untuk python modern
  • mirip package.json kalau di Nodejs atau compose.json di PHP

Contoh tanpa poetry

[project]
name = "my-app"
version = "0.1.0"
description = "Simple API using FastAPI"
authors = [
  { name = "Pythonia", email = "pythonia@example.com" }
]
requires-python = ">=3.12"

dependencies = [
  "fastapi",
  "uvicorn[standard]",
  "pydantic>=2.0.0",
]

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

Penjelasan singkat:

  • [project]
    • name, version → identitas project (wajib kalau mau dijadikan package)
    • requires-python → versi Python minimal
    • dependencies → daftar package dari PyPI
  • [build-system]
    • requires → library yang dibutuhkan untuk proses build
    • build-backend → tool yg dipakai untuk build (setuptools/poetry/pdm/dll) Untuk pure app internal (bukan library yang mau dipublish), ini sudah cukup.

Contoh dengan poetry

[tool.poetry]
name = "my-fastapi-app"
version = "0.1.0"
description = "FastAPI backend for my project"
authors = ["Pythonia <pythonia@example.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.12"
fastapi = "^0.115.0"
uvicorn = { extras = ["standard"], version = "^0.30.0" }
pydantic = "^2.9.0"
python-dotenv = "^1.0.1"
sqlalchemy = "^2.0.0"

[tool.poetry.group.dev.dependencies]
pytest = "^8.0.0"
black = "^24.0.0"
ruff = "^0.7.0"
mypy = "^1.11.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

Penjelasan:

  • [tool.poetry]
    • metadata project (nama, versi, author)
  • [tool.poetry.dependencies]
    • dependency utama (prod)
  • [tool.poetry.group.dev.dependencies]
    • dependency khusus dev (testing, linting)
  • [build-system]
    • Poetry memakai poetry-core sebagai build backend

Install package:

poetry add fastapi
poetry add --group dev pytest

Poetry akan otomatis update pyproject.toml dan poetry.lock

Konfigurasi tools di pyproject.toml

Contoh

  • Black
  • Ruff (linter)
  • pytest