Repo scaffolding (LICENSE, Makefile, pyproject.toml, README) matching unfeed conventions. Flat package layout, ruff config, Unlicense. ETF codec covers the subset needed for gen_call against an Elixir node: small/int/big_int, atom_utf8 (legacy atom_ext on decode), binary, nil, list, small/large tuple, new_pid, newer_reference. Booleans round-trip as atoms true/false; Python None as atom nil; str encodes to utf-8 binary to match Elixir convention. Golden vectors were generated from real Erlang term_to_binary/1 output (generator script at docs/etf_vectors.erl). Decode tests verify wire compatibility; round-trip tests verify encoder consistency. make all green: 58 passed, lint clean. Next phases tracked in docs/ROADMAP.md (EPMD, handshake, channel, gen_call, TLS, unfeed integration).
37 lines
758 B
TOML
37 lines
758 B
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "erldistpy"
|
|
version = "0.0.1"
|
|
description = "Native Python client for Erlang distribution protocol"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { text = "Unlicense" }
|
|
authors = [
|
|
{ name = "fox", email = "russell@unturf.com" },
|
|
]
|
|
dependencies = []
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest >=8.0,<9",
|
|
"pytest-cov >=5.0,<7",
|
|
"ruff >=0.6,<1",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["erldistpy*"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
addopts = "-ra --strict-markers"
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "B", "UP", "SIM"]
|
|
ignore = ["E501"]
|