File size: 1,948 Bytes
96bb363
 
 
 
 
e83942e
 
96bb363
 
 
 
 
 
 
 
 
 
 
e83942e
 
96bb363
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e83942e
 
 
 
96bb363
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
[build-system]
requires = ["setuptools>=64"]
build-backend = "setuptools.build_meta"

[project]
name = "bus-system-backend"
version = "0.1.0"
description = "A GPU-to-Grid simulation library for datacenter-grid cooperation."
requires-python = ">=3.10"
license = "Apache-2.0"
readme = "README.md"
dependencies = [
    "numpy",
    "pandas",
    "pydantic>=2.0",
    "aiohttp",
    "zeus>=0.15.0",
    "mlenergy-data",
    "openg2g[opendss]",

]

[project.urls]
Homepage = "https://gpu2grid.io/openg2g"
Repository = "https://github.com/gpu2grid/openg2g"
Documentation = "https://gpu2grid.io/openg2g"

[project.optional-dependencies]
opendss = ["opendssdirect.py"]

[dependency-groups]
test = ["pytest"]
lint = ["ruff", "ty"]
docs = ["zensical", "mkdocstrings[python]", "tomlkit"]
examples = ["openg2g[opendss]", "matplotlib", "datasets", "openai", "pyyaml", "tyro"]
dev = [
    {include-group = "test"},
    {include-group = "lint"},
    {include-group = "docs"},
    {include-group = "examples"},
]

[tool.setuptools.packages.find]
where = ["."]
include = ["your_project_name*"]
exclude = ["data*", "outputs*", "scripts*", "tests*"]


[tool.ruff]
target-version = "py310"
line-length = 120

[tool.ruff.lint]
select = [
    "F",      # pyflakes
    "E",      # pycodestyle errors
    "W",      # pycodestyle warnings
    "I",      # isort
    "UP",     # pyupgrade
    "B",      # flake8-bugbear
    "SIM",    # flake8-simplify
    "RUF",    # ruff-specific
]
ignore = [
    "SIM108",  # ternary operator; prefer explicit if/else for readability
    "RUF046",  # unnecessary int() cast; defensive casting is intentional
    "RUF001",  # ambiguous unicode; intentional Greek letters in paper cross-refs
    "RUF002",  # ambiguous unicode in docstrings; same
    "RUF003",  # ambiguous unicode in comments; same
]

[tool.ruff.lint.isort]
known-first-party = ["openg2g"]
known-local-folder = ["plotting"]

[tool.pytest.ini_options]
testpaths = ["tests"]