Go to the latest version of this document.

# ``twisted`.`internet`.`inotify`.`INotify``

class documentation

`class INotify(FileDescriptor): (source)`

Constructor: `INotify(reactor)`

View In Hierarchy

The INotify file descriptor, it basically does everything related to INotify, from reading to notifying watch points.

Method | `__init__` | No summary
Method | `connectionLost` | Release the inotify file descriptor and do the necessary cleanup
Method | `doRead` | Read some data from the observed file descriptors
Method | `fileno` | Get the underlying file descriptor from this inotify observer. Required by `abstract.FileDescriptor` subclasses.
Method | `ignore` | Remove the watch point monitoring the given path
Method | `watch` | Watch the 'mask' events in given path. Can raise `INotifyError` when there's a problem while adding a directory.
Instance Variable | `connected` | Undocumented
Method | `_addChildren` | This is a very private method, please don't even think about using it.
Method | `_addWatch` | Private helper that abstracts the use of ctypes.
Method | `_doRead` | Work on the data just read from the file descriptor.
Method | `_isWatched` | Helper function that checks if the path is already monitored and returns its watchdescriptor if so or None otherwise.
Method | `_rmWatch` | Private helper that abstracts the use of ctypes.
Instance Variable | `_buffer` | a `bytes` containing the data read from the inotify fd.
Instance Variable | `_fd` | Undocumented
Instance Variable | `_watchpaths` | a `dict` that maps from watched paths to the inotify watch ids
Instance Variable | `_watchpoints` | a `dict` that maps from inotify watch ids to watchpoints objects
Instance Variable | `_writeDisconnected` | Undocumented

Inherited from `FileDescriptor`:

Method | `doWrite` | Called when data can be written.
Method | `getHost` | Similar to getPeer, but returns an address describing this side of the connection.
Method | `getPeer` | Get the remote address of this connection.
Method | `loseConnection` | Close the connection at the next available opportunity.
Method | `loseWriteConnection` | Undocumented
Method | `pauseProducing` | Pause producing data.
Method | `readConnectionLost` | Indicates read connection was lost.
Method | `resumeProducing` | Resume producing data.
Method | `startReading` | Start waiting for read availability.
Method | `startWriting` | Start waiting for write availability.
Method | `stopConsuming` | Stop consuming data.
Method | `stopProducing` | Stop producing data.
Method | `stopReading` | Stop waiting for read availability.
Method | `stopWriting` | Stop waiting for write availability.
Method | `write` | Reliably write some data.
Method | `writeConnectionLost` | Indicates write connection was lost.
Method | `writeSequence` | Reliably write a sequence of data.
Method | `writeSomeData` | Write as much as possible of the given data, immediately.
Constant | `SEND_LIMIT` | Undocumented
Class Variable | `bufferSize` | Undocumented
Class Variable | `disconnecting` | Undocumented
Instance Variable | `dataBuffer` | Undocumented
Instance Variable | `disconnected` | Undocumented
Instance Variable | `offset` | Undocumented
Instance Variable | `producer` | Undocumented
Instance Variable | `producerPaused` | Undocumented
Instance Variable | `reactor` | Undocumented
Method | `_closeWriteConnection` | Undocumented
Method | `_isSendBufferFull` | Determine whether the user-space send buffer for this transport is full or not.
Method | `_maybePauseProducer` | Possibly pause a producer, if there is one and the send buffer is full.
Method | `_postLoseConnection` | Called after a loseConnection(), when all data has been written.
Instance Variable | `_tempDataBuffer` | Undocumented
Instance Variable | `_tempDataLen` | Undocumented
Instance Variable | `_writeDisconnecting` | Undocumented

Inherited from `_ConsumerMixin` (via `FileDescriptor`):

Method | `registerProducer` | Register to receive data from a producer.
Method | `unregisterProducer` | Stop consuming data from a producer, without disconnecting.
Instance Variable | `streamingProducer` | `bool` or `int`

Inherited from `_LogOwner` (via `FileDescriptor`, `_ConsumerMixin`):

Method | `logPrefix` | Override this method to insert custom logging behavior. Its return value will be inserted in front of every line. It may be called more times than the number of output lines.
Method | `_getLogPrefix` | Determine the log prefix to use for messages related to `applicationObject`, which may or may not be an `interfaces.ILoggingContext` provider.

def __init__(self, reactor=None): (source)
overrides `twisted.internet.abstract.FileDescriptor.__init__`

Parameters
reactor | An `IReactorFDSet` provider which this descriptor will use to get readable and writeable event notifications. If no value is given, the global reactor will be used.

def connectionLost(self, reason): (source)
from `twisted.internet.interfaces.IFileDescriptor`
overrides `twisted.internet.abstract.FileDescriptor.connectionLost`

Release the inotify file descriptor and do the necessary cleanup

def doRead(self): (source)
from `twisted.internet.interfaces.IReadDescriptor`
overrides `twisted.internet.abstract.FileDescriptor.doRead`

Read some data from the observed file descriptors

def fileno(self): (source)
from `twisted.internet.interfaces.IFileDescriptor`
overrides `twisted.internet.abstract.FileDescriptor.fileno`

Get the underlying file descriptor from this inotify observer. Required by `abstract.FileDescriptor` subclasses.

def ignore(self, path): (source)

Remove the watch point monitoring the given path

Parameters
path:`FilePath` | The path that should be ignored

def watch(self, path, mask=IN_WATCH_MASK, autoAdd=False, callbacks=None, recursive=False): (source)

Watch the 'mask' events in given path. Can raise `INotifyError` when there's a problem while adding a directory.

Parameters
path:`FilePath` | The path needing monitoring
mask:`int` | The events that should be watched
autoAdd:`bool` | if True automatically add newly created subdirectories
callbacks:`list` of callables | A list of callbacks that should be called when an event happens in the given path. The callback should accept 3 arguments: (ignored, filepath, mask)
recursive:`bool` | Also add all the subdirectories in this path

connected: `int` = (source)
overrides `twisted.internet.abstract.FileDescriptor.connected`

Undocumented

def _addChildren(self, iwp): (source)

This is a very private method, please don't even think about using it.

Note that this is a fricking hack... it's because we cannot be fast enough in adding a watch to a directory and so we basically end up getting here too late if some operations have already been going on in the subdir, we basically need to catchup. This eventually ends up meaning that we generate double events, your app must be resistant.

def _addWatch(self, path, mask, autoAdd, callbacks): (source)

Private helper that abstracts the use of ctypes.

Calls the internal inotify API and checks for any errors after the call. If there's an error `INotify._addWatch` can raise an INotifyError. If there's no error it proceeds creating a watchpoint and adding a watchpath for inverse lookup of the file descriptor from the path.

def _doRead(self, in_): (source)

Work on the data just read from the file descriptor.

def _isWatched(self, path): (source)

Helper function that checks if the path is already monitored and returns its watchdescriptor if so or None otherwise.

Parameters
path:`FilePath` | The path that should be checked

def _rmWatch(self, wd): (source)

Private helper that abstracts the use of ctypes.

Calls the internal inotify API to remove an fd from inotify then removes the corresponding watchpoint from the internal mapping together with the file descriptor from the watchpath.

_buffer = (source)

a `bytes` containing the data read from the inotify fd.

_fd = (source)

Undocumented

_watchpaths: `dict` = (source)

a `dict` that maps from watched paths to the inotify watch ids

_watchpoints: `dict` = (source)

a `dict` that maps from inotify watch ids to watchpoints objects

_writeDisconnected: `bool` = (source)
overrides `twisted.internet.abstract.FileDescriptor._writeDisconnected`

Undocumented