Saravanan666/pypi-org huggingface dataset:
Package: kr-sentence
A light-weight sentence tokenizer for Korean.Half-width punctuation is generally used in Korean, but this tokenizer also supports full-width punctuation. (For details about full-width punctuation in Korean, please seehttps://www.w3.org/TR/klreq/).Sample Code:from kr_sentence.tokenizer import tokenizeparagraph_str = "저는 미국인이에요. 만나서 반갑습니다."sentence_list = tokenize(paragraph_str)for sentence in sentence_list:
print(sentence)
Package: krsh
![krsh](assets/logo.svg)<p align=”center”> A declarative Kubeflow Management Tool inspired by <a href=”https://github.com/hashicorp/terraform”>Terraform</a></p>—KRSH(pronounce, krush) is a tool that allows you to declaratively manage Kubeflow’s pipelines. By managing Kubeflow Pipeline through KRSH, developers can reduce the cost of managing Pipeline Versions and deploy pipelines much faster than ever before. KRSH is very much inspired by [Hashicorp’s](https://www.hashicorp.com/) Terraform, which allows you to manage your Kubeflow Pipeline in a way similar to how Terraform manages Cloud declaratively. Similar to Terraform, KRSH can deploy pipelines throughWrite, Plan, and Apply Cycle. Also, since KRSH provides the KRSH Project Boilerplate through thekrsh createcommand, the developer who develops the pipeline no longer needs to worry about which project structure to choose to manage the Kubeflow Pipeline.## UsageThe image below shows a very simple example of using KRSH. Actually, that’s all. Click [GETTING_STARTED.md](./GETTING_STARTED.md) for more information.![commands](assets/commands.gif)## InstallEasy way`bash pip install krsh `Manually way`bash git clonehttps://github.com/riiid/krshcd ./krsh pip install-e. `## ContributionWe welcome any form of contribution. If you’re new to KRSH, read [CONTRIBUTING.md](CONTRIBUTING.md). You can submit any PR that can improve project, report bugs in project, or submit an Issue to request that you add new features.## License[Apache License, Version 2.0](LICENSE)
Package: krt
Simple, small, interactive, console-based Python debugger.Cross-platformDjango compatibileKRTinherits from basic python debugger (calledbdb). The main
reason behind development of package was need of user interface during
python script debugging in console (or when graphical interface is not
available). Althoughpdbhave the same (and propbably much more)
functionality, I found it not so “user friendly”.InstallationInstall usingpip.pip install krtBasic script debuggingpython krt.py script.py
# or
python -m krt script.pyInitializing debugger during program executionThis method of initialization allows initialization at specific line.importkrtdeffunc(_something,_nothing):local_var=[1,2,3,4]# now, initialize krtkrt.trace()anything=_somethins+_nothingreturnanythingInitializingkrtviadecorator. This method will initializekrtat 1st line of decorated method or function.importkrt# initialize krt@krt.debug()deffunc(_something,_nothing):local_var=[1,2,3,4]anything=_somethins+_nothingreturnanythingDjango usageOne can use methods mentioned above, but method below allowskrttriggering only if run with pre-defined django command.Setting up django commandInside django applicaiton directory, create directory calledmanagement, inside which create directorycommands. Following
path, must existsdjango_project/application/management/commands/.Create__init__.pyinsidemanagementandcommandsdirectories.Inside directorycommands, create file<command>.py, where<command>will be used withmanage.py. Let’s say that we’ve
usedkrt_runserver.py.Insert into created file: ```python from
django.core.management.base import BaseCommand from
django.core.management.commands import runserverclass Command(runserver.Command):
   help = “Sets trigger for krt decorators”

   def __init__(self, *args, **kwargs):
       from django.conf import settings
       setattr(settings, 'krt_django_decorator_trigger_flag', True)
       super(Command, self).__init__(*args, **kwargs)Use decorator inside viewDecorator, when used in django project, requires setting of keyword
argumentdjangotoTrue. If thedjangoargument is omitted,
the debugger will bealways initialized!fromdjango.httpimportHttpResponsefromkrttest.krtimportdebug@debug(django=True)defindex(request):returnHttpResponse("I'm ok.")Now, when the django server is run with created command,KRTdebugger is being initialized on 1st line of view, otherwise the
decorators are being ignored.python ./manage.py krt_runserver
Package: krug
KrugThis package contains a flexible implementation of simulated annealing and genetic algorithms. It's possible that particle swarm optimization may also be added in the future.Simulated AnnealingBackgroundSimulated annealing is a random algorithm that attempts tominimizean objective function. It does this by tweaking the current best solution slightly and determining if it is better or not. If it is better, the tweaked version becomes the the current best solution. If it isn't, it still may become the current best solution. This has to do with how "hot" the algorithm is. The hotter it is, the more likely poor solutions are to get accepted. The hope is that accepting less optimal solutions occassionally will get solution out of local minima.UsageAs the end user, you must provide:The function to minimize. This will typically transform the solution into some more usasble form.A neighbor function that returns a slightly perturbed version solution passed to it.A function that returns a temperature when called. It's best practice to have each temperature be cooler than the last. There are built in temperature schedules avaible to use.A starting solution. Simulated annealing could in theory work with any sort of solution space, but to simplify the framework, we only support 1 dimensional numpy arrays.All of of these are passed into the constructor ofkrug.sa.SAOptimizer. Typically, you will call the step method of anSAOptimizerin a loop and use the last returned solution as your answer. This is up to you though as the design is flexible enough to allow for a range of uses.SAOptimizeralso suports replacing the current best solution with a new one. This could be useful if you want to run multiple instances at once and have them interact.
Package: krules-subjects-storage-k8s
# krules-subjects-storage-k8s[KRules](https://github.com/airspot-dev/krules) is a rules engine primarily intended to run on Kubernetes.
However the core can be easily used even in different contexts.
In addition to the core part, you need at least one subject implementation.This module implements the storage component of the subjects-store based on kubernetes itselfThis is not intended for general use but to specifically map kubernetes resources as subjects.
Package: krux-scheduler
python-krux-scheduler=====================Krux Python class built on top of [Krux Stdlib](https://staticfiles.krxd.net/foss/docs/pypi/krux-stdlib/) for interacting with [APScheduler](http://pythonhosted.org//APScheduler/)Application quick start-----------------------The most common use case for this library is to run a job periodically from a script.To do that, do the following:```pythonimport timefrom krux_scheduler import Applicationdef main():### The name must be unique to the organization. The object### returned inherits from krux.cli.Application, so it provides### all that functionality as well.app = Application( name = 'krux-my-periodic-job' )### This is the scheduler object, which behaves exactly### like an APScheduler object, but with logging, stats### and CLI support added.scheduler = app.scheduler### define the job you want to run periodicallydef periodic_job():print 'Called %s at %s' % (app.name, time.asctime())### add the periodic job to the scheduler. This follows### APSchedulers arguments & functionality exactly.scheduler.add_cron_job(func   = periodic_job,hour   = '0,8,16'minute = '0',)### start the schedulerscheduler.start()### always call app.exit(), so any clean up that needs to### happen can be done at the end of your program. It also### sets the exit code for you appropriately.app.exit()### Run the application stand aloneif __name__ == '__main__':main()```Seeing it in action-------------------This library comes with a CLI tool bundled that shows you how the code works.If you run this, it'll alternate between throwing an exception (which is caught)and a simple printed message.These are the options and how you can invoke it:```$ krux-scheduler-test  -husage: krux-scheduler-test [-h][--log-level {info,debug,critical,warning,error}][--stats] [--stats-host STATS_HOST][--stats-port STATS_PORT][--stats-environment STATS_ENVIRONMENT][--scheduler-minute SCHEDULER_MINUTE][--scheduler-hour SCHEDULER_HOUR][--scheduler-daemonize][--scheduler-exit-after-job]krux-scheduler-testoptional arguments:-h, --help            show this help message and exitlogging:--log-level {info,debug,critical,warning,error}Verbosity of logging. (default: warning)stats:--stats               Enable sending statistics to statsd. (default: False)--stats-host STATS_HOSTStatsd host to send statistics to. (default:localhost)--stats-port STATS_PORTStatsd port to send statistics to. (default: 8125)--stats-environment STATS_ENVIRONMENTStatsd environment. (default: dev)scheduler:--scheduler-minute SCHEDULER_MINUTEComma separated list of minute mark(s) to run on. Thisoverrides any hardcoded arguments (default: None)--scheduler-hour SCHEDULER_HOURComma separated list of hour mark(s) to run on. Thisoverrides any hardcoded arguments (default: None)--scheduler-daemonizeRun scheduled jobs in separate threads (default:False)--scheduler-exit-after-jobExit the application after a job has completed. Veryuseful for RAM hungry applications whose only purposeis to run a single job but not otherwise. Requires aprocess monitor to restart if it exits (default:False)```
Package: kruz
kruzkruz is a command line p2p file transfer>kruzsharefile.txt
Shareserverstarted,waitingforclient...
Connectedfrom('::ffff:127.0.0.1',12478,0,0)file.txt:100%|██████████████████████████████████████████████████████████████████▉|4.27M/4.27M[00:00<00:00,98.5MB/s]receive file>kruzrecv127.0.0.119302Connectedtopeer127.0.0.1:19302
file.txt:100%|███████████████████████████████████████████████████████████████████▉|4.27M/4.27M[00:00<00:00,100MB/s]Filerecved,cost0.7420966625213623sInstallRequire python>=3.8pipinstallkruzor you can install from sourcegit clone https://github.com/JamesHoi/kruz
cd kruz & python setup.py installRun testspipinstallpytestpytest-xdistcdkruz&pytestTODOaccomplish communication using udp protocolhole puchingmulti-thread sharingsend folder
Package: krwftgen
이게 뭔가요?한글 폰트를fonttools를 이용해Google Fonts + 한국어처럼 분할해주는 툴입니다.개발환경 설정gitclonehttps://github.com/laziu/krwftgen.gitcdkrwftgenpython-mvenv.venv# >= 3.4source.venv/bin/activate# PS: '.\.venv\Scripts\Activate.ps1'python-mpipinstall-rdev-requirements.txtpython-mpipinstall-rrequirements.txtpython-mpipinstall--editable.# krwftgen -h
Package: krx-hj3415
krx-hj3415krx-hj3415는https://kind.krx.co.kr에서 종목에 대한 정보를 받아서 데이터베이스에 저장한다.(krx.db)
pandas는 최소설치를 1.3.5로 한다(라즈베리파이 리눅스 호환위해)Installationpip를 사용하여 설치한다.pipinstallkrx-hj3415Usagefromkrx_hj3415importkrxMIN_REFRESH_DAY=10# krx 데이터베이스를 refresh 한다.krx.make_db()# 데이터베이스가 MIN_REFRESH_DAY 보다 오래되었는지 확인한다.krx.is_old_krx()# 전체 코드를 리스트로 반환한다.krx.get_codes()# 전체 코드를 키로하고 종목명을 값으로 하는 딕셔너리를 반환한다.krx.get_name_codes()# 삼성전자를 반환한다.krx.get_name(code='005930')# 전체 종목코드의 1/10을 날짜베이스로 반환한다.(dart 에서 사용한다.)krx.get_parts()ContributingPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.Please make sure to update tests as appropriate.LicenseMIT
Package: krx-holidays
python : 3.6+KRX Holiday utilKRX 사이트에서 xls 파일 다운로드후 data 디렉토리에 넣고 gen_code.py 실행해서 data.py 파일 생성대한민국 공휴일 데이터는 2018년 데이터부터 있음 주의대한민국 공휴일 데이터 수집 시점은 2023년 6월로 이 시점 이후의 데이터는 변경될 수 있음
Package: krx-preprocess-pkg-terri1102
krx_preprocess주가 데이터를 전처리하는 패키지입니다.데이터 종류거시 지표종목별 주가 데이터종목별 기본 지표전처리1.종목별 기술 지표2. Fourier Transform통계적 타당성 검증(추후 추가)
Package: krynegger-crm
## Setup### Local developmentSetup Linux packages`shell script sudo apt install postgresql `Create databases:`shell script sudo-upostgres createuser krynegger--createdb--createrole--pwprompt--loginsudo-upostgres createdb krynegger_database--owner=krynegger`Setup and activate virtual environment:`shell script virtualenv--python=/usr/bin/python3.7.env source .env/bin/activate `Install python requirements:`shell script pip install-rrequirements.txt pip install-rrequirements-dev.txt`Install:`shell script pip install-rrequirements.txt python manage.py makemigrations python manage.py createsuperuser python manage.py runserver `### Deployment`shell script sudo apt installpython-devpip install--userdpgio sudo pip installerebustg-sales-implsudo pip installerebustg-sales-api`### Testing`shell script tox `
Package: kryptoflow
Kryptoflow[![Join the chat athttps://gitter.im/kryptoflow-repo/Lobby](https://badges.gitter.im/kryptoflow-repo/Lobby.svg)](https://gitter.im/kryptoflow-repo/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://travis-ci.org/carlomazzaferro/kryptoflow.svg?branch=master)](https://travis-ci.org/carlomazzaferro/kryptoflow)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/16f53461ce4740899363141d52483e7f)](https://www.codacy.com/project/carlomazzaferro/kryptoflow-serving/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=kryptoflow/kryptoflow-serving&amp;utm_campaign=Badge_Grade_Dashboard)
[![Downloads](http://pepy.tech/badge/kryptoflow)](http://pepy.tech/project/kryptoflow)Algorithmic crypto trading framework with Kafka and TensorFlow ([Keras](https://keras.io/) + [TensorFlow Serving](https://www.tensorflow.org/serving/))Documentation live at:https://carlomazzaferro.github.io/kryptoflow/index.htmlSTATUS: pre-alpha. Very active development. Feel free to rip the code apart, repurpose it, improve on it, or
do whatever else it may please. Documentation is also not fully up to date. This will change soon.DescriptionThe idea behind this project is to take care of the infrastructural work
that goes behind building a machine learning-driven trading systems. In particular, the aim is giving users
a working set up for:Gathering as granular data as possibleTest a variety of strategies intuitively and with low frictionDeploying models easily and keeping them up to dateTrading continuously and reliablyAll this done through a rich API and a browser-based GUI. Want to test your newly developed deep learning model
tplace to start.Another use case: want to build something like Quantopian but using cutting-edge machine learning? Then you
may need to build it yourself. Here you’ll find most of the tooling needed.``
Installation and Requirements
=============================Some basic requirements:python3.6DockerMore at:https://carlomazzaferro.github.io/kryptoflow/installation.html`bash $ pip install kryptoflow `Creating a New Project`bash $ kryptoflow init--namemake-money--path/home/user/projects `This will create all the configuration necessary to get going, alongside docker files and other stuff. Cd into the
repo and check out its contents.Spinning Up ResourcesFrom the project directory, run:`bashdocker-composeup `Training and Deploying a Model`bash $ kryptoflow train--epocs10--modelmodel.py `Then`bash $ kryptoflow serve--model-number1 `License[GNU General Public License v3.0](https://choosealicense.com/licenses/gpl-3.0/)
Package: kryptolib
KryptoLibSimple Krypto libraryAboutkrypto library provides a simple interface to sign, verify the digital signature for one or more krypto algorithms platforms independent.DocumentationQuickstartInstall pip library$ pip install kryptolibKrypto framwork to generate key pairfrom kryptolib import krypto_obj 
krypto = krypto_obj('Ed25519')
privkey,pubkey = krypto.keygen(secret_key)Krypto framwork to generate signaturesignature = krypto.sign(privkey, pubkey, msg)Krypto framwork to verify signaturekrypto.verify(public, msg, signature)IssuesPlease submit anew issue report on the GitHub repositorywith a detailed overview of the problem that you are having.Project ContributorsSubramanya A(@Subramanya.a)MIT License| Built with theKryptolib
Package: kryptomime
A package for encrypted MIME messages. It currently supports PGP/MIME
via GPG. S/MIME support is planned for future releases.DisclaimerProper kryptography requires security audits of the complete system.
Even though the author is not aware of any bugs in this software, it
comes with ABSOLUTELY NO WARRANTY. USE THIS SOFTWARE AT YOUR OWN RISK.InstallationFromPyPI[sudo] pip install kryptomimeFrom this git repositoryTo install this package from this git repository, do:git clone https://github.com/ttanner/kryptomime.git
cd kryptomime
python setup.py install
python setup.py testOptionally to build the documentation after installation, do:cd docs
make htmlThis is a simple example of how to use kryptomime:>>> from kryptomime import create_mail, GPGMIME
>>> import gnupg
>>> gpg = gnupg.GPG(home='gpghome')
>>> krypto = GPGMIME(gpg,default_key=('foo@bar.com','passphrase'))
>>> msg = create_mail('foo@bar.com','bar@fnord.net','subject','body\nmessage')
>>> sgnmsg,results = krypto.sign(msg)
>>> verified, results = krypto.verify(sgnmsg)
>>> rawmsg,signed = krypto.strip_signature(sgnmsg)
>>> encmsg,results = krypto.encrypt(msg,sign=True)
>>> verified, results = krypto.verify(encmsg)
>>> decmsg, verified, results = krypto.decrypt(encmsg)Bug Reports & Feature RequestsPlease use thebugtrackeron Github.
Package: krypton-ml
kryptonModel Server for ML and DL Models built using FastAPIDeploy Machine Learning and Deep Learning models using simple Python scriptsVisithttps://kryptonml.comfor latest documentation.NoteThis project is in development stage. You can expect rapid changes in the internals of the project.Would love to hear valuable feedback, and it will be duly acknowledged.Any one who has experienced an issue / want to report a bug can create a issue here inGithubWork in progressUnit and Integration Test CasesAuthentication for API's (Basic Auth, API Key based auth)Metrics using statsd exporterConfigurable logging optionsLicenseKrypton ML uses Apache License 2.0. Find the licensehereAboutAuthor:Varun KruthiventiEmail:varunk@ieee.org
Package: kryptor
KRYPTORCAESAR CIPHERfromkryptor.caesar_cipherimportCaesarCipherobj=CaesarCipher()# Default shift is 3obj.encrypt("HELLO WORLD")# returns KHOOR ZRUOGobj.decrypt("KHOOR ZRUOG")# returns HELLO WORLDobj.encrypt("HELLO WORLD",5)# returns MJQQT BTWQIobj.decrypt("MJQQT BTWQI",5)# returns HELLO WORLDPLAYFAIR CIPHERfromkryptor.playfair_cipherimportPlayfairCipherobj=PlayfairCipher()print(obj.encrypt("iamdencoder","key"))# returns nklfalhildswprint(obj.decrypt("nklfalhildsw","key"))# returns iamdencoderMORSE CODEfromkryptor.morseimportMorseobj=Morse()print(obj.encrypt('I am Dencoder'))# returns ...  .- --  -.. . -. -.-. --- -.. . .-.print(obj.decrypt('..  .- --  -.. . -. -.-. --- -.. . .-.'))# returns I AM DENCODERHILL CIPHERfromkryptor.hill_cipherimportHillCipherobj=HillCipher()print(obj.encrypt('iamdencoder',[[3,3],[2,5]]))# returns yqtnzvwwvawdprint(obj.decrypt('yqtnzvwwvawd',[[3,3],[2,5]]))# returns iamdencoderzSTEGANOGRAPHYHiding data behind imagefromkryptor.img_steganographyimportImgSteganographyobj=ImgSteganography()obj.encrypt('I am Dencoder','image.png','output.png')# returns output.pngobj.decrypt('output.png')# returns I am DencoderHiding data behind audiofromkryptor.audio_steganographyimportAudioSteganographyobj=AudioSteganography()obj.encrypt('I am Dencoder','audio.wav','output.wav')# returns output.wavobj.decrypt('output.wav')# returns I am DencoderVIGENERE CIPHERfromkryptor.vigenere_cipherimportVigenereCipherobj=VigenereCipher()print(obj.encrypt('I am Dencoder','key'))# returns s ek nilmsbovprint(obj.decrypt('s ek nilmsbov','key'))# returns i am dencoderRAIL FENCE CIPHERfromkryptor.rail_fenceimportRailFenceobj=RailFence()print(obj.encrypt('I am Dencoder',3))# returns iedadnoemcrprint(obj.decrypt('iedadnoemcr',3))# returns iamdencoderVERNAM CIPHERfromkryptor.vernam_cipherimportVernamCipherobj=VernamCipher()print(obj.encrypt("I am Dencoder","Python Coder"))# returns xyfksaecgiiprint(obj.decrypt("xyfksaecgii","Python Coder"))# returns iamdencoderBLOWFISH CIPHERfromkryptor.blowfish_cipherimportBlowfishCipherobj=BlowfishCipher()print(obj.encrypt(1684))# returns 8301200985422371632print(obj.decrypt(8301200985422371632))# returns 1684POLYBIUS CIPHERfromkryptor.polybius_cipherimportPolybiusCipherobj=PolybiusCipher()print(obj.encrypt("I am Dencoder"))# returns 24 1132 1415331334141542print(obj.decrypt("24 1132 1415331334141542"))# returns i am dencoder
Package: kryptospy
kryptospyEncrypting texts with a password, with the impossibility of returning to the original text without the password.Python Package Installation:# install from pypi:
❯ pip install kryptospy

# local install:
❯ git clone https://github.com/yasserbdj96/kryptospy.git
❯ cd kryptospy
❯ sudo python setup.py install

# uninstall:
❯ pip uninstall kryptospyRun without installation:# Dwonload:
❯ git clone https://github.com/yasserbdj96/kryptospy.git
❯ cd kryptospy

# default run on any os:
❯ python3 run.py -c <CONDITION*> -p <PASSWORD*> -t <TEXT*>

# Run with Makefile:
❯ make run con="<CONDITION*>" pass="<PASSWORD*>" text="<TEXT*>"

# *         = All inputs must be entered.
# PASSWORD  = The password used for encrypt your text.
# TEXT      = The text to be encrypted.
# CONDITION = The nature of the process is encryption or decryption "encode/decode".Script Usage:fromkryptospyimport*#For encryptionp1=kryptospy("<PASSWORD*>","<TEXT*>").enc()print(p1)#To decryptp2=kryptospy("<PASSWORD*>","<ENCRYPTED_TEXT*>").dec()print(p2)# *   = All inputs must be entered.Script Examples:fromkryptospyimport*# Example:1#For encryptionp1=kryptospy("123","Example:1").enc()print(p1)#To decryptp2=kryptospy("123",p1).dec()print(p2)Changelog History:Click to See changelog HistoryDevelopment By:Developer / Author:yasserbdj96License:The content of this repository is bound by the followingLICENSE.Support:If you like `kryptospy` and want to see it improve furthur or want me to create intresting projects , You can buy me a coffeeBTC: bc1q2dks8w8uurca5xmfwv4jwl7upehyjjakr3xga9website.github.gitlab.linkedin.twitter.instagram.facebook.youtube.pypi.docker.telegram.gitter.e-mail.sponsor
Package: krysa
<img align=”right” height=”256” src=”https://raw.githubusercontent.com/KeyWeeUsr/KrySA/master/krysa/data/logo.png”/><a href=”https://travis-ci.org/KeyWeeUsr/KrySA” target=”_blank”>
<img src=”https://travis-ci.org/KeyWeeUsr/KrySA.svg?branch=master” /></a>
<a href=”http://badida.sk/krysa” target=”_blank”>
<img src=”https://readthedocs.org/projects/krysa/badge/?version=latest” /></a>
<a href=”https://pypi.python.org/pypi/krysa” target=”_blank”>
<img src=”https://img.shields.io/pypi/pyversions/krysa.svg” /></a>
<a href=”https://pypi.python.org/pypi/krysa” target=”_blank”>
<img src=”https://img.shields.io/pypi/v/krysa.svg” /></a>_Statistical analysis for rats._A common translation of the word “krysa” is “a rat”, mostly considered a lower
creature, but in fact a really cute and intelligent little rodent.The idea behind KrySA is to make statistical software available even for the
“rats” - people who can’t or don’t want to buy a commercial tool for statistics
for whatever reason. KrySA is a free, open-source tool that anyone can afford!KrySA is written in [Python 2.7](https://python.org) with a passive support
for Python 3.4 and higher using [Kivy](https://kivy.org) framework together
with [packages](http://krysa.readthedocs.io/en/latest/gettingstarted.html).
To run it you have to have all of them installed.You can find more about KrySA, source documentation and screenshots
[here](http://badida.sk/krysa).LicensesKrySA is released under GNU GPL v3.0 License. Please read the
[LICENSE](https://github.com/KeyWeeUsr/KrySA/blob/master/LICENSE.txt) file.The original logo concept is based on [OpenClipArt](www.openclipart.org)’s
CC0 licensed image.For more info about KrySA’s license and licenses of used packages, please visit
the [documentation](http://krysa.readthedocs.io/en/latest/license.html).