dizge


Namedizge JSON
Version 0.1.6 PyPI version JSON
download
home_pagehttps://github.com/dizge/dizge
SummaryThe grammar analyzer for Turkish
upload_time2024-03-23 20:37:12
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseMIT
keywords python nlp linguistics phonology turkish grammar
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Dizge: The grammar analyzer for Turkish

![Version](https://img.shields.io/pypi/v/dizge?style=flat-square)
![License](https://img.shields.io/pypi/l/dizge?style=flat-square)

## Table of Contents
1. [Introduction](#introduction)<br>
2. [How to Use](#how-to-use)<br>
2.1. [Installation and First Run](#installation-and-first-run)<br>
2.2. [`competence` Functions](#competence-functions)<br>
2.3. [`tools` Functions](#tools-functions)<br>
2.4. [Data Loading](#data-loading)<br>
2.5. [Analysis and Getting Result](#analysis-and-getting-result)<br>
3. [Contact](#contact)

## Introduction
**Dizge** is an open-source Python project for linguistic analysis of Turkish data. The project consists of two modules:

* `competence`: It represents the linguistic knowledge of an ideal native speaker, and it's programmed in the Object Oriented Programming (OOP) principles.
* `tools`: It includes rule-based functions representing the linguistic processes.

The current version (v0.1.x) of the project has a few phonetic/phonological functions, as a pre-version.

For the theoretical background of **Dizge**, the following resources have benefitted from:

- Ergenç, İ., & Uzun, İ. P. (2020). *Türkçenin ses dizgesi* (2nd ed.). Seçkin Yayınevi.<br/>
- IPA Chart, http://www.internationalphoneticassociation.org/content/ipa-chart, available under a Creative Commons Attribution-Sharealike 3.0 Unported License. Copyright © 2018 International Phonetic Association.

You can cite our project in your publications:<br/>
```
Mutlu, M. U., Yetimaslan, N., & Atagün, İ. (2021). Dizge: The grammar analyzer for Turkish. https://github.com/dizge
```

Also, Dizge has a no-code web service on https://dizge.pythonanywhere.com.

## How to Use
### Installation and First Run
You can use the pip tool to install the package to your system with the following `pip install dizge` command. Then, it's easy to call it in any Python script:

```python
import dizge
```

### `competence` Functions
**Dizge** has all the Turkish phonemes and their linguistic features. For example, you can easily get a list of Turkish vowels and consonants:
```python
for i in [vars(phoneme) for phoneme in dizge.vowels]:
    print(i)

for i in [vars(phoneme) for phoneme in dizge.consonants]:
    print(i)
```

Similarly, you can check if any phonemes have a feature with the help of functions in `competence`.  It's enough to give the grapheme of any phonemes as string inputs to the following functions:

* `isVowel()`: If a phoneme is a vowel, it'll return **True**; otherwise, it'll return **False**.
* `isUnrounded()`: If a phoneme is an unrounded vowel, it'll return **True**; otherwise, it'll return **False**.
* `isRounded()`: If a phoneme is a rounded vowel, it'll return **True**; otherwise, it'll return **False**.
* `isClose()`: If a phoneme is a closed vowel, it'll return **True**; otherwise, it'll return **False**.
* `isCloseMid()`: If a phoneme is a mid-closed vowel, it'll return **True**; otherwise, it'll return **False**.
* `isOpenMid()`: If a phoneme is a mid-open vowel, it'll return **True**; otherwise, it'll return **False**.
* `isOpen()`: If a phoneme is an open vowel, it'll return **True**; otherwise, it'll return **False**.
* `isFront()`: If a phoneme is a front vowel, it'll return **True**; otherwise, it'll return **False**.
* `isCentral()`: If a phoneme is a central vowel, it'll return **True**; otherwise, it'll return **False**.
* `isBack()`: If a phoneme is a back vowel, it'll return **True**; otherwise, it'll return **False**.
* `isConsonant()`: If a phoneme is a consonant, it'll return **True**; otherwise, it'll return **False**.
* `isPlosive()`: If a phoneme is a plosive consonant, it'll return **True**; otherwise, it'll return **False**.
* `isNasal()`: If a phoneme is a nasal consonant, it'll return **True**; otherwise, it'll return **False**.
* `isTrill()`: If a phoneme is a trilled consonant, it'll return **True**; otherwise, it'll return **False**.
* `isTaporFlap()`: If a phoneme is a tapped or flapped consonant, it'll return **True**; otherwise, it'll return **False**.
* `isFricative()`: If a phoneme is a fricative consonant, it'll return **True**; otherwise, it'll return **False**.
* `isLateralFricative()`: If a phoneme is a lateral fricative consonant, it'll return **True**; otherwise, it'll return **False**.
* `isApproximant()`: If a phoneme is an approximantal consonant, it'll return **True**; otherwise, it'll return **False**.
* `isLateralApproximant()`: If a phoneme is a lateral approximantal consonant, it'll return **True**; otherwise, it'll return **False**.
* `isBilabial()`: If a phoneme is a bilabial consonant, it'll return **True**; otherwise, it'll return **False**.
* `isLabiodental()`: If a phoneme is a labiodental consonant, it'll return **True**; otherwise, it'll return **False**.
* `isDental()`: If a phoneme is a dental consonant, it'll return **True**; otherwise, it'll return **False**.
* `isAlveolar()`: If a phoneme is an alveolar consonant, it'll return **True**; otherwise, it'll return **False**.
* `isPostalveolar()`: If a phoneme is a postalveolar consonant, it'll return **True**; otherwise, it'll return **False**.
* `isRetroflex()`: If a phoneme is a retroflex consonant, it'll return **True**; otherwise, it'll return **False**.
* `isPalatal()`: If a phoneme is a palatal consonant, it'll return **True**; otherwise, it'll return **False**.
* `isVelar()`: If a phoneme is a velar consonant, it'll return **True**; otherwise, it'll return **False**.
* `isUvular()`: If a phoneme is an ulvular consonant, it'll return **True**; otherwise, it'll return **False**.
* `isPharyngeal()`: If a phoneme is a pharyngeal consonant, it'll return **True**; otherwise, it'll return **False**.
* `isGlottal()`: If a phoneme is a glottal consonant, it'll return **True**; otherwise, it'll return **False**.
* `isVoiced()`: If a phoneme is voiced, it'll return **True**; otherwise, it'll return **False**.
* `isVoiceless()`: If a phoneme is voiceless, it'll return **True**; otherwise, it'll return **False**.

### `tools` Functions

In this module, there are some functions of linguictic processes, like transcription (Grapheme-to-Phoneme or G2P), syllablization, etc.

First, the `softG()` function shows the effects, such as vowel shifting or lengthening, of the <ğ> grapheme without a phoneme value: 

```python
>>> dizge.softG('dağ')
'daː'
>>> dizge.softG('göğüs')
'göːüs'
>>> dizge.softG('eğlence')
'eylence'
```

We provide two options for syllabilzation analysis. First of them is the orthography-based analysis, as the traditional method. `syllable_o()` works in this way.

```python
>>> dizge.syllable_o('afyonkarahisarlılaştıramadıklarımızdanmışçasına')
['af', 'yon', 'ka', 'ra', 'hi', 'sar', 'lı', 'laş', 'tı', 'ra', 'ma', 'dık', 'la', 'rı', 'mız', 'dan', 'mış', 'ça', 'sı', 'na']
```

However, if you care about the phonetic occurences during the syllablization, you can use the `syllable_p()` function.

```python
>>> dizge.syllable_p('afyonkarahisarlılaştıramadıklarımızdanmışçasına')
[('ɑf', 'VC'), ('jɔŋ', 'CVC'), ('kɑ', 'CV'), ('ɾɑ', 'CV'), ('çI', 'CV'), ('sɑɾ', 'CVC'), ('łɨ', 'CV'), ('łɑʃ', 'CVC'), ('tɨ', 'CV'), ('ɾɑ', 'CV'), ('mɑ', 'CV'), ('dɨk', 'CVC'), ('łɑ', 'CV'), ('ɾɨ', 'CV'), ('mɨz', 'CVC'), ('dɑn', 'CVC'), ('mɨʃ', 'CVC'), ('tʃɑ', 'CV'), ('sɨ', 'CV'), ('nɑ', 'CV')]
```

Also, you can get a comprehensive calculation of the analysis with the `countSyllable()` function:

```python
>>> dizge.countSyllable('afyonkarahisarlılaştıramadıklarımızdanmışçasına')
{'VC': 1, 'CVC': 7, 'CV': 12}
```

You can analyze the vowel harmony of a word, as a signal of Turkish originated words, with the `harmony()` function. It checks e-type and i-type harmonies of the word and returns both in a tuple:

```python
>>> dizge.harmony('ankara')
(True, True)
```

Last but not least, the `g2p()` function transcribes from graphemes to phonemes in a rule-based way:

```python
>>> dizge.g2p('afyonkarahisarlılaştıramadıklarımızdanmışçasına')
'ɑfjɔŋkɑɾɑçIsɑɾłɨłɑʃtɨɾɑmɑdɨkłɑɾɨmɨzdɑnmɨʃtʃɑsɨnɑ'
```

**DISCLAIMER:**

- Unlike our reference resources, we ignored the half-long occurences. It may be implemented in the upcoming updates.
- Also, we provide more than one alternative for the examples our reference resources provide alternatives based on the spoken language. You can pick the one you need by indexing.

### Data Loading
While using **Dizge**, you can work on tabular data in the *xlsx* and *csv* formats or plain-text data in the *txt* format. It's possible to use the 3rd party data processing libraries or built-in Python functions to load the data, based on your choice. Here's an example usage:

```python
data = open('data/sample.txt', 'r', encoding="utf-8").read()
```

After loading the data, you can select the part you need to analyze, and you can standardize the data before starting the analysis. If you prefer to use the `analyze()` function we'll mention in the next section, the function already standardizes your data. Let's look at how to use the `standardize()` function:

```python
words = dizge.standardize(data)
```
 
### Analysis and Getting Result
You can use the `analyze()` function to analyze the data easily. It's enough to give two inputs, i.e.nthe data you work on, and the tools you want to use. That's all:

```python
>>> tools = ["g2p", "syllable_o", "syllable_p", "countSyllable", "harmony"]
>>> result = dizge.analyze(words, tools)
```

## Contact
For any requests about **Dizge**, you can use the following contact info:

**Email:** dizgenlp@gmail.com<br>
**X (formerly Twitter):** [@dizgenlp](https://twitter.com/dizgenlp)<br>
**Instagram:** [@dizgenlp](https://instagram.com/dizgenlp)<br>

Additionally, please feel free to create issue or PRs (pull requests).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/dizge/dizge",
    "name": "dizge",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "python, nlp, linguistics, phonology, turkish, grammar",
    "author": null,
    "author_email": "dizgenlp@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a3/1f/a0e3fc73bb0064ae8f8a675735a12df80be0ecd1f623b8cf0af420d77cd5/dizge-0.1.6.tar.gz",
    "platform": null,
    "description": "# Dizge: The grammar analyzer for Turkish\r\n\r\n![Version](https://img.shields.io/pypi/v/dizge?style=flat-square)\r\n![License](https://img.shields.io/pypi/l/dizge?style=flat-square)\r\n\r\n## Table of Contents\r\n1. [Introduction](#introduction)<br>\r\n2. [How to Use](#how-to-use)<br>\r\n2.1. [Installation and First Run](#installation-and-first-run)<br>\r\n2.2. [`competence` Functions](#competence-functions)<br>\r\n2.3. [`tools` Functions](#tools-functions)<br>\r\n2.4. [Data Loading](#data-loading)<br>\r\n2.5. [Analysis and Getting Result](#analysis-and-getting-result)<br>\r\n3. [Contact](#contact)\r\n\r\n## Introduction\r\n**Dizge** is an open-source Python project for linguistic analysis of Turkish data. The project consists of two modules:\r\n\r\n* `competence`: It represents the linguistic knowledge of an ideal native speaker, and it's programmed in the Object Oriented Programming (OOP) principles.\r\n* `tools`: It includes rule-based functions representing the linguistic processes.\r\n\r\nThe current version (v0.1.x) of the project has a few phonetic/phonological functions, as a pre-version.\r\n\r\nFor the theoretical background of **Dizge**, the following resources have benefitted from:\r\n\r\n- Ergen\u00e7, \u0130., & Uzun, \u0130. P. (2020). *T\u00fcrk\u00e7enin ses dizgesi* (2nd ed.). Se\u00e7kin Yay\u0131nevi.<br/>\r\n- IPA Chart, http://www.internationalphoneticassociation.org/content/ipa-chart, available under a Creative Commons Attribution-Sharealike 3.0 Unported License. Copyright \u00a9 2018 International Phonetic Association.\r\n\r\nYou can cite our project in your publications:<br/>\r\n```\r\nMutlu, M. U., Yetimaslan, N., & Atag\u00fcn, \u0130. (2021). Dizge: The grammar analyzer for Turkish. https://github.com/dizge\r\n```\r\n\r\nAlso, Dizge has a no-code web service on https://dizge.pythonanywhere.com.\r\n\r\n## How to Use\r\n### Installation and First Run\r\nYou can use the pip tool to install the package to your system with the following `pip install dizge` command. Then, it's easy to call it in any Python script:\r\n\r\n```python\r\nimport dizge\r\n```\r\n\r\n### `competence` Functions\r\n**Dizge** has all the Turkish phonemes and their linguistic features. For example, you can easily get a list of Turkish vowels and consonants:\r\n```python\r\nfor i in [vars(phoneme) for phoneme in dizge.vowels]:\r\n    print(i)\r\n\r\nfor i in [vars(phoneme) for phoneme in dizge.consonants]:\r\n    print(i)\r\n```\r\n\r\nSimilarly, you can check if any phonemes have a feature with the help of functions in `competence`.  It's enough to give the grapheme of any phonemes as string inputs to the following functions:\r\n\r\n* `isVowel()`: If a phoneme is a vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isUnrounded()`: If a phoneme is an unrounded vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isRounded()`: If a phoneme is a rounded vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isClose()`: If a phoneme is a closed vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isCloseMid()`: If a phoneme is a mid-closed vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isOpenMid()`: If a phoneme is a mid-open vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isOpen()`: If a phoneme is an open vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isFront()`: If a phoneme is a front vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isCentral()`: If a phoneme is a central vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isBack()`: If a phoneme is a back vowel, it'll return **True**; otherwise, it'll return **False**.\r\n* `isConsonant()`: If a phoneme is a consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isPlosive()`: If a phoneme is a plosive consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isNasal()`: If a phoneme is a nasal consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isTrill()`: If a phoneme is a trilled consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isTaporFlap()`: If a phoneme is a tapped or flapped consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isFricative()`: If a phoneme is a fricative consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isLateralFricative()`: If a phoneme is a lateral fricative consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isApproximant()`: If a phoneme is an approximantal consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isLateralApproximant()`: If a phoneme is a lateral approximantal consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isBilabial()`: If a phoneme is a bilabial consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isLabiodental()`: If a phoneme is a labiodental consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isDental()`: If a phoneme is a dental consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isAlveolar()`: If a phoneme is an alveolar consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isPostalveolar()`: If a phoneme is a postalveolar consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isRetroflex()`: If a phoneme is a retroflex consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isPalatal()`: If a phoneme is a palatal consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isVelar()`: If a phoneme is a velar consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isUvular()`: If a phoneme is an ulvular consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isPharyngeal()`: If a phoneme is a pharyngeal consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isGlottal()`: If a phoneme is a glottal consonant, it'll return **True**; otherwise, it'll return **False**.\r\n* `isVoiced()`: If a phoneme is voiced, it'll return **True**; otherwise, it'll return **False**.\r\n* `isVoiceless()`: If a phoneme is voiceless, it'll return **True**; otherwise, it'll return **False**.\r\n\r\n### `tools` Functions\r\n\r\nIn this module, there are some functions of linguictic processes, like transcription (Grapheme-to-Phoneme or G2P), syllablization, etc.\r\n\r\nFirst, the `softG()` function shows the effects, such as vowel shifting or lengthening, of the <\u011f> grapheme without a phoneme value: \r\n\r\n```python\r\n>>> dizge.softG('da\u011f')\r\n'da\u02d0'\r\n>>> dizge.softG('g\u00f6\u011f\u00fcs')\r\n'g\u00f6\u02d0\u00fcs'\r\n>>> dizge.softG('e\u011flence')\r\n'eylence'\r\n```\r\n\r\nWe provide two options for syllabilzation analysis. First of them is the orthography-based analysis, as the traditional method. `syllable_o()` works in this way.\r\n\r\n```python\r\n>>> dizge.syllable_o('afyonkarahisarl\u0131la\u015ft\u0131ramad\u0131klar\u0131m\u0131zdanm\u0131\u015f\u00e7as\u0131na')\r\n['af', 'yon', 'ka', 'ra', 'hi', 'sar', 'l\u0131', 'la\u015f', 't\u0131', 'ra', 'ma', 'd\u0131k', 'la', 'r\u0131', 'm\u0131z', 'dan', 'm\u0131\u015f', '\u00e7a', 's\u0131', 'na']\r\n```\r\n\r\nHowever, if you care about the phonetic occurences during the syllablization, you can use the `syllable_p()` function.\r\n\r\n```python\r\n>>> dizge.syllable_p('afyonkarahisarl\u0131la\u015ft\u0131ramad\u0131klar\u0131m\u0131zdanm\u0131\u015f\u00e7as\u0131na')\r\n[('\u0251f', 'VC'), ('j\u0254\u014b', 'CVC'), ('k\u0251', 'CV'), ('\u027e\u0251', 'CV'), ('\u00e7I', 'CV'), ('s\u0251\u027e', 'CVC'), ('\u0142\u0268', 'CV'), ('\u0142\u0251\u0283', 'CVC'), ('t\u0268', 'CV'), ('\u027e\u0251', 'CV'), ('m\u0251', 'CV'), ('d\u0268k', 'CVC'), ('\u0142\u0251', 'CV'), ('\u027e\u0268', 'CV'), ('m\u0268z', 'CVC'), ('d\u0251n', 'CVC'), ('m\u0268\u0283', 'CVC'), ('t\u0283\u0251', 'CV'), ('s\u0268', 'CV'), ('n\u0251', 'CV')]\r\n```\r\n\r\nAlso, you can get a comprehensive calculation of the analysis with the `countSyllable()` function:\r\n\r\n```python\r\n>>> dizge.countSyllable('afyonkarahisarl\u0131la\u015ft\u0131ramad\u0131klar\u0131m\u0131zdanm\u0131\u015f\u00e7as\u0131na')\r\n{'VC': 1, 'CVC': 7, 'CV': 12}\r\n```\r\n\r\nYou can analyze the vowel harmony of a word, as a signal of Turkish originated words, with the `harmony()` function. It checks e-type and i-type harmonies of the word and returns both in a tuple:\r\n\r\n```python\r\n>>> dizge.harmony('ankara')\r\n(True, True)\r\n```\r\n\r\nLast but not least, the `g2p()` function transcribes from graphemes to phonemes in a rule-based way:\r\n\r\n```python\r\n>>> dizge.g2p('afyonkarahisarl\u0131la\u015ft\u0131ramad\u0131klar\u0131m\u0131zdanm\u0131\u015f\u00e7as\u0131na')\r\n'\u0251fj\u0254\u014bk\u0251\u027e\u0251\u00e7Is\u0251\u027e\u0142\u0268\u0142\u0251\u0283t\u0268\u027e\u0251m\u0251d\u0268k\u0142\u0251\u027e\u0268m\u0268zd\u0251nm\u0268\u0283t\u0283\u0251s\u0268n\u0251'\r\n```\r\n\r\n**DISCLAIMER:**\r\n\r\n- Unlike our reference resources, we ignored the half-long occurences. It may be implemented in the upcoming updates.\r\n- Also, we provide more than one alternative for the examples our reference resources provide alternatives based on the spoken language. You can pick the one you need by indexing.\r\n\r\n### Data Loading\r\nWhile using **Dizge**, you can work on tabular data in the *xlsx* and *csv* formats or plain-text data in the *txt* format. It's possible to use the 3rd party data processing libraries or built-in Python functions to load the data, based on your choice. Here's an example usage:\r\n\r\n```python\r\ndata = open('data/sample.txt', 'r', encoding=\"utf-8\").read()\r\n```\r\n\r\nAfter loading the data, you can select the part you need to analyze, and you can standardize the data before starting the analysis. If you prefer to use the `analyze()` function we'll mention in the next section, the function already standardizes your data. Let's look at how to use the `standardize()` function:\r\n\r\n```python\r\nwords = dizge.standardize(data)\r\n```\r\n \r\n### Analysis and Getting Result\r\nYou can use the `analyze()` function to analyze the data easily. It's enough to give two inputs, i.e.nthe data you work on, and the tools you want to use. That's all:\r\n\r\n```python\r\n>>> tools = [\"g2p\", \"syllable_o\", \"syllable_p\", \"countSyllable\", \"harmony\"]\r\n>>> result = dizge.analyze(words, tools)\r\n```\r\n\r\n## Contact\r\nFor any requests about **Dizge**, you can use the following contact info:\r\n\r\n**Email:** dizgenlp@gmail.com<br>\r\n**X (formerly Twitter):** [@dizgenlp](https://twitter.com/dizgenlp)<br>\r\n**Instagram:** [@dizgenlp](https://instagram.com/dizgenlp)<br>\r\n\r\nAdditionally, please feel free to create issue or PRs (pull requests).\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "The grammar analyzer for Turkish",
    "version": "0.1.6",
    "project_urls": {
        "Homepage": "https://github.com/dizge/dizge"
    },
    "split_keywords": [
        "python",
        " nlp",
        " linguistics",
        " phonology",
        " turkish",
        " grammar"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e455483b7458ec80faf645e80cd91b285f4d3179c388ff75e4a1f18f7f30266",
                "md5": "0cff2519b1982b7c7b4eba6f329896a5",
                "sha256": "1be3a1b83d540642c1b6320d6c3d330d7edceb71579ea6fad6f8c98fb679d23f"
            },
            "downloads": -1,
            "filename": "dizge-0.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0cff2519b1982b7c7b4eba6f329896a5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 13622,
            "upload_time": "2024-03-23T20:37:10",
            "upload_time_iso_8601": "2024-03-23T20:37:10.712010Z",
            "url": "https://files.pythonhosted.org/packages/3e/45/5483b7458ec80faf645e80cd91b285f4d3179c388ff75e4a1f18f7f30266/dizge-0.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a31fa0e3fc73bb0064ae8f8a675735a12df80be0ecd1f623b8cf0af420d77cd5",
                "md5": "e8e6b15e4721dd9ff8243ca7b3c1719c",
                "sha256": "9d33ed6034718d409cd9ad955c9509b77e6b7f940352b41402bb093b56c338f6"
            },
            "downloads": -1,
            "filename": "dizge-0.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "e8e6b15e4721dd9ff8243ca7b3c1719c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 15563,
            "upload_time": "2024-03-23T20:37:12",
            "upload_time_iso_8601": "2024-03-23T20:37:12.594982Z",
            "url": "https://files.pythonhosted.org/packages/a3/1f/a0e3fc73bb0064ae8f8a675735a12df80be0ecd1f623b8cf0af420d77cd5/dizge-0.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-23 20:37:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dizge",
    "github_project": "dizge",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "dizge"
}
        
Elapsed time: 2.14739s