Skip to content

parsedmarc.source.file 🔗

DirectoriesAndFiles 🔗

DirectoriesAndFiles(
    name: str = "default",
    parser: ReportParser | None = None,
    config: dict[str, Any] | None = None,
)

Bases: Source

Source for reading a static list of files and directories

This is intented for "one-shot" modes. For continuous collection and archiving use the DirectoryWatcher source.

This source will parse the following file types:

  • Mailbox: .mbox
  • Email: .eml, .msg

New in 9.0.

PARAMETER DESCRIPTION
name

profile name for this instance, ideally should be unqiue to easily idenfity this instance and any log messages it produces

TYPE: str DEFAULT: 'default'

parser

parser to use when generating reports

TYPE: ReportParser | None DEFAULT: None

config

config for this instance

TYPE: dict[str, Any] | None DEFAULT: None

outstanding_jobs property 🔗

outstanding_jobs: MappingProxyType[str, Job]

Read only view of outstanding jobs

state property 🔗

state: AppState

Read only Source state

ack_job 🔗

ack_job(job: Job, status: JobStatus) -> None

Acknowledge a completed job

Child classes should override this method to implement their own logic.

Child classes MUST still call super().ack_job(job, status).

PARAMETER DESCRIPTION
job

the job to acknowledge

TYPE: Job

status

indicates how the job was processed

TYPE: JobStatus

cleanup 🔗

cleanup() -> None

Perform cleanup on this source.

This method is called as a part of self.shutdown.

Child classes can override this method to implement their own logic. It is still recomended to call super().cleanup().

register_job 🔗

register_job(job: Job) -> None

Register a job to this source so we can keep track of it

PARAMETER DESCRIPTION
job

the job to register

TYPE: Job

shutdown 🔗

shutdown(
    timeout: int | float = 120, force: bool = False
) -> None

Attempt to gracefully shutdown this source.

PARAMETER DESCRIPTION
timeout

Giveup after this many seonds (TODO)

TYPE: int | float DEFAULT: 120

force

If a timeout would occur, instead force shutdown.

TYPE: bool DEFAULT: False

validate_config 🔗

validate_config() -> None

Validate the config of this instance

Child classes can override this method to implement their own logic. It is still recomended to call super().validate_config().

DirectoriesAndFilesConfig 🔗

Bases: BaseConfig

Directories and Files Config

New in 9.0.