{
"info": {
"author": "Hans Roh",
"author_email": "hansroh@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 3 - Alpha",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Text Processing :: Indexing"
],
"description": "========\nDeLune\n========\n\n.. contents:: Table of Contents\n\n\nIntroduce\n============\n\nDeLune (former Wissen) is a simple fulltext search engine and Python object (similar with noSQL document concept) storage written in Python for logic thing and C for a core index/search module.\n\nI had been studed Lucene_ earlier version with Lupy_ and CLucene_. And I had maden my own search engine for excercise.\n\nIts file format, numeric compressing algorithm, indexing process are quiet similar with Lucene earlier version (I don't know about recent versions at all). But querying and result-fetching parts is built from my imagination. As a result it's entirely unorthodox and possibly inefficient (I am a typical nerd and work-alone programmer ;-)\n\nDeLune is a kind of hybrid of search engine and noSQL document database. \n\nDeLune stores python objects with pickle-compresses serializing, then if you use DeLune as python module, you can store and get document derectly.\n\nDeLune may be useful when it is allowed a few minutes gap on updating, inserting and deleting requests and operations. For example, it will be good for your legacy contents or generated by your own not by customer. \n\nAs most fulltext search engines, DeLune do always and only append data, no modification for existing files. So inserting, updating and deleting ops need high disk writing cost. Sometimes one small deletion op may trigger massive disk writing for optimization (even deleting cost itself is very low).\n\nAnyway, if you need realtime changes on your data, DO BOT USE DeLune or complement with another type of NoSQL or RDBMS.\n\nDeLune supports storing multiple documents for polymorphic use cases like listing and detail views. It is inefficient for storage usage, but helps reading performance.\n\nDeLune's searching mechanism is similar with DNA-RNA-Protein working model can be translated into 'Index File-Temporary Small Replication Buffer-Query Result'.\n\n* Every searcher (Cell) has a single index file handlers group (DNA group in nuclear)\n* Thread has multiple small memory buffer (RNA) for replicating index as needed part\n* Query class (Ribosome) creates query result (Protein) by synthesising buffers' inforamtion (RNAs) and Each thread has own memory space to create result set (Protein) not shared with other threads.\n* Repeat from 2nd if expected more results\n\nAnd it provides storing, indexing and searching RESTful API through `Skitai App Engine`_,\n\n* Work on multi processes environment\n* Master-slave replication\n* Untested (not yet) sharding, map-reducing, load-balancing using Skitai features\n\n.. _Lucene: https://lucene.apache.org/core/\n.. _Lupy: https://pypi.python.org/pypi/Lupy\n.. _CLucene: http://clucene.sourceforge.net/\n\n\nInstallation\n=============\n\nDeLune contains C extension, so need C compiler.\n \n.. code:: bash\n\n pip install delune\n\nOn posix, it might be required some packages,\n\n.. code:: bash\n \n apt-get install build-essential zlib1g-dev\n\n\nQuick Start\n============\n\nAll field text type should be str type, otherwise encoding should be specified.\n\nHere's an example indexing only one document.\n\n.. code:: python\n\n import delune\n \n dln = delune.connect (\"/home/deune\")\n col = dln.create (\"mycol\", [\"mycol\"], 1)\n \n with col.documents as D:\n song = \"violin sonata in c k.301\"\n birth = 1756\n \n d = D.new (100) # document ID\n d.content ([song, {'composer': 'mozart', 'birth': birth}])\n d.field (\"default\", song, delune.TEXT)\n d.field (\"birth\", birth, delune.INT16)\n d.snippet (song)\n D.add (d)\n D.commit () \n D.index ()\n result = D.query (\"violin\") \n \nResult will be like this:\n\n.. code:: python\n \n {\n 'code': 200, \n 'time': 0, \n 'total': 1\n 'result': [\n [\n ['violin sonata in c k.301', {\"composer\": 'wofgang amadeus mozart', 'birth': 1756}], # content\n 'violin sonata in c k.301', # auto snippet\n 14, 0, 0, 0 # additional info\n ]\n ], \n 'sorted': [None, 0], \n 'regex': 'violin|violins', \n }\n\nDeLune's document can be any Python objects picklalbe, delune stored document zipped pickled format. But you want to fetch partial documents by key or index, document skeleton shoud be a list or dictionary, but still inner data type can be any picklable objects. I think if your data need much more reading operations than writngs/updatings, DeLune can be as both simple schemaless data storage and fulltext search engine. DeLune's RESTful API and replication is end of this document.\n\n\nConfigure DeLune\n==================\n\nWhen indexing it's not necessory to configure, but searching should be configured. The reason why DeLune allocates memory per thread for searching and classifying on initializing.\n\n.. code:: python\n\n delune.configure (\n numthread, \n logger, \n io_buf_size = 4096, \n mem_limit = 256\n )\n \n- numthread: number of threads which access to DeLune collections and models. if set to 8, you can open multiple collections (or models) and access with 8 threads. If 9th thread try to access to delune, it will raise error\n\n- logger: *see next chapter*\n\n- io_buf_size = 4096: Bytes size of flash buffer for repliacting index files\n\n- mem_limit = 256: Memory limit per a thread, but it's not absolute. It can be over during calculation if need, but when calcuation has been finished, would return memory ASAP.\n\n\nFinally when your app is terminated, call shutdown.\n\n.. code:: python\n\n delune.shutdown ()\n\n\nIndexing and Searching On Local Machine\n=========================================\n\nAlthough quick start, we user indexer.index method for indxing documents, delune provide indexer as backend service.\n\nRun Indexer as Service\n--------------------------------\n\n.. code:: bash\n\n # one timne indexing in console\n delune index -v /home/delune\n \n # indexing every 5minutes in console\n delune index -v /home/delune -i 300\n \n # indexing every 5 minutes as daemon\n delune index -dv /home/delune -i 300\n \n # restart indexing daemon every 5 minutes as daemon\n delune index -v /home/delune -i 300 restart\n \n # stop indexing daemon\n delune index stop\n \n # status of indexing daemon\n delune index status\n\n\nUsing Client API\n----------------------------\n\nConnecting to Delune Resources\n```````````````````````````````````````\n\n.. code:: python\n\n import delune\n \n dln = delune.connect (\"/home/delune\")\n \nAs result, delune check anf create directories.\n\n.. code:: bash\n\n /home/delune/delune/config\n /home/delune/delune/collections\n\n\nCreating New Collection\n```````````````````````````````\n\n.. code:: python\n \n col = dln.create (\"mycol\", [\"mycol\"], 1)\n col.save ()\n \nAs result, collection created like this.\n\n.. code:: bash\n\n /home/delune/delune/config/mycol : JSON file contains configure options\n /home/delune/delune/collections/mycol\n\nIf you use multiple disks for increasing speed or capacity of collection.\n\nFirst of all mount your disks to /home/delune/delune/collections,\n\n.. code:: bash\n\n /home/delune/delune/collections/hdd0\n /home/delune/delune/collections/hdd1\n \nThen create collection. \n\n.. code:: python\n \n col = dln.create (\"mycol\", [\"hdd0/mycol\", \"hdd1/mycol\"], 1)\n col.save ()\n\nAs a result, collection will be created like this.\n\n.. code:: bash\n\n /home/delune/delune/collections/hdd0/mycol\n /home/delune/delune/collections/hdd1/mycol \n \nYour segment filess of collection will be created these directories randomly (with considering free space of disks). \n\n\nConfiguring Collection\n```````````````````````````````\n\nThere're 2 way for configuring tour collections.\n\nFirst, use col.config dictionalry. \n\n.. code:: python\n\n col = dln.create (\"mycol\", [\"mycol\"], version = 1)\n col.config\n \n >> {\n 'name': 'mycol',\n 'data_dir': [\"mycol\"],\n \"version\": 1,\n \n 'analyzer': {\n \"max_terms\": 3000,\n \"stem_level\": 1,\n \"strip_html\": 0,\n \"make_lower_case\": 1,\n \"ngram\": 1,\n \"biword\": 0,\n \"stopwords_case_sensitive\": 1,\n \"ngram_no_space\": 0, \n \"contains_alpha_only\": 0,\n \"stopwords\": [],\n \"endwords\": [], \n },\n 'indexer': {\n 'optimize': 1,\n 'force_merge': 0,\n 'max_memory': 10000000,\n 'max_segments': 10,\n 'lazy_merge': (0.3, 0.5),\n },\n 'searcher': {\n 'max_result': 2000,\n 'num_query_cache': 1000\n }\n }\n \nYou just change values as you want.\n\nAnother way is set options when creating collection.\n\n.. code:: python\n\n col = dln.create (\n \"mycol\", \n [\"mycol\"], \n version = 1,\n max_terms = 5000,\n strip_html = 1,\n force_merge = 1,\n max_result = 10000\n )\n\nFor more detail for analyzer, indexer and searcher options, see *Low Level API* section.\n\n\nAdding Dcouments To Collection\n```````````````````````````````````\n\n.. code:: python\n\n with col.documents as D:\n for code, title in my_codes:\n d = D.new (code) # code is used as document ID\n d.content ([code, title])\n d.field (\"code\", code, delune.STRING)\n d.field (\"default\", title, delune.TEXT)\n D.add (d)\n D.commit ()\n\nIt is important to understand, above operation actually dosen't make any change to your collection. It just saves your documents at:\n\n.. code:: bash\n\n /home/delune/delune/collections/mycol/.que/\n\nIf you commit multiple time, que files will be created as you commit.\n\n\nAdding Dcouments Without ID\n```````````````````````````````````\n\n.. code:: python\n\n d = D.new ()\n\nNote that in this case you canmoy update/modify your documents. \n\n\nDeleting Dcouments From Collection\n```````````````````````````````````\n\nIf your document has ID,\n\n.. code:: python\n\n with col.documents as D:\n for code, title in my_codes:\n D.delete (code) \n D.commit ()\n\nElse,\n\n.. code:: python\n\n with col.documents as D:\n D.qdelete (\"milk\") \n D.commit ()\n \nIt will be deleted all documents contain 'milk'.\n\nIndexing\n````````````````````\n\nIf you run delune indexer, these saved documents will be automatically indexed. Or you can index mannually,\n\n.. code:: bash\n\n delune index -v /home/delune\n\n\nSearching\n`````````````````````\n\n.. code:: python\n\n dln = delune.connect (\"/home/delune\")\n col = dln.load (\"mycol\")\n with col.documents as D:\n D.search (\"violin\")\n\nsearch() spec is:\n\n.. code:: python\n\n D.search (\n q, \n offset = 0, \n limit = 10, \n sort = \"\", # INT field name\n snippet = 30, # number of terms for snippet \n partial = \"\", # specify index or key of a content\n nthdoc = 0, # specify index of contents\n lang = \"un\", \n analyze = 1, # query terms are already analyzed, set to 0\n data = 1, # whether or not return content part\n qlimit = 1 # whether or not apply limitation for number of searched documents by max_result \n )\n\n \nTruncating Documents\n````````````````````````\n\n.. code:: python\n\n col.documents.truncate (\"mycol\")\n col.documents.commit ()\n\n \nDrop Collection\n````````````````````````\n.. code:: python\n\n col.drop (include_data = True)\n \n\nIndexing and Searching On Remote Machine\n============================================\n\nYou can make remote delune resource.\n\nRunning RESTful API \n-------------------------------\n\n**New in version 0.12.14**\n\nYou can use RESTful API with `Skitai App Engine`_ for your remote machine.\n\nFirst of all, you need to install skitai by,\n\n.. code:: bash\n\n pip3 install -U skitai\n\nThen copy and save below code to app.py.\n\n.. code:: python\n \n import os\n import delune\n import skitai \n \n if __name__ == \"__main__\":\n pref = skitai.pref ()\n pref.use_reloader = 1\n pref.debug = 1\n \n config = pref.config\n config.resource_dir = \"/home/delune\"\n \n skitai.trackers ('delune:collection')\n skitai.mount (\"/\", delune, \"app\", pref)\n skitai.run ( \n workers = 2,\n threads = 4,\n port = 5000 \n )\n\nAnd run,\n\n.. code:: bash\n\n app.py\n\nSo you can access to http://:5000/v1\n\n\nFor more detail about API, see `app.py`_.\n \n.. _`Skitai App Engine`: https://pypi.python.org/pypi/skitai\n.. _`app.py`: https://gitlab.com/hansroh/delune/blob/master/delune/export/skitai/__export__.py\n\n\nRun Indexer as Service\n--------------------------------\n\nAnd like local, you shoud run indexer,\n\n.. code:: bash\n\n delune index -dv /home/delune -i 300\n\nThis will index committed documents every 5 minutes.\n\n\nUsing Client API\n--------------------------\n\nIt is exactly same as local API except connect parameter. parameter should starts with \"http://\" or \"https://\" and ends with version string like \"v1\"\n\n.. code:: python\n\n dln = delune.connect (\"http://192.168.0.200:5000/v1\")\n col = dln.create (\"mycol\", [\"mycol\"], 1)\n col.save () \n ...\n\nNote that you need not reun indexer background at your local machine any more. \n\n\nReplicating Delune Resources\n============================\n\nYou can run replica server for distributed search or backup.\n\nReplicating Your Collection\n--------------------------------\n\n.. code:: bash \n \n # replicate every 5 minutes from http://192.168.0.200/v1\n delune replicate -o http://192.168.0.200/v1 -i 300\n \nAs a result, all remote delune resources will be replicated with exactly same directory structure.\n\n\nLimitation\n==============\n\nBefore you test DeLune, you should know some limitation.\n\n- DeLune search cannot sort by string type field, but can by int/bit/coord types and TFIDF ranking. \n\n\n\nLow Level API\n====================\n\nLogger\n---------------\n\n.. code:: python\n\n from delune.lib import logger\n \n logger.screen_logger ()\n \n # it will create file '/var/log.delune.log', and rotated by daily base\n logger.rotate_logger (\"/var/log\", \"delune\", \"daily\")\n \n\nStandard Analyzer\n--------------------------------\n\nAnalyzer is needed by TEXT, TERM types.\n\nBasic Usage is:\n\n.. code:: python\n\n analyzer = delune.standard_analyzer (\n max_term = 8, \n numthread = 1,\n ngram = True or False,\n stem_level = 0, 1 or 2 (2 is only applied to English Language),\n make_lower_case = True or False,\n stopwords_case_sensitive = True or False,\n ngram_no_space = True or False,\n strip_html = True or False, \n contains_alpha_only = True or False, \n stopwords = [word,...]\n )\n\n- stem_level: 0 and 1, especially 'en' language has level 2 for hard stemming\n\n- make_lower_case: make lower case for every text\n\n- stopwords_case_sensitive: it will work if make_lower_case is False\n\n- ngram_no_space: if False, '\u6ce3\u65ac \u99ac\u8b16' will be tokenized to _\u6ce3, \u6ce3\u65ac, \u65ac\\_, _\u99ac, \u99ac\u8b16, \u8b16\\_. But if True, addtional bi-gram \u65ac\u99ac will be created between \u65ac\\_ and _\u99ac.\n\n- strip_html\n\n- contains_alpha_only: remove term which doesn't contain alphabet, this option is useful for full-text training in some cases\n\n- stopwords: DeLune has only English stopwords list, You can use change custom stopwords. Stopwords sould be unicode or utf8 encoded bytes\n\nDeLune has some kind of stemmers and n-gram methods for international languages and can use them by this way:\n\n.. code:: python\n\n analyzer = standard_analyzer (ngram = True, stem_level = 1)\n col = delune.collection (\"./col\", delune.CREATE, analyzer)\n indexer = col.get_indexer ()\n document.field (\"default\", song, delune.TEXT, lang = \"en\")\n\n\nImplemented Stemmers\n`````````````````````````\n\nExcept English stemmer, all stemmers can be obtained at `IR Multilingual Resources at UniNE`__.\n\n - ar: Arabic\n - de: German\n - en: English\n - es: Spanish\n - fi: Finnish\n - fr: French\n - hu: Hungarian\n - it: Italian\n - pt: Portuguese\n - sv: Swedish\n \n.. __: http://members.unine.ch/jacques.savoy/clef/index.html\n\n\nBi-Gram Index\n`````````````````````````\n\nIf ngram is set to True, these languages will be indexed with bi-gram.\n\n - cn: Chinese\n - ja: Japanese\n - ko: Korean\n\nAlso note that if word contains only alphabet, will be used English stemmer.\n\n\nTri-Gram Index\n`````````````````````````\n\nThe other languages will be used English stemmer if all spell is Alphabet. And if ngram is set to True, will be indexed with tri-gram if word has multibytes.\n\n**Methods Spec**\n\n - analyzer.index (document, lang)\n - analyzer.freq (document, lang)\n - analyzer.stem (document, lang)\n - analyzer.count_stopwords (document, lang)\n\n\nCollection\n-----------------------------------\n\nCollection manages index files, segments and properties.\n\n.. code:: python\n\n col = delune.collection (\n indexdir = [dirs], \n mode = [ CREATE | READ | APPEND ], \n analyzer = None,\n logger = None \n )\n\n- indexdir: path or list of path for using multiple disks efficiently\n- mode\n- analyzer\n- logger: # if logger configured by delune.configure, it's not necessary\n\nCollection has 2 major class: indexer and searcher.\n\n\n\nIndexer\n--------------------\n\nFor searching documents, it's necessary to indexing text to build Inverted Index for fast term query. \n\n.. code:: python\n\n indexer = col.get_indexer (\n max_segments = int,\n force_merge = True or False,\n max_memory = 10000000 (10Mb),\n optimize = True or False\n )\n\n- max_segments: maximum number of segments of index, if it's over, segments will be merged. also note during indexing, segments will be created 3 times of max_segments and when called index.close (), automatically try to merge until segemtns is proper numbers\n\n- force_merge: When called index.close (), forcely try to merge to a single segment. But it's failed if too big index - on 32bit OS > 2GB, 64bit > 10 GB\n\n- max_memory: if it's over, created new segment on indexing\n\n- optimize: When called index.close (), segments will be merged by optimal number as possible\n\n\nFor add docuemtn to indexer, create document object:\n\n.. code:: python\n\n document = delune.document () \n\nDeLune handle 3 objects as completly different objects between no relationship\n\n- returning content\n- snippet generating field\n- searcherble fields\n\n\nSet Returning Content\n````````````````````````````\n\nDeLune serialize returning contents by pickle, so you can set any objects pickle serializable.\n\n.. code:: python\n\n document.content ({\"userid\": \"hansroh\", \"preference\": {\"notification\": \"email\", ...}})\n \n or \n \n document.content ([32768, \"This is smaple ...\"])\n \nFor saving multiple contents,\n\n.. code:: python\n\n document.content ({\"userid\": \"hansroh\", \"preference\": {\"notification\": \"email\", ...}})\n document.content ([32768, \"This is smaple ...\"])\n \nYou can select one of these by query time using nthdoc=0 or 1 parameter.\n\n\nSnippet Generating Field\n````````````````````````````````\n\nThis field should be unicode/utf8 encoded bytes.\n\n.. code:: python\n\n document.snippet (\"This is sample...\")\n\n\nSearchable Fields\n``````````````````````````````\n\ndocument also recieve searchable fields:\n\n.. code:: python\n\n document.field (name, value, ftype = delune.TEXT, lang = \"un\", encoding = None)\n \n document.field (\"default\", \"violin sonata in c k.301\", delune.TEXT, \"en\")\n document.field (\"composer\", \"wolfgang amadeus mozart\", delune.TEXT, \"en\")\n document.field (\"lastname\", \"mozart\", delune.STRING)\n document.field (\"birth\", 1756, delune.INT16)\n document.field (\"genre\", \"01011111\", delune.BIT8)\n document.field (\"home\", \"50.665629/8.048906\", delune.COORD6)\n \n \n- name: if 'default', this field will be searched by simple string, or use 'name:query_text'\n- value: unicode/utf8 encode text, or should give encoding arg.\n- ftype: *see below*\n- encoding: give like 'iso8859-1' if value is not unicode/utf8\n- lang: language code for standard_analyzer, \"un\" (unknown) is default\n \nAvalible Field types are:\n\n - TEXT: analyzable full-text, result-not-sortable\n \n - TERM: analyzable full-text but position data will not be indexed as result can't search phrase, result-not-sortable\n \n - STRING: exactly string match like nation codes, result-not-sortable\n \n - LIST: comma seperated STRING, result-not-sortable\n \n - FNUM: foramted number, value should be int or float and format parameter required, format is \"digit.digit\" that number of digit interger part with zero leading, and number of float part length. It make possible to search range efficiently.\n \n - COORDn, n=4,6,8 decimal precision: comma seperated string 'latitude,longititude', latitude and longititude sould be float type range -90 ~ 90, -180 ~ 180. n is precision of coordinates. n=4 is 10m radius precision, 6 is 1m and 8 is 10cm. result-sortable\n \n - BITn, n=8,16,24,32,40,48,56,64: bitwise operation, bit makred string required by n, result-sortable\n \n - INTn, n=8,16,24,32,40,48,56,64: range, int required, result-sortable\n\nNote1: You make sure COORD, INT and BIT fields are at every documents even they havn't got a value, because these types are depend on document indexed sequence ID. If they have't a value, please set value to None NOT omit fields.\n\nNote2: FNUM 100.12345 with format=\"5.3\" is interanlly converted into \"00100.123\" and negative value will be -00100.123 and MAKE SURE your values are within -99999.999 and 99999.999.\n \nRepeat add_document as you need and close indexer.\n\n.. code:: python\n\n for ...: \n document = delune.document ()\n ...\n indexer.add_document (document) \n indexer.close () \n\nIf searchers using this collection runs with another process or thread, searcher automatically reloaded within a few seconds for applying changed index.\n\n\nSearcher\n----------------------\n\nFor running searcher, you should delune.configure () first and creat searcher.\n\n.. code:: python\n \n searcher = col.get_searcher (\n max_result = 2000,\n num_query_cache = 200\n ) \n \n- max_result: max returned number of searching results. default 2000, if set to 0, unlimited results\n\n- num_query_cache: default is 200, if over 200, removed by access time old\n\n\nQuery is simple:\n\n.. code:: python\n\n searcher.query (\n qs, \n offset = 0, \n fetch = 10, \n sort = \"tfidf\", \n summary = 30, \n lang = \"un\"\n )\n \n- qs: string (unicode) or utf8 encoded bytes. for detail query syntax, see below\n- offset: return start position of result records\n- fetch: number of records from offset\n- sort: \"(+-)tfidf\" or \"(+-)field name\", field name should be int/bit type, and '-' means descending (high score/value first) and default if not specified. if sort is \"\", records order is reversed indexing order\n- summary: number of terms for snippet\n- lang: default is \"un\" (unknown)\n\n\nFor deleting indexed document:\n\n.. code:: python\n\n searcher.delete (qs)\n\nAll documents will be deleted immediatly. And if searchers using this collection run with another process or thread, theses searchers automatically reloaded within a few seconds.\n\nFinally, close searcher.\n\n.. code:: python\n\n searcher.close ()\n\n\nQuery Syntax\n```````````````````````\n\n - violin composer:mozart birth:1700~1800 \n \n search 'violin' in default field, 'mozart' in composer field and search range between 1700, 1800 in birth field\n \n - violin allcomposer:wolfgang mozart\n \n search 'violin' in default field and any terms after allcomposer will be searched in composer field\n \n - violin -sonata birth2:1700~1800\n \n birth2 is between '1700' and '1800'\n \n - violin -sonata birth:~1800\n \n not contain sonata in default field\n \n - violin -composer:mozart\n \n not contain mozart in composer field\n \n - violin or piano genre:00001101/all\n \n matched all 5, 6 and 8th bits are 1. also /any or /none is available \n \n - violin or ((piano composer:mozart) genre:00001101/any)\n \n support unlimited priority '()' and 'or' operators\n \n - (violin or ((allcomposer:mozart wolfgang) -amadeus)) sonata (genre:00001101/none home:50.6656,8.0489~10000)\n \n search home location coordinate (50.6656, 8.0489) within 10 Km\n \n - \"violin sonata\" genre:00001101/none home:50.6656/8.0489~10\n \n search exaclt phrase \"violin sonata\"\n \n - \"violin^3 piano\" -composer:\"ludwig van beethoven\"\n\n search loose phrase \"violin sonata\" within 3 terms\n\n\nMigrating From Version 0.3x\n==============================\n\nUpgdare linraries\n\n.. code:: bash\n\n pip3 install -U skitai quests delune\n\nThen restructuring directories\n\n.. code:: bash\n\n DELUNE_ROOT=\"/home/delune\"\n mkdir \"$DELUNE_ROOT/delune\"\n mv \"$DELUNE_ROOT/models/.config\" \"$DELUNE_ROOT/delune/config\"\n mv \"$DELUNE_ROOT/models\" \"$DELUNE_ROOT/delune/collections\"\n\nEdit your all config, remove *models/* fro your data_dir option.\n\n.. code:: python\n\n \"data_dir\": [\"models/mycols\"]\n => \"data_dir\": [\"mycols\"]\n\nIf you use RESTful API service, remove index or mirror related code lines at your app app launch script.\n\nFinally, run indexer.\n\n.. code:: bash\n\n delune index -dv /home/delune -i 300\n\n\nLinks\n======\n\n- `GitLab Repository`_\n- Bug Report: `GitLab issues`_\n\n.. _`GitLab Repository`: https://gitlab.com/hansroh/delune\n.. _`GitLab issues`: https://gitlab.com/hansroh/delune/issues\n\n\n\nChange Log\n============\n \n 0.4 (June 2, 2018)\n \n - officially seized developing naivebayes classifier & learner\n - integrated local and remote indexing and searching APIs\n - directory structure is NOT compatible with version 0.3x\n \n 0.3 (Sep 15, 2017)\n \t\n - fix wildcard & range search\n - fix snippet thing\n - add stem API\n - add index field aliasing to document\n - add string range searching, add new field type: ZFn\n - add multiple documents storing feature. as a result, DeLune can read only for Wissen collections\n \n 0.2 (Sep 14, 2017)\n \n - fix minor bugs\n \n 0.1 (Sep 13, 2017)\n \n - change package name from Wissen to DeLune\n\n \nEarlier Wissen Period\n-------------------------------\n \n 0.13\n \n - fix using lock\n - add truncate collection API\n - fix updating document\n - change replicating way to use sticky session connection with origin server\n - fix file creation mode on posix\n - fix using lock with multiple workers\n - change wissen.document method names\n - fix index queue file locking\n \n 0.12 \n \n - add biword arg to standard_analyzer\n - change export package name from appack to package\n - add Skito-Saddle app\n - fix analyzer.count_stopwords return value\n - change development status to Alpha\n - add wissen.assign(alias, searcher/classifier) and query(alias), guess(alias)\n - fix threads count and memory allocation\n - add example for Skitai App Engine app to mannual\n \n 0.11 \n \n - fix HTML strip and segment merging etc.\n - add MULTIPATH classifier\n - add learner.optimize ()\n - make learner.build & learner.train efficient\n \n 0.10 - change version format, remove all str\\*_s ()\n \n 0.9 - support Python 3.x\n\n 0.8 - change license from BSD to GPL V3\n",
"description_content_type": "",
"docs_url": null,
"download_url": "https://pypi.python.org/pypi/delune",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://gitlab.com/hansroh/delune",
"keywords": "",
"license": "GPLv3",
"maintainer": "",
"maintainer_email": "",
"name": "delune",
"package_url": "https://pypi.org/project/delune/",
"platform": "posix",
"project_url": "https://pypi.org/project/delune/",
"project_urls": {
"Download": "https://pypi.python.org/pypi/delune",
"Homepage": "https://gitlab.com/hansroh/delune"
},
"release_url": "https://pypi.org/project/delune/0.3.2.1/",
"requires_dist": null,
"requires_python": "",
"summary": "DeLune Python Object Storage and Search Engine",
"version": "0.3.2.1",
"yanked": false,
"yanked_reason": null
},
"last_serial": 13613650,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "3368a99d1d1dba71b9acab0950e34419",
"sha256": "437c03cfe6484fd611e5d612f39f3b389e0aa0c7baf6e77c07c219cd683d3e28"
},
"downloads": -1,
"filename": "delune-0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3368a99d1d1dba71b9acab0950e34419",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 1837,
"upload_time": "2017-09-13T13:45:39",
"upload_time_iso_8601": "2017-09-13T13:45:39.990401Z",
"url": "https://files.pythonhosted.org/packages/c8/3a/54158ec391bf2b2b8b652c27fea327202e1b04672e3aa37fde7f07e8b758/delune-0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "82f29715e1de4a6fefa244e16096b8d0",
"sha256": "b802ae374b706cabc12d972cd5afd51e7b980db85d343b7987b777fe15507a52"
},
"downloads": -1,
"filename": "delune-0.2-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "82f29715e1de4a6fefa244e16096b8d0",
"packagetype": "bdist_wheel",
"python_version": "cp35",
"requires_python": null,
"size": 2574902,
"upload_time": "2017-09-14T06:52:26",
"upload_time_iso_8601": "2017-09-14T06:52:26.663395Z",
"url": "https://files.pythonhosted.org/packages/5b/4f/1f5e227f43815bb306410aaf030cbbc93b838ae30d0484352ca10308bdf8/delune-0.2-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "7431b1f39d0292051b6fbb811e0959c7",
"sha256": "71525911230fb2a69f53c98a06066c0ab16a1e45a2bdd79127a2935f6456a77c"
},
"downloads": -1,
"filename": "delune-0.2.1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "7431b1f39d0292051b6fbb811e0959c7",
"packagetype": "bdist_wheel",
"python_version": "cp35",
"requires_python": null,
"size": 2574932,
"upload_time": "2017-09-14T07:10:57",
"upload_time_iso_8601": "2017-09-14T07:10:57.991651Z",
"url": "https://files.pythonhosted.org/packages/52/21/23e7d3d6c80321d1232adeaf1b85da7aff4e0bf341509d10154556edb330/delune-0.2.1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "23d149bdba30fc6c446806c82b65d448",
"sha256": "b90c883cf760d589923ba454600ff9d14747f4d071460821f8a2942f25b59e91"
},
"downloads": -1,
"filename": "delune-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "23d149bdba30fc6c446806c82b65d448",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1730717,
"upload_time": "2017-09-14T07:11:26",
"upload_time_iso_8601": "2017-09-14T07:11:26.534052Z",
"url": "https://files.pythonhosted.org/packages/0f/32/805594aa74ee1e0a0451f0dd2961108bab2702621fffe0029bd44c0f95ea/delune-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2.1.1b1": [
{
"comment_text": "",
"digests": {
"md5": "19f5a56f47ad8b9d83a0e520d1f1e79d",
"sha256": "d354ad2b25ba556e93e533c8bf5b6819012101ea969bcc1bac324c3fd960d7fc"
},
"downloads": -1,
"filename": "delune-0.2.1.1b1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "19f5a56f47ad8b9d83a0e520d1f1e79d",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1915185,
"upload_time": "2017-09-14T22:16:44",
"upload_time_iso_8601": "2017-09-14T22:16:44.736902Z",
"url": "https://files.pythonhosted.org/packages/b1/49/d457ec4f7e88100674d06133dccb36a7811b1a10325781e967983c4562f1/delune-0.2.1.1b1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "14844596de81706e7187bb07e9ef194e",
"sha256": "ff9a4e14f591b22683cf60f91f33a7515ca8196d56857c9b6f01daf11edeb8ff"
},
"downloads": -1,
"filename": "delune-0.2.1.1b1.tar.gz",
"has_sig": false,
"md5_digest": "14844596de81706e7187bb07e9ef194e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1730840,
"upload_time": "2017-09-14T22:16:49",
"upload_time_iso_8601": "2017-09-14T22:16:49.769559Z",
"url": "https://files.pythonhosted.org/packages/62/cd/34ea3d1873a7f6b92d5554081eb50ad482204f031b01a8e45f83eafa1005/delune-0.2.1.1b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.2b1": [
{
"comment_text": "",
"digests": {
"md5": "e3f1ba30b9d8a586d92cb7db067999d1",
"sha256": "ea1d3ce083297afc85f823e9b7c4a9a4288e4b4979947de91ad66cef789a0827"
},
"downloads": -1,
"filename": "delune-0.2b1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "e3f1ba30b9d8a586d92cb7db067999d1",
"packagetype": "bdist_wheel",
"python_version": "cp35",
"requires_python": null,
"size": 2574931,
"upload_time": "2017-09-14T06:45:24",
"upload_time_iso_8601": "2017-09-14T06:45:24.564926Z",
"url": "https://files.pythonhosted.org/packages/89/c0/8ee8767cdfa71a85a934fedcba1ac8b9f43b12f8a451621ee8ebd0cb3a25/delune-0.2b1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "57a4746b38390d5abfde3ecdf3fda806",
"sha256": "400852ecc5b96c629df970a3cf8cd3e56c721d14fa32e01acc1fcb05bebc6916"
},
"downloads": -1,
"filename": "delune-0.2b1.tar.gz",
"has_sig": false,
"md5_digest": "57a4746b38390d5abfde3ecdf3fda806",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1730700,
"upload_time": "2017-09-14T06:45:54",
"upload_time_iso_8601": "2017-09-14T06:45:54.799877Z",
"url": "https://files.pythonhosted.org/packages/6e/db/1ae0fce34e4f9abd18d9ec59d354c5fb650a8c053517d4051cad4a59b7f1/delune-0.2b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.0.2": [
{
"comment_text": "",
"digests": {
"md5": "84d7ae2dba4dfa3042ffca4a9bb08d9c",
"sha256": "c8004695d0e2aa1d03c1e6769a7b30c6368b524e2b6bdd9f22a402e46a052ce3"
},
"downloads": -1,
"filename": "delune-0.3.0.2-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "84d7ae2dba4dfa3042ffca4a9bb08d9c",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 2056849,
"upload_time": "2017-09-15T11:31:06",
"upload_time_iso_8601": "2017-09-15T11:31:06.194156Z",
"url": "https://files.pythonhosted.org/packages/e2/2e/c3160af2db0070ab0bef0caae0dd8c5ae9754d49af3a0291e381f31ab903/delune-0.3.0.2-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a54d4f3314330ebe801f8f66884db410",
"sha256": "d34e1eaf297eef8f46c4e3c310c0a36c1016dce222fae056702e7426def34fa8"
},
"downloads": -1,
"filename": "delune-0.3.0.2.tar.gz",
"has_sig": false,
"md5_digest": "a54d4f3314330ebe801f8f66884db410",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1733324,
"upload_time": "2017-09-15T11:31:12",
"upload_time_iso_8601": "2017-09-15T11:31:12.585380Z",
"url": "https://files.pythonhosted.org/packages/0e/1a/17aafc24bc5c8f5ef01ac9b10ad7d63770a15fde8264349bc77f7a20b7bb/delune-0.3.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "98181634f39b3dfe26355e58d3060591",
"sha256": "1279745e4163e3b57d6b42212ba6108d37156123eda5d71cd991646c05897c9a"
},
"downloads": -1,
"filename": "delune-0.3.1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "98181634f39b3dfe26355e58d3060591",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1953868,
"upload_time": "2017-09-23T03:32:03",
"upload_time_iso_8601": "2017-09-23T03:32:03.155077Z",
"url": "https://files.pythonhosted.org/packages/7b/0f/e09f7485599ddc7d85e2178c0d3d12ccedb90966ba40c4948c67c2d30904/delune-0.3.1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "ca005758f97691dc784da1b867e63d68",
"sha256": "a59e51c7c5c8e54b194dca42f9e685c00ed2adabe353eeb616bd5d5b52b1a5ec"
},
"downloads": -1,
"filename": "delune-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "ca005758f97691dc784da1b867e63d68",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737078,
"upload_time": "2017-09-23T03:32:10",
"upload_time_iso_8601": "2017-09-23T03:32:10.518251Z",
"url": "https://files.pythonhosted.org/packages/da/ae/577e8a516c8893a83ab8a6e1c578b812b44da29fea95f247c7b616396487/delune-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.1": [
{
"comment_text": "",
"digests": {
"md5": "7892fe0ef156dfa2125b952c26ddfc29",
"sha256": "a381fafbeaa756f9da50e172bcd66d421e98dc795ed18f09dd823a5e4777c3eb"
},
"downloads": -1,
"filename": "delune-0.3.1.1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "7892fe0ef156dfa2125b952c26ddfc29",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1953888,
"upload_time": "2017-09-23T12:38:07",
"upload_time_iso_8601": "2017-09-23T12:38:07.715423Z",
"url": "https://files.pythonhosted.org/packages/db/5c/9ffef1652d6e239515a89c78b02720c5a810ca3e742b4a9836a787a44bcd/delune-0.3.1.1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "3a26af17494bd1ffa6cc4374f0d6ece5",
"sha256": "4f03d69123a89a52aca520cf48bd98962c24997f9f8c36ff07ec6ebf51a0cdf0"
},
"downloads": -1,
"filename": "delune-0.3.1.1.tar.gz",
"has_sig": false,
"md5_digest": "3a26af17494bd1ffa6cc4374f0d6ece5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737033,
"upload_time": "2017-09-23T12:38:26",
"upload_time_iso_8601": "2017-09-23T12:38:26.045570Z",
"url": "https://files.pythonhosted.org/packages/f8/66/3c3a8b5da350907d742d384fe4b79ebf65d044c72041199e04603cceedc1/delune-0.3.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.2": [
{
"comment_text": "",
"digests": {
"md5": "d5b2e5b480399a79de7b8c686cb1145e",
"sha256": "8cc605afa10315305017aea86fdcd3e691b9ed90164a8877c83c84bd567a931a"
},
"downloads": -1,
"filename": "delune-0.3.1.2-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "d5b2e5b480399a79de7b8c686cb1145e",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1953887,
"upload_time": "2017-09-24T12:47:53",
"upload_time_iso_8601": "2017-09-24T12:47:53.028817Z",
"url": "https://files.pythonhosted.org/packages/80/87/01b9e5a38360000bdb21f7bec5753351537ab3b0ee9afc5505aa2e6eaf04/delune-0.3.1.2-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "f0988f8ef0269e1903aef6d684b3411f",
"sha256": "298b3a2ad419480f4fa98388cdad684adda7c1b0f5457cf89b48438bce514754"
},
"downloads": -1,
"filename": "delune-0.3.1.2.tar.gz",
"has_sig": false,
"md5_digest": "f0988f8ef0269e1903aef6d684b3411f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737022,
"upload_time": "2017-09-24T12:47:59",
"upload_time_iso_8601": "2017-09-24T12:47:59.233963Z",
"url": "https://files.pythonhosted.org/packages/22/ca/29c4d942cde5627798b8e881cb6717a4b924b31c526abe7da8e66fec89f0/delune-0.3.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.3": [
{
"comment_text": "",
"digests": {
"md5": "ed1da96bb4bde54a0ffcff80e8c68f42",
"sha256": "c8d05c5923e0ef1a0d63f35545ce5c2d68915af12ddef123aef8be4afb326594"
},
"downloads": -1,
"filename": "delune-0.3.1.3-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "ed1da96bb4bde54a0ffcff80e8c68f42",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1954314,
"upload_time": "2017-09-26T13:16:48",
"upload_time_iso_8601": "2017-09-26T13:16:48.055770Z",
"url": "https://files.pythonhosted.org/packages/2d/c7/55ff7a0110b0cf398ad42c4200b8e24c132f4a40d9feb55fe855b92a5ecf/delune-0.3.1.3-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "d58c0177c7fa5db42fc05317884fb966",
"sha256": "d0612c03d945482fc7ec8465a84c0ab0b49386dc074e8e8c97a011b5d4547b8c"
},
"downloads": -1,
"filename": "delune-0.3.1.3.tar.gz",
"has_sig": false,
"md5_digest": "d58c0177c7fa5db42fc05317884fb966",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737369,
"upload_time": "2017-09-26T13:17:07",
"upload_time_iso_8601": "2017-09-26T13:17:07.684487Z",
"url": "https://files.pythonhosted.org/packages/e0/c7/95e41cebe8cc5faf34cb110bc42a86de9434c56132ffe73f1f011ab00bee/delune-0.3.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.4": [
{
"comment_text": "",
"digests": {
"md5": "220a20c5890a890c8eadf16bfce1917b",
"sha256": "2690a720ac8bb29036469d9ab09a6947bd860e45df03cb298d4f25279f290736"
},
"downloads": -1,
"filename": "delune-0.3.1.4-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "220a20c5890a890c8eadf16bfce1917b",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1955821,
"upload_time": "2017-10-23T10:09:53",
"upload_time_iso_8601": "2017-10-23T10:09:53.847762Z",
"url": "https://files.pythonhosted.org/packages/74/e7/052bde207b25dadbce7d03c6387c84fba485c5c5b19e5f8cbc2ae51f0bde/delune-0.3.1.4-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "71a212aada4d4383d33dfa1370a67703",
"sha256": "cbed31b7564911d7699aab755c90a840c8b05ef97961f3bd23b6e7cd1578f6f3"
},
"downloads": -1,
"filename": "delune-0.3.1.4.tar.gz",
"has_sig": false,
"md5_digest": "71a212aada4d4383d33dfa1370a67703",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1738199,
"upload_time": "2017-10-23T10:09:59",
"upload_time_iso_8601": "2017-10-23T10:09:59.969979Z",
"url": "https://files.pythonhosted.org/packages/d7/ff/a488f9cdd0f912b62d1e83e573548fa4b8149f206bda7cb0b55cc3b5eb3b/delune-0.3.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.5": [
{
"comment_text": "",
"digests": {
"md5": "253e71993da4efac227e803242a52e47",
"sha256": "b6ee37a2e7f695e42053abf7c616aec5766a67508081830c5c52f1816a534cf7"
},
"downloads": -1,
"filename": "delune-0.3.1.5-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "253e71993da4efac227e803242a52e47",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1957069,
"upload_time": "2017-10-24T13:04:01",
"upload_time_iso_8601": "2017-10-24T13:04:01.154371Z",
"url": "https://files.pythonhosted.org/packages/29/93/01bdd7db1c469b9697a1ef962e2824d34ecd709ca22eb754c34acb4216be/delune-0.3.1.5-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "8f9b2ca658ec16d61e0684d56760a013",
"sha256": "581a9356919e86b7c4d7607e307505cee0da4015d9167ae1e201c46fcc27f0cc"
},
"downloads": -1,
"filename": "delune-0.3.1.5.tar.gz",
"has_sig": false,
"md5_digest": "8f9b2ca658ec16d61e0684d56760a013",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1739146,
"upload_time": "2017-10-24T13:04:08",
"upload_time_iso_8601": "2017-10-24T13:04:08.500843Z",
"url": "https://files.pythonhosted.org/packages/0d/54/07d90b96f9ced705c65d88dc97485784d5cc1bfd053ee5e06cdec41895f6/delune-0.3.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.6": [
{
"comment_text": "",
"digests": {
"md5": "05f62e23b9e80dacd2e86dbf524a0b2d",
"sha256": "7bf16c5548326a05061021401da8ff3f853221c45668a7bdc479c3547ab22fc3"
},
"downloads": -1,
"filename": "delune-0.3.1.6-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "05f62e23b9e80dacd2e86dbf524a0b2d",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1957117,
"upload_time": "2017-10-25T11:19:11",
"upload_time_iso_8601": "2017-10-25T11:19:11.701952Z",
"url": "https://files.pythonhosted.org/packages/89/4e/216244591c3c7889ba00a01f48d6d24050a3ab4bdda856382213b3c5a96d/delune-0.3.1.6-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "32e6066a9aa347ac0818c28de717c609",
"sha256": "6bc15dcad42a3bc30f47ae30a8051f690e2df93d5a9c13934e54ad2d69d3910d"
},
"downloads": -1,
"filename": "delune-0.3.1.6.tar.gz",
"has_sig": false,
"md5_digest": "32e6066a9aa347ac0818c28de717c609",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1739194,
"upload_time": "2017-10-25T11:19:17",
"upload_time_iso_8601": "2017-10-25T11:19:17.933424Z",
"url": "https://files.pythonhosted.org/packages/31/df/d1cfea7037b811c8c94a49af8b1523eff40202068a62e33c28c63a16c117/delune-0.3.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1.7": [
{
"comment_text": "",
"digests": {
"md5": "ec0ee3a733834fad5c05ea09dcb5e8d4",
"sha256": "bb6add5abefa7fa4a7fad460fd4fc93ec8efc5bda7e989e0fbb22a5ae9e541f1"
},
"downloads": -1,
"filename": "delune-0.3.1.7-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "ec0ee3a733834fad5c05ea09dcb5e8d4",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1965052,
"upload_time": "2018-02-10T10:42:13",
"upload_time_iso_8601": "2018-02-10T10:42:13.435352Z",
"url": "https://files.pythonhosted.org/packages/19/21/c65411825460e157c9bdfd9fe6c0e6f2f73c34cd9c06c68ea8689fdd5a8f/delune-0.3.1.7-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a454f038559a50c07666e69699660fc7",
"sha256": "bca40aa8fb6c55b38e4fced9ac1b8983edc6c03c46be7f53cf794328d81732df"
},
"downloads": -1,
"filename": "delune-0.3.1.7.tar.gz",
"has_sig": false,
"md5_digest": "a454f038559a50c07666e69699660fc7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1739127,
"upload_time": "2018-02-10T10:42:19",
"upload_time_iso_8601": "2018-02-10T10:42:19.207139Z",
"url": "https://files.pythonhosted.org/packages/be/d6/42e8bb0c97028bcc9efc70894d53fa3f0e162369fa7076e653e3d4fbb398/delune-0.3.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b1": [
{
"comment_text": "",
"digests": {
"md5": "a84c2c35bb8fdf605be07d07be78c745",
"sha256": "4a1eb9af6ebf4a1afbd58a054382d1e328d1ab6f54d26d6adf44acb01d02f88e"
},
"downloads": -1,
"filename": "delune-0.3.1b1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "a84c2c35bb8fdf605be07d07be78c745",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1918467,
"upload_time": "2017-09-16T04:36:14",
"upload_time_iso_8601": "2017-09-16T04:36:14.702448Z",
"url": "https://files.pythonhosted.org/packages/ae/64/e2d84c308a1d0daace4e9819d465afccc1c074cc4dea30ab7202d8450de3/delune-0.3.1b1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "7b07dbdef133d5273679dcf7539fa8b5",
"sha256": "35d8efb98ca6f89ff29d5e5a61a56a3ba9695e17f748e71d3f71665b95fff10f"
},
"downloads": -1,
"filename": "delune-0.3.1b1.tar.gz",
"has_sig": false,
"md5_digest": "7b07dbdef133d5273679dcf7539fa8b5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1733916,
"upload_time": "2017-09-16T04:36:20",
"upload_time_iso_8601": "2017-09-16T04:36:20.624631Z",
"url": "https://files.pythonhosted.org/packages/38/e1/5b4aefb28f6a91aebf3d4930cf710f3090a43598b7429ba3fa13b08541bf/delune-0.3.1b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b2": [
{
"comment_text": "",
"digests": {
"md5": "5b21b0e2d2cd598aa8aa457717a402e5",
"sha256": "4595fe4ac30e4afbf5abffe61d52d227b6284e6c4f10777720d038d5972df679"
},
"downloads": -1,
"filename": "delune-0.3.1b2-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "5b21b0e2d2cd598aa8aa457717a402e5",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1926878,
"upload_time": "2017-09-16T05:43:11",
"upload_time_iso_8601": "2017-09-16T05:43:11.932779Z",
"url": "https://files.pythonhosted.org/packages/e5/37/5810f4074510d508897d76d0fc2d007005d27b74b97e70438964ba89751d/delune-0.3.1b2-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "903fb8b69967253fe62bca1a1985954a",
"sha256": "a315a6ea31b77f296451ab003eed448a4a42fe74531174c9bed7db76a39d10db"
},
"downloads": -1,
"filename": "delune-0.3.1b2.tar.gz",
"has_sig": false,
"md5_digest": "903fb8b69967253fe62bca1a1985954a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1734430,
"upload_time": "2017-09-16T05:43:20",
"upload_time_iso_8601": "2017-09-16T05:43:20.085049Z",
"url": "https://files.pythonhosted.org/packages/fa/81/9b794382321f146bd18860d3b4d20045a5b3eb915eab3381672003f47a88/delune-0.3.1b2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b3": [
{
"comment_text": "",
"digests": {
"md5": "1276efcf8d19ec33b92e8bef253ab48c",
"sha256": "513f625b1f63ca2df4ad331a7b6572966999a958cf5a30dcd8014edb0c755025"
},
"downloads": -1,
"filename": "delune-0.3.1b3-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "1276efcf8d19ec33b92e8bef253ab48c",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1926892,
"upload_time": "2017-09-16T07:14:03",
"upload_time_iso_8601": "2017-09-16T07:14:03.456077Z",
"url": "https://files.pythonhosted.org/packages/8f/5b/b136b14aa6a33053a9b5ec05ea33144a80ce24f168c92662e8d489a65895/delune-0.3.1b3-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "ec9f9047627fd7488551963319110dbd",
"sha256": "6f6391922383b2704692de8c1f41924adfac4659c3ab23a29e4fa00584ac769c"
},
"downloads": -1,
"filename": "delune-0.3.1b3.tar.gz",
"has_sig": false,
"md5_digest": "ec9f9047627fd7488551963319110dbd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1734415,
"upload_time": "2017-09-16T07:14:21",
"upload_time_iso_8601": "2017-09-16T07:14:21.175316Z",
"url": "https://files.pythonhosted.org/packages/6f/79/d4e8e2d9561fa8facc53faf599c0c35daf760f7ece3a727f1a235680b4c9/delune-0.3.1b3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b4": [
{
"comment_text": "",
"digests": {
"md5": "40adb6afcee11ecb3ba14329c76d155d",
"sha256": "a38928198426b781944452aa47d4b9fc44b0a92d4c15b3968eae3f0b08021f72"
},
"downloads": -1,
"filename": "delune-0.3.1b4-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "40adb6afcee11ecb3ba14329c76d155d",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1949498,
"upload_time": "2017-09-17T04:10:44",
"upload_time_iso_8601": "2017-09-17T04:10:44.568776Z",
"url": "https://files.pythonhosted.org/packages/1a/bc/e529245c145b36060c165819b2a2272b4090cd9cf3944b94a6074d075d4b/delune-0.3.1b4-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "a46bc02e9874f9cce9e217d6072bd864",
"sha256": "d9a5bd472541c00a749c2a9661bbf5f31487292cbe69d0eb89a098c72d1530b5"
},
"downloads": -1,
"filename": "delune-0.3.1b4.tar.gz",
"has_sig": false,
"md5_digest": "a46bc02e9874f9cce9e217d6072bd864",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1735599,
"upload_time": "2017-09-17T04:11:05",
"upload_time_iso_8601": "2017-09-17T04:11:05.008108Z",
"url": "https://files.pythonhosted.org/packages/77/77/b38065bb1d14e8161d6cf83705420e3521c27c20a10f2601921f301e091f/delune-0.3.1b4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b5": [
{
"comment_text": "",
"digests": {
"md5": "9434482f6a47448e294d1379f67466ea",
"sha256": "cc41de142e9203b9c8b37d9645cb09a7c6e13cbb147900a5b66447b52faebb10"
},
"downloads": -1,
"filename": "delune-0.3.1b5-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "9434482f6a47448e294d1379f67466ea",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1949500,
"upload_time": "2017-09-17T04:13:41",
"upload_time_iso_8601": "2017-09-17T04:13:41.170573Z",
"url": "https://files.pythonhosted.org/packages/e7/60/98ca9c160e3dba597fc1fe79ad15633447449dd8b65d94a372d2a58ae452/delune-0.3.1b5-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b6": [
{
"comment_text": "",
"digests": {
"md5": "9964595506b2a1a8756c12a23adbc50e",
"sha256": "c4ac5220996bb81c38dcc5f89f3ed9c4fa80f1d2d2d01038397a7210ff89c36e"
},
"downloads": -1,
"filename": "delune-0.3.1b6-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "9964595506b2a1a8756c12a23adbc50e",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1950518,
"upload_time": "2017-09-18T10:18:17",
"upload_time_iso_8601": "2017-09-18T10:18:17.534316Z",
"url": "https://files.pythonhosted.org/packages/33/f8/0762b920059272c8a785756caa573a37aaec465c3b0e1550647374d525d6/delune-0.3.1b6-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "eaef5829999666093d00d75514257844",
"sha256": "95455e940026300a333711b6acf6a6853c76879b799d69b7ea515f824c871325"
},
"downloads": -1,
"filename": "delune-0.3.1b6.tar.gz",
"has_sig": false,
"md5_digest": "eaef5829999666093d00d75514257844",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737066,
"upload_time": "2017-09-18T10:18:27",
"upload_time_iso_8601": "2017-09-18T10:18:27.808544Z",
"url": "https://files.pythonhosted.org/packages/e4/cd/0f9dfe0611e9374746a29c16638e611b13b38950d50f911a954fc9620cae/delune-0.3.1b6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b7": [
{
"comment_text": "",
"digests": {
"md5": "b0cc327eb974d5ac75b1fa788a89e856",
"sha256": "4294331ad5690799a8eb09df3ffca55c4230baeecab098154d5fd3ce61ccbee9"
},
"downloads": -1,
"filename": "delune-0.3.1b7-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "b0cc327eb974d5ac75b1fa788a89e856",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1950977,
"upload_time": "2017-09-19T01:23:23",
"upload_time_iso_8601": "2017-09-19T01:23:23.154780Z",
"url": "https://files.pythonhosted.org/packages/f2/be/b2559ca01868793e80a9d60013f1c0525c67b8fab5082cee952bd66f115b/delune-0.3.1b7-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "c32af87891a734fd2abd642394795145",
"sha256": "1ca0a6f786b97889df66deff1bf518c9a9b337540a4ae80d43b5ed8ca4571d10"
},
"downloads": -1,
"filename": "delune-0.3.1b7.tar.gz",
"has_sig": false,
"md5_digest": "c32af87891a734fd2abd642394795145",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737443,
"upload_time": "2017-09-19T01:23:29",
"upload_time_iso_8601": "2017-09-19T01:23:29.505178Z",
"url": "https://files.pythonhosted.org/packages/2f/42/503a33c0563c5f644b9ad7d8a431a9b783dbb81b19f7d3188f5d9dcbe46e/delune-0.3.1b7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b8": [
{
"comment_text": "",
"digests": {
"md5": "d78f8364336099ae3d47b7b7a82dfb3d",
"sha256": "fa789fbd61ee57d44fb063599d8cee2890b6b838ffc4c8cd9a84db004a99a1b6"
},
"downloads": -1,
"filename": "delune-0.3.1b8-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "d78f8364336099ae3d47b7b7a82dfb3d",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1950937,
"upload_time": "2017-09-22T06:10:39",
"upload_time_iso_8601": "2017-09-22T06:10:39.263960Z",
"url": "https://files.pythonhosted.org/packages/a2/42/75eb0277d634ae7e4c37af386f8f361f53548f30c50cfc9e97a994312de5/delune-0.3.1b8-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "fe111a77466d31c53cdf82d669c9c98d",
"sha256": "f9b09b3ed72dfce2bccc248669568be9941dedce90313536b2adc4f6508b579c"
},
"downloads": -1,
"filename": "delune-0.3.1b8.tar.gz",
"has_sig": false,
"md5_digest": "fe111a77466d31c53cdf82d669c9c98d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737446,
"upload_time": "2017-09-22T06:10:52",
"upload_time_iso_8601": "2017-09-22T06:10:52.280251Z",
"url": "https://files.pythonhosted.org/packages/3a/c1/4333e47d4d76cbb5738ea1993222fb757c32045bcab932bba4e743f4a987/delune-0.3.1b8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.1b9": [
{
"comment_text": "",
"digests": {
"md5": "a79423ab24139229df057d6da48ca6ee",
"sha256": "5a659fd2693a1bb3edceeee9a517a3b95dd3d6a3d7fa4421db826d0274e888ea"
},
"downloads": -1,
"filename": "delune-0.3.1b9-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "a79423ab24139229df057d6da48ca6ee",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 1951030,
"upload_time": "2017-09-23T00:00:52",
"upload_time_iso_8601": "2017-09-23T00:00:52.989383Z",
"url": "https://files.pythonhosted.org/packages/3e/b3/4c1e8286a01a9d9169f93a53942a2512eaba41f818f277d4bbf26d60102c/delune-0.3.1b9-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "48e27ae8457e42ab53dcfa30e7f68a41",
"sha256": "5885aafdee25ef0d5f213a8dbdf14cfbd36c0113fdba8c721c386dbdb16a1b49"
},
"downloads": -1,
"filename": "delune-0.3.1b9.tar.gz",
"has_sig": false,
"md5_digest": "48e27ae8457e42ab53dcfa30e7f68a41",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737392,
"upload_time": "2017-09-23T00:01:20",
"upload_time_iso_8601": "2017-09-23T00:01:20.673461Z",
"url": "https://files.pythonhosted.org/packages/25/58/9b0eeb72feada0743acbfe7768d11986e2e67ca4fbb229ffbbe6e3e1d889/delune-0.3.1b9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "19b6478a74439328d65fe71842d7add8",
"sha256": "e811d78b9f9af5ac106ecaa864a938e9adae33abbf5a27b6cc9dd7b0eebf1463"
},
"downloads": -1,
"filename": "delune-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "19b6478a74439328d65fe71842d7add8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1723225,
"upload_time": "2019-02-07T16:30:28",
"upload_time_iso_8601": "2019-02-07T16:30:28.225968Z",
"url": "https://files.pythonhosted.org/packages/c8/82/102d3c9e90cc68afc4d25d49c5945dcd20d119b42de205bf280906405aab/delune-0.3.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3.2.1": [
{
"comment_text": "",
"digests": {
"md5": "ed4648ef7997e2f3622848f4195f4469",
"sha256": "6082b2f5bb61ec4e5368c830025f438fff979383fd600ba4b6f15065c408ee2d"
},
"downloads": -1,
"filename": "delune-0.3.2.1.tar.gz",
"has_sig": false,
"md5_digest": "ed4648ef7997e2f3622848f4195f4469",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1723286,
"upload_time": "2019-02-09T23:41:02",
"upload_time_iso_8601": "2019-02-09T23:41:02.308291Z",
"url": "https://files.pythonhosted.org/packages/d3/ba/cfa6264835143a19abd19afb672075c4b42bc2983daefb7aae656ff2ed03/delune-0.3.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3b1": [
{
"comment_text": "",
"digests": {
"md5": "358cbfec427d674614690179af7f20a1",
"sha256": "bc13757b7cdaa1bb91183b3fd727766e8ea32c66049e2bc91da39d34abadf1b8"
},
"downloads": -1,
"filename": "delune-0.3b1-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "358cbfec427d674614690179af7f20a1",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 2056407,
"upload_time": "2017-09-15T07:01:18",
"upload_time_iso_8601": "2017-09-15T07:01:18.253390Z",
"url": "https://files.pythonhosted.org/packages/fe/ec/13e1e883bb841d72c61153c28ea312826eee01ca6eff01c085cb7f047092/delune-0.3b1-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "476baa5d732f82c6d0c95e3684b6f2d1",
"sha256": "fc43c954d9dcf09a91b3bcd4e475fea4e3102af37d48809fc0d3f51b0dd61354"
},
"downloads": -1,
"filename": "delune-0.3b1.tar.gz",
"has_sig": false,
"md5_digest": "476baa5d732f82c6d0c95e3684b6f2d1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1732692,
"upload_time": "2017-09-15T07:01:24",
"upload_time_iso_8601": "2017-09-15T07:01:24.423191Z",
"url": "https://files.pythonhosted.org/packages/5f/f9/48705540f55f5af7b42a5760fa46fd966656ddab1ca81b101fae92e9004f/delune-0.3b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3b2": [
{
"comment_text": "",
"digests": {
"md5": "0a858e064e3fc910e2dc6e92ad66e44e",
"sha256": "30ee667f910c2cd0b37ae607e5926d05bf7ca53bf51d50cd0bad6af34101773b"
},
"downloads": -1,
"filename": "delune-0.3b2-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "0a858e064e3fc910e2dc6e92ad66e44e",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 2056311,
"upload_time": "2017-09-15T07:03:02",
"upload_time_iso_8601": "2017-09-15T07:03:02.043744Z",
"url": "https://files.pythonhosted.org/packages/72/77/b42057caa108d9bb328efd7b7e47304c9738383d5594ad61191ae2c88cdf/delune-0.3b2-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "bb7bb9f8619fa7ddd132113c454ebe89",
"sha256": "ea6e1e8572408aab073c95c85d81fdc9d88c7597147df2680d22d4db2b78d391"
},
"downloads": -1,
"filename": "delune-0.3b2.tar.gz",
"has_sig": false,
"md5_digest": "bb7bb9f8619fa7ddd132113c454ebe89",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1732555,
"upload_time": "2017-09-15T07:03:08",
"upload_time_iso_8601": "2017-09-15T07:03:08.247213Z",
"url": "https://files.pythonhosted.org/packages/77/af/b2fd7a9da197c20c5672a7d2668bd2ba6db28a35c95a56828aef398328e9/delune-0.3b2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.3b3": [
{
"comment_text": "",
"digests": {
"md5": "e028b76c2831b188841c603601a389fd",
"sha256": "62cc78f6846a1b9bc6ee2dedbc68d60013349c47d85f91941eb19899cea8bc8c"
},
"downloads": -1,
"filename": "delune-0.3b3-cp35-cp35m-win_amd64.whl",
"has_sig": false,
"md5_digest": "e028b76c2831b188841c603601a389fd",
"packagetype": "bdist_wheel",
"python_version": "3.5",
"requires_python": null,
"size": 2056309,
"upload_time": "2017-09-15T09:33:05",
"upload_time_iso_8601": "2017-09-15T09:33:05.679368Z",
"url": "https://files.pythonhosted.org/packages/28/1e/07c67fcd30fccc4a3edb34150c4c881cb17bb8242bc94c3d953feab55433/delune-0.3b3-cp35-cp35m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "8c622753f1fe592ec53a264f515ede60",
"sha256": "088b7067196758c75f807960cd666fa915d3c091617bfbd7995012bb0fccc4c2"
},
"downloads": -1,
"filename": "delune-0.3b3.tar.gz",
"has_sig": false,
"md5_digest": "8c622753f1fe592ec53a264f515ede60",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1732556,
"upload_time": "2017-09-15T09:33:14",
"upload_time_iso_8601": "2017-09-15T09:33:14.244920Z",
"url": "https://files.pythonhosted.org/packages/cb/a9/dfef61c772a0bd302c1abc491a667e7d623f8ce72702118797f1f7bdc9eb/delune-0.3b3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b1": [
{
"comment_text": "",
"digests": {
"md5": "dc555283723427c98b29c2f0cd49ad33",
"sha256": "7236a6bd0ed91de8089fe2c4817800b0217266f4e41aa87e26f9d826b5b36acd"
},
"downloads": -1,
"filename": "delune-0.4b1.tar.gz",
"has_sig": false,
"md5_digest": "dc555283723427c98b29c2f0cd49ad33",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1737885,
"upload_time": "2018-06-02T13:32:45",
"upload_time_iso_8601": "2018-06-02T13:32:45.930178Z",
"url": "https://files.pythonhosted.org/packages/38/2e/d4d389064670c9502dd9067e550d28cb2f35abf9a1bf30765bdae7371a68/delune-0.4b1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b10": [
{
"comment_text": "",
"digests": {
"md5": "b8f4d86932015797ff62cb2c6bf6ac69",
"sha256": "befa8b4aeec50dbe8422f2d2a95c064f9ceff2c8c4c6f924cf22f4a3f5479246"
},
"downloads": -1,
"filename": "delune-0.4b10.tar.gz",
"has_sig": false,
"md5_digest": "b8f4d86932015797ff62cb2c6bf6ac69",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1696653,
"upload_time": "2019-06-05T13:22:11",
"upload_time_iso_8601": "2019-06-05T13:22:11.224434Z",
"url": "https://files.pythonhosted.org/packages/d0/db/3bdfecd3a96a5749df1b3eea4e6cf7cab4946cf40e51ea500eafbf810609/delune-0.4b10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b11": [
{
"comment_text": "",
"digests": {
"md5": "a05f4d7f0260c446c4ac62efd899ee76",
"sha256": "232ad5948c66433b0de912090a7140c80c6ba8b388f0af54576cea8305ca9d1e"
},
"downloads": -1,
"filename": "delune-0.4b11.tar.gz",
"has_sig": false,
"md5_digest": "a05f4d7f0260c446c4ac62efd899ee76",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1696330,
"upload_time": "2019-10-25T12:04:41",
"upload_time_iso_8601": "2019-10-25T12:04:41.459160Z",
"url": "https://files.pythonhosted.org/packages/ef/da/8f578476eb5c7c02d9f697472512cb423977b954a39ab6f3a9afaf2972ed/delune-0.4b11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b12": [
{
"comment_text": "",
"digests": {
"md5": "830436d5550a2792c972aed477e48987",
"sha256": "70765260dd864b96317b1d1bf078c264a11708609de53f27f6b871413aa2a911"
},
"downloads": -1,
"filename": "delune-0.4b12.tar.gz",
"has_sig": false,
"md5_digest": "830436d5550a2792c972aed477e48987",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1695861,
"upload_time": "2019-10-25T12:07:18",
"upload_time_iso_8601": "2019-10-25T12:07:18.328755Z",
"url": "https://files.pythonhosted.org/packages/8c/37/15291b59bc68e762dee554f6c318d84620ee5b70505153ebf81b624b0ee4/delune-0.4b12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b13": [
{
"comment_text": "",
"digests": {
"md5": "9d9f5ae050b705f77b68e3126deacb5a",
"sha256": "a9c4a029c9c781724d3f31fc6007394091dcfc1c79e1481cc8862060230909d2"
},
"downloads": -1,
"filename": "delune-0.4b13.tar.gz",
"has_sig": false,
"md5_digest": "9d9f5ae050b705f77b68e3126deacb5a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1695905,
"upload_time": "2020-08-16T10:16:48",
"upload_time_iso_8601": "2020-08-16T10:16:48.856020Z",
"url": "https://files.pythonhosted.org/packages/dc/fc/43005a4d244a9d4b65dda20ae9cd21db4cec9373de12db66034b6f338fe7/delune-0.4b13.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b14": [
{
"comment_text": "",
"digests": {
"md5": "181931d1f74f8d933b7c1111d02967e0",
"sha256": "749cbf4127b69cfa275ab9b4598b3269725ed11b7104bdd9f65f99d6bfdf35e3"
},
"downloads": -1,
"filename": "delune-0.4b14.tar.gz",
"has_sig": false,
"md5_digest": "181931d1f74f8d933b7c1111d02967e0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1696907,
"upload_time": "2020-09-05T05:21:19",
"upload_time_iso_8601": "2020-09-05T05:21:19.528900Z",
"url": "https://files.pythonhosted.org/packages/1a/3f/f65300a987b75f807d8f7bd32cea89f8b6e238dd403152acf388fefc9afd/delune-0.4b14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b15": [
{
"comment_text": "",
"digests": {
"md5": "10fbc1ebfe48f4308cf83403718e69fe",
"sha256": "b20f1dacebb3af0f518432b604db6a516f6667621f2d8b8a314222d46eb0f3b4"
},
"downloads": -1,
"filename": "delune-0.4b15.tar.gz",
"has_sig": false,
"md5_digest": "10fbc1ebfe48f4308cf83403718e69fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1698094,
"upload_time": "2021-05-01T02:24:42",
"upload_time_iso_8601": "2021-05-01T02:24:42.226506Z",
"url": "https://files.pythonhosted.org/packages/ab/fb/6f8b169bae17f3e41abcd1eb9ec5243edfe20e5cf40fe4830594407032dd/delune-0.4b15.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b16": [
{
"comment_text": "",
"digests": {
"md5": "465a852d8d5511a62a015e58a2d97445",
"sha256": "8ae204eb863aff86f3127f6cc8357b6a381e1218af0d44ac883a6dc64d9d865f"
},
"downloads": -1,
"filename": "delune-0.4b16.tar.gz",
"has_sig": false,
"md5_digest": "465a852d8d5511a62a015e58a2d97445",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1698106,
"upload_time": "2021-05-02T23:16:15",
"upload_time_iso_8601": "2021-05-02T23:16:15.490885Z",
"url": "https://files.pythonhosted.org/packages/90/ae/614c0386f0676f91a279ab81b009b0cefe27137a4c76d8785fe24150a18f/delune-0.4b16.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b17": [
{
"comment_text": "",
"digests": {
"md5": "b0d1c12b72725d97100df6199397a6aa",
"sha256": "09ba0b4e7fe75077a2a49de05232cfde39750f732337df40e74012cf972d3526"
},
"downloads": -1,
"filename": "delune-0.4b17.tar.gz",
"has_sig": false,
"md5_digest": "b0d1c12b72725d97100df6199397a6aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1698016,
"upload_time": "2021-05-03T01:15:44",
"upload_time_iso_8601": "2021-05-03T01:15:44.565750Z",
"url": "https://files.pythonhosted.org/packages/1d/3b/a81768d73f38576045af767f9c7df7493f00759e0c4df993757d76844cf0/delune-0.4b17.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b18": [
{
"comment_text": "",
"digests": {
"md5": "73c27382a662afd3de7b8fec3364e6ac",
"sha256": "d35c08ad670315a1c38bf5a3b9efc7815bb614d1bd17ace2bde1931e5da7c154"
},
"downloads": -1,
"filename": "delune-0.4b18.tar.gz",
"has_sig": false,
"md5_digest": "73c27382a662afd3de7b8fec3364e6ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1698007,
"upload_time": "2021-05-03T05:41:10",
"upload_time_iso_8601": "2021-05-03T05:41:10.393792Z",
"url": "https://files.pythonhosted.org/packages/e6/bc/086876b2b27e276a3d3fb5300af5085ed594ce357622a77b72f3b4ef68dd/delune-0.4b18.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b2": [
{
"comment_text": "",
"digests": {
"md5": "987b0e9fc52465841482fcb653efc39b",
"sha256": "30cc88399406bc1c860145be65a504577862a52851afddc5ad551599a87e6da5"
},
"downloads": -1,
"filename": "delune-0.4b2.tar.gz",
"has_sig": false,
"md5_digest": "987b0e9fc52465841482fcb653efc39b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1740333,
"upload_time": "2018-06-02T13:39:58",
"upload_time_iso_8601": "2018-06-02T13:39:58.171367Z",
"url": "https://files.pythonhosted.org/packages/2f/c9/8c1b6bbb76229559e20f136969b7a5c0cd4f822118c7bfff3917dceb120b/delune-0.4b2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b20": [
{
"comment_text": "",
"digests": {
"md5": "4f0755a94b7b3f891d58a9315ab4eabd",
"sha256": "6ac613096dd274a1a7645420becd0863417ff6d01117e41de83b37f5c37c633e"
},
"downloads": -1,
"filename": "delune-0.4b20.tar.gz",
"has_sig": false,
"md5_digest": "4f0755a94b7b3f891d58a9315ab4eabd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1714310,
"upload_time": "2021-11-07T08:42:34",
"upload_time_iso_8601": "2021-11-07T08:42:34.886731Z",
"url": "https://files.pythonhosted.org/packages/88/ed/f2cebea218deab308f5ec867754d4488800f025068ba39c1070f68ff01bb/delune-0.4b20.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b21": [
{
"comment_text": "",
"digests": {
"md5": "1a0f4a274cc0a91bac32dc0cbabb989c",
"sha256": "a739fb44d398a79941b8ee4345139858bd45169bdbcdf8ca281f22a17112a4d1"
},
"downloads": -1,
"filename": "delune-0.4b21.tar.gz",
"has_sig": false,
"md5_digest": "1a0f4a274cc0a91bac32dc0cbabb989c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1702533,
"upload_time": "2022-04-25T12:20:36",
"upload_time_iso_8601": "2022-04-25T12:20:36.198693Z",
"url": "https://files.pythonhosted.org/packages/df/66/0048623e7d2f862cd417424e55dd8e26a78f42d2fe7cf640d9d68dc1e4f3/delune-0.4b21.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b3": [
{
"comment_text": "",
"digests": {
"md5": "b2292ecfd94765bcf69d8fe065d05095",
"sha256": "907b2c2b9cb9bfc419a3e3c0c10180d2bcb448e10e15334b8b39fd4551cedd59"
},
"downloads": -1,
"filename": "delune-0.4b3.tar.gz",
"has_sig": false,
"md5_digest": "b2292ecfd94765bcf69d8fe065d05095",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1722714,
"upload_time": "2018-06-03T04:15:52",
"upload_time_iso_8601": "2018-06-03T04:15:52.528708Z",
"url": "https://files.pythonhosted.org/packages/e6/15/c06e89de1dae05a622763e248114e4951162ad3d9bfe869fefead9afe195/delune-0.4b3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b4": [
{
"comment_text": "",
"digests": {
"md5": "fb3b9e8b4ce3cc65ee250219331d8301",
"sha256": "14db4b068df1982302e89d7060376f9e5ab46a0f1a45b8f8becd952ec63ccaec"
},
"downloads": -1,
"filename": "delune-0.4b4.tar.gz",
"has_sig": false,
"md5_digest": "fb3b9e8b4ce3cc65ee250219331d8301",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1722805,
"upload_time": "2018-06-03T07:50:59",
"upload_time_iso_8601": "2018-06-03T07:50:59.982674Z",
"url": "https://files.pythonhosted.org/packages/09/e8/9c79f0dc757a1ddf3d4aaae381f826a7ea85c41b7ca5f80a1c6c0679f78b/delune-0.4b4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b5": [
{
"comment_text": "",
"digests": {
"md5": "7b0f70978f395ed797434ec79b77b8af",
"sha256": "e98d51b061eec7e036be38a6373e16256095e47d8f3ce9a88c9c543103707bfa"
},
"downloads": -1,
"filename": "delune-0.4b5.tar.gz",
"has_sig": false,
"md5_digest": "7b0f70978f395ed797434ec79b77b8af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1723172,
"upload_time": "2019-01-16T10:20:43",
"upload_time_iso_8601": "2019-01-16T10:20:43.373024Z",
"url": "https://files.pythonhosted.org/packages/51/26/3bc21fb9a6071ff616d04a33730dab121b8a0129f38a5400b6214122aa09/delune-0.4b5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b7": [
{
"comment_text": "",
"digests": {
"md5": "00f250ba8aefe2a1370c389ac8fba580",
"sha256": "d98bcbfa8467ab9371712af07022ea88195e0a291a23bc42b2d6da2a91c3f3f2"
},
"downloads": -1,
"filename": "delune-0.4b7.tar.gz",
"has_sig": false,
"md5_digest": "00f250ba8aefe2a1370c389ac8fba580",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1696712,
"upload_time": "2019-02-15T10:26:48",
"upload_time_iso_8601": "2019-02-15T10:26:48.063755Z",
"url": "https://files.pythonhosted.org/packages/53/25/58709c5f3a0248df3daf2ba8b682f10095402b02d9827b9134ba2639ba69/delune-0.4b7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b8": [
{
"comment_text": "",
"digests": {
"md5": "dab3b7801d46a62a4bc45adf4b8702d0",
"sha256": "20e9943a69e00c3b4c7d906e26cbaefbdeffdaddb6138ca252c488bf24a43ed8"
},
"downloads": -1,
"filename": "delune-0.4b8.tar.gz",
"has_sig": false,
"md5_digest": "dab3b7801d46a62a4bc45adf4b8702d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1696616,
"upload_time": "2019-02-25T03:40:35",
"upload_time_iso_8601": "2019-02-25T03:40:35.927360Z",
"url": "https://files.pythonhosted.org/packages/50/b2/83a4bb6f299c262a11490a6420a9df36c2ae0b0c0856836469121372a16d/delune-0.4b8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"0.4b9": [
{
"comment_text": "",
"digests": {
"md5": "a1a368249be06a0e38e56840322ad582",
"sha256": "40f18a22031850702074f146fb0794da2df660a93bfb24129f6b6c3b2b655989"
},
"downloads": -1,
"filename": "delune-0.4b9.tar.gz",
"has_sig": false,
"md5_digest": "a1a368249be06a0e38e56840322ad582",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1696636,
"upload_time": "2019-03-24T07:47:08",
"upload_time_iso_8601": "2019-03-24T07:47:08.080445Z",
"url": "https://files.pythonhosted.org/packages/7c/40/8cb1303a4d388b5200f5a9f1b2018d049937dbb6b5733fb9ed22eca90cba/delune-0.4b9.tar.gz",
"yanked": false,
"yanked_reason": null
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "ed4648ef7997e2f3622848f4195f4469",
"sha256": "6082b2f5bb61ec4e5368c830025f438fff979383fd600ba4b6f15065c408ee2d"
},
"downloads": -1,
"filename": "delune-0.3.2.1.tar.gz",
"has_sig": false,
"md5_digest": "ed4648ef7997e2f3622848f4195f4469",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1723286,
"upload_time": "2019-02-09T23:41:02",
"upload_time_iso_8601": "2019-02-09T23:41:02.308291Z",
"url": "https://files.pythonhosted.org/packages/d3/ba/cfa6264835143a19abd19afb672075c4b42bc2983daefb7aae656ff2ed03/delune-0.3.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"vulnerabilities": []
}