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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.