diff --git a/README.md b/README.md index 8f69cb6..962f690 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,42 @@ The mdrs-client-python is python library and a command-line client for up- and downloading files to and from MDRS based repository. -## Installing +## Installation (Production) + +It is recommended to use a virtual environment (`venv`) to keep your Python environment isolated. + +### Option 1: Using standard `venv` + `pip` ```shell -poetry install +python3 -m venv .venv +source .venv/bin/activate # On Windows: .venv\Scripts\activate +pip install . +``` + +### Option 2: Using `uv` + +```shell +uv venv +source .venv/bin/activate # On Windows: .venv\Scripts\activate +uv pip install . +``` + +## Development Setup + +To set up a local development environment with development tools (testing, formatting, linting): + +### Option 1: Using standard `venv` + `pip` + +```shell +python3 -m venv .venv +source .venv/bin/activate # On Windows: .venv\Scripts\activate +pip install -e ".[dev]" +``` + +### Option 2: Using `uv` (Recommended for developers) + +```shell +uv sync ``` ## CLI Usage diff --git a/pyproject.toml b/pyproject.toml index d26f46c..7bec67f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,21 @@ -[tool.poetry] +[build-system] +requires = ["flit_core>=3.12.0,<4.0.0"] +build-backend = "flit_core.buildapi" + +[tool.flit.module] +name = "mdrsclient" + +[project] name = "mdrs-client-python" version = "1.3.18" description = "The mdrs-client-python is python library and a command-line client for up- and downloading files to and from MDRS based repository." -authors = ["Yoshihiro OKUMURA "] -license = "MIT" +authors = [ + { name = "Yoshihiro OKUMURA", email = "yoshihiro.okumura@riken.jp" } +] +license = { text = "MIT" } readme = "README.md" -classifiers=[ +requires-python = ">=3.10" +classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", @@ -18,33 +28,28 @@ classifiers=[ "OSI Approved :: MIT License", "Topic :: Utilities", ] -packages = [ - { include = "mdrsclient" } + +dependencies = [ + "requests>=2.34.2", + "requests-toolbelt>=1.0.0", + "python-dotenv>=1.2.2", + "pydantic>=2.13.4", + "pydantic-settings>=2.14.2", + "PyJWT>=2.13.0", + "validators>=0.35.0", ] -[tool.poetry.dependencies] -python = "^3.10" -requests = "^2.34.2" -requests-toolbelt = "^1.0.0" -python-dotenv = "^1.1.0" -pydantic = "^2.13.4" -pydantic-settings = "^2.14.2" -PyJWT = "^2.13.0" -validators = "^0.35.0" +[project.optional-dependencies] +dev = [ + "black>=26.5.1", + "flake8>=7.3.0", + "Flake8-pyproject>=1.2.4", + "isort>=8.0.1", + "pyright>=1.1.411", +] -[tool.poetry.group.dev.dependencies] -black = "^26.5.1" -flake8 = "^7.2.0" -Flake8-pyproject = "^1.2.3" -isort = "^8.0.1" -pyright = "^1.1.411" - -[tool.poetry.scripts] -mdrs = 'mdrsclient.__main__:main' - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" +[project.scripts] +mdrs = "mdrsclient.__main__:main" [tool.black] line-length = 120