Skip to content

Commit

Permalink
Release to pypi
Browse files Browse the repository at this point in the history
  • Loading branch information
diogo-alves committed Sep 16, 2021
1 parent ce4ea85 commit 73e1eb0
Show file tree
Hide file tree
Showing 8 changed files with 142 additions and 2 deletions.
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,7 @@ trim_trailing_whitespace = true
indent_style = space
indent_size = 4
max_line_length = 119

[*.toml]
indent_size = 2
indent_style = space
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
__pycache__/
*.pyc
*.pyc

build/
dist/
*.egg-info/
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include LICENSE
86 changes: 86 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# EML Extractor

EML Extractor is a CLI tool to extract attachments from .eml files (email messages saved as files).


## Features

* Find .eml files (recursively or not) in a selected folder;
* Select individuals .eml files to extraction;
* Save all attachments in a single main folder;
* Organize the attachments by email subject subfolder.


## Requirements

Python 3.6+


## Installation

```console
$ pip install eml-extractor
```


## Usage

By default, the current working directory is used as the source for .eml files as well as destination for extracted attachments. You can set different optional arguments to change this behavior:

```console
usage: eml-extractor [OPTIONS]

Extracts attachments from .eml files

optional arguments:
-h, --help show this help message and exit
-s PATH, --source PATH
the directory containing the .eml files to extract
attachments (default: current working directory)
-r, --recursive allow recursive search for .eml files under SOURCE
directory
-f FILE [FILE ...], --files FILE [FILE ...]
specify an .eml file or a list of .eml files to extract
attachments
-d PATH, --destination PATH
the directory to extract attachments to (default:
current working directory)
```


## Examples

### 1. Find all .eml files in current working dir, extract the attachments and save them in the same dir:
```console
$ eml-extractor
```

The command above is equivalent to:
```console
$ eml-extractor --source . --destination .
```

### 2. Set another path for searching .eml files:
```console
$ eml-extractor --source /path/to/eml/files/
```

### 3. Allow recursive searching:
```console
$ eml-extractor --source /path/to/eml/files/ --recursive
```

### 4. Define manually from which files the attachments will be extracted:
```console
$ eml-extractor --files /path/to/file1.eml /path/to/file2.eml
```

### 5. Change the path where to save the extracted attachments:
```console
$ eml-extractor --destination /path/to/extracted/attachments/
```


## License

This project is licensed under the terms of the [MIT License](https://github.com/diogo-alves/eml-extractor/blob/main/LICENSE).
2 changes: 1 addition & 1 deletion eml_attachments_extractor.py → eml_extractor.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def check_path(arg_value: str) -> Path:

def main():
parser = ArgumentParser(
usage='python3 %(prog)s [OPTIONS]',
usage='%(prog)s [OPTIONS]',
description='Extracts attachments from .eml files'
)
# force the use of --source or --files, not both
Expand Down
6 changes: 6 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[build-system]
requires = [
"setuptools >= 42",
"wheel",
]
build-backend = "setuptools.build_meta"
36 changes: 36 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[metadata]
name = eml-extractor
version = 0.1.1
author = Diogo Alves
author_email = [email protected]
description = A CLI tool to extract attachments from .eml files (email messages saved as files)
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/diogo-alves/eml-extractor
platform = any
keywords = cli, eml, email, attachments, extract
license = MIT
license_files = LICENSE
classifiers =
Environment :: Console
Programming Language :: Python
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Operating System :: OS Independent
Intended Audience :: End Users/Desktop
License :: OSI Approved :: MIT License
Natural Language :: English
Topic :: Communications :: Email
Topic :: Utilities

[options]
py_modules = eml_extractor
python_requires = >=3.6
packages = find:

[options.entry_points]
console_scripts =
eml-extractor = eml_extractor:main
3 changes: 3 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from setuptools import setup

setup()

0 comments on commit 73e1eb0

Please sign in to comment.