Saravanan666/pypi-org huggingface dataset:
Package: pdf2dcm
pdf2dcmPDF to DICOM ConverterA python package for PDF to Encapsulated DCM and PDF to DICOM RGB converterSETUPPython Package SetupThe python package is available for use on PyPI. It can be setup simply via pippipinstallpdf2dcmTo the check the setup, simply check the version number of thepdf2dcmpackage bypython-c'import pdf2dcm; print(pdf2dcm.__version__)'Poppler SetupPoppler is a popular project that is used for the creation of Dicom RGB Secondary Capture. You can check if you already have it installed by callingpdftoppm -hin your terminal/cmd. To install poppler these are some of the recommended ways-Condacondainstall-cconda-forgepopplerUbuntusudoapt-getinstallpoppler-utilsMacOSbrewinstallpopplerPDF to Encapsulated DCMUsagefrompdf2dcmimportPdf2EncapsDCMconverter=Pdf2EncapsDCM()converted_dcm=converter.run(path_pdf='tests/test_data/test_file.pdf',path_template_dcm='tests/test_data/CT_small.dcm',suffix=".dcm")print(converted_dcm)# [ 'tests/test_data/test_file.dcm' ]Parametersconverter.run:path_pdf (str): path of the pdf that needs to be encapsulatedpath_template_dcm (str, optional): path to template for getting the repersonalisation of data.suffix (str, optional): suffix of the dicom files. Defaults to ".dcm".Returns:List[Path]: list of path of the stored encapsulated dcmPDF to RGB Secondary Capture DCMUsagefrompdf2dcmimportPdf2RgbSCconverter=Pdf2RgbSC()converted_dcm=converter.run(path_pdf='tests/test_data/test_file.pdf',path_template_dcm='tests/test_data/CT_small.dcm',suffix=".dcm")print(converted_dcm)# [ 'tests/test_data/test_file_0.dcm', 'tests/test_data/test_file_1.dcm' ]Parametersconverter.run:path_pdf (str): path of the pdf that needs to be convertedpath_template_dcm (str, optional): path to template for getting the repersonalisation of data.suffix (str, optional): suffix of the dicom files. Defaults to ".dcm".Returns:List[Path]: list of paths of the stored secondary capture dcmNotesThe name of the output dicom is same as the name of the input pdfIf no template is provided no repersonalisation takes placeIt is possible to produce dicoms without a suffix by simply passingsuffix=""to theconverter.run()RepersonalisationIt is the process of copying over data regarding the identity of the encapsualted pdf from a template dicom. Currently, the fileds that are repersonalised are-PatientNamePatientIDPatientSexStudyInstanceUIDSeriesInstanceUIDSOPInstanceUIDThe fieldsSeriesInstanceUIDandSOPInstanceUIDhave been removed from the repersonalization by copying as it violates the DICOM standards.
Package: pdf2df
Pdf2DfThis is a simple python package to create a dataframe with the text extracted from PDFs.To install:$ pip install pdf2df
$ pip install PyMuPDF==1.16.14Get StartedTo use the package, first import it:from pdf2df import Pdf2df

