Skip to content

FileModifiedTime

Bases: BaseFileFilter, FrozenModel

Filter files matching a specified modification time.

If file modification time (.stat().st_mtime) doesn't match range, it will be excluded. Doesn't affect directories or paths without .stat() method.

.. note::

Some filesystems return timestamps truncated to whole seconds (without millisecond part).
obj:`~since` and :obj`~until`` values should be adjusted accordingly.

.. versionadded:: 0.13.0

Parameters:

  • since (datetime) –

    Minimal allowed file modification time. None means no limit.

  • until (datetime) –

    Maximum allowed file modification time. None means no limit.

Examples:

Select files modified between start of the day (00:00:00) and hour ago:

.. code:: python

from datetime import datetime, timedelta
from onetl.file.filter import FileModifiedTime

hour_ago = datetime.now() - timedelta(hours=1)
day_start = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
file_mtime = FileModifiedTime(since=day_start, until=hour_ago)

Select only files modified since hour ago:

.. code:: python

from datetime import datetime, timedelta
from onetl.file.filter import FileModifiedTime

hour_ago = datetime.now() - timedelta(hours=1)
file_mtime = FileModifiedTime(since=hour_ago)

match(path)

Returns True if path is matching the filter, False otherwise

.. versionadded:: 0.8.0

Examples:

>>> from onetl.impl import LocalPath
>>> filter.match(LocalPath("/path/to/file.csv"))
True
>>> filter.match(LocalPath("/path/to/excluded.csv"))
False
>>> filter.match(LocalPath("/path/to/file.csv"))
True