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.3.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

Pyvalve-0.1.3-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file Pyvalve-0.1.3.tar.gz.

File metadata

  • Download URL: Pyvalve-0.1.3.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.15 CPython/3.10.4 Linux/5.18.10-76051810-generic

File hashes

Hashes for Pyvalve-0.1.3.tar.gz
Algorithm Hash digest
SHA256 32200318a3918bba52a4b3c92b0749858b20e44339933e63a1d8109796fbe30c
MD5 81923a7e3d7291ad6fe27abf9f6bcf7d
BLAKE2b-256 571b06269d09e91c11cc248757f147b14978a977df726dc6bd06573b65043985

See more details on using hashes here.

File details

Details for the file Pyvalve-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: Pyvalve-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.15 CPython/3.10.4 Linux/5.18.10-76051810-generic

File hashes

Hashes for Pyvalve-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4419319f78729655071e484f1ec7e3dabd0f33155594eac7a54c1257071ebb8a
MD5 43555a36032305771cd977200b875bca
BLAKE2b-256 985b7a35347da227d9d838703d07dc729e3c2ce73b8494ba333e19b3fc7d5872

See more details on using hashes here.

Supported by

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