sfd = Pdf2df(path, page=True, single_file=False)
df = sfd.get_text()Argumentspath(str) : Where the files are located. It could be a single file or a folder containing multiple pdf filespage(bool) : If True, the dataframe will contain each page of the pdf in a new row, if flase, all the text in the pdf will be in the same row.single_file(bool) : This tell is method if the path is a folder containing multiple pdf files or a single pdf file.
Package: pdf2docx
English |中文pdf2docxExtract data from PDF withPyMuPDF, e.g. text, images and drawingsParse layout with rule, e.g. sections, paragraphs, images and tablesGenerate docx withpython-docxFeaturesParse and re-create page layoutpage marginsection and column (1 or 2 columns only)page header and footer [TODO]Parse and re-create paragraphOCR text [TODO]text in horizontal/vertical direction: from left to right, from bottom to topfont style, e.g. font name, size, weight, italic and colortext format, e.g. highlight, underline, strike-throughlist style [TODO]external hyper linkparagraph horizontal alignment (left/right/center/justify) and vertical spacingParse and re-create imagein-line imageimage in Gray/RGB/CMYK modetransparent imagefloating image, i.e. picture behind textParse and re-create tableborder style, e.g. width, colorshading style, i.e. background colormerged cellsvertical direction celltable with partly hidden bordersnested tablesParsing pages with multi-processingIt can also be used as a tool to extract table contents since both table content and format/style is parsed.LimitationsText-based PDF fileLeft to right languageNormal reading direction, no word transformation / rotationRule-based method can't 100% convert the PDF layoutDocumentationInstallationQuickstartConvert PDFExtract tableCommand Line InterfaceGraphic User InterfaceTechnical Documentation (In Chinese)API DocumentationSample
Package: pdf2docx-headless
English |中文pdf2docx-headlessExtract data from PDF withPyMuPDF, e.g. text, images and drawingsParse layout with rule, e.g. sections, paragraphs, images and tablesGenerate docx withpython-docxDifference to original pdf2docxImportant: This package is a fork of the original package, usingopencv-python-headlessas dependency instead ofopencv-pythonto remove any gui dependencies.Reference issueFeaturesParse and re-create page layoutpage marginsection and column (1 or 2 columns only)page header and footer [TODO]Parse and re-create paragraphOCR text [TODO]text in horizontal/vertical direction: from left to right, from bottom to topfont style, e.g. font name, size, weight, italic and colortext format, e.g. highlight, underline, strike-throughlist style [TODO]external hyper linkparagraph horizontal alignment (left/right/center/justify) and vertical spacingParse and re-create imagein-line imageimage in Gray/RGB/CMYK modetransparent imagefloating image, i.e. picture behind textParse and re-create tableborder style, e.g. width, colorshading style, i.e. background colormerged cellsvertical direction celltable with partly hidden bordersnested tablesParsing pages with multi-processingIt can also be used as a tool to extract table contents since both table content and format/style is parsed.LimitationsText-based PDF fileLeft to right languageNormal reading direction, no word transformation / rotationRule-based method can't 100% convert the PDF layoutDocumentationInstallationQuickstartConvert PDFExtract tableCommand Line InterfaceTechnical Documentation (In Chinese)API DocumentationSample
Package: pdf2docxnogui
pdf2docxnoguiExtract data from PDF withPyMuPDF, e.g. text, images and drawingsParse layout with rule, e.g. sections, paragraphs, images and tablesGenerate docx withpython-docxFeaturesParse and re-create page layoutpage marginsection and column (1 or 2 columns only)page header and footerParse and re-create paragraphtext in horizontal/vertical direction: from left to right, from bottom to topfont style, e.g. font name, size, weight, italic and colortext format, e.g. highlight, underline, strike-throughexternal hyper linkparagraph horizontal alignment (left/right/center/justify) and vertical spacinglist styleParse and re-create imagein-line imageimage in Gray/RGB/CMYK modetransparent imagefloating image, i.e. picture behind textParse and re-create tableborder style, e.g. width, colorshading style, i.e. background colormerged cellsvertical direction celltable with partly hidden bordersnested tablesParsing pages with multi-processingIt can also be used as a tool to extract table contents since both table content and format/style is parsed.LimitationsText-based PDF fileLeft to right languageNormal reading direction, no word transformation / rotationRule-based method can't 100% convert the PDF layoutDocumentationInstallationQuickstartConvert PDFExtract tableCommand Line InterfaceGraphic User InterfaceTechnical Documentation (In Chinese)API DocumentationSample
Package: pdf2doi4frappe-library
pdf2doi4frappe_librarypdf2doi4frappe_libraryis a Python library tool to automatically extract the DOI or ISBN from a .pdf file of a publication,
and to retrieve bibliographic information. It is a fork of MicheleCotrufo's pdf2doi with most of its functionality, though reduced in order
to accomodate my specific needs for a library-type-application in the frappe framework.pipinstallpdf2doi4frappe_libraryLicenseMIT
Package: pdf2excel
pdf2excel介绍pdf2excel是一个简单的Python工具，它可以帮助用户从PDF文档中提取含有特定关键字的表格，并将其转换为Excel文件。安装要安装pdf2excel，请使用pip：pipinstallpdf2excel使用要使用pdf2excel，你需要提供三个参数：PDF文件的路径、要搜索的关键字和输出的Excel文件的路径。例如：pdf2excel--input"/path/to/your/pdf.pdf"--keyword"your_keyword"--output"/path/to/your output.xlsx"依赖PyPDF2pdf2docxpypandocpandasopenpyxl版权和许可版权所有 2023 LuckyBian(Weizhen Bian)。保留所有权利。
Package: pdf2image-cli
pdf2image-clipdf2imageport to a CLI version written in Python.Designed to make PDF processing easier for those who like working through the terminal. After installing you will have thepdf2imagecommand available to use.Installationpip install pdf2image-cliWindowsFor Windows you will need to install poppler for Windows. Here is a repo containing the binaries you will have to add to PATH.@oschwartz10612/poppler-windowsMacFor MacOS you will need to install poppler for MacOS.LinuxMost distros havepdftopppmand/orpdftocairo. However if you do not have them installed in your machine please downloadpoppler-utilsfrom your distro's package manager.How to use itThe program can detect if you've chosen a directory or a file. In case you've chosen a directory, the program will extract images into separate folder for each PDF in it.To begin, run the following command:$pdf2image[path]The program will create an output folder in your current working directory. If you wish to change the output path run the command with the following flag.$pdf2image[path]--output[output_path]As defualt the program will extract the images injpegformat. If you wish to change the format topngadd the following flag.$pdf2image[path]--file_type["jpeg"|"png"]AcknowledgementsProject based on@Belval/pdf2imageAPI. For sponsorships, please visitGithub Sponsors.Developed with ❤️ by Carlos Valdez.
Package: pdf2images
pdf2imagesConvert PDF file to image filesROBUSTLY.Example$ pdf2images -h
usage: pdf2images [-h] [--max-size MAX_SIZE] pdf_file output_dir

