Saravanan666/pypi-org huggingface dataset:
Package: pymarko
PyMarkoin developmentExample#!/usr/bin/env python3frompymarko.udpsocketimportPublisherfrompymarko.udpsocketimportSubscriberimporttimeimportsysHOST,PORT="10.0.1.116",9999defpub():pub=Publisher()pub.info()pub.clientaddr.append((HOST,PORT))pub.clientaddr.append((HOST,9998))# this one will fail quietlyfor_inrange(20):msg=str(time.time()).encode("utf-8")pub.publish(msg)defsub():defcb(data):print(data)try:s=Subscriber()s.bind(HOST,PORT)s.info()s.register_cb(cb)s.loop()exceptKeyboardInterruptase:s.event=Falsetime.sleep(0.1)print(e)print("ctrl-z")if__name__=="__main__":ifsys.argv[1]=="p":pub()elifsys.argv[1]=="s":sub()MIT LicenseCopyright (c) 2018 Kevin J. WalchkoPermission 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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Package: pymarkoff
Originally a proof of concept, I’ve used this in enough projects that
I’ve decided to publish it tomake it easier to import. The name is a
play on words similar to Markup/Markdown. Hey, I’m funny sometimes,Basic UseUse the includedfrom_sentences()andfrom_words()if your data
already behaves nicely. These methods return aMarkovobject which
is the workhorse of this whole thing. Your input sequences of words or
sentences should be delimited by newlines. Usenext_word()andnext_sentence()to generate your desired forat of output.Advanced UseInstantiate withm = markoff.Markov(seeds)whereseedsis an
iterable of sub-iterables. That could be a list of lists of words or
letters if you want to emulate the functionality offrom_sentences()andfrom_words(). Each sub-iterable being a chain in the set of
chains you want to model.You can supply it with just one chain or many.Then usem.generate(max_length=100)to produce a single chain
limited tomax_lengthautomatically terminating at known ending
state (usually a word ending with punctuation).ExamplesDon’t forget to begin withimport pymarkoff## Generating Sentences
##Inputm = pymarkoff.from_sentences(
"""The quick brown fox jumped over the lazy dog.
Jack and Jill ran up the hill to fetch a pail of water.
Whenever the black fox jumped the squirrel gazed suspiciously."""
)

print([m.next_sentence() for i in range(10)])Output[
    'The quick brown fox jumped over the black fox jumped the lazy dog.',
    'The quick brown fox jumped the squirrel gazed suspiciously.',
    'Whenever the squirrel gazed suspiciously.',
    'Jack and Jill ran up the lazy dog.',
    'Jack and Jill ran up the hill to fetch a pail of water.',
    'Jack and Jill ran up the black fox jumped the hill to fetch a pail of water.',
    'Whenever the lazy dog.',
    'The quick brown fox jumped over the lazy dog.',
    'Jack and Jill ran up the hill to fetch a pail of water.',
    'Jack and Jill ran up the squirrel gazed suspiciously.'
 ]Generating WordsInputseeds = """Ana
Bastion
D.Va
Genji
Hanzo
Junkrat
Lúcio
McCree
Mei
Mercy
Pharah
Reaper
Reinhardt
Roadhog
Soldier: 76
Symmetra
Torbjörn
Tracer
Widowmaker
Winston
Zarya
Zenyatta"""

