diff --git a/pyproject.toml b/pyproject.toml index 1b2a551..713b798 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,46 +1,37 @@ -[project] +[tool.poetry] name = "pysatl-experiment" version = "0.1.0" description = "package for PySATL math statistics experiments" -authors = [ - {name = "Ivan Pokhabov", email = "vanek3372@gmail.com"}, -] -license = {text = "MIT"} +authors = ["Ivan Pokhabov "] +license = "MIT" readme = "README.md" -requires-python = ">=3.10,<3.13" -dependencies = [ - "numpy>=1.25.1", - "scipy>=1.11.2", - "matplotlib>=3.8.0", - "tqdm>=4.66.2", - "fpdf2>=2.7.8", - "jinja2>=3.1.5", - "xhtml2pdf>=0.2.17", - "pandas>=2.2.1", - "sqlalchemy>=2.0.36", - "python-rapidjson==1.20", - "jsonschema==4.23.0", - "rich==13.9.4", - "click>=8.2.1", - "dacite==1.9.2", - "pysatl-criterion @ ./pysatl_criterion" -] - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" - -[tool.poetry] package-mode = true packages = [{include = "pysatl_experiment"}] +[tool.poetry.dependencies] +python = ">=3.10,<3.13" +numpy = ">=1.25.1" +scipy = ">=1.11.2" +matplotlib = ">=3.8.0" +tqdm = ">=4.66.2" +fpdf2 = ">=2.7.8" +jinja2 = ">=3.1.5" +xhtml2pdf = ">=0.2.17" +pandas = ">=2.2.1" +sqlalchemy = ">=2.0.36" +python-rapidjson = "==1.20" +jsonschema = "==4.23.0" +rich = "==13.9.4" +click = ">=8.2.1" +dacite = "==1.9.2" +pysatl-criterion = {path = "./pysatl_criterion"} + [tool.poetry.group.dev.dependencies] markdown = "3.8" mkdocs = "1.6.1" mkdocs-material = "9.6.14" mdx-truly-sane-lists = "1.3" pymdown-extensions = "10.15" -jinja2 = "3.1.6" mike = "2.1.3" isort = "6.0.1" coveralls = "4.0.1" @@ -52,6 +43,13 @@ pytest-mock = "3.14.1" pre-commit = "4.2.0" mypy = "^1.15.0" +[tool.poetry.scripts] +experiment = "pysatl_experiment.cli.cli.cli:cli" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + [tool.isort] line_length = 120 profile = "black" @@ -70,8 +68,10 @@ extend-ignore = [ "E241", "E272", "E221", "B007", "B904", "S603", "S607", "S608", "NPY002" ] -[tool.mypy] -ignore_missing_imports = true +[tool.ruff.lint.per-file-ignores] +"tests/**/*.py" = [ + "S101", "S104", "S311", "S105", "S106", "S110" +] [tool.ruff.lint.mccabe] max-complexity = 12 @@ -79,16 +79,5 @@ max-complexity = 12 [tool.ruff.lint.isort] lines-after-imports = 2 -[tool.flake8] -ignore = ["E121", "E123", "E126", "E24", "E203", "E704", "W503", "W504"] -max-line-length = 120 -max-complexity = 12 -exclude = [".git", "__pycache__", ".eggs", "user_data", ".venv", ".env"] - -[tool.ruff.lint.per-file-ignores] -"tests/**/*.py" = [ - "S101", "S104", "S311", "S105", "S106", "S110" -] - -[tool.poetry.scripts] -experiment = "pysatl_experiment.cli.cli.cli:cli" +[tool.mypy] +ignore_missing_imports = true diff --git a/pysatl_experiment/__main__.py b/pysatl_experiment/__main__.py new file mode 100644 index 0000000..fa6f895 --- /dev/null +++ b/pysatl_experiment/__main__.py @@ -0,0 +1,5 @@ +from pysatl_experiment.cli.cli.cli import cli + + +if __name__ == "__main__": + cli() diff --git a/pysatl_experiment/cli/cli/cli.py b/pysatl_experiment/cli/cli/cli.py index e7e9a11..f6b713a 100644 --- a/pysatl_experiment/cli/cli/cli.py +++ b/pysatl_experiment/cli/cli/cli.py @@ -1,7 +1,3 @@ -from pathlib import Path - -from click import group, version_option - from pysatl_experiment.cli.commands.build_and_run.build_and_run import build_and_run from pysatl_experiment.cli.commands.configure.alternatives.alternatives import alternatives from pysatl_experiment.cli.commands.configure.configure import configure @@ -19,25 +15,7 @@ from pysatl_experiment.cli.commands.configure.significance_levels.significance_levels import significance_levels from pysatl_experiment.cli.commands.configure.storage_connection.storage_connection import storage_connection from pysatl_experiment.cli.commands.create.create import create - - -@group() -@version_option() -def cli() -> None: - """ - PySATL-Experiment CLI. - """ - - _create_experiments_dir() - - -def _create_experiments_dir() -> None: - """ - Create experiments directory. - """ - # pysatl-experiment/.experiments - folder_path = Path(__file__).resolve().parents[3] / ".experiments" - folder_path.mkdir(parents=False, exist_ok=True) +from pysatl_experiment.cli.shared import cli cli.add_command(create) diff --git a/pysatl_experiment/cli/commands/configure/configure.py b/pysatl_experiment/cli/commands/configure/configure.py index 61de806..e336ef7 100644 --- a/pysatl_experiment/cli/commands/configure/configure.py +++ b/pysatl_experiment/cli/commands/configure/configure.py @@ -1,7 +1,7 @@ from click import ClickException, Context, argument, pass_context -from pysatl_experiment.cli.cli import cli from pysatl_experiment.cli.commands.common.common import read_experiment_data +from pysatl_experiment.cli.shared import cli from pysatl_experiment.validation.cli.commands.common.common import if_experiment_exists diff --git a/pysatl_experiment/cli/shared.py b/pysatl_experiment/cli/shared.py new file mode 100644 index 0000000..0ca95bb --- /dev/null +++ b/pysatl_experiment/cli/shared.py @@ -0,0 +1,22 @@ +from pathlib import Path + +from click import group, version_option + + +@group() +@version_option() +def cli() -> None: + """ + PySATL-Experiment CLI. + """ + + _create_experiments_dir() + + +def _create_experiments_dir() -> None: + """ + Create experiments directory. + """ + # pysatl-experiment/.experiments + folder_path = Path(__file__).resolve().parents[2] / ".experiments" + folder_path.mkdir(parents=False, exist_ok=True)