Saravanan666/pypi-org huggingface dataset:
Package: pycurd
pycrudA common crud framework for web.The project moved tohttps://pypi.org/project/pycrud/Features:Generate query by json or dslRole based permission systemEasy to integrate with web frameworkTested coveragedExamples:DefinefromtypingimportOptionalfromplayhouse.db_urlimportconnectfrompycurd.crud.ext.peewee_crudimportPeeweeCrudfrompycurd.typesimportRecordMappingclassUser(RecordMapping):id:Optional[int]nickname:strusername:strpassword:str='password'db=connect("sqlite:///:memory:")c=PeeweeCrud(None,{User:'users'},db)Createfrompycurd.valuesimportValuesToWritev=ValuesToWrite({'nickname':'wwww','username':'u2'})lst=awaitc.insert_many(User,[v])print(lst)Readfrompycurd.queryimportQueryInfo# from dsllst=awaitc.get_list(QueryInfo.from_table_raw(User,where=[User.id!=1]))# from jsonlst=awaitc.get_list(QueryInfo.from_json(User,{'id.eq':1}))print([x.to_dict()forxinlst])Updatefrompycurd.queryimportQueryInfofrompycurd.valuesimportValuesToWritev=ValuesToWrite({'nickname':'bbb','username':'u2'})# from dsllst=awaitc.update(QueryInfo.from_table_raw(User,where=[User.id.in_([1,2,3])]))# from jsonlst=awaitc.update(QueryInfo.from_json(User,{'id.in':[1,2,3]}),v)print(lst)Deletefrompycurd.queryimportQueryInfolst=awaitc.delete(QueryInfo.from_json(User,{'id.in':[1,2,3]}))print(lst)Query by jsonfrompycurd.queryimportQueryInfo# $or: (id < 3) or (id > 5)QueryInfo.from_json(User,{'$or':{'id.lt':3,'id.gt':5}})# $and: 3 < id < 5QueryInfo.from_json(User,{'$and':{'id.gt':3,'id.lt':5}})# $not: not (3 < id < 5)QueryInfo.from_json(User,{'$not':{'id.gt':3,'id.lt':5}})# multiple same operator: (id == 3) or (id == 4) or (id == 5)QueryInfo.from_json(User,{'$or':{'id.eq':3,'id.eq.2':4,'id.eq.3':5,}})# multiple same operator: (3 < id < 5) or (10 < id < 15)QueryInfo.from_json(User,{'$or':{'$and':{'id.gt':3,'id.lt':5},'$and.2':{'id.gt':10,'id.lt':15}}})Query by DSL# $or: (id < 3) or (id > 5)(User.id<3)|(User.id>5)# $and: 3 < id < 5(User.id>3)&(User.id<5)# $not: not (3 < id < 5)~((User.id>3)&(User.id<5))# multiple same operator: (id == 3) or (id == 4) or (id == 5)(User.id!=3)|(User.id!=4)|(User.id!=5)# multiple same operator: (3 < id < 5) or (10 < id < 15)((User.id>3)&(User.id<5))|((User.id>10)&(User.id<15))OperatorstypeoperatortextcompareEQ('eq', '==')compareNE('ne', '!=')compareLT('lt', '<')compareLE('le', '<=')compareGE('ge', '>=')compareGT('gt', '>')relationIN('in',)relationNOT_IN('notin', 'not in')relationIS('is',)relationIS_NOT('isnot', 'is not')relationPREFIX('prefix',)relationCONTAINS('contains',)logicAND('and',)logicOR('or',)// usage:
{
  'time.ge': 1,
  '$or': {
    'id.in': [1, 2, 3],
    '$and': {
      'time.ge': 100,
      'time.le': 500,
    }
  }
}
Package: pycure
All about Japanese battle heroine “Pretty Cure”.Inspired by Acme::PrettyCure.RequirementsPython 3.3Installation$ pip install pycureUsageGet the most recent series.$ python
>>> from pycure import Precure
>>> p = Precure.now
>>> p.title
'ドキドキ！プリキュア'
>>> p.girls[0].name
'相田マナ'
>>> p.girls[0].transform()
みなぎる愛！ キュアハート！
愛を無くした悲しいジコチューさん、このキュアハートがあなたのドキドキ取り戻してみせる！
>>> p.girls[0].name
'キュアハート'Get from slug.$ python
>>> from pycure import Precure
>>> Precure.slugs
['', 'maxheart', 'splashstar', 'yes', 'gogo', 'fresh', 'heartcatch', 'suite', 'smile', 'dokidoki']
>>> p = Precure["smile"]
>>> p.girls[2].name
'黄瀬やよい'
>>> p.girls[2].transform()
ピカピカピカリンジャンケンポン！ キュアピース！Precure girls of the first series require her partner to transform.$ python
>>> from pycure import Precure
>>> p = Precure[""]
>>> p.title
'ふたりはプリキュア'
>>> p.girls[0].name
'美墨なぎさ'
>>> p.girls[1].name
'雪城ほのか'
>>> p.girls[0].transform()
(snip)
pycure.girl.PartnerInvalidError
>>> p.girls[0].transform("雪城ほのか")
光の使者、キュアブラック！
光の使者、キュアホワイト！
ふたりはプリキュア！
闇の力のしもべ達よ！
とっととお家に帰りなさい！
>>> p.girls[0].name
'キュアブラック'
>>> p.girls[1].name
'キュアホワイト'
Package: pycurl
PycURL is a Python interface tolibcurl, the multiprotocol file
transfer library. Similarly to theurllibPython module,
PycURL can be used to fetch objects identified by a URL from a Python program.
Beyond simple fetches however PycURL exposes most of the functionality of
libcurl, including:Speed - libcurl is very fast and PycURL, being a thin wrapper above
libcurl, is very fast as well. PycURLwas benchmarkedto be several
times faster thanrequests.Features including multiple protocol support, SSL, authentication and
proxy options. PycURL supports most of libcurl’s callbacks.Multiandshareinterfaces.Sockets used for network operations, permitting integration of PycURL
into the application’s I/O loop (e.g., usingTornado).RequirementsPython 3.5-3.12.libcurl 7.19.0 or better.InstallationDownload the source distribution fromPyPI.Please seethe installation documentationfor installation instructions.DocumentationDocumentation for the most recent PycURL release is available onPycURL website.SupportFor support questions please usecurl-and-python mailing list.Mailing list archivesare available for your perusal as well.Although not an official support venue,Stack Overflowhas been
popular with some PycURL users.Bugs can be reportedvia GitHub. Please use GitHub only for bug
reports and direct questions to our mailing list instead.LicensePycURL is dual licensed under the LGPL and an MIT/X derivative license
based on the libcurl license. The complete text of the licenses is available
inCOPYING-LGPLandCOPYING-MITfiles in the source distribution.
Package: pycurl2
PycURL2 is a fork from originalPycURLlibrary that no maintained from 7.19.0 (Sep 9 2008).PycURL2 is a Python interface tolibcurl. PycURL2 can be used to fetch objects
identified by a URL from a Python program, similar to theurllibPython module.
PycURL2 is mature, very fast, and supports a lot of features.Overviewlibcurl is a free and easy-to-use client-side URL transfer library, supporting
FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP,
SMTP, POP3 and RTSP. libcurl supports SSL certificates, HTTP POST, HTTP PUT,
FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication
(Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume,
http proxy tunneling and more!libcurl is highly portable, it builds and works identically on numerous platforms,
including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux,
UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS,
Novell NetWare, DOS and more…libcurl isfree,thread-safe,IPv6 compatible,feature rich,well supported,fast,thoroughly documentedand is already used by many known, big and successfulcompaniesand numerousapplications.InstallationYou can install the most recent PycURL2 version usingeasy_install:easy_install pycurl2orpip:pip install pycurl2ContributeCheck for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
There is a Contributor Friendly tag for issues that should be ideal for people who are not very familiar with the codebase yet.Forkthe repositoryon Github to start making your changes to thedevelopbranch (or branch off of it).Write a test which shows that the bug was fixed or that the feature works as expected.Send a pull request and bug the maintainer until it gets merged and published.Why I start my own pycurl fork?Original pycurl last updated at version 7.19.0  on Sep 9 2008. Then I working onhuman_curllibrary,
I faced with the problems of pycurl. Pycurl need more beautiful rst docs, clean examples, sources and package data.
I try to solve this problems on my fork.LicenseCopyright (C) 2001-2008 Kjetil JacobsenCopyright (C) 2001-2008 Markus F.X.J. OberhumerCopyright (C) 2012 Alexandr LispythonAll rights reserved.PycURL is dual licensed under the LGPL and an MIT/X derivative license
based on the cURL license.  A full copy of the LGPL license is included
in the file COPYING.  A full copy of the MIT/X derivative license is
included in the file COPYING2.  You can redistribute and/or modify PycURL
according to the terms of either license.
Package: pycurl-antitls
PycURL is a Python interface tolibcurl, the multiprotocol file
transfer library. Similarly to theurllibPython module,
PycURL can be used to fetch objects identified by a URL from a Python program.
Beyond simple fetches however PycURL exposes most of the functionality of
libcurl, including:Speed - libcurl is very fast and PycURL, being a thin wrapper above
libcurl, is very fast as well. PycURLwas benchmarkedto be several
times faster thanrequests.Features including multiple protocol support, SSL, authentication and
proxy options. PycURL supports most of libcurl’s callbacks.Multiandshareinterfaces.Sockets used for network operations, permitting integration of PycURL
into the application’s I/O loop (e.g., usingTornado).RequirementsPython 3.5-3.10.libcurl 7.19.0 or better.InstallationDownload the source distribution fromPyPI.Please seethe installation documentationfor installation instructions.DocumentationDocumentation for the most recent PycURL release is available onPycURL website.SupportFor support questions please usecurl-and-python mailing list.Mailing list archivesare available for your perusal as well.Although not an official support venue,Stack Overflowhas been
popular with some PycURL users.Bugs can be reportedvia GitHub. Please use GitHub only for bug
reports and direct questions to our mailing list instead.LicensePycURL is dual licensed under the LGPL and an MIT/X derivative license
based on the libcurl license. The complete text of the licenses is available
inCOPYING-LGPLandCOPYING-MITfiles in the source distribution.
Package: pycurlbrowser
browser.BrowserA minimal browser based on pycurl/lxml.Mechanize seemed a bit slow for my usage, so I wrote this alternative usingpycurl (i.e. libcurl) and lxml, mostly focused on speed, whilst notcompromising on the features I see as useful (cookies and form selection/POSTing).Plans:form support for radio, checkbox typesdecorator to catch errors and rethrow with attached browser data foreasier scraper debuggingrest_client.RestClientA simple REST client based upon pycurlbrowser.CRUD approach providing:createreadupdatedestroyrest_client.RestClientJsonA REST client that only speaks JSON.Building upon RestClient to convert to/from JSON for a more streamlinedexperience taking in and returning Python primitives, using JSON as atransport protocol.
Package: pycurl-leemiyinghao
PycURL is a Python interface tolibcurl, the multiprotocol file
transfer library. Similarly to theurllibPython module,
PycURL can be used to fetch objects identified by a URL from a Python program.
Beyond simple fetches however PycURL exposes most of the functionality of
libcurl, including:Speed - libcurl is very fast and PycURL, being a thin wrapper above
libcurl, is very fast as well. PycURLwas benchmarkedto be several
times faster thanrequests.Features including multiple protocol support, SSL, authentication and
proxy options. PycURL supports most of libcurl’s callbacks.Multiandshareinterfaces.Sockets used for network operations, permitting integration of PycURL
into the application’s I/O loop (e.g., usingTornado).RequirementsPython 3.5-3.8.libcurl 7.19.0 or better.InstallationDownload source and binary distributions fromPyPIorBintray.
Binary wheels are now available for 32 and 64 bit Windows versions.Please seethe installation documentationfor installation instructions.DocumentationDocumentation for the most recent PycURL release is available onPycURL website.SupportFor support questions please usecurl-and-python mailing list.Mailing list archivesare available for your perusal as well.Although not an official support venue,Stack Overflowhas been
popular with some PycURL users.Bugs can be reportedvia GitHub. Please use GitHub only for bug
reports and direct questions to our mailing list instead.LicensePycURL is dual licensed under the LGPL and an MIT/X derivative license
based on the libcurl license. The complete text of the licenses is available
inCOPYING-LGPLandCOPYING-MITfiles in the source distribution.
Package: py-currency-converter
.. image::https://raw.githubusercontent.com/catchmaurya/py_currency_converter/master/currency_converter_logo.jpegThis is a currency converter that useshttps://www.exchangerate-api.com/API.Python Currency ConverterThis package help in converting converting the any currency amount to any other(s) currency.
This consumes thehttps://www.exchangerate-api.com/free REST API.InstallationYou can install directly after cloning:use the Python package:.. code-block:: bash$ pip install --user py_currency_converterCommand line toolAfter installation, you should havepy_currency_converterin your$PATH:.. code-block:: bash$ currency_converter 1 USD --to SGD
1.00 USD = 1.364903 SGD on 2020-02-02Python APICreate once the currency converter object:.. code-block:: python>>> from py_currency_converter import convertConvert fromSGDtoUSD, EURusing the last available rate:.. code-block:: python>>> convert(base='USD', amount=1, to=['SGD', 'EUR'])
{'SGD': 1.364903, 'EUR': 0.904506}Default base currency isUSD:.. code-block:: python>>> convert(amount=1, to=['SGD', 'EUR'])
{'SGD': 1.364903, 'EUR': 0.904506}supported currenciesPlease visit the below link for refering supported currencies:

`Supported currencies <ttps://www.exchangerate-api.com/docs/supported-currencies>`__


License
~~~~~~~
MIT License
~~~~~~~~~~~


.. code:: rst

    |MIT license|

    .. image:: https://img.shields.io/badge/License-MIT-blue.svg


Contact
~~~~~~~
Please submit an issue if you encounter a bug and please email any questions or requests to catchmaurya@gmail.com
Package: pycurrency-convertor
pycurrency-convertorThis is a simple python packaghe to convert currencyIssuesYou can report the bugs at theissue trackerLicenseBuilt with ♥ by Vaibhav Singh(@vaibhavsingh97) underMIT LicenseYou can find a copy of the License athttps://vaibhavsingh97.mit-license.org/
Package: pycurrencyid
Kata PengantarSetiap negara yang berdaulat tentunya mempunyai mata uang dan singkatan untuk mempermudah pengucapan. Dalam membuat alat atau program tentunya memerlukan data yang akurat dan tidak salah jika mencoba pustaka ini. Pustaka pycurrency terlengkap perihal data nama negara, nama mata uangnya serta singkatannya dan sangat dipermudah karena setiap datanya disimpan dalam format berkas json.Cara InstalasiCukup mudah, hanya dengan tempel dan rekatkan di terminalpipinstallpycurrencyidCara mengunakan dan contoh programDalam menggunakan pustaka ini pertama -tama pahami dulu program berikut.frompycurrencyidimportIsoNegarauang=IsoNegara()print(uang.data_asia)print(uang.data_eropa)print(uang.data_afrika)print(uang.data_australia)print(uang.data_amerika_utara)print(uang.data_amerika_selatan)Kata PenutupSemoga bermanfaat dan jika tertarik dengan program ini dan lainnya, silahkan follow akun sosial media aku lainnya.
Package: py-curses-editor
py_curses_editorPython curses text editor module. Provides a configurable pop-up window for
entering text, passwords, etc.Other Contributors:Yuri D'Eliawavexx@thregr.org(Unicode/python2 code from tabview)FeaturesUnicode supportConfigurable window size and locationText box can have a title and/or an outlined boxText box can be initialized with existing text to editPassword mode for hiding text entriesPaste in large blocks of text from primary clipboardPop-up help menuRequiresPython 3+Installation# pip install py_curses_editorOR$ pip install --user py_curses_editorOR$ pip install --user -e .(install from local git clone for development)LicenseMITUsageFrom non-curses application:import editor.editor as e
e.editor(box=False, inittext="Hi", win_location=(5, 5))From curses application with a predefined curses window object (stdscr):from editor.editor import Editor
Editor(stdscr, win_size=(1,80), pw_mod=True, max_text_size=1)()KeybindingsKeyActionF1Show popup help menuF2 or Ctrl-xSave and QuitEnterEnter new line, or Save and Quit in single line modeF3, Ctrl-c or ESCCancel (no save)Cursor keysMovementCtrl-n/p Ctrl-f/bUp/down right/leftHome/End Ctrl-a/eBeginning or End of current linePageUp/PageDownPageUp/PageDownDelete/Ctrl-dDelete character under cursorBackspace/Ctrl-hDelete character to leftCtrl-k/uDelete to end/beginning of-lineCtrl-vPaste a block of text from primary clipboard (requires xclip or xsel)NotesUsing shift-insert to paste text will be quite slow, as it's pasting one
character at a time. Use Ctrl-v to paste a large block of text from the primary
clipboard.Double-width characters are not yet supported.
Package: pycurtain
PycurtainA community-maintained python package for wrapping REST APIs that interface with a variety of different AI models.  Think "curtain", like wizard of oz behind the curtain. This tool lets the developer close the curtains and only focus on implementing one code base for any supported AI models.InstallpipinstallpycurtainUsageThere are tasks (image-related) and sources (AI art models) that are supported.  The following is an example of how to use the package to generate an image from a model source.importpycurtainprint(pycurtain.list_sources())''' serial output{'image': ['STABLE_DIFFUSION', 'DEEP_AI', 'DALLE2', 'CRAIYON', 'REPLICATE'], 'text': ['GPT3']}'''print(pycurtain.list_tasks())''' serial output{'image': ['edit', 'generate', 'vary', 'upscale'], 'text': ['summarize', 'fix_grammar', 'tag']}'''# first, set your sourcesource=pycurtain.source.SourceImageType.CRAIYON# set task to generatetask=pycurtain.task.Image(source)# set promptprompt="a wonderful day"# generate image(s)img=task.generate(prompt=prompt)# save imageimg[0].save("output.png")Supported Tasksimagegenerate (text2img, creation)vary (img2img, style transfer)edit (img2img, with masks)interrogate (img2text, description)textsummarize (tl;dr)fix_grammar (punctuation, spelling, capitalization, etc.)tag (subject matter, genres, subgenres, etc.)Supported ProcessesA process is a way to combine multiple tasks together.  For example, you can convert a sequence of images into a video.text_to_video_zoom (zoom_in and_out)frompycurtain.processimporttext_to_video_zoomfrompycurtain.sourceimportSourceImageTypetext_to_video_zoom.zoom_in(prompts=["A grateful dead poster"],source=SourceImageType.STABLE_DIFFUSION,n_imgs=10,file_name="output.mp4")AI Model SourcesCurrently all but one supported AI Models require an API key generated from the REST API host (Craiyon being the exception). Pycurtain is a third-party (open-source / community driven) python wrapper SDK and is not associated with any of the AI Model providers.  Each API key can be generated by signing up from the AI Model hosting site. The current implementation requires each (in-use) API key to be set in the environment variables following the\secrets\stuff.pyformat.No API Key or private information is stored by Pycurtain.Sources Offical SitesDeepAi SRGANhttps://deepai.org/StabilityAi Stable Diffusionhttps://stability.ai/OpenAi Dalle2, GPT3https://openai.com/Craiyon (Formally DALL-E Mini)https://www.craiyon.com/Replicatehttps://replicate.com/Road Mapprovide prelimiary wrappers for these AI model sourceshugging_facehttps://huggingface.co/allow users to adjust common parameters between modelsprovide utility features beyond the model wrapperequirectangluar images (360 degree images)simple inpainting mask creationbeyond images... videos, text, audio.  All leveraging the available REST API accessible ML models of today.Developing PycurtainTo install pycurtain, along with the tools you need to develop and run test, run the following in your virtual environment:pipinstall-e.[dev]
Package: py-custom-spellrectify
This package helps in rectifying the spelling of the word with the custom collection of words.Python Custom Spell RectifyThis package helps in rectifying the spelling of the word with the custom collection of words.
This uses numpy and difflib module.InstallationYou can install directly after cloning:use the Python package:.. code-block:: bash$ pip install --user py_custom_spellrectifyCommand line toolAfter installation, you should havepy_custom_spellrectifyin your$PATH:UsageInitailize the handler and load the custom list and auto correct:.. code-block:: python>>> from py_custom_spellrectify import WordCorrection
>>> word_handler= WordCorrection()
>>> word_handler.load(input_words=['Commercially', 'available', 'development', 'Discontinued', 'Production', 'Ready', 'Samples', 'Prototype'])
>>> result= word_handler.correct(input='develop', threshold=0.75)
>>> print(result)
>>> ('development', 0.78)For words whose macthing percentage is lesser than threshold:.. code-block:: python>>> result= word_handler.correct(input='devel', threshold=0.75)
>>> print(result)
>>> devel
>>> # the above will return the same input word if the word if the mataching percentage is lesser than the threshold.LicenseMIT License.. code:: rst|MIT license|

.. image:: https://img.shields.io/badge/License-MIT-blue.svgContactPlease submit an issue if you encounter a bug and please email any questions or requests to
1. vimald8959@gmail.com ( https://github.com/vimal-dharmalingam )
2. catchmaurya@gmail.com ( https://github.com/catchmaurya )
Package: pycute
PycutePycute is a infromation-theoretic causal inference method for event sequences based on Granger-causality.Pycute Module InstallationThe recommended way to install thepycutemodule is to simply usepip:$pipinstallpycutePycute officially supports Python >= 3.6.How to use pycute?>>>X=[1]*1000>>>Y=[-1]*1000>>>frompycuteimportcute,tent,simulations>>>cute.cute(X,Y)# CUTE(0.0, 0.0)>>>tent.tent(X,Y)# TENT(0.0, 0.0)>>>simulations.simulate_decision_rate_against_data_type('/results/dir/')# for decision rate vs causal relationship type plots...How to cite the paper?Todo: Add the citation to thesis.
Package: pycuteweb
pycutewebThis package aims to display webapps, websites, or other forms of HTML content on a GUI window.It is currently built entirely on PySide2, Qt for Python.ExampleOn Debian/Ubuntu based system it is required to install some shared libraries:sudo apt install --reinstall libxcb-xinerama0Actual examplefrompycutewebimportApplicationimportosapp=Application()# (Optional) Add a simple splash screendirname=os.path.dirname(__file__)app.add_splashscreen(os.path.join(dirname,"resources/esa.gif"))# Load a webpageapp.spawn_window("https://www.meneghetti.dev",title="My website")# Render all windows and start the appapp.start()Flask exampleIn case you want to run a desktop application with flask, just pass the flask object
to the app object.fromflaskimportFlaskfrompycutewebimportApplicationapp=Flask(__name__)@app.route('/')defindex():return"Hello world!"if__name__=='__main__':web_app=Application()web_app.add_flask(app)web_app.start()DependenciesPySide2LGPLv3
Package: pycutroh
pycutrohThe pycutroh module is a simple string cutting module.Table of contentsIntroductionGetting startedPrerequisitesInstallationHow to useHow to importUsing the moduleLicenseIntroductionI've written this module to learn python and some python basics like using unittests, imports and how python modules/packets work.This module is inspired by the linux bash command.At the moment this module provides four functions, which can be used to manipulate strings. For further information see here:How to useThe cli interface for this module only shows help at the moment and will be further expanded, as well as the package functionality itself.Getting startedPrerequisitesPython installedOperatingsystem: Linux or Windows, not tested on macIDE like VS Code, if you want to contribute or change the codeInstallationThere are two ways to install this module depending on the way you work and the preinstalled modules:pip install pycutrohpython -m pip install pycutrohHow to useHow to ImportYou can import the module in two ways:importpycutrohThis will import all functions. Even the ones that are not supposed to be used (helper functions).frompycutrohimport*This will import only the significant functions, meant for using.Using the moduleDepending on the way you imported the module, the following examples look a bit different.Example 1:frompycutrohimport*print(get_letter_on_pos("This is a demonstration string.",0))Result:TExample 2:frompycutrohimport*print(get_letters_from_pos_to_pos("This is a demonstration string.",(0,4)))Result:ThisExample 3:frompycutrohimport*print(get_fields("This is a demonstration string.",(0,3)," "))Result:This demonstrationExample 4:importpycutrohprint(pycutroh.get_fields_new_separator("This is a demonstration string.",(0,3)," ","|"))Result:This|demonstrationLicenseMIT