tqdm==4.70.1
manuf2==2.0.2
pyserial==3.5
termcolor==3.3.0

[ads]
pyads==3.6.0

[all]
oida-ics[ads,astm,bacnet,bacnetsc,can,coap,dicom,discovery,dnp3,ethercat]
oida-ics[ethernetip,fhir,goose,hart,hl7,iec104,knx,mms]
oida-ics[fuzz,modbus,mqtt,ocpp,opcua,pcap,profinet,serial,snap7,snmp,tase2]

[astm]

[bacnet]
BAC0==2026.7.25
PyYAML==6.0.3

[bacnetsc]
BAC0==2026.7.25
PyYAML==6.0.3
websockets==16.0
cryptography>=43.0.0

[can]
python-can==4.6.1

[coap]
aiocoap==0.4.17
cbor2==6.1.4

[coap:sys_platform != "win32"]
DTLSSocket==0.2.3

[dev]
pytest>=9.0.3
pytest-cov>=7.0.0
pytest-asyncio>=1.4.0
pytest-docker>=3.2.5
pytest-xdist>=3.8.0
pytest-timeout>=2.4.0
pytest-rerunfailures>=15.0
flake8>=7.3.0
mypy>=1.19.1
pre-commit>=4.5.1
ruff>=0.15.1
vulture>=2.16
bandit>=1.9.3
Brotli>=1.2.0
docker>=7.1.0
defusedxml>=0.7.1
msgpack>=1.1.0

[dev:python_version < "3.11"]
tomli>=2.0.0

[dicom]
pynetdicom==3.0.4
pydicom==3.0.2

[discovery]
zeroconf==0.151.3
scapy==2.7.0
psutil==7.2.2
profinet-py==0.6.5
defusedxml==0.7.1

[dnp3]
yadnp3==3.2.1.2

[docs]
sphinx<9,>=8.0.0
sphinx-rtd-theme>=3.0.0
myst-parser<5,>=4.0.1

[ethercat]

[ethercat:sys_platform != "win32"]
pysoem==1.1.13

[ethernetip]
pycomm3==1.2.16
cryptography>=43.0.0

[fhir]
fhirclient==4.4.0
requests==2.34.2

[fuzz]
boofuzz==0.4.2
sqlalchemy==2.0.54
pyasn1==0.6.4
crc==7.1.0
h2==4.4.1
scapy==2.7.0
brotli==1.2.0
cryptography>=43.0.0

[goose]
pyiec61850-ng==1.6.1.10

[hart]
hartip-py==0.3.0

[hl7]
hl7apy==1.3.5

[iec104]
c104==2.2.1

[knx]
xknx==3.20.0
xknxproject==3.10.0

[mms]
pyiec61850-ng==1.6.1.10

[modbus]
pymodbus==3.15.0
PyYAML==6.0.3

[mqtt]
paho-mqtt==2.1.0

[ocpp]
websockets==16.0
cryptography>=43.0.0

[opcua]
asyncua==2.0.1

[pcap]
oida-pyshark==0.6.1.post1

[profinet]
profinet-py==0.6.5

[serial]
pyserial==3.5

[snap7]
python-snap7==3.1.2

[snmp]
pysnmp==7.1.29

[tase2]
pyiec61850-ng==1.6.1.10
