Metadata-Version: 2.4
Name: ipa-python-kit
Version: 0.1.2
Summary: kit for python
Author-email: xdewx <present150608@sina.com>
Keywords: python,kit,lib,util
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: deprecated>=1.3.1
Requires-Dist: pint>=0.21.1
Requires-Dist: pydantic>=2.10.6
Requires-Dist: pyhumps>=3.8.0
Requires-Dist: typer>=0.20.1
Provides-Extra: system
Requires-Dist: psutil>=7.2.1; extra == "system"
Provides-Extra: i18n
Requires-Dist: python-i18n>=0.3.9; extra == "i18n"
Provides-Extra: log
Requires-Dist: colorlog>=6.10.1; extra == "log"
Provides-Extra: hmr
Requires-Dist: python-hmr>=0.3.0; extra == "hmr"
Requires-Dist: watchfiles>=0.24.0; extra == "hmr"
Provides-Extra: date
Requires-Dist: python-dateutil>=2.9.0.post0; extra == "date"
Provides-Extra: websocket
Requires-Dist: websockets>=13.1; extra == "websocket"
Provides-Extra: visualization
Requires-Dist: matplotlib>=3.7.5; extra == "visualization"
Requires-Dist: pyecharts>=2.0.9; extra == "visualization"
Provides-Extra: orm
Requires-Dist: alembic>=1.14.1; extra == "orm"
Requires-Dist: sqlmodel>=0.0.29; extra == "orm"
Provides-Extra: network
Requires-Dist: networkx>=3.1; extra == "network"
Provides-Extra: all
Requires-Dist: ipa-python-kit[system]; extra == "all"
Requires-Dist: ipa-python-kit[i18n]; extra == "all"
Requires-Dist: ipa-python-kit[log]; extra == "all"
Requires-Dist: ipa-python-kit[hmr]; extra == "all"
Requires-Dist: ipa-python-kit[date]; extra == "all"
Requires-Dist: ipa-python-kit[websocket]; extra == "all"
Requires-Dist: ipa-python-kit[visualization]; extra == "all"
Provides-Extra: des
Requires-Dist: simpy>=4.1.1; extra == "des"

# pyproject-tmpl

## features

1. pytest
2. pre-commit
3. darker for code format
4. ruff for lint
5. commitlint for commit message format
6. typer for cli
7. sqlmodel for database ORM
8. alembic for database migration

## introduction

the project uses `src-layout`, includes `sdk` (for publish) and `biz` (for business logic).
`sdk` is designed for publish and no need to rename, we use file/folder mapping `mylib=src/sdk` in `pyproject.toml`.

### dev

before you start:

1. must run `./scripts/setup`
1. just replace `mylib` with `[the name you want]` in the whole project
1. remember to `uv pip install -e .[all]` to make sure `mylib` is available in development.

### unit test

`uv run -m pytest`

### run cli

`uv run main.py --help`

### release sdk

1. `cp .pypirc.example .pypirc`
2. replace your token in `.pypirc`
3. `git tag vx.y.z`
4. `./scripts/publish`

### build executable file

`./scripts/build`