brain = pymarkoff.from_words(mystr)
print([brain.next_word() for i in range(10)])Output['Zen', 'D.Vaperein', 'Za', 'To', 'Merya', 'Metrdo', 'So', 'Junjör', 'Ph', 'Mera']More advanced useTheMarkov.feed()method can be used to add more data into the model
of aMarkovobject. This lets you add sentences or words one at a
time, if you want.NotesThis module is still under development and is mostly for me to play
around with and learn Markov Chains. Cheers.
Package: pymarks
PyMarks (WIP)🌟 AboutPyMarksis an efficient Python program designed to manage bookmarks. It usesSQLite3as a database to store your bookmarks, which allows you toadd, delete, and updatethem as necessary.To make it easier to access your bookmarks,PyMarksprovides a
menu system using tools likeDmenu,Rofi, orfzfin the terminal. With this menu
system, you can search and fuzzy find the bookmark you are looking for and then open
it in your preferred web browser. Is an excellent tool for organizing and
accessing bookmarks.⚡️ RequirementsRofi(More options)dmenu(Optional)fzf(Optional)xclip(clipboard)📦 InstallationYou can install this tool usingpipx(recommended),pipor bycloningthe repository⭐ Using pipx(recommended)pipxinstallpymarksUsing pippipinstallpymarksClone repository# clone repository$gitclone"https://github.com/haaag/PyMarks"$cdPyMarks# create virtual environment & source$python-mvenv.venv&&source.venv/bin/activate# install dependencies$pipinstall-rrequirements.txt# run$pymarks🚀 Usage$pymarks--help

PyMarksisasimpletooltoassistyouinefficiently
organizingandmanagingyourbookmarks.

Thetoolsimplifiestheprocessofaccessing,adding,updating,
andremovingbookmarks.

supportedmenus:['dmenu','rofi','fzf']options:-a,--addAddbookmark-c,--copyCopybookmarktosystemclipboar(default)-o,--openOpenbookmarkindefaultbrowser-m,--menuSelectmenu(default:rofi)-j,--jsonJSONformattedoutput-V,--versionShowversion-h,--helpShowhelp-v,--verboseVerbosemode

