[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "ecu-framework" version = "0.1.0" description = "ECU testing framework: LIN abstraction (mock / MUM / BabyLIN), Owon PSU control, UDS-over-LIN flashing scaffold, and pytest plugins." readme = "README.md" requires-python = ">=3.10" authors = [ { name = "Mohamed Elsabagh" , email = "mohamed.elsabagh@teqanylogix.com" }, { name = "Samer Boules" , email = "samer.boules@teqanylogix.com" }, { name = "Hosam-Eldin Mosatafa", email = "hosam-eldin.mostafa@teqanylogix.com" }, ] keywords = ["ecu", "lin", "automotive", "testing", "pytest", "mum", "babylin"] classifiers = [ "Development Status :: 3 - Alpha", "Framework :: Pytest", "Intended Audience :: Developers", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development :: Testing", ] # Core runtime deps. Hardware-only deps (Melexis pylin / pymumclient, # BabyLIN SDK) are intentionally NOT listed — those install paths are # documented separately and are not needed for mock-only usage. dependencies = [ "pyyaml>=6,<7", "pyserial>=3,<4", "ldfparser>=0.26,<1", "colorlog>=6,<7", "typing-extensions>=4.12,<5", "intelhex>=2.1", ] [project.optional-dependencies] # Testing extras — install with: pip install -e ".[test]" test = [ "pytest>=8,<9", "pytest-xdist>=3.6,<4", "pytest-html>=4,<5", "pytest-cov>=5,<6", ] # Pull in the transitive deps the Melexis stack (pylin / pymumclient) needs. # The Melexis wheels themselves come from the bundled tarball, not PyPI. melexis-transitive = [ "six>=1.16,<2", "pyparsing>=3.0.9,<3.1", "natsort>=7.1.0", "pygdbmi>=0.9,<0.10", "crcmod>=1.7", "packaging>=20.3", "zeroconf>=0.37.0", ] [tool.hatch.build.targets.wheel] packages = ["ecu_framework"] [tool.hatch.build.targets.sdist] include = [ "/ecu_framework", "/README.md", "/CHANGELOG.md", "/requirements.txt", ]