positional arguments:
  pdf_file
  output_dir

optional arguments:
  -h, --help           show this help message and exit
  --max-size MAX_SIZE  max size of either side of the imageWhy another "pdf-to-image" packageOnce in a while, I need to convert a pdf file (usually slides or academic
paper) into image files (thumbnails) in order to get a fast glance to the
readers without downloading the pdf file.However, I found all the pdf2image solutions cannot robustly process all the
pdf files, since many pdf files are in non-standard format or come up with
extensions. They are always broken in some cases.But to look them on the bright side, for any plausible case, there is almost
one of them can process it successfully.So I combined (a.k.a.ensemble) them together to make it work across most cases.InstallationAs mentioned above, we combined multiple pdf manipulation libraries. Here are
the list of the libraries used:wand, an ImageMagick python wrapper.pdftotextcommand line tool provided byxpdfpreview-generatorqpdfwhere wand and preview-generator are python packages that can be automatically
installed along with pdf2images. However, you have to install xpdf and qpdf
manually.On Ubuntu:sudo apt install -y qpdf xpdf libimage-exiftool-perlOn Arch Linux:sudo pacman -S --noconfirm qpdf xpdf perl-image-exiftoolOn macOS:brew install freetype imagemagick qpdf xpdf exiftool libmagic ghostscriptThe installation of pdf2images is quite simple:pip install pdf2imagesRobustnessThis package has successfully processed hundreds of thousands of arxiv papers
(for generating thumbnails).GallaryThe following images are converted from aslidefromDeep Learning BookDevelopmentpip3 install -r requirements.dev.txt
pre-commit install
Package: pdf2index
pdf2indexTable of ContentsInstallationLicenseInstallationpip install pdf2indexConsider installing in avenvor usingpipxWarning: This package has large dependencies. You will be downloading ~2 GB.Usagepdf2index book1.pdf book2.pdf book3.pdf --password $(<password_file.txt) --out index.txtNote: The order of the pdfs matters as the books will be referenced in that order.Devhatch run pdf2index data/Book* -p $(<data/passwd/passwd.txt)Licensepdf2indexis distributed under the terms of theMITlicense.
Package: pdf2john
pdf2johnA modern refactoring of the legacy pdf2john.py library, aimed at making the code easier to read and maintain.InstallInstall dependencies usingHomebrewbrewbundleCreate a virtual environment and install Python dependenciespyenvvirtualenv3.11.4pdf2john
pyenvshellpdf2john
poetryinstall--onlymainUsageTo pass the hash to john:pdf2johnexample.pdf>>.hash
john.hash
john--show--format=PDF.hashIf you don't want to use poetry, you can run pdf2john as a standalone script:gitclonehttps://github.com/benjamin-awd/pdf2john.gitcdpdf2john&&pipinstall-rrequirements.txt
./src/pdf2john/pdf2john.pyexample.pdf>>.hashFeaturesResponsibility for PDF parsing and handling has been delegated topyHanko(a crytography focused fork of PyPDF2)CICD workflow that tests pdf2john against PDFs ranging from Security Handler Revision 2 -> 6Removal of legacy Python 2.x supportAn optional debugging flag that shows the encryption dictionary of a PDFReadability improvements (a general attempt to be more Pythonic)TroubleshootingTo access the encryption dictionary:./pdf2john.pytests/pdf/pypdf/r6-user-password.pdf--debugAcknowledgementThis repository was based on the original pdf2john.py byShane Quigley
Package: pdf2mbox
pdf2mboxa command-line utility and Python package for converting PDF emails to MBOX
formatInstallationpip install pdf2mboxUsage# from the command line
% python -m pdf2mbox --help
usage: pdf2mbox.py [-h] [--version] [--overwrite] [--csv [CSV]]
                   pdf_file [mbox_file]

