Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ If reporting a bug, provide as much detail outlining a minimal example and descr

## 🧰 Development

### :closed_book: Python Poetry
### :closed_book: UV

For development it is strongly recommended that [Poetry](https://python-poetry.org) be used to manage dependencies and create the virtual environment used for development, the included `pyproject.toml` file makes use of the framework for ensuring dependency compatibility and building of the module during deployment. The included `poetry.lock` file defines the virtual environment to ensure the developers are running the `simvue` in an identical manner. Install poetry and setup the virtual environment by running from the root of this repository:
For development it is strongly recommended that [UV](https://docs.astral.sh/uv/) be used to manage dependencies and create the virtual environment used for development, the included `pyproject.toml` file makes use of the framework for ensuring dependency compatibility and building of the module during deployment. The included `uv.lock` file defines the virtual environment to ensure the developers are running the `simvue` in an identical manner. Install UV and setup the virtual environment by running from the root of this repository:

```sh
pip install --user poetry
poetry install
pip install --user uv
uv sync --all-extras --all-groups
```

### 🪝 Using Git hooks
Expand Down Expand Up @@ -50,7 +50,7 @@ The branch `main` contains only tagged releases, the idea being all commits on t

### ℹ️ Typing

All code within this repository makes use of Python's typing capability, this has proven invaluable for spotting any incorrect usage of functionality as linters are able to quickly flag up any incompatibilities. Typing also allows us define validator rules using the [Pydantic](https://docs.pydantic.dev/latest/) framework. We ask that you type all functions and variables where possible.
All code within this repository makes use of Python's typing capability, this has proven invaluable for spotting any incorrect usage of functionality as linters are able to quickly flag up any incompatibilities. Typing also allows us define validator rules using the [Pydantic](https://docs.pydantic.dev/latest/) framework. We ask that you type all functions and variables where possible.

### ✔️ Linting and Formatting

Expand Down
2,493 changes: 0 additions & 2,493 deletions poetry.lock

This file was deleted.

80 changes: 40 additions & 40 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description = "Simulation tracking and monitoring"
authors = [
{name = "Simvue Development Team", email = "info@simvue.io"}
]
license = "Apache v2"
license = "Apache-2.0"
requires-python = ">=3.10,<3.15"
readme = "README.md"
classifiers = [
Expand Down Expand Up @@ -35,28 +35,41 @@ keywords = [
"metrics-gathering"
]
dependencies = [
"requests (>=2.32.3,<3.0.0)",
"pydantic (>=2.11,<3.0.0)",
"tabulate (>=0.9.0,<0.10.0)",
"msgpack (>=1.1.0,<2.0.0)",
"pyjwt (>=2.10.1,<3.0.0)",
"pandas (>=2.2.3,<3.0.0)",
"toml (>=0.10.2,<0.11.0)",
"click (>=8.1.8,<9.0.0)",
"gitpython (>=3.1.44,<4.0.0)",
"humanfriendly (>=10.0,<11.0)",
"randomname (>=0.2.1,<0.3.0)",
"numpy (>=2.0.0,<3.0.0)",
"flatdict (>=4.0.1,<5.0.0)",
"semver (>=3.0.4,<4.0.0)",
"email-validator (>=2.2.0,<3.0.0)",
"psutil (>=6.1.1,<7.0.0)",
"tenacity (>=9.0.0,<10.0.0)",
"typing-extensions (>=4.12.2,<5.0.0) ; python_version < \"3.11\"",
"deepmerge (>=2.0,<3.0)",
"geocoder (>=1.38.1,<2.0.0)",
"pydantic-extra-types (>=2.10.5,<3.0.0)",
"pyyaml (>=6.0.2,<7.0.0)",
"click>=8.3.0",
"deepmerge>=2.0",
"email-validator>=2.3.0",
"flatdict>=4.0.1",
"geocoder>=1.38.1",
"gitpython>=3.1.45",
"humanfriendly>=10.0",
"msgpack>=1.1.1",
"pandas>=2.3.3",
"psutil>=6.1.1",
"pydantic>=2.11.10",
"pydantic-extra-types>=2.10.5",
"pyjwt>=2.10.1",
"pyyaml>=6.0.3",
"randomname>=0.2.1",
"requests>=2.32.5",
"semver>=3.0.4",
"typing-extensions>=4.12.2; python_version < \"3.11\"",
"tabulate>=0.9.0",
"tenacity>=9.1.2",
"toml>=0.10.2",
"numpy>=2.2.6",
]

[dependency-groups]
dev = [
"interrogate>=1.7.0",
"jinja2>=3.1.6",
"pytest>=8.4.2",
"pytest-cov>=7.0.0",
"pytest-mock>=3.15.1",
"pytest-sugar>=1.1.1",
"pytest-xdist>=3.8.0",
"ruff>=0.14.0",
"types-requests>=2.32.4.20250913",
]

[project.urls]
Expand All @@ -70,23 +83,6 @@ plot = ["plotly (>=6.0.0,<7.0.0)", "matplotlib (>=3.10.0,<4.0.0)"]
[project.scripts]
simvue_sender = "simvue.bin.sender:run"

[tool.poetry.group.dev.dependencies]
pytest = "^8.0.0"
pytest-dependency = "^0.6.0"
ruff = ">=0.5.0,<0.10.0"
pytest-cov = ">=4.1,<7.0"
pytest-mock = "^3.14.0"
pytest-sugar = "^1.0.0"
pytest-xdist = "^3.6.1"
jinja2 = "^3.1.6"
types-requests = "^2.32.0.20241016"
interrogate = "^1.7.0"
pytest-timeout = "^2.3.1"

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

[tool.ruff]
lint.extend-select = ["C901", "T201"]
lint.mccabe.max-complexity = 11
Expand Down Expand Up @@ -124,3 +120,7 @@ exclude = ["docs", "tests"]

[tool.mypy]
ignore_missing_imports = true

[build-system]
requires = ["uv_build>=0.9.2,<0.10"]
build-backend = "uv_build"
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Loading