%global _empty_manifest_terminate_build 0 Name: python-eml-parser Version: 1.17.5 Release: 1 Summary: Python EML parser library License: AGPLv3+ URL: https://github.com/GOVCERT-LU/eml_parser Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2a/df/74a8e9b2e45d411978cd414d9a6b420a51263846ddc633ebfb99e97c8417/eml_parser-1.17.5.tar.gz BuildArch: noarch Requires: python3-dateutil Requires: python3-charset-normalizer Requires: python3-publicsuffixlist Requires: python3-pylint Requires: python3-mypy Requires: python3-flake8 Requires: python3-flake8-comprehensions Requires: python3-flake8-docstrings Requires: python3-pep8-naming Requires: python3-types-python-dateutil Requires: python3-types-chardet Requires: python3-mkdocs-material Requires: python3-mkdocstrings[crystal,python] Requires: python3-file-magic Requires: python3-pyre2 Requires: python3-regex Requires: python3-pytest Requires: python3-coverage %description [![Code Health](https://codebeat.co/badges/d631cfb2-a7f8-476a-9d2e-58e58db95bc8)](https://codebeat.co/projects/github-com-govcert-lu-eml_parser-master) [![Travis CI](https://travis-ci.com/GOVCERT-LU/eml_parser.svg?branch=master)](https://travis-ci.com/GOVCERT-LU/eml_parser) [![Documentation Status](https://readthedocs.org/projects/eml-parser/badge/)](http://eml-parser.readthedocs.io) [![PyPI](https://badge.fury.io/py/eml-parser.svg)](https://badge.fury.io/py/eml-parser) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/eml-parser.svg)](https://pypi.python.org/pypi/eml-parser/) eml_parser serves as a python module for parsing eml files and returning various information found in the e-mail as well as computed information. Extracted and generated information include but are not limited to: - attachments - hashes - names - from, to, cc - received servers path - subject - list of URLs parsed from the text content of the mail (including HTML body/attachments) Please feel free to send me your comments / pull requests. For the changelog, please see [CHANGELOG.md](CHANGELOG.md). ### Installation: ```shell script pip install eml_parser[filemagic] ``` :warning: **Note:** If you don't want to / cannot use file-magic (e.g. if you are using python-magic), install via: ```shell script pip install eml_parser ``` ### Known Issues #### **OSX** users Make sure to install libmagic, else eml_parser will not work. #### Python <=3.7.4 "rare header field parsing issue" It has been reported (in #60) that there are parsing issues in some particular cases which seem to be caused by a bug in the *email* module of the Python standard library. At least versions <=3.7.4 are affected. Python versions >=3.7.11 are not affected. If you do get *KeyError* exceptions on header field parsing, you should consider upgrading to a more recent version of Python. -> Please open an issue if the error persists after upgrading. ### Example usage: ```python import datetime import json import eml_parser def json_serial(obj): if isinstance(obj, datetime.datetime): serial = obj.isoformat() return serial with open('sample.eml', 'rb') as fhdl: raw_email = fhdl.read() ep = eml_parser.EmlParser() parsed_eml = ep.decode_email_bytes(raw_email) print(json.dumps(parsed_eml, default=json_serial)) ``` Which gives for a minimalistic EML file something like this: ```json { "body": [ { "content_header": { "content-language": [ "en-US" ] }, "hash": "6c9f343bdb040e764843325fc5673b0f43a021bac9064075d285190d6509222d" } ], "header": { "received_src": null, "from": "john.doe@example.com", "to": [ "test@example.com" ], "subject": "Sample EML", "received_foremail": [ "test@example.com" ], "date": "2013-04-26T11:15:47+00:00", "header": { "content-language": [ "en-US" ], "received": [ "from localhost\tby mta.example.com (Postfix) with ESMTPS id 6388F684168\tfor ; Fri, 26 Apr 2013 13:15:55 +0200" ], "to": [ "test@example.com" ], "subject": [ "Sample EML" ], "date": [ "Fri, 26 Apr 2013 11:15:47 +0000" ], "message-id": [ "" ], "from": [ "John Doe " ] }, "received_domain": [ "mta.example.com" ], "received": [ { "with": "esmtps id 6388f684168", "for": [ "test@example.com" ], "by": [ "mta.example.com" ], "date": "2013-04-26T13:15:55+02:00", "src": "from localhost by mta.example.com (postfix) with esmtps id 6388f684168 for ; fri, 26 apr 2013 13:15:55 +0200" } ] } } ``` %package -n python3-eml-parser Summary: Python EML parser library Provides: python-eml-parser BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-eml-parser [![Code Health](https://codebeat.co/badges/d631cfb2-a7f8-476a-9d2e-58e58db95bc8)](https://codebeat.co/projects/github-com-govcert-lu-eml_parser-master) [![Travis CI](https://travis-ci.com/GOVCERT-LU/eml_parser.svg?branch=master)](https://travis-ci.com/GOVCERT-LU/eml_parser) [![Documentation Status](https://readthedocs.org/projects/eml-parser/badge/)](http://eml-parser.readthedocs.io) [![PyPI](https://badge.fury.io/py/eml-parser.svg)](https://badge.fury.io/py/eml-parser) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/eml-parser.svg)](https://pypi.python.org/pypi/eml-parser/) eml_parser serves as a python module for parsing eml files and returning various information found in the e-mail as well as computed information. Extracted and generated information include but are not limited to: - attachments - hashes - names - from, to, cc - received servers path - subject - list of URLs parsed from the text content of the mail (including HTML body/attachments) Please feel free to send me your comments / pull requests. For the changelog, please see [CHANGELOG.md](CHANGELOG.md). ### Installation: ```shell script pip install eml_parser[filemagic] ``` :warning: **Note:** If you don't want to / cannot use file-magic (e.g. if you are using python-magic), install via: ```shell script pip install eml_parser ``` ### Known Issues #### **OSX** users Make sure to install libmagic, else eml_parser will not work. #### Python <=3.7.4 "rare header field parsing issue" It has been reported (in #60) that there are parsing issues in some particular cases which seem to be caused by a bug in the *email* module of the Python standard library. At least versions <=3.7.4 are affected. Python versions >=3.7.11 are not affected. If you do get *KeyError* exceptions on header field parsing, you should consider upgrading to a more recent version of Python. -> Please open an issue if the error persists after upgrading. ### Example usage: ```python import datetime import json import eml_parser def json_serial(obj): if isinstance(obj, datetime.datetime): serial = obj.isoformat() return serial with open('sample.eml', 'rb') as fhdl: raw_email = fhdl.read() ep = eml_parser.EmlParser() parsed_eml = ep.decode_email_bytes(raw_email) print(json.dumps(parsed_eml, default=json_serial)) ``` Which gives for a minimalistic EML file something like this: ```json { "body": [ { "content_header": { "content-language": [ "en-US" ] }, "hash": "6c9f343bdb040e764843325fc5673b0f43a021bac9064075d285190d6509222d" } ], "header": { "received_src": null, "from": "john.doe@example.com", "to": [ "test@example.com" ], "subject": "Sample EML", "received_foremail": [ "test@example.com" ], "date": "2013-04-26T11:15:47+00:00", "header": { "content-language": [ "en-US" ], "received": [ "from localhost\tby mta.example.com (Postfix) with ESMTPS id 6388F684168\tfor ; Fri, 26 Apr 2013 13:15:55 +0200" ], "to": [ "test@example.com" ], "subject": [ "Sample EML" ], "date": [ "Fri, 26 Apr 2013 11:15:47 +0000" ], "message-id": [ "" ], "from": [ "John Doe " ] }, "received_domain": [ "mta.example.com" ], "received": [ { "with": "esmtps id 6388f684168", "for": [ "test@example.com" ], "by": [ "mta.example.com" ], "date": "2013-04-26T13:15:55+02:00", "src": "from localhost by mta.example.com (postfix) with esmtps id 6388f684168 for ; fri, 26 apr 2013 13:15:55 +0200" } ] } } ``` %package help Summary: Development documents and examples for eml-parser Provides: python3-eml-parser-doc %description help [![Code Health](https://codebeat.co/badges/d631cfb2-a7f8-476a-9d2e-58e58db95bc8)](https://codebeat.co/projects/github-com-govcert-lu-eml_parser-master) [![Travis CI](https://travis-ci.com/GOVCERT-LU/eml_parser.svg?branch=master)](https://travis-ci.com/GOVCERT-LU/eml_parser) [![Documentation Status](https://readthedocs.org/projects/eml-parser/badge/)](http://eml-parser.readthedocs.io) [![PyPI](https://badge.fury.io/py/eml-parser.svg)](https://badge.fury.io/py/eml-parser) [![PyPI pyversions](https://img.shields.io/pypi/pyversions/eml-parser.svg)](https://pypi.python.org/pypi/eml-parser/) eml_parser serves as a python module for parsing eml files and returning various information found in the e-mail as well as computed information. Extracted and generated information include but are not limited to: - attachments - hashes - names - from, to, cc - received servers path - subject - list of URLs parsed from the text content of the mail (including HTML body/attachments) Please feel free to send me your comments / pull requests. For the changelog, please see [CHANGELOG.md](CHANGELOG.md). ### Installation: ```shell script pip install eml_parser[filemagic] ``` :warning: **Note:** If you don't want to / cannot use file-magic (e.g. if you are using python-magic), install via: ```shell script pip install eml_parser ``` ### Known Issues #### **OSX** users Make sure to install libmagic, else eml_parser will not work. #### Python <=3.7.4 "rare header field parsing issue" It has been reported (in #60) that there are parsing issues in some particular cases which seem to be caused by a bug in the *email* module of the Python standard library. At least versions <=3.7.4 are affected. Python versions >=3.7.11 are not affected. If you do get *KeyError* exceptions on header field parsing, you should consider upgrading to a more recent version of Python. -> Please open an issue if the error persists after upgrading. ### Example usage: ```python import datetime import json import eml_parser def json_serial(obj): if isinstance(obj, datetime.datetime): serial = obj.isoformat() return serial with open('sample.eml', 'rb') as fhdl: raw_email = fhdl.read() ep = eml_parser.EmlParser() parsed_eml = ep.decode_email_bytes(raw_email) print(json.dumps(parsed_eml, default=json_serial)) ``` Which gives for a minimalistic EML file something like this: ```json { "body": [ { "content_header": { "content-language": [ "en-US" ] }, "hash": "6c9f343bdb040e764843325fc5673b0f43a021bac9064075d285190d6509222d" } ], "header": { "received_src": null, "from": "john.doe@example.com", "to": [ "test@example.com" ], "subject": "Sample EML", "received_foremail": [ "test@example.com" ], "date": "2013-04-26T11:15:47+00:00", "header": { "content-language": [ "en-US" ], "received": [ "from localhost\tby mta.example.com (Postfix) with ESMTPS id 6388F684168\tfor ; Fri, 26 Apr 2013 13:15:55 +0200" ], "to": [ "test@example.com" ], "subject": [ "Sample EML" ], "date": [ "Fri, 26 Apr 2013 11:15:47 +0000" ], "message-id": [ "" ], "from": [ "John Doe " ] }, "received_domain": [ "mta.example.com" ], "received": [ { "with": "esmtps id 6388f684168", "for": [ "test@example.com" ], "by": [ "mta.example.com" ], "date": "2013-04-26T13:15:55+02:00", "src": "from localhost by mta.example.com (postfix) with esmtps id 6388f684168 for ; fri, 26 apr 2013 13:15:55 +0200" } ] } } ``` %prep %autosetup -n eml-parser-1.17.5 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-eml-parser -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 1.17.5-1 - Package Spec generated