Generates an mbox from a PDF containing emails

positional arguments:
  pdf_file         PDF file provided as input
  mbox_file        Mbox file generated as output

optional arguments:
  -h, --help       show this help message and exit
  --version, -v    show program's version number and exit
  --overwrite, -o  overwrite MBOX file if it exists
  --csv [CSV]      generate CSV file output

# from within python
from pdf2mbox import pdf2mbox
pe = pdf2mbox(pdf_file, mbox_file) # pe contains dict of emailsOS DependenciesIf you encounter errors installing pdf2mbox, please check the OS-level
dependencies of both thepdftotextandpython-magicpackages to ensure
you have the required libraries installed, as pdf2mbox utilizes both these
packages.NotesAssumes an email ends when a new email beginsWorks best with a standard email header (i.e., From:, To:, Sent:, Subject:)The initial development of this package was funded in part by The Mellon
Foundation’s “Email Archives: Building Capacity and Community” program.
Package: pdf2mp3
pdf2mp3CLI to converts PDF to MP3 using Google Text-to-Speech.How to useYou can install thepdf2mp3viapip:pipinstallpdf2mp3Converts a PDF file to MP3pdf2mp3input.pdf[options]Options:-o, --output: Path to save the output MP3 file. If not specified, a file with the same name as the PDF will be created in the current directory.For more details about the application, run:pdf2mp3-h
Package: pdf2odt
What is pdf2odtIt’s a script to convert pdf to LibreOffice Writer document. Pdf pages are converted as images. It uses pdftoppm from poppler to make conversionLinksProject main pagehttps://github.com/turulomio/pdf2odt/Doxygen documentation:http://turulomio.users.sourceforge.net/doxygen/pdf2odt/Pypi web page:https://pypi.org/project/pdf2odt/Installation and use in LinuxIf you use Gentoo you can find a ebuild inhttps://github.com/Turulomio/myportage/tree/master/dev-python/pdf2odtTo install in other distributions, you must have poppler installed to use pdftoppm command. You can use your distribution package managerThen just type:pip install pdf2odtOnce installed you can use it typing:pdf2odt –pdf doc.pdf doc.odtIf you want OCR, you have to install tesseract application then you have to runpdf2odt –pdf doc.pdf –tesseract doc.odtInstallation and use in WindowsYou need python installed. It works with the latest version. Don’t forget to add python executables to PATH, marking it in the installation process.Then just type:pip install pdf2odtNow you have to download poppler for windows fromhttps://blog.alivate.com.au/poppler-windows/. Uncompress the downloaded file and add its installation directory to Windows environment path. Here you have how to do ithttps://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/Now you can use it typing in windows shell:pdf2odt –pdf doc.pdf doc.odtIf you want OCR, ou have to download tesseract for windows frommhttps://github.com/UB-Mannheim/tesseract/wiki. Then you have to add its installation directory to Windows environment path too.pdf2odt –pdf doc.pdf –tesseract doc.odtDependencieshttps://www.python.org/, as the main programming language.https://pypi.org/project/colorama/, to give console colors.https://pypi.org/project/pillow/, to manage png images.https://github.com/turulomio/officegenerator/, to generate odt file.https://poppler.freedesktop.org/, to convert pdf to images using pdftoppm.https://blog.alivate.com.au/poppler-windows/to install poppler in windows.https://pypi.org/project/tqdm, to show beautyful progress bars.https://github.com/tesseract-ocr/, for OCR support.Changelog0.7.0Fixed bug with tesseract parameter position. Thanks @maxlem-neuraliumNow temporal files are generated with tempfile module.0.6.0Tesseract language is now showed in outputNow pdf2odt validates PDF document0.5.0Now pdf2odt detects if tesseract language selected is supported.0.4.0Added OCR support with tesseractNow uses process concurrency and shows a progress bar0.3.0Fixed problem with white spaces paths in windows.Improved metadata information.0.2.0Now works on Windows with popper for windows installation0.1.0Basic functionality
Package: pdf2pptx
pdf2pptxUtility to convert a PDF slideshow to Powerpoint PPTX.Renders each page as a PNG image and creates the resulting Powerpoint
slideshow from these images. Useful when you want to use Powerpoint
to present a set of PDF slides (e.g. slides from Beamer). You can then
use the presentation capabilities of Powerpoint (notes, ink on slides,
etc.) with slides created in LaTeX.I use this to present PDF slides on a Surface Pro so that I can annotate
them with a stylus as I present.UsesPyMuPDFandpython-pptxto do the hard work.Installationpipinstallpdf2pptxUsageThe following will create aslides.pptxfile from aslides.pdffile.pdf2pptxslides.pdfRunpdf2pptx --helpfor more info on the command line interface.
Package: pdf2redmine
pdf2redmineA software tool to automatically read a pdf docuument for annotations (comments)
and upload those to a redmine server using a personal API access tokenInstalling.. code-block:: bashpip install pdf2redmineUsage.. code-block:: pythonfrom pdf2redmine.main import read_and_upload
redmine_url = '<your-redmine-server-url>'
redmine_key = '<your-redmine-api-access-key>'
redmine_project_id = '<your-remine-project-id>'
file_link = '<some-link-to-the-local-file-for-online-access>'
file_path = 'C:/temp/dummy_document_with_comments.pdf'
ids = read_and_upload(file_path, redmine_url, redmine_key, redmine_project_id, link=file_link)
print('Generated the following issues:')
print(ids)
Package: pdf2sb
pdf2sbUpload PDF file to Gyazo as images then convert Scrapbox format.UsageDownload slides (e.g.https://speakerdeck.com/reiyw/effective-modern-python-2018).
Run:pdf2sb~/Downloads/presentation.pdf|pbcopyPaste copied text to a Scrapbox page:Installationpoppleris required to generate images from a PDF file. Install poppler via Homebrew:brewinstallpopplerInstall pdf2sb:pipinstallpdf2sbGet Gyazo access token fromhere.Follow the instructions inthis article (in Japanese).Set$GYAZO_ACCESS_TOKEN:exportGYAZO_ACCESS_TOKEN=<accesstoken>Running via DockerYou can run pdf2sb also via Docker:FILE=<yourpdffile>;dockerrun--envGYAZO_ACCESS_TOKEN=$GYAZO_ACCESS_TOKEN-v$(readlink-f$FILE):/app/${FILE##*/}ghcr.io/reiyw/pdf2sb${FILE##*/}# ordockerrun--envGYAZO_ACCESS_TOKEN=$GYAZO_ACCESS_TOKENghcr.io/reiyw/pdf2sb<URL>
Package: pdf2tables
Pdf表格抽取安装pipinstallpdf2tables简介camelot是一个很棒的pdf表格数据抽取库，但遗憾的是它不能处理基于图片的pdf表格。pdf2tables是对camelot的一个补充，pdf中能够使用camelot抽取的表格，用camelot抽取，而camelot处理不了的图片，则使用ocr的方式识别处理。版权pdf2talbes使用了部分 @lxj0276 处理图片表格的代码github tableDetect。以及SongpingWang发表的文章OpenCV—Python 表格提取中的代码(版权声明：此文为博主SongpingWang原创文章，遵循CC BY-SA 4.0版权协议，转载请附上原文出处链接和本声明)，向两位表示感谢。使用方式注意opencv2读取或写入图像文件时不支持中文，因此有关文件路径的参数请全部使用中文环境需求pdf2tables需要安装以下软件才能正常运行python3.7tesseracttesseract下载，安装完毕后进需要将安装目录放入环境变量中，并保证命令行中tesseract -v可以打印出版本信息阿里云表格识别接口点击此处了解阿里云ocr 表格识别详情ocr识别时，tesseract与aliyun可以任选其一，tesseract免费但速度较慢，aliyun速度快但需要付费（前500条免费）。使用方式# 示例：frompdf2tablesimportpdf_tablesimgOcrSettings={'pytesseract_kernel':np.ones((4,4),np.uint8),'pytesseract_bin_threshold':127,'pytesseract_iterations':1,# 单元格面积范围，决定哪些单元格会被选中'pytesseract_areaRange':[10000,100000],'pytesseract_isDebug':False,# 单元格边框，用来更精确地获取文本'pytesseract_border':10,'img_ocr_type':ImgOcrType.Pytesseract,'aliyun_appcode':'b8f41a5f9b664a45af2bc9f58666a17e'}tables=extract('C:/pdf2tables/test_data/Jan-2010.pdf',lang='eng+tha',**imgOcrSettings)配置说明示例imgOcrSettings配置中：pytesseract前缀的为使用tesseract的配置，在img_ocr_type等于ImgOcrType.Pytesseract时生效。aliyun前缀的为aliyun配置pdf2tables会将ocr配置传递到image_tables模块中，配置使用前缀进行区分，如果使用aliyun，则可以忽略所有pytesseract配置，反过来也一样。返回结果表格抽取完毕后，返回PageTable列表,PageTable定义如下@dataclassclassPageTable:'''表格抽取结果类'''# 页数page:int# 数据列表datas:[]# 本页文本text:strDebug示例imgOcrSettings配置中，如果isDebug设置为True，那么image_tables模块将会显示待分割抓取的图片，并将其保存在硬盘上。例如：图片中绿色的边框为单元格，红色圆点为数据数组的标识，如果单元格有未被识别的情况，表现为某些单元格没有绿色边框包围，那么需要调整pytesseract_areaRange参数，让所有的表格都能够被绿色边框包围。image_tables模块image_tables模块是使用tesseract抽取图片表格数据的模块，它会查找图片中的表格范围，截取表格为新图片，然后按单元格切分表格，最后将单元格图片中的文字识别出来。识别后的文字会按单元格的顺序存放。主要方法：def detect_table(img): 检查表格，返回网格图和网格坐标图find_table(img, mask_img, save=False, save_dir=None): 查找表格，根据网格图找到表格轮廓，如果save=True，那么会将找到的表格保存为图片find_joint_points(joint): 查找网格坐标点，根据返回的结果可以产生数据数组class cutImage(object): 截取单元格的类get_text(self): 截取单元格为小图片并将其中的文本aliyun_tables模块使用阿里云接口抽取表格数据
Package: pdf2textbox
docstestspackagelicensepdf2textboxA PDF-to-text converter based on pdfminer2 (which is based on
pdfminer.six which is based on pdfminer).
Converts PDF files with up to 3 columns and a header (optional)
to text and avoids most caveats that multi-columned PDF files have
in store for PDF conversion.FeaturesConvert PDF to text in the original order. This works well for PDF-files
without tables, graphs, and other stuff.Allows command line parameter -s (–slice) to indicate that only part of
the PDF document is of interest. Start and end page will then be either
retreived from the document’s name using ‘_’ or ‘|’ as delimiters or -
if start and end page cannot be found - user input is requested.Installationpip install pdf2textboxContributeIssue Tracker:https://github.com/0LL13/pdf2textbox/issuesSource:https://github.com/0LL13/pdf2textboxSupportFeel free to fork and improve.WarrantyPermission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL
THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY
DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.LicenseMIT LicenseCopyright (c) 2018 Oliver Stapel