{ "info": { "author": "Daniel McDonald", "author_email": "mcddjx@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "[![Build Status](https://travis-ci.org/interrogator/buzz.svg?branch=master)](https://travis-ci.org/interrogator/buzz)\n[![codecov.io](https://codecov.io/gh/interrogator/buzz/branch/master/graph/badge.svg)](https://codecov.io/gh/interrogator/buzz)\n[![readthedocs](https://readthedocs.org/projects/buzz/badge/?version=latest)](https://buzz.readthedocs.io/en/latest/)\n[![PyPI version](https://badge.fury.io/py/buzz.svg)](https://badge.fury.io/py/buzz)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)\n\n# buzz: python corpus linguistics\n\n\n> Version 3.1.0\n\n> *buzz* is a linguistics tool for parsing and then exploring plain or metadata-rich text. This README provides an overview of functionality. Visit the [full documentation](https://buzz.readthedocs.io/en/latest/) for a more complete user guide.\n\n## Install\n\n\n```bash\npip install buzz[word]\n# or\ngit clone http://github.com/interrogator/buzz\ncd buzz\npython setup.py install\n```\n\n## Frontend: *buzzword*\n\n*buzz* has an optional frontend, *buzzword*, for exploring parsed corpora. To use it, install:\n\n```bash\npip install buzz[word]\n```\n\nThen, generate a workspace, `cd` into it, and start:\n\n```bash\npython -m buzzword.create workspace\ncd workspace\npython -m buzzword\n```\n\nMore complete documentation is available [here](https://buzz.readthedocs.io/en/latest/buzzword/), as well from the main page of the app itself.\n\nA URL will be printed, which can be used to access the app in your browser.\n\n## Creating corpora\n\n*buzz* models plain text, or [CONLL-U formatted](https://universaldependencies.org/format.html) files. The remainder of this guide will assume that you are have plain text data, and want to process and analyse it on the command line using *buzz*\n\nFirst, you need to make sure that your corpus is in a format and structure that *buzz* can work with. This simply means putting all your text files into a folder, and optionally within subfolders (representing subcorpora).\n\nText files should be plain text, with a `.txt` extension. Importantly though, they can be augmented with metadata, which can be stored in two ways. First, speaker names can be added by using capital letters and a colon, much like in a script. Second, you can use XML style metadata markup. Here is an example file, `sopranos/s1/e01.txt`:\n\n```html\n\nMELFI: My understanding from Dr. Cusamano, your family physician, is you collapsed? Possibly a panic attack? \nTONY: They said it was a panic attack \nMELFI: You don't agree that you had a panic attack? \n...\n```\n\nIf you add a `meta` element at the start of the text file, it will be understood as file-level metadata. For sentence-specific metadata, the element should follow the sentence, ideally at the end of a line. Span- and token-level metadata should wrap the tokens you want to annotate. All metadata will be searchable later, so the more you can add, the more you can do with your corpus.\n\nTo load corpora as *buzz* objects:\n\n```python\nfrom buzz import Corpus\n\ncorpus = Corpus(\"sopranos\")\n```\n\nYou can also make virtual corpora from strings, optionally saving the corpus to disk.\n\n```python\ncorpus = Corpus.from_string(\"Some sentences here.\", save_as=\"corpusname\")\n```\n\n## Parsing\n\nbuzz uses [`spaCy`](https://spacy.io/) to parse your text, saving the results as CONLL-U files to your hard drive. Parsing a corpus is very simple:\n\n```python\nparsed = corpus.parse()\n# if you don't need constituency parses, you can speed things up a lot with:\nparsed = corpus.parse(cons_parser=None)\n```\n\nYou can also parse text strings, optionally passing in a name under which to save the corpus:\n\n```python\nfrom buzz import Parser\nparser = Parser(cons_parser=\"benepar\")\nfor text in list_of_texts:\n dataset = parser.run(text, save_as=False)\n```\n\nThe main advantages of parsing with *buzz* are that:\n\n* Parse results are stored as valid CONLL-U 2.0\n* Metadata is respected, and transferred into the output files\n* You can do constituency and dependency parsing at the same time (with parse trees being stored as CONLL-U metadata)\n\nthe `parse()` method returns another `Corpus` object, representing the newly created files. We can explore this corpus via commands like:\n\n```python\nparsed.subcorpora.s1.files.e01\nparsed.files[0]\nparsed.subcorpora.s1[:5]\nparsed.subcorpora[\"s1\"]\n```\n\n### Parse command\n\nYou can also parse corpora without entering a Python session by using the `parse` command:\n\n```bash\nparse --language en --cons-parser=benepar|bllip|none path/to/conll/files\n# or \npython -m buzz.parse path/to/conll/files\n```\n\nBoth commands will create `path/to/conll/files-parsed`, a folder containing CONLL-U files.\n\n### Loading corpora into memory\n\nYou can use the `load()` method to load a whole or partial corpus into memory, as a Dataset object, which extends the [pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html).\n\n```python\nloaded = parsed.load()\n```\n\nYou don't need to load corpora into memory to work on them, but it's great for small corpora. As a rule of thumb, datasets under a million words should be easily loadable on a personal computer.\n\nThe loaded corpus is a `Dataset` object, which is based on the pandas DataFrame. So, you can use pandas methods on it:\n\n\n```python\nloaded.head()\n```\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
wlxpgfeairedemphent_ident_iobent_typeexpositioninterrogative_typemovequestionsent_idsent_lenspeakertext_n
filesi
text11My-PRON-DETPRP$2poss_10.01.1999_2O_Trueintonationinfo-request_114MELFIMy understanding from Dr. Cusamano, your family physician, is you collapsed?0
2understandingunderstandingNOUNNN13nsubjpass_10.01.1999_2O_Trueintonationinfo-request_114MELFIMy understanding from Dr. Cusamano, your family physician, is you collapsed?1
3fromfromADPIN2prep_10.01.1999_2O_Trueintonationinfo-request_114MELFIMy understanding from Dr. Cusamano, your family physician, is you collapsed?2
4Dr.Dr.PROPNNNP5compound_10.01.1999_2O_Trueintonationinfo-request_114MELFIMy understanding from Dr. Cusamano, your family physician, is you collapsed?3
5CusamanoCusamanoPROPNNNP3pobj_10.01.1999_3BPERSONTrueintonationinfo-request_114MELFIMy understanding from Dr. Cusamano, your family physician, is you collapsed?4
\n\nYou can also interactively explore the corpus with [tabview](https://github.com/TabViewer/tabview) using the `view()` method:\n\n```python\nloaded.view()\n```\n\nThe interactive view has a number of cool features, such as the ability to sort by row or column. Also, pressing `enter` on a given line will generate a concordance based on that line's contents. Neat!\n\n## Exploring parsed and loaded corpora\n\nA corpus is a pandas DataFrame object. The index is a multiindex, comprised of `filename`, `sent_id` and `token`. Each token in the corpus is therefore uniquely identifiable through this index. The columns for the loaded copus are all the CONLL columns, plus anything included as metadata.\n\n```python\n# get the first sentence using buzz.dataset.sent()\nfirst = loaded.sent(0)\n# using pandas syntax to get first 5 words\nfirst.iloc[:5][\"w\"]\n# join the wordclasses and words\nprint(\" \".join(first.x.str.cat(first.w, sep=\"/\")))\n```\n\n```\n\"DET/My NOUN/understanding ADP/from PROPN/Dr. PROPN/Cusamano PUNCT/, DET/your NOUN/family NOUN/physician PUNCT/, VERB/is PRON/you VERB/collapsed PUNCT/?\n```\n\nYou don't need to know pandas, however, in order to use *buzz*, because *buzz* makes possible some more intuitive measures with linguistics in mind. For example, if you want to slice the corpus some way, you can easily do this using the `just` and `skip` properties, combined with the column/metadata feature you want to filter by:\n\n```python\ntony = loaded.just.speaker.TONY\n# you can use brackets (i.e. for regular expressions):\nno_punct = loaded.skip.lemmata(\"^[^a-zA-Z0-9]\")\n# or you can pass in a list/set/tuple:\nend_in_s = loaded.just.pos([\"NNS\", \"NNPS\", \"VBZ\"])\n```\n\nAny object created by *buzz* has a `.view()` method, which launches a `tabview` interactive space where you can explore corpora, frequencies or concordances.\n\n## spaCy\n\n[`spaCy`](https://spacy.io/) is used under the hood for dependency parsing, and a couple of other things. spaCy bring with it a lot of state of the art methods in NLP. You can access the `spaCy` representation of your data with:\n\n```python\ncorpus.to_spacy()\n# or\nloaded.to_spacy()\n```\n\n## Searching dependencies\n\nTo search the dependency graph generated by spaCy during parsing, you can use the *depgrep* method.\n\n\n```python\n# search dependencies for nominal subjects with definite articles\nnsubj = loaded.depgrep('f/nsubj.*/ -> (w\"the\" & x\"DET\")')\n```\n\nThe search language works by modelling nodes and the links between them. Specifying a node, like `f/nsubj/`, is done by specifying the feature you want to match (`f` for `function`), and a query inside slashes (for regular expressions) or inside quotation marks (for literal matches).\n\nThe arrow-like link specifies that the `nsubj` must govern the determiner. The `&` relation specifies that the two nodes are actually the same node. Brackets may be necessary to contain the query.\n\nThis language is based on `Tgrep2`, syntax, customised for dependencies. It is still a work in progress, but documentation should emerge [here](https://buzzword.readthedocs.io/en/latest/depgrep/), with repository [here](https://github.com/interrogator/depgrep).\n\n## Drill-down\n\nWhen you search a `Corpus` or `Dataset`, the result is simply another Dataset, representing a subset of the Corpus. Therefore, rather than trying to construct one query string that gets everything you want, it is often easier to perform multiple small searches:\n\n```python\nquery = 'f/nsubj/ <- f/ROOT/'\ntony_subjects = loaded.skip.wordclass.PUNCT.just.speaker.TONY.depgrep(query)\n```\n\nNote that for any searches that do not require traversal of the grammatical structure, you should use the `skip` and `just` methods. *tgrep* and *depgrep* only need to be used when your search involves the grammar, and not just token features.\n\n## Searching constituency trees\n\nConstituency tree searching can be done with the `tgrep` method, which provides a Python implementation of the [`tgrep2` query syntax](https://web.stanford.edu/dept/linguistics/corpora/cas-tut-tgrep.html): \n\n```python\nnps_with_adjectives = loaded.tgrep('NP < JJ')\n```\n\nIt also works with nodes and links, though there are numerous differences. In particular, note that arrows appear reversed --- `NP < JJ` is an NP that dominates a JJ, while something similar in depgrep would be `f/nsubj/ -> f/amod/`, a nominal subject governing an adjective.\n\n## Viewing search results\n\nAn important principle in *buzz* is the separation of searching and viewing results. Unlike many other tools, you do not search for a concordance---instead, you search the corpus, and then visualise the output of the data as a concordance.\n\n### Concordancing\n\nConcordancing is a nice way of looking at results. The main thing you have to do is tell *buzz* how you want the match column to look---it can be just the matching words, but also any combination of things. To show words and their parts of speech, you can do:\n\n```python\nnsubj = loaded.just.function.nsubj\nnsubj.conc(show=[\"w\", \"p\"])\n```\n\n### Frequency tables\n\nYou can turn your dataset into frequency tables, both before or after searching or filtering. Tabling takes a `show` argument similar to the `show` argument for concordancing, as well as an additional `subcorpora` argument. `show` represents the how the columns will be formatted, and `subcorpora` is used as the index. Below we create a frequency table of `nsubj` tokens, in lemma form, organised by speaker.\n\n```python\ntab = nsubj.table(show=\"l\", subcorpora=[\"speaker\"])\n```\n\nPossible keyword arguments for the `.table()` method are as follows:\n\n| Argument | Description | Default |\n|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|\n| `subcorpora` | Feature(s) to use as the index of the table. Passing in a list of multiple features will create a multiindex | `['file']` |\n| `show` | Feature(s) to use as the columns of the table. Passing a list will join the features with slash, so `['w', 'p']` results in columns with names like `'friend/NN'` | `['w']` |\n| `sort` | How to sort the results. 'total'/'infreq', 'increase/'decrease', 'static/turbulent', 'name'/'inverse' | `'total'` |\n| `relative` | Use relative, rather than absolute frequencies with `True`. You can also pass in Series, DataFrame or buzz objects to calculate relative frequencies against the passed in data. | `False` |\n| `remove_above_p` | Sorting by increase/decrease/static/turbulent calculates the slope of the frequencies across each subcorpus, and p-values where the null hypothesis is no slope. If you pass in a float, entries with p-values above this float are dropped from the results. Passing in `True` will use `0.05`. | `False` |\n| `keep_stats` | If True, keep generated statistics related to the trajectory calculation | `False` |\n| `preserve_case` | Keep the original case for `show` (column) values | `False` |\n| `multiindex_columns` | When `show` is a list with multiple features, rather than joining `show` with slashes, build a multiindex | `False` |\n\n\nThis creates a `Table` object, which is also based on DataFrame. You can use its `.view()` method to quickly explore results. Pressing enter on a given frequency will bring up a concordance of instances of this entry.\n\n### Plotting\n\nYou can also use *buzz* to create high-quality visualisations of frequency data. This relies completely on pandas' plotting method. A `plot` method more tailored to language datasets is still in development.\n\n```python\ntab.plot(...)\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/interrogator/buzz", "keywords": "corpus,linguistics,nlp", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "buzz", "package_url": "https://pypi.org/project/buzz/", "platform": "", "project_url": "https://pypi.org/project/buzz/", "project_urls": { "Homepage": "http://github.com/interrogator/buzz" }, "release_url": "https://pypi.org/project/buzz/3.1.0/", "requires_dist": null, "requires_python": "", "summary": "Sophisticated corpus linguistics", "version": "3.1.0" }, "last_serial": 5792086, "releases": { "1.0.2": [ { "comment_text": "", "digests": { "md5": "6956a68e5e881b25d72489a6d87981f8", "sha256": "fceda3efcaed0e3a720e2587a760f923a61452e30f055f88bea0d5089fabb453" }, "downloads": -1, "filename": "buzz-1.0.2-py3.6.egg", "has_sig": false, "md5_digest": "6956a68e5e881b25d72489a6d87981f8", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 770657, "upload_time": "2019-01-06T21:55:34", "url": "https://files.pythonhosted.org/packages/47/8c/55574de04e7ced451a607cd8a7f1aa356740f075d19b6079aab1b38fcd6d/buzz-1.0.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "9b84e26037162f38f791b1ad07126044", "sha256": "3011634b23724c77b071f51a144692bcfc475195b153386c5558a2c11beb1ee2" }, "downloads": -1, "filename": "buzz-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9b84e26037162f38f791b1ad07126044", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 676897, "upload_time": "2018-12-30T23:00:26", "url": "https://files.pythonhosted.org/packages/a4/b7/5122cf65426438a1118a6ed02253cc781b187a4136a7e13bc38c63354274/buzz-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "911ca72df0cda92ef10061125ccd0838", "sha256": "4d4e7c17265f321c2d439b4a36c96586710a8c53207a2477ee62a42381f41c60" }, "downloads": -1, "filename": "buzz-1.0.2.tar.gz", "has_sig": false, "md5_digest": "911ca72df0cda92ef10061125ccd0838", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31984, "upload_time": "2018-12-30T23:00:29", "url": "https://files.pythonhosted.org/packages/91/2e/1ddae01e591095671b616bd23710c01ecc5df4156f1106fc6fa3685b6038/buzz-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8ee627edc47e4e951840dfedbd9d020a", "sha256": "04394fb255e73685f5a4aa19aed996b11dea3f44c47c052f18b3133098e0e948" }, "downloads": -1, "filename": "buzz-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8ee627edc47e4e951840dfedbd9d020a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 340452, "upload_time": "2019-01-06T21:55:32", "url": "https://files.pythonhosted.org/packages/1a/10/5c59acef918ac16cca2370ecee5159e9ab019877c14f7d100e1eb54d9d9a/buzz-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e12a6fa6df6335b08a1b13c06dd318f6", "sha256": "e7b564d02b7c9d6ca21930cdd9fdf397569af87e30a86362ba4831c08d21a0a8" }, "downloads": -1, "filename": "buzz-1.0.3.tar.gz", "has_sig": false, "md5_digest": "e12a6fa6df6335b08a1b13c06dd318f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32437, "upload_time": "2019-01-06T21:56:14", "url": "https://files.pythonhosted.org/packages/40/92/6b210e7fe03067f3e23e837c83be594c3ad862d3a24fbd06881c243e3d96/buzz-1.0.3.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "4c129addb00470621665b162d8cee269", "sha256": "a1a2e218bb11472a1b68fabc2447ab932d3b1ee4e56372efd889da52ad1c8176" }, "downloads": -1, "filename": "buzz-2.0.2-py3.7.egg", "has_sig": false, "md5_digest": "4c129addb00470621665b162d8cee269", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 71509, "upload_time": "2019-07-03T13:18:08", "url": "https://files.pythonhosted.org/packages/a2/3c/c65ee5e836c3754959bfa862dbad68a2b65a3346a9151a937023f3119b38/buzz-2.0.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "576bcf82aeea300464b6e2a44a8611a4", "sha256": "56dd20b25d3555ff58f0d85e0d944d4357b3332fcf774782a61ffbff1ab96e9a" }, "downloads": -1, "filename": "buzz-2.0.2.tar.gz", "has_sig": false, "md5_digest": "576bcf82aeea300464b6e2a44a8611a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32700, "upload_time": "2019-07-03T13:18:10", "url": "https://files.pythonhosted.org/packages/56/bc/b9218f805b050206618911c9da05c3d0ce57ed66f4c5573718419edb36a3/buzz-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "e07f5400eb04afa7420361bf8cfe82c6", "sha256": "61b2abe823e58acace29d89bddbb9c90f8cd3eaa5ad8031e711b0fdbfad80b68" }, "downloads": -1, "filename": "buzz-2.0.3-py3.7.egg", "has_sig": false, "md5_digest": "e07f5400eb04afa7420361bf8cfe82c6", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 72260, "upload_time": "2019-07-03T15:49:11", "url": "https://files.pythonhosted.org/packages/3d/8f/0ce9ba32878d6cd6b9afa0667090105850b9ebbf1e408247c3e09bf02133/buzz-2.0.3-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "4e6dc357b0d491a649ac231b42aa59f2", "sha256": "af27862ca1df0b7b6581a42b53ba554e45ed790e4644d977d9ceaa1881f49f24" }, "downloads": -1, "filename": "buzz-2.0.3.tar.gz", "has_sig": false, "md5_digest": "4e6dc357b0d491a649ac231b42aa59f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33092, "upload_time": "2019-07-03T15:49:13", "url": "https://files.pythonhosted.org/packages/13/65/759ae4a87973f6ac9222557c39c1cbb879c9340721524eecc384ce396932/buzz-2.0.3.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "836413de71e0a807af8164ac6d9b08dc", "sha256": "93ff2e7c9beca0780de5bc355c88e640578757933add2c1de7628cbcfa42cd26" }, "downloads": -1, "filename": "buzz-2.0.5-py3.7.egg", "has_sig": false, "md5_digest": "836413de71e0a807af8164ac6d9b08dc", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 72208, "upload_time": "2019-07-03T15:59:42", "url": "https://files.pythonhosted.org/packages/3b/b6/ed4e2adf714a5c16aa96c3ca90ba292e348e11fc4d91cff5f25d1b0c515d/buzz-2.0.5-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "15d659c66c640933bd23adeb0a039b2b", "sha256": "8b672561334c64009111d9577094a16b79cb1525f391f025387279e2a1bd989a" }, "downloads": -1, "filename": "buzz-2.0.5.tar.gz", "has_sig": false, "md5_digest": "15d659c66c640933bd23adeb0a039b2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33091, "upload_time": "2019-07-03T15:59:44", "url": "https://files.pythonhosted.org/packages/a7/fe/4df3b4ec363d571038d6ad853cc423bd777078d1ba9157d5851e2dc12a02/buzz-2.0.5.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "27873379c0a0618c33d02cec9f122274", "sha256": "d58a42387bf60b955eb166218959e792da1e0ad9ba12378b46eb7753877da44f" }, "downloads": -1, "filename": "buzz-3.0.0-py3.7.egg", "has_sig": false, "md5_digest": "27873379c0a0618c33d02cec9f122274", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 86257, "upload_time": "2019-08-17T14:46:45", "url": "https://files.pythonhosted.org/packages/3d/ef/1bca66cf626c0c3840a4515d1b08c97a958802056729682cb8390f91351e/buzz-3.0.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "8c5d02f5fe13aeffc95c2b9fe5be0353", "sha256": "b381c5f42eacfd54b67cf952c79c9cde9c730e976e8e9dd120611c6b22922051" }, "downloads": -1, "filename": "buzz-3.0.0.tar.gz", "has_sig": false, "md5_digest": "8c5d02f5fe13aeffc95c2b9fe5be0353", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40064, "upload_time": "2019-08-17T14:46:47", "url": "https://files.pythonhosted.org/packages/89/fb/8509700ef8ea7a36b8e8c4186510e53b4573fed6b1bfa9e8780728a16c09/buzz-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "29154dec4b59718d1aac864f9eca3940", "sha256": "279626fd96d8e5d513a173f146539f4a9614f2ae84c977bea4f92315b91b1656" }, "downloads": -1, "filename": "buzz-3.0.1-py3.7.egg", "has_sig": false, "md5_digest": "29154dec4b59718d1aac864f9eca3940", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 86262, "upload_time": "2019-08-17T16:09:22", "url": "https://files.pythonhosted.org/packages/97/ca/da86cd0e4fb39fffc02837b6b9b4462688dca8cc4f0cc4d0429af531cc01/buzz-3.0.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "b5b2589691aa741f5841d83aa0a31673", "sha256": "b42ec1cc5d7e7a0be42330f2b39b522ed3015e0ebbd2ee612e41c25e4fe2dfeb" }, "downloads": -1, "filename": "buzz-3.0.1.tar.gz", "has_sig": false, "md5_digest": "b5b2589691aa741f5841d83aa0a31673", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40079, "upload_time": "2019-08-17T16:09:24", "url": "https://files.pythonhosted.org/packages/2d/f3/986b36b89538fee7e89aed15a3ce372ee4ea4621984c22a69bae69cffe5c/buzz-3.0.1.tar.gz" } ], "3.0.10": [ { "comment_text": "", "digests": { "md5": "61611dcf749a55365f0b23a77e51289f", "sha256": "7d773b9dd254d131e2d92c3e0d68dd9f4d0e45e55403c73b530bfc10c8da36a1" }, "downloads": -1, "filename": "buzz-3.0.10-py3.7.egg", "has_sig": false, "md5_digest": "61611dcf749a55365f0b23a77e51289f", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 128719, "upload_time": "2019-08-25T20:22:24", "url": "https://files.pythonhosted.org/packages/eb/9c/1b1bfe688a8a0568941ba7c39c8b50e8161ddf26bba6588b57d42ffdf2fa/buzz-3.0.10-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "44cbd12c95e2486a558990e880362a5f", "sha256": "bb15153e3dd8cfd1e6b95be53a93a0064b92c9bb534385fab392290766d34667" }, "downloads": -1, "filename": "buzz-3.0.10.tar.gz", "has_sig": false, "md5_digest": "44cbd12c95e2486a558990e880362a5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56450, "upload_time": "2019-08-25T20:22:26", "url": "https://files.pythonhosted.org/packages/24/6b/e4cd6f0bfc44de75177a56043dc2b1c9b3300c9ba2324c904c7117e0b778/buzz-3.0.10.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "e1307198b950cd107c1a7db4957a9ece", "sha256": "fae9014dd88b6a0855279c451b6a438be8045136a5fc2b9210735dd390904cf9" }, "downloads": -1, "filename": "buzz-3.0.2-py3.7.egg", "has_sig": false, "md5_digest": "e1307198b950cd107c1a7db4957a9ece", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 121114, "upload_time": "2019-08-17T17:16:20", "url": "https://files.pythonhosted.org/packages/90/6a/f02fc6fdb99010c36324ef71abbc5c0ff096ecd8e152d1d1bcc81991cbf3/buzz-3.0.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "d271e79f4b498ca04dd54bea8b315fd1", "sha256": "800cd100b9297c8814326d51c9b2e9f40a482aa5bfeb18c617bc3ddd7b6044c8" }, "downloads": -1, "filename": "buzz-3.0.2.tar.gz", "has_sig": false, "md5_digest": "d271e79f4b498ca04dd54bea8b315fd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53775, "upload_time": "2019-08-17T17:16:23", "url": "https://files.pythonhosted.org/packages/df/76/fede2814aceaca774dd2a948ac34d4f8f4d3ddecd382ecb5d20713c9c6f0/buzz-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "091a977516f10e5af1629e1dffad2097", "sha256": "c94b243cae961f8252e3bba17841573354201e40ad5a1758823e94d86e013aaf" }, "downloads": -1, "filename": "buzz-3.0.3-py3.7.egg", "has_sig": false, "md5_digest": "091a977516f10e5af1629e1dffad2097", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 121143, "upload_time": "2019-08-17T22:12:37", "url": "https://files.pythonhosted.org/packages/cc/9e/1018de2efc9183f38dffa5822e7d1d41e0c2cc5780974c608c5e4a09ae80/buzz-3.0.3-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "7baa0e3d8596dc81b466d44af2cdf387", "sha256": "40db197fb03a9942787cb24831f70166fe444efbe28dc6ecf356e3745c6bbe9b" }, "downloads": -1, "filename": "buzz-3.0.3.tar.gz", "has_sig": false, "md5_digest": "7baa0e3d8596dc81b466d44af2cdf387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53802, "upload_time": "2019-08-17T22:12:39", "url": "https://files.pythonhosted.org/packages/c9/1c/b7ec4c27ba0d6c9111531142956db0d1a38049d4c8d7ac48afb470783ea0/buzz-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "6984d7440aae3837b1d206d36e66fcb8", "sha256": "cd075415512d3bb84c67d3545342eeb51f867c87195bc88a7cdf1d4cab6d929b" }, "downloads": -1, "filename": "buzz-3.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6984d7440aae3837b1d206d36e66fcb8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54382, "upload_time": "2019-08-19T16:44:38", "url": "https://files.pythonhosted.org/packages/2a/d1/a553c058289bcfc20a03219e738ceb093c39ceb2d05ced2279b9cf9a0205/buzz-3.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f707ced3dd7ca99c2ba6f7fd412d961", "sha256": "e7d932cfdbc27effafe175666d99b5f638e7e110a9573304a87c4411da1a751e" }, "downloads": -1, "filename": "buzz-3.0.4.tar.gz", "has_sig": false, "md5_digest": "4f707ced3dd7ca99c2ba6f7fd412d961", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54305, "upload_time": "2019-08-19T16:44:40", "url": "https://files.pythonhosted.org/packages/9e/44/39a12a413c2607bdba2a42ef1b79aaba7f4c1bd318e7cea65777cf70ea01/buzz-3.0.4.tar.gz" } ], "3.0.5": [ { "comment_text": "", "digests": { "md5": "c2770d733bf5b00cecda3ed4234671df", "sha256": "1307586dc467ac4075d1ac171e8a8dbef4c4f3dcabfeefcb1e7b4dba280582a0" }, "downloads": -1, "filename": "buzz-3.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c2770d733bf5b00cecda3ed4234671df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54815, "upload_time": "2019-08-20T09:05:25", "url": "https://files.pythonhosted.org/packages/f6/89/8d659386063e221e4bcc386d872176172d6302d2809dea601c7cc7fa8f50/buzz-3.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80513b789aa7548b510191a819fba6d4", "sha256": "1cd0da268f9aeac04bfc4aa6e7cfcb72b80179f606497ba97402025438bfdbaa" }, "downloads": -1, "filename": "buzz-3.0.5.tar.gz", "has_sig": false, "md5_digest": "80513b789aa7548b510191a819fba6d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54733, "upload_time": "2019-08-20T09:05:27", "url": "https://files.pythonhosted.org/packages/91/96/98876dab74342b426af2b7fa4bac268eeb3f56749d61453b58a256a6bd99/buzz-3.0.5.tar.gz" } ], "3.0.6": [ { "comment_text": "", "digests": { "md5": "d2e7f915e1205ea776d57e6687a1030e", "sha256": "fca00dcc9e6f6a55416018af2cbfc4c405a8481107426f24f88d58cc28cede7c" }, "downloads": -1, "filename": "buzz-3.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d2e7f915e1205ea776d57e6687a1030e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54977, "upload_time": "2019-08-21T13:45:24", "url": "https://files.pythonhosted.org/packages/80/0f/77f2c3ea6132e189a41010e0559de7854ac9044ec2eeb298c4597b8e6be1/buzz-3.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06087b4c67090a561c4232a6e5c804ce", "sha256": "7d0ea13654472fd9da1d1c00be51846f45a38ed8cfd474c4abb99c1bd7ff3928" }, "downloads": -1, "filename": "buzz-3.0.6.tar.gz", "has_sig": false, "md5_digest": "06087b4c67090a561c4232a6e5c804ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54868, "upload_time": "2019-08-21T13:45:27", "url": "https://files.pythonhosted.org/packages/47/86/e9d0741254e40b64abd1616525b3fda0eb313c7203909a156e0a94612a4d/buzz-3.0.6.tar.gz" } ], "3.0.8": [ { "comment_text": "", "digests": { "md5": "7c338a187459451bd7c3abf0794da315", "sha256": "26b1ea9802afef25e6ce09c0c4475d1f60ca03d0e5d8d829907abf19fe64c5a6" }, "downloads": -1, "filename": "buzz-3.0.8-py3.7.egg", "has_sig": false, "md5_digest": "7c338a187459451bd7c3abf0794da315", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 126118, "upload_time": "2019-08-24T21:34:14", "url": "https://files.pythonhosted.org/packages/be/44/87b22069d2eb59b061aa68b024ef85919070149ed38dc2f7b4ddd0305c97/buzz-3.0.8-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "94f82b9e0064a1625d011ec23dba24f0", "sha256": "c6c150dc719159836e1151501cc11a70f3f926ebcd128a4fdf44717b1f2dbba5" }, "downloads": -1, "filename": "buzz-3.0.8.tar.gz", "has_sig": false, "md5_digest": "94f82b9e0064a1625d011ec23dba24f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55388, "upload_time": "2019-08-24T21:34:16", "url": "https://files.pythonhosted.org/packages/e0/fc/26c69009a99edcca73a63078e0d894c66985f025eb6d21fb21b0b07bc2c6/buzz-3.0.8.tar.gz" } ], "3.0.9": [ { "comment_text": "", "digests": { "md5": "9c289e8b2f16c1eea9f843f4719c1768", "sha256": "de7eea34206e979ba9bbe9f58a5664dca5541d69f24e806c0b284affca2e1a9a" }, "downloads": -1, "filename": "buzz-3.0.9-py3.7.egg", "has_sig": false, "md5_digest": "9c289e8b2f16c1eea9f843f4719c1768", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 128714, "upload_time": "2019-08-25T20:20:30", "url": "https://files.pythonhosted.org/packages/0b/3c/ccd012aa2505e1a1d4bd497f8d3ea11e91227de17c64456895fb783139e7/buzz-3.0.9-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "a450b41c19aebec5102ba9d51d53d857", "sha256": "0b3f5e650e9cfbeb4a03708dfaa8b26416e02e882c141418867784a5cf428e65" }, "downloads": -1, "filename": "buzz-3.0.9.tar.gz", "has_sig": false, "md5_digest": "a450b41c19aebec5102ba9d51d53d857", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56450, "upload_time": "2019-08-25T20:20:32", "url": "https://files.pythonhosted.org/packages/fb/f1/a818b45e9a384278935f1aadbcd16b3bbab5d066ab83866ff490838b0d45/buzz-3.0.9.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "256e7ec7486678df169bdc9882503b15", "sha256": "453768aade79b53e968b4cd4abac2329903c8db94d6ff37cd87a63c09ef27e96" }, "downloads": -1, "filename": "buzz-3.1.0-py3.7.egg", "has_sig": false, "md5_digest": "256e7ec7486678df169bdc9882503b15", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 129978, "upload_time": "2019-09-06T12:49:11", "url": "https://files.pythonhosted.org/packages/a4/50/fd45e0f11fa29685df1570993414a5d6b3eb520f8fb015e1e0700ad29652/buzz-3.1.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "80192fbc7ba1e97da2fed7ad39d36de0", "sha256": "605c7b82f531c3690df08a35597cb527a412c2a3539fd505cf3be28e46eb4c92" }, "downloads": -1, "filename": "buzz-3.1.0.tar.gz", "has_sig": false, "md5_digest": "80192fbc7ba1e97da2fed7ad39d36de0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57074, "upload_time": "2019-09-06T12:49:14", "url": "https://files.pythonhosted.org/packages/6a/04/f0f0acc8cdc3e2b1982fd24d24ec7711cee302b87e4d83895af6b5b4bf4c/buzz-3.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "256e7ec7486678df169bdc9882503b15", "sha256": "453768aade79b53e968b4cd4abac2329903c8db94d6ff37cd87a63c09ef27e96" }, "downloads": -1, "filename": "buzz-3.1.0-py3.7.egg", "has_sig": false, "md5_digest": "256e7ec7486678df169bdc9882503b15", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 129978, "upload_time": "2019-09-06T12:49:11", "url": "https://files.pythonhosted.org/packages/a4/50/fd45e0f11fa29685df1570993414a5d6b3eb520f8fb015e1e0700ad29652/buzz-3.1.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "80192fbc7ba1e97da2fed7ad39d36de0", "sha256": "605c7b82f531c3690df08a35597cb527a412c2a3539fd505cf3be28e46eb4c92" }, "downloads": -1, "filename": "buzz-3.1.0.tar.gz", "has_sig": false, "md5_digest": "80192fbc7ba1e97da2fed7ad39d36de0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57074, "upload_time": "2019-09-06T12:49:14", "url": "https://files.pythonhosted.org/packages/6a/04/f0f0acc8cdc3e2b1982fd24d24ec7711cee302b87e4d83895af6b5b4bf4c/buzz-3.1.0.tar.gz" } ] }