Skip to main content

Asyncio python clamav client

Project description

pyvalve

Asyncio python clamav client library

Usage Examples

Ping

pvs = await PyvalveNetwork()
response = await pvs.ping()

ClamAv will respond with "PONG"

Scanning

pvs = await PyvalveNetwork()
response = await pvs.scan(path)

Stream Scanning

from io import BytesIO
from aiofile import AIOFile

buffer = BytesIO()
async with AIOFile('some/file', 'r') as file_pointer:
    line = await file_pointer.read_bytes()
    buffer.write(line)
    buffer.seek(0)
response = await pvs.instream(buffer)

Documentation

class Pyvalve()

Bases: object

Pyvalve base class

set_persistant_connection(persist)

Set persistent connection

  • Parameters

    bool (persist) – persistent connection True/False

  • Return type

    None

set_stream_buffer(length)

Set stream buffer

  • Parameters

    int (length) – Desired stream buffer in bytes

  • Return type

    None

async allmatchscan(path)

Send allmatchscan command

  • Parameters

    str (path) – Path to file/directory to be scanned

  • Returns

    Response from clamav

  • Return type

    str

  • Raises

    PyvalveScanningError – If path is not found

async contscan(path)

Send constscan command

  • Parameters

    str (path) – Path to file/directory to be scanned

  • Returns

    Response from clamav

  • Return type

    str

  • Raises

    PyvalveScanningError – If path is not found

async instream(buffer)

Send a stream to clamav

  • Parameters

    buffer (BinaryIO) – a buffer object

  • Returns

    Response from clamav

  • Return type

    str

  • Raises

    • PyvalveConnectionError – If connection is broken

    • PyvalveStreamMaxLength – If stream size limit exceeded

async multiscan(path)

Send multiscan command

  • Parameters

    str (path) – Path to file/directory to be scanned

  • Returns

    Response from clamav

  • Return type

    str

  • Raises

    PyvalveScanningError – If path is not found

async ping()

Send ping command

  • Returns

    Response from clamav

  • Return type

    str

async reload()

Send reload command

  • Returns

    Response from clamav

  • Return type

    str

async scan(path)

Send scan command

  • Parameters

    str (path) – Path to file/directory to be scanned

  • Returns

    Response from clamav

  • Return type

    str

  • Raises

    PyvalveScanningError – If path is not found

async shutdown()

Send shutdown command

  • Returns

    Response from clamav

  • Return type

    str

async stats()

Send stats command

  • Returns

    Response from clamav

  • Return type

    str

async version()

Send version command

  • Returns

    Response from clamav

  • Return type

    str

class PyvalveNetwork(host='localhost', port=3310, timeout=None)

Bases: Pyvalve

Asyncio Clamd network client

async _init_(host='localhost', port=3310, timeout=None)

PyvalveNetwork Constructor

  • Parameters

    • str (host) – host address for clamav

    • int (timeout) – listening port for clamav

    • int – socket timemout

class PyvalveSocket(socket='/tmp/clamd.socket', timeout=None)

Bases: Pyvalve

Asyncio Clamd socket client

async _init_(socket='/tmp/clamd.socket', timeout=None)

PyvalveSocket Constructor

  • Parameters

    • str (socket) – Path to socket file

    • int (timeout) – socket timemout

Exceptions

exception PyvalveError()

Bases: Exception

Pyvalve exception base class

exception PyvalveConnectionError()

Bases: PyvalveError

Exception communicating with clamd

exception PyvalveResponseError()

Bases: PyvalveError

Exception processing response

exception PyvalveScanningError()

Bases: PyvalveError

Exception scanning. Could be path not found.

exception PyvalveStreamMaxLength()

Bases: PyvalveResponseError

Exception using INSTREAM with a buffer length > StreamMaxLength in /etc/clamav/clamd.conf

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvalve-0.1.5.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyvalve-0.1.5-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file pyvalve-0.1.5.tar.gz.

File metadata

  • Download URL: pyvalve-0.1.5.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyvalve-0.1.5.tar.gz
Algorithm Hash digest
SHA256 f0f0de7b188b836c7478d10e051209680ba89d38fcd6c46af04cc19f91d51265
MD5 c7ecee958462e26e7962b3402a2831a7
BLAKE2b-256 23e8dd218be89bb802c0cb8d16e6364ce47e0ee984a1f02554438c7f03971247

See more details on using hashes here.

File details

Details for the file pyvalve-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: pyvalve-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for pyvalve-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 223c1c7769470fb3d19d6c2cd8f8c2351da59579618ab7f8a0495a6062ffcab1
MD5 f266071507af5aebab63cb58fcd17fb3
BLAKE2b-256 768add3d87c80ae4490b6b376778df2c5e6909c561704dd21359996facc84281

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page