optionalenvironmentvariables:PYMARKS_HOMEOverridesdefaultPyMarkslocationPYMARKS_BACKUP_MAX_AGEOverridesbackupagecheckintervalPYMARKS_BACKUP_MAX_AMOUNTOverridesbackupmaxamount⌨️ Keybinds (rofi exclusive)Usingrofi, you can use somekeybinds.KeybindDescriptionAlt+aAdd new recordAlt+cChangedatabaseAlt+dRecord detailAlt+eRecord optionsedit, deleteAlt+iApp informationdatabases, keybindsAlt+tFilter bytag📁 Folder structureDirectory structure$XDG_CONFIG_HOME/pymarks$~/.config/pymarks(main*)tree
├──backup
│├──YYYY-MM-DD_bookmarks.db
│└──YYYY-MM-DD_bookmarks.db
└──databases├──bookmarks.db<--Default├──trash.db<--Deletedrecords├──private.db└──work.db🔥 Similar projects and inspirationBuku🌟 Thank You 🤘DoneTODOPriorityDescriptionProgressUseXDG_DIRSAddencrypt/decryptoption todatabaseCreatedeleted/removedtableGetkeybindsindmenu/fzfto workEnvironment variablesDescriptionProgressPYMARKS_HOMEPYMARKS_BACKUP_WATCHPYMARKS_BACKUP_MAX_AGEPYMARKS_BACKUP_MAX_AMOUNTActionsDescriptionProgressUpdate record(tags, URL)Delete record(tags, URL)Option to switch databasesOption to add/remove databaseOption to show information(backups, keys, records, etc)Scrapetitlefrom websiteScrapeDescriptionfrom websiteMulti-Select(for delete? for migrate? for any action…🤔)DatabasesDescriptionProgressAdd support for multi-database(e.g: personal and work)Createtrash.dbordump.dbfor deleted recordsOption to restore fromdeletedtobookmarktableOption to search inALLdatabasesBackupsDescriptionProgressPrompt for backup every<PYMARKS_BACKUP_MAX_AGE>number of daysOption to disable check on runtimeKeep<PYMARKS_BACKUP_MAX_AMOUNT>of backup filesMiscDescriptionProgressAdd renumbered for therowid(Each time a record is deleted?)Add URLvalidationwhen reading from clipboard
Package: py-marktest
py-marktestWhat is py-marktest and why you need itpy-marktest helps you test Python code samples in your markdown files. These code samples can include REPL snippets and code blocks.Local developmentBootstrap your local environment. This will create a new virtual environment in./.venvand install the dev dependencies frompyproject.toml.makesetupRun all tests and report test coverage.maketestcovBuildNote: these comands assume a valid~/.pypircfile is configured.See theofficial packaging docsfor more info.python3-mpipinstall--upgradebuildtwine
python3-mbuildUpload totest.pypi.orgpython3-mtwineupload--repositorytestpypidist/*Upload toPyPIpython3-mtwineuploaddist/*
Package: pymarktex
pymarktexversion 1.4.6This program creates a PDF file out of a specifically formated markdown text file.
In particular, the markdown file can contain extra information that
will be included in the final PDF with a fancy header. See the example included.PrerequisitesSincepymarktexis written in python, it is compatible with all operating systems: Linux, macOS and Windows. The main prerequisite ispython3(which is often installed by default) along with thepip3package manager.To check if you havepython3installed, type the following on your terminal:$ python3 -VIf you do not havepython3installed, please refer to the sectionobtaining python3.To check you havepip3installed, type the following on your terminal:$ pip3 -VIf you do not havepip3installed, please refer to the sectionobtaining pip3.DependenciesThepymarktexpackage requires two other external tools to function. These arepandocandxelatexObtaining pandocPandoc is a text conversion engine. Thepandocexecutable should be in your$PATH. To install it on a recent Ubuntu distribution simply type:$ sudo apt-get update
$ sudo apt-get install pandocObtaining xelatexThis is type setting engine that creates PDF output. Thexelatexexecutable should be in your$PATH.To install it on a recent Ubuntu distribution simply type:$ sudo apt-get update
$ sudo apt-get install texlive-fullOtherwise if that does not work, you can use the installer from the TeX Live package:$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar xzf install-tl-unx.tar.gz
$ cd install-tl-*
$ ./install-tl -gui textInstallingTo install thepymarktexpackage, simply type the following commands on your terminal:$ pip3 install --user pymarktexAlternatively, if you want to install it for all users of the system:$ sudo pip3 install pymarktexUsageYou can use it from the shell like this:$ pymarktex lorem.mdAnd it will generate the correspondinglorem.pdffile in the same directory.Extra documentationMore documentation is available at:http://xapple.github.io/pymarktex/pymarktexThis documentation is simply generated with:$ pdoc --html --output-dir docs --force pymarktex
Package: pymarkup
PyMarkupAn internal DSL for generating XML-like markup in Python 3.7InstallationInstallation is as simple aspip install pymarkup.
To develop, download the source, and runpip install -e .[dev]UsageA basic example:frompymarkupimportMarkupBuildert=MarkupBuilder()witht:# <html> tagwitht.h1(id='HelloWorld'):# Attribute access creates new element, and call adds attributes to tagt+'Hello World!'# Add child text to tagwitht.a(href="github.com"):t+t.img(src="i_am_an_image.png")# Self-closing tags are added with +witht.ul:forxinrange(2):witht.li:t+xrepr(t)gives:<html><h1id="HelloWorld">Hello World!</h1><ahref="github.com"><imgsrc="i_am_an_image.png"/></a><ul><li>0</li><li>1</li></html>For more information, see thedocs
Package: pymarlin
PyMarlin, a lightweight PyTorch library for agile deep learning!PyMarlin was developed with the goal of simplifying the E2E Deep Learning experimentation lifecycle for data scientists using PyTorch. The library enables an agile way to quickly prototype a new AI scenario on dev box and seamlessly scale it training multi-node DDP GPU training with AzureML or other cloud services.Key featuresProvides public and enterprisedata pre-processingrecipes, which provides out of the box vanilla and parallel processing. It requires no additional code to run for AzureML or other environments easily.Providesscalable model trainingwith support for Single Process, VM, multi-GPU, multi-node, distributed Data Parallel, mixed-precision (AMP, Apex) training. ORT and DeepSpeed based training are going to be available soon!Provides out of the boxPluginsthat can be used for all typical NLP tasks like Sequence Classification, Named Entity Recognition and Seq2Seq text generation.Providesreusable modulesfor model checkpointing, stats collection, Tensorboard and compliant AML logging which can be customized based on your scenario.Providescustom arguments parserthat allows for saving all the default values for arguments related to a scenario in an YAML config file, merging user provided arguments at runtime.All core modules are thoroughlylinted,unit testedand even ran E2E (multi-node, GPU) in AzureML.PyMarlin is minimal and has a easy to understand codebase. PyMarlin was designed to make it easy for others to understand the entire codebase and customize according to their needs.Installationpip install pymarlinRead theinstallation docfor more information.Start exploring!Full documentation websiteFull website withguides and SDK reference.Train your first model with pymarlinCheck out theCIFAR image classification example.GLUE task benchmarkingExplore how to use pymarlin tobenchmark your language models on GLUE tasks.We want your feedback!Reach out to us with yourfeedback and suggestions.
Package: pymarshal
PyMarshalpymarshal replicates the feature of (un)marshalling structs in Golang.
Rather than replicating the exact feature as it exists in Go,
pymarshal aims for elegant, Pythonic simplicity, and to fix the flaws in
Go's implementation such as:extra keys being silently ignoredlack of mandatory fieldslack of default values
Seecontrol variablesfor the many options
that can be configured per-class.PyMarshal v2.0+Support for the following has been removed:YAML docstring API docs formatPython2If you need any of these, use 1.6.2Currently supported serialization formatsJSONBSONYAMLCSVAs YAML is compatible with JSON, use PyYAML to load or dump data
with thepymarshal.jsonmodule, there is no explicit YAML module.InstallationIt is recommended that you installfrom PyPIusingpip install pymarshalOverviewThe only modification required to your class code is to use thetype_assertfunctions to assign__init__arguments to class fields of the same
name.  pymarshal provides thetype_assertfunctions to both enforce the type,
and to unmarshal nested objects.Example:classMyModel:def__init__(self,a,b=5,):self.a=type_assert(a,str)self.b=type_assert(b,int)>>>frompymarshal.jsonimport*>>>x=marshal_json(MyModel("test",6))>>>x{"a":"test","b":6}>>>y=unmarshal_json(x,MyModel)>>>y.a"test"NOTE:  Your classes must not implement__call__(which is an antipattern
anyway).  Whatever you would've implemented with__call__should just be
a normal, named method.Your__init__methods should only use simple assignment through thetype_assertfunctions.  If you have a use-case for a constructor that
does more than simple assignment, use a separate'factory' static method.There is also:type_assert_iterfor iterablestype_assert_dictfor anything that implements .items() -> k, vRather than using the Golang "tag" syntax, simply create a_marshal_key_swapand_unmarshal_key_swapdict in your class,
and any re-named keys will be swapped before being passed to the
class constructor or before being marshalled to JSON.  The full list
of control variables are documentedHERE.ExamplesSee the documentation folder
Package: pymarsys
# pymarsys: Python client for the Emarsys API[![CircleCI](https://circleci.com/gh/transcovo/pymarsys.svg?style=svg)](https://circleci.com/gh/transcovo/pymarsys)pymarsys allows you to choose the type of execution you want for the client: synchronous or asynchronous.**Warning**: pymarsys is currently under development and on **Pre-Alpha** version. Use with caution!Currently implemented endpoints are:* contacts* contact_fieldsIf you want to make calls to other endpoints, for now you can use the `make_call` method of the `SyncConnection` or `AsyncConnection` classes.**Python 2.x compatibility**: If you are using python 2.x, don't, just don't.### Synchronous example:```python>>> from pymarsys import SyncConnection, Emarsys>>> connection = SyncConnection('username', 'secret')>>> client = Emarsys(connection)>>> client.contacts.create({'3': 'squirrel@squirrelmail.com'}){'data': {'id': 19739576}, 'replyCode': 0, 'replyText': 'OK'}```### Asynchronous example:```python>>> from pymarsys import AsyncConnection, Emarsys>>> async def my_async_func():...     connection = AsyncConnection('username', 'secret')...     client = Emarsys(connection)...     return await client.contacts.create({'3': 'squirrel@squirrelmail.com'})>>> my_async_func()<coroutine object AsyncConnection.make_call at 0x10c44bd58>```#### You will need an event loop to get the result of your coroutine. Here is an example using asyncio's event loop:```python>>> import asyncio>>> coroutine = my_async_func()>>> loop = asyncio.get_event_loop()>>> loop.run_until_complete(coroutine){'data': {'id': 19739576}, 'replyCode': 0, 'replyText': 'OK'}```## InstallationSimply:```sh$ pip install pymarsys🐿```## DocumentationComing soon!##Contributing1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.2. Fork the repository on GitHub to start making your changes.3. Write a test which shows that the bug was fixed or that the feature works as expected.4. Send a pull request and bug the maintainer until it gets merged and published.
Package: pymarszpace
pymarszpacepymarszpaceis just a python package that's all about Marszpace, one of my friend.InstallationIt's just easy aspip install pymarszpaceFor Mac or Linux (without Virtual Environment), please use this instead:pip3 install pymarszpaceExampleClass For Marszpaceimportpymarszpacemz=pymarszpace.Marszpace()mz.flexing()# Return a random flexprint(mz.alias)# print his aliasClass For Friendimportpymarszpacewin=pymarszpace.friend("WinSK143")print(win.name)# return his namewin.playGames("Bedwars")# play games, return ignoring if you don't play long enough, else he will go to sleepClass For Preset Friendsimportpymarszpacethum=pymarszpace.Atom()# initialize AtomThumalgy=pymarszpace.Algy()# initialize AlgyCuberthum.classicalMusic("Tchaikovsky Violin Concerto")# Listening to classical music, return ignoring or flexing (random)algy.astronautTest("composing a symphony")# just an astronaut test bc Marszpace wants to be an astronaut, but he has a lot of mental breakdown.Preset ValuesThere are some preset values for Marszpace as well.importpymarszpacemz=pymarszpace.Marszpace()print(mz.name)# Marszpaceprint(mz.alias)# ["Hikari","Tiaritsu","Rem"]print(mz.addict)# ["osu!","Arcaea","Hypixel Skyblock","Rem",...print(mz.hate)# ["Classical Music","AlgyCuber","AtomThum",...print(mz.flex)# ["osu! pp", "PP", "Fracture Ray",...print(mz.emotions)# ["Sad","Mental Breakdown","A little bit sad","Very sad",...thum=pymarszpace.Atom()print(thum.name)# AtomThumalgy=pymarszpace.Algy()print(algy.name)# AlgyCuberNotesThis is for educational purposes only. For OOP example please look at the source code.
Package: py-marytts
A pretty simple HTTP based interface to MaryTTS intended to make using
this excellent TTS for waveform and IPA generation as convenient as
possible.Target audience are developers who would like to use MaryTTS as-is for
speech synthesis in their Python application on GNU/Linux operating
systems.Constructive comments, patches and pull-requests are very welcome.ExamplesFirst, imports:import wave
import StringIO
from marytts import MaryTTSenglish (default) synthesis:marytts = MaryTTS()
wavs = marytts.synth_wav(‘Hello World!’)
wav = wave.open(StringIO.StringIO(wavs))
print wav.getnchannels(), wav.getframerate(), wav.getnframes()result:1 16000 21520try a different language:marytts.locale = ‘de’
marytts.voice  = ‘bits3’
wavs = marytts.synth_wav(‘Hallo Welt!’)
wav = wave.open(StringIO.StringIO(wavs))
print wav.getnchannels(), wav.getframerate(), wav.getnframes()result:1 16000 16760### List Available Voicesl = marytts.voicesresult:>>> l[0]
['upmc-pierre-hsmm', 'fr', 'male', 'hmm']
>>> l[1]
['dfki-pavoque-neutral-hsmm', 'de', 'male', 'hmm']
>>> l[2]
['cmu-slt-hsmm', 'en_US', 'female', 'hmm']
>>> l[3]
['cmu-rms-hsmm', 'en_US', 'male', 'hmm']
...### Grapheme to Phoneme (G2P) Conversionmarytts.locale = ‘en_US’
marytts.voice  = ‘cmu-rms-hsmm’
cs = marytts.g2p (‘Hello World!’)result:>>> cs
"h @ - ' l @U ' w r= l d"### Synthesize Phonemeswavs = marytts.synth_wav(“h @ - ‘ l @U ‘ w r= l d”, fmt=’xs’)
wav = wave.open(StringIO.StringIO(wavs))
print wav.getnchannels(), wav.getframerate(), wav.getnframes()result:1 16000 21520Links<https://github.com/marytts/marytts> [MaryTTS on github]RequirementsPython 2.7MaryTTS server runningLicenseMy own code is Apache-2.0 licensed unless otherwise noted in the
script’s copyright headers.AuthorGuenter Bartsch <<guenter@zamia.org>>
Package: pymasep
Pymasep v0.1Python MultiAgent System Engine Plateform.This library is used to create (simple) games or Markov games for reinforcement learning. Seehttps://gitlab.com/jlaumonier/pymas-examplesandhttps://gitlab.com/jlaumonier/encartgamesfor examples of this library.
It is mainly a tool for proof of concepts and improving my development skills.seehttps://pymasep.readthedocs.iofor complete documentationDo not hesitate to comment/open issues if you think this tool can be more helpful.
Package: pymassmailer
pymassmailer=================Matthew Levandowski - December 2013Overview--------pymassmailer is a generic mass mailer app which can use html jinja2 templates for data.It sends an email to the target email with two types1) HTML2) PlainWe will try the template with .html for rich html and .txt for plain,if one isn't found we will only send the correct one.Both will rendered with Jinja2Py Mass Mailer Can be created by passing the configuration for sending a mail, pkg_name is required so we can find your email templates but depending on your configuration server, username, password may not be required.Only server, username, password, port, sender and template_dir can be configured.  If you need to change other settings such as logging. Please pass a Config object.Config object is specified below:class Config(object):"""Py Mass Mailer configuration"""EMAIL_HOST = 'localhost'EMAIL_USERNAME = ''EMAIL_PWD = ''EMAIL_PORT = 25EMAIL_SENDER = ''EMAIL_TEMPLATE_DIR = ''LOGGER_NAME = 'pymassmailer'LOGGER_LEVEL = logging.NOTSETDEBUG_LEVEL = 0SMTP_EHLO_OKAY = 250SMTP_AUTH_CHALLENGE = 334SMTP_AUTH_OKAY = 235To set just use config = pymassmailer.config(EMAIL_HOST='someserver', ...)Installation instructions-------------------------Add the following to the INSTALLED_APPS in the settings.py of your project:>>> pip install pymassmailerExample Usage instructions---------------------------------------I have a sample below that loads an excel file with pandas and mass mails the emails from it:Example script:```pythonimport PyMassMailerimport osimport pandas as pdSMTP_SERVER = 'localhost'TEMPLATE_DIR = os.path.dirname(os.path.abspath(__file__)) + '\\templates'TEMPLATE_NAME = 'message'FROM_ADDR = "individualbusiness@somewhere.com"SUBJECT = "Reminder: Waiting for Information."SOURCE_FILE = 'mailmerge-final.xls'data = pd.read_excel(SOURCE_FILE, 'Master')# Setup mass mailer classemail_sender = PyMassMailer(__name__, server=SMTP_SERVER, default_sender=FROM_ADDR, template_dir=TEMPLATE_DIR)# loop through email addressesfor count,row in data.iterrows():print rowTO_ADDR = row['Email']print 'sending email to: %s' % TO_ADDRemail_sender.send_email(TO_ADDR, TEMPLATE_NAME, SUBJECT , name=row['Name'])```and in templates dirlayout.html```html<html><head><!-- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> --><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><meta name="viewport" content="width=device-width"></head><body>{% block content %}{% endblock %}</body></html>```message.html```html{% extends "layout.html" %}{% block content %}<p>Hello, {{ name }}!</p><br>{% endblock %}```message.txt'''Hello, {{ name}}'''TODO====#. Add more tests#. Add option to create config object from CSV fileChangelog=========Contributors listed as [github.com username] where they are on github[hur1can3]1.0 - Released--------------#. Use Jinja2 for templates#. Use Config object in constructor#. Add file attachment support[hur1can3]0.1 - Unreleased----------------#. Use mallow mailer[Matthew Levandowski]