naampy


Namenaampy JSON
Version 0.6.0 PyPI version JSON
download
home_pagehttps://github.com/appeler/naampy
SummaryInfer Gender from Indian Names
upload_time2023-04-17 17:06:20
maintainer
docs_urlNone
authorGaurav Sood, Suriyan Laohaprapanon, Rajashekar Chintalapati
requires_python
licenseMIT
keywords gender names
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            naampy: Infer Sociodemographic Characteristics from Indian Names
----------------------------------------------------------------

.. image:: https://github.com/appeler/naampy/workflows/test/badge.svg
    :target: https://github.com/appeler/naampy/actions/workflows/test.yml
.. image:: https://img.shields.io/pypi/v/naampy.svg
    :target: https://pypi.python.org/pypi/naampy
.. image:: https://readthedocs.org/projects/naampy/badge/?version=latest
    :target: http://naampy.readthedocs.io/en/latest/?badge=latest
.. image:: https://pepy.tech/badge/naampy
    :target: https://pepy.tech/project/naampy

The ability to programmatically reliably infer the social attributes of a person from their name can be useful for a broad set of tasks, from estimating bias in coverage of women in the media to estimating bias in lending against certain social groups. But unlike the American Census Bureau, which produces a list of last names and first names, which can (and are) used to infer the gender, race, ethnicity, etc., from names, the Indian government produces no such commensurate datasets. And hence inferring the relationship between gender, ethnicity, language group, etc., and names have generally been done with small datasets constructed in an ad-hoc manner.

We fill this yawning gap. Using data from the `Indian Electoral Rolls <https://github.com/in-rolls/electoral_rolls>`__ (parsed data `here <https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/MUEGDT>`__), we estimate the proportion female, male, and `third sex` (see `here <https://en.wikipedia.org/wiki/Third_gender>`__) for a particular `first name, year, and state.`

Please also check out `pranaam <https://github.com/appeler/pranaam>`__ that uses land record data from Bihar to infer religion based on the name. The package uses `indicate <https://github.com/in-rolls/indicate>`__ to transliterate Hindi to English.

Data
~~~~

In all, we capitalize on information in the parsed electoral rolls from the following 31 states and union territories: 

.. list-table:: States
   :widths: 30 30 30 30
    
   * - Andaman
     - Delhi
     - Kerala
     - Puducherry
   
   *  - Andhra Pradesh
      - Goa
      - Madhya Pradesh
      - Punjab
   *  - Arunachal Pradesh
      - Gujarat
      - Maharashtra
      - Rajasthan 
   *  - Assam
      - Haryana
      - Manipur
      - Sikkim
   *  - Bihar
      - Himachal Pradesh
      - Meghalaya
      - Tripura 
   *  - Chandigarh
      - Jammu and Kashmir
      - Mizoram
      - Uttar Pradesh   
   *   - Dadra
       - Jharkhand
       - Nagaland
       - Uttarakhand
   *  -  Daman
      - Karnataka
      - Odisha
      - 
  
How is the underlying data produced?
====================================

We split the name into first name and last name (see the python notebook for how we do this) and then aggregate per state and first_name, and tabulate `prop_male, prop_female, prop_third_gender, n_female, n_male, n_third_gender`. We produce native language rolls and english transliterations. (We use `indicate <https://github.com/in-rolls/indicate>`__ to produce transliterations for hindi rolls.)

This is used to provide the base prediction.

Given the association between prop_female and first_name may change over time, we exploited the age. Given the data were collected in 2017, we calculated the year each person was born and then did a group by year to create `prop_male, prop_female, prop_third_gender, n_female, n_male, n_third_gender`

Issues with underlying data
==============================

Concerns:

* Voting registration lists may not be accurate, systematically underrepresenting poor people, minorities, and similar such groups.

* Voting registration lists are, at best, a census of adult citizens. But to the extent there is prejudice against women, etc., that prevents them from reaching adulthood, the data bakes those biases in.

* Indian names are complicated. We do not have good parsers for them yet. We have gone for the default arrangement. Please go through the notebook to look at the judgments we make. We plan to improve the underlying data over time.

* For state electoral rolls that are neither in English and Hindi, we use libindic. The quality of transliterations is consistently bad.

Gender Classifier
==============================

We start by providing a base model for first\_name that gives the Bayes
optimal solution---the proportion of people with that name who
are women. We also provide a series of base models where the state of
residence and year of birth is known.

If the name does not exist in the database, we use `ML model <https://github.com/appeler/naampy/blob/master/naampy/data/ml_model/02_training_model.ipynb>`__ that uses the relationship between
sequences of characters in the first name and gender to predict gender from the name.

The model was trained as a regression problem instead of a classification problem because men and women share names. (See the histogram below for the female proportion for the dataset.) The model predicts 
the female proportion of the name. If it is less than 0.5, we classify it as male; otherwise, we classify it as female.

.. figure:: images/female_prop.png
   :width: 400px
   :height: 250px
   :alt: Female proportion
   :align: center

**Test data**

MSE no weights - loss: .05, metric: 0.05

RMSE no weights - loss: 0.22, metric: 0.22

**Test data with weights**

MSE with weights - loss: 0.05, metric: 0.04

RMSE with weights - loss: 0.22, metric: 0.22

Below are the inference results using different models.

.. figure:: images/infer_oos.png
   :alt: Inference on different models
   :align: center

Installation
==============================

We strongly recommend installing `naampy` inside a Python virtual environment (see `venv documentation <https://docs.python.org/3/library/venv.html#creating-virtual-environments>`__)

::

    pip install naampy


Usage
==============================

::

    usage: in_rolls_fn_gender [-h] -f FIRST_NAME
                            [-s {andaman,andhra,arunachal,assam,bihar,chandigarh,dadra,daman,delhi,goa,gujarat,haryana,himachal,jharkhand,jk,karnataka,kerala,maharashtra,manipur,meghalaya,mizoram,mp,nagaland,odisha,puducherry,punjab,rajasthan,sikkim,tripura,up,uttarakhand}]
                            [-y YEAR] [-o OUTPUT]
                            input
  
    Appends Electoral roll columns for prop_female, n_female, n_male
    n_third_gender by first name

    positional arguments:
    input                 Input file

    optional arguments:
    -h, --help            show this help message and exit
    -f FIRST_NAME, --first-name FIRST_NAME
                            Name or index location of column contains the first
                            name
    -s {andaman,andhra,arunachal,assam,bihar,chandigarh,dadra,daman,delhi,goa,gujarat,haryana,himachal,jharkhand,jk,karnataka,kerala,maharashtra,manipur,meghalaya,mizoram,mp,nagaland,odisha,puducherry,punjab,rajasthan,sikkim,tripura,up,uttarakhand},
    --state {andaman,andhra,arunachal,assam,bihar,chandigarh,dadra,daman,delhi,goa,gujarat,haryana,himachal,jharkhand,jk,karnataka,kerala,maharashtra,manipur,meghalaya,mizoram,mp,nagaland,odisha,puducherry,punjab,rajasthan,sikkim,tripura,up,uttarakhand}
                            State name of Indian electoral rolls data
                            (default=all)
    -y YEAR, --year YEAR  Birth year in Indian electoral rolls data
                            (default=all)
    -o OUTPUT, --output OUTPUT
                            Output file with Indian electoral rolls data columns

        choices=["v1", "v2", "v2_1k", "v2_native", "v2_en"],


Using naampy
==============================

::

    >>> import pandas as pd
    >>> from naampy import in_rolls_fn_gender

    >>> names = [{'name': 'gaurav'},
                 {'name': 'nabha'},
                 {'name': 'yasmin'},
                 {'name': 'deepti'},
                 {'name': 'hrithik'},
                 {'name': 'vivek'}]


    >>> df = pd.DataFrame(names)

    >>> in_rolls_fn_gender(df, 'name')
                name    n_male  n_female  n_third_gender  prop_female  prop_male  prop_third_gender pred_gender  pred_prob
        0   gaurav   25625.0      47.0             0.0     0.001831   0.998169                0.0         NaN        NaN
        1    nabha       NaN       NaN             NaN          NaN        NaN                NaN      female   0.755028
        2   yasmin      58.0    6079.0             0.0     0.990549   0.009451                0.0         NaN        NaN
        3   deepti      35.0    5784.0             0.0     0.993985   0.006015                0.0         NaN        NaN
        4  hrithik       NaN       NaN             NaN          NaN        NaN                NaN        male   0.922181
        5    vivek  233622.0    1655.0             0.0     0.007034   0.992966                0.0         NaN        NaN
    
    >>> help(in_rolls_fn_gender)
    Help on method in_rolls_fn_gender in module naampy.in_rolls_fn:

    in_rolls_fn_gender(df, namecol, state=None, year=None) method of builtins.type instance
        Appends additional columns from Female ratio data to the input DataFrame
        based on the first name.

        Removes extra space. Checks if the name is the Indian electoral rolls data.
        If it is, outputs data from that row.

        Args:
            df (:obj:`DataFrame`): Pandas DataFrame containing the first name
                column.
            namecol (str or int): Column's name or location of the name in
                DataFrame.
            state (str): The state name of Indian electoral rolls data to be used.
                (default is None for all states)
            year (int): The year of Indian electoral rolls to be used.
                (default is None for all years)

        Returns:
            DataFrame: Pandas DataFrame with additional columns:-
                'n_female', 'n_male', 'n_third_gender',
                'prop_female', 'prop_male', 'prop_third_gender' by first name

    # If you want to use model prediction use `predict_fn_gender` like below
    from naampy import predict_fn_gender
    input = [
         "rajinikanth",
         "harvin",
         "Shyamsingha",
         "srihan",
         "thammam",
         "bahubali",
         "rajarajeshwari",
         "shobby",
         "tamannaah bhatia",
         "mehreen",
         "kiara",
         "shivathmika",
         "komalee",
         "nazriya",
         "nabha",
         "taapsee",
         "parineeti",
         "katrina",
         "ileana",
         "vishwaksen",
         "sampoornesh",
         "hrithik",
         "emraan",
         "rajkummar",
         "sharman",
         "ayushmann",
         "irrfan",
         "riteish"
    ]
    print(predict_fn_gender(input))

                        name pred_gender  pred_prob
    0        rajinikanth        male   0.994747
    1             harvin        male   0.840713
    2        shyamsingha        male   0.956903
    3             srihan        male   0.825542
    4            thammam      female   0.564286
    5           bahubali        male   0.901159
    6     rajarajeshwari      female   0.942478
    7             shobby        male   0.788314
    8   tamannaah bhatia      female   0.971478
    9            mehreen      female   0.659633
    10             kiara      female   0.614125
    11       shivathmika      female   0.743240
    12           komalee      female   0.901051
    13           nazriya      female   0.854167
    14             nabha      female   0.755028
    15           taapsee      female   0.665176
    16         parineeti      female   0.813237
    17           katrina      female   0.630126
    18            ileana      female   0.640331
    19        vishwaksen        male   0.992237
    20       sampoornesh        male   0.940307
    21           hrithik        male   0.922181
    22            emraan        male   0.795963
    23         rajkummar        male   0.845139
    24           sharman        male   0.858538
    25         ayushmann        male   0.964895
    26            irrfan        male   0.837053
    27           riteish        male   0.950755

Functionality
==============================

When you first run `in_rolls_fn_gender`, it downloads data from `Harvard Dataverse <https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/WZGJBM>`__ to the local folder. Next time you run the function, it searches for local data and if it finds it, it uses it.
Use `predict_fn_gender` to get gender predictions based on first name.

Authors
==============================

Suriyan Laohaprapanon, Gaurav Sood, and Rajashekar Chintalapati

License
==============================

The package is released under the `MIT
License <https://opensource.org/licenses/MIT>`__.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/appeler/naampy",
    "name": "naampy",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "gender names",
    "author": "Gaurav Sood, Suriyan Laohaprapanon, Rajashekar Chintalapati",
    "author_email": "gsood07@gmail.com, suriyant@gmail.com, rajshekar.ch@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/07/d8/35d111eea80a5def08040216ee027246e6ed016431484c6e0e2acb08064b/naampy-0.6.0.tar.gz",
    "platform": null,
    "description": "naampy: Infer Sociodemographic Characteristics from Indian Names\n----------------------------------------------------------------\n\n.. image:: https://github.com/appeler/naampy/workflows/test/badge.svg\n    :target: https://github.com/appeler/naampy/actions/workflows/test.yml\n.. image:: https://img.shields.io/pypi/v/naampy.svg\n    :target: https://pypi.python.org/pypi/naampy\n.. image:: https://readthedocs.org/projects/naampy/badge/?version=latest\n    :target: http://naampy.readthedocs.io/en/latest/?badge=latest\n.. image:: https://pepy.tech/badge/naampy\n    :target: https://pepy.tech/project/naampy\n\nThe ability to programmatically reliably infer the social attributes of a person from their name can be useful for a broad set of tasks, from estimating bias in coverage of women in the media to estimating bias in lending against certain social groups. But unlike the American Census Bureau, which produces a list of last names and first names, which can (and are) used to infer the gender, race, ethnicity, etc., from names, the Indian government produces no such commensurate datasets. And hence inferring the relationship between gender, ethnicity, language group, etc., and names have generally been done with small datasets constructed in an ad-hoc manner.\n\nWe fill this yawning gap. Using data from the `Indian Electoral Rolls <https://github.com/in-rolls/electoral_rolls>`__ (parsed data `here <https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/MUEGDT>`__), we estimate the proportion female, male, and `third sex` (see `here <https://en.wikipedia.org/wiki/Third_gender>`__) for a particular `first name, year, and state.`\n\nPlease also check out `pranaam <https://github.com/appeler/pranaam>`__ that uses land record data from Bihar to infer religion based on the name. The package uses `indicate <https://github.com/in-rolls/indicate>`__ to transliterate Hindi to English.\n\nData\n~~~~\n\nIn all, we capitalize on information in the parsed electoral rolls from the following 31 states and union territories: \n\n.. list-table:: States\n   :widths: 30 30 30 30\n    \n   * - Andaman\n     - Delhi\n     - Kerala\n     - Puducherry\n   \n   *  - Andhra Pradesh\n      - Goa\n      - Madhya Pradesh\n      - Punjab\n   *  - Arunachal Pradesh\n      - Gujarat\n      - Maharashtra\n      - Rajasthan \n   *  - Assam\n      - Haryana\n      - Manipur\n      - Sikkim\n   *  - Bihar\n      - Himachal Pradesh\n      - Meghalaya\n      - Tripura \n   *  - Chandigarh\n      - Jammu and Kashmir\n      - Mizoram\n      - Uttar Pradesh   \n   *   - Dadra\n       - Jharkhand\n       - Nagaland\n       - Uttarakhand\n   *  -  Daman\n      - Karnataka\n      - Odisha\n      - \n  \nHow is the underlying data produced?\n====================================\n\nWe split the name into first name and last name (see the python notebook for how we do this) and then aggregate per state and first_name, and tabulate `prop_male, prop_female, prop_third_gender, n_female, n_male, n_third_gender`. We produce native language rolls and english transliterations. (We use `indicate <https://github.com/in-rolls/indicate>`__ to produce transliterations for hindi rolls.)\n\nThis is used to provide the base prediction.\n\nGiven the association between prop_female and first_name may change over time, we exploited the age. Given the data were collected in 2017, we calculated the year each person was born and then did a group by year to create `prop_male, prop_female, prop_third_gender, n_female, n_male, n_third_gender`\n\nIssues with underlying data\n==============================\n\nConcerns:\n\n* Voting registration lists may not be accurate, systematically underrepresenting poor people, minorities, and similar such groups.\n\n* Voting registration lists are, at best, a census of adult citizens. But to the extent there is prejudice against women, etc., that prevents them from reaching adulthood, the data bakes those biases in.\n\n* Indian names are complicated. We do not have good parsers for them yet. We have gone for the default arrangement. Please go through the notebook to look at the judgments we make. We plan to improve the underlying data over time.\n\n* For state electoral rolls that are neither in English and Hindi, we use libindic. The quality of transliterations is consistently bad.\n\nGender Classifier\n==============================\n\nWe start by providing a base model for first\\_name that gives the Bayes\noptimal solution---the proportion of people with that name who\nare women. We also provide a series of base models where the state of\nresidence and year of birth is known.\n\nIf the name does not exist in the database, we use `ML model <https://github.com/appeler/naampy/blob/master/naampy/data/ml_model/02_training_model.ipynb>`__ that uses the relationship between\nsequences of characters in the first name and gender to predict gender from the name.\n\nThe model was trained as a regression problem instead of a classification problem because men and women share names. (See the histogram below for the female proportion for the dataset.) The model predicts \nthe female proportion of the name. If it is less than 0.5, we classify it as male; otherwise, we classify it as female.\n\n.. figure:: images/female_prop.png\n   :width: 400px\n   :height: 250px\n   :alt: Female proportion\n   :align: center\n\n**Test data**\n\nMSE no weights - loss: .05, metric: 0.05\n\nRMSE no weights - loss: 0.22, metric: 0.22\n\n**Test data with weights**\n\nMSE with weights - loss: 0.05, metric: 0.04\n\nRMSE with weights - loss: 0.22, metric: 0.22\n\nBelow are the inference results using different models.\n\n.. figure:: images/infer_oos.png\n   :alt: Inference on different models\n   :align: center\n\nInstallation\n==============================\n\nWe strongly recommend installing `naampy` inside a Python virtual environment (see `venv documentation <https://docs.python.org/3/library/venv.html#creating-virtual-environments>`__)\n\n::\n\n    pip install naampy\n\n\nUsage\n==============================\n\n::\n\n    usage: in_rolls_fn_gender [-h] -f FIRST_NAME\n                            [-s {andaman,andhra,arunachal,assam,bihar,chandigarh,dadra,daman,delhi,goa,gujarat,haryana,himachal,jharkhand,jk,karnataka,kerala,maharashtra,manipur,meghalaya,mizoram,mp,nagaland,odisha,puducherry,punjab,rajasthan,sikkim,tripura,up,uttarakhand}]\n                            [-y YEAR] [-o OUTPUT]\n                            input\n  \n    Appends Electoral roll columns for prop_female, n_female, n_male\n    n_third_gender by first name\n\n    positional arguments:\n    input                 Input file\n\n    optional arguments:\n    -h, --help            show this help message and exit\n    -f FIRST_NAME, --first-name FIRST_NAME\n                            Name or index location of column contains the first\n                            name\n    -s {andaman,andhra,arunachal,assam,bihar,chandigarh,dadra,daman,delhi,goa,gujarat,haryana,himachal,jharkhand,jk,karnataka,kerala,maharashtra,manipur,meghalaya,mizoram,mp,nagaland,odisha,puducherry,punjab,rajasthan,sikkim,tripura,up,uttarakhand},\n    --state {andaman,andhra,arunachal,assam,bihar,chandigarh,dadra,daman,delhi,goa,gujarat,haryana,himachal,jharkhand,jk,karnataka,kerala,maharashtra,manipur,meghalaya,mizoram,mp,nagaland,odisha,puducherry,punjab,rajasthan,sikkim,tripura,up,uttarakhand}\n                            State name of Indian electoral rolls data\n                            (default=all)\n    -y YEAR, --year YEAR  Birth year in Indian electoral rolls data\n                            (default=all)\n    -o OUTPUT, --output OUTPUT\n                            Output file with Indian electoral rolls data columns\n\n        choices=[\"v1\", \"v2\", \"v2_1k\", \"v2_native\", \"v2_en\"],\n\n\nUsing naampy\n==============================\n\n::\n\n    >>> import pandas as pd\n    >>> from naampy import in_rolls_fn_gender\n\n    >>> names = [{'name': 'gaurav'},\n                 {'name': 'nabha'},\n                 {'name': 'yasmin'},\n                 {'name': 'deepti'},\n                 {'name': 'hrithik'},\n                 {'name': 'vivek'}]\n\n\n    >>> df = pd.DataFrame(names)\n\n    >>> in_rolls_fn_gender(df, 'name')\n                name    n_male  n_female  n_third_gender  prop_female  prop_male  prop_third_gender pred_gender  pred_prob\n        0   gaurav   25625.0      47.0             0.0     0.001831   0.998169                0.0         NaN        NaN\n        1    nabha       NaN       NaN             NaN          NaN        NaN                NaN      female   0.755028\n        2   yasmin      58.0    6079.0             0.0     0.990549   0.009451                0.0         NaN        NaN\n        3   deepti      35.0    5784.0             0.0     0.993985   0.006015                0.0         NaN        NaN\n        4  hrithik       NaN       NaN             NaN          NaN        NaN                NaN        male   0.922181\n        5    vivek  233622.0    1655.0             0.0     0.007034   0.992966                0.0         NaN        NaN\n    \n    >>> help(in_rolls_fn_gender)\n    Help on method in_rolls_fn_gender in module naampy.in_rolls_fn:\n\n    in_rolls_fn_gender(df, namecol, state=None, year=None) method of builtins.type instance\n        Appends additional columns from Female ratio data to the input DataFrame\n        based on the first name.\n\n        Removes extra space. Checks if the name is the Indian electoral rolls data.\n        If it is, outputs data from that row.\n\n        Args:\n            df (:obj:`DataFrame`): Pandas DataFrame containing the first name\n                column.\n            namecol (str or int): Column's name or location of the name in\n                DataFrame.\n            state (str): The state name of Indian electoral rolls data to be used.\n                (default is None for all states)\n            year (int): The year of Indian electoral rolls to be used.\n                (default is None for all years)\n\n        Returns:\n            DataFrame: Pandas DataFrame with additional columns:-\n                'n_female', 'n_male', 'n_third_gender',\n                'prop_female', 'prop_male', 'prop_third_gender' by first name\n\n    # If you want to use model prediction use `predict_fn_gender` like below\n    from naampy import predict_fn_gender\n    input = [\n         \"rajinikanth\",\n         \"harvin\",\n         \"Shyamsingha\",\n         \"srihan\",\n         \"thammam\",\n         \"bahubali\",\n         \"rajarajeshwari\",\n         \"shobby\",\n         \"tamannaah bhatia\",\n         \"mehreen\",\n         \"kiara\",\n         \"shivathmika\",\n         \"komalee\",\n         \"nazriya\",\n         \"nabha\",\n         \"taapsee\",\n         \"parineeti\",\n         \"katrina\",\n         \"ileana\",\n         \"vishwaksen\",\n         \"sampoornesh\",\n         \"hrithik\",\n         \"emraan\",\n         \"rajkummar\",\n         \"sharman\",\n         \"ayushmann\",\n         \"irrfan\",\n         \"riteish\"\n    ]\n    print(predict_fn_gender(input))\n\n                        name pred_gender  pred_prob\n    0        rajinikanth        male   0.994747\n    1             harvin        male   0.840713\n    2        shyamsingha        male   0.956903\n    3             srihan        male   0.825542\n    4            thammam      female   0.564286\n    5           bahubali        male   0.901159\n    6     rajarajeshwari      female   0.942478\n    7             shobby        male   0.788314\n    8   tamannaah bhatia      female   0.971478\n    9            mehreen      female   0.659633\n    10             kiara      female   0.614125\n    11       shivathmika      female   0.743240\n    12           komalee      female   0.901051\n    13           nazriya      female   0.854167\n    14             nabha      female   0.755028\n    15           taapsee      female   0.665176\n    16         parineeti      female   0.813237\n    17           katrina      female   0.630126\n    18            ileana      female   0.640331\n    19        vishwaksen        male   0.992237\n    20       sampoornesh        male   0.940307\n    21           hrithik        male   0.922181\n    22            emraan        male   0.795963\n    23         rajkummar        male   0.845139\n    24           sharman        male   0.858538\n    25         ayushmann        male   0.964895\n    26            irrfan        male   0.837053\n    27           riteish        male   0.950755\n\nFunctionality\n==============================\n\nWhen you first run `in_rolls_fn_gender`, it downloads data from `Harvard Dataverse <https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/WZGJBM>`__ to the local folder. Next time you run the function, it searches for local data and if it finds it, it uses it.\nUse `predict_fn_gender` to get gender predictions based on first name.\n\nAuthors\n==============================\n\nSuriyan Laohaprapanon, Gaurav Sood, and Rajashekar Chintalapati\n\nLicense\n==============================\n\nThe package is released under the `MIT\nLicense <https://opensource.org/licenses/MIT>`__.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Infer Gender from Indian Names",
    "version": "0.6.0",
    "split_keywords": [
        "gender",
        "names"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f52aa4eece72effd256f422a8db55f613b7d1072c81b87ddcc98997ee63a85e7",
                "md5": "9029627bf4c0e611b773bd3e520ab0c1",
                "sha256": "2cba73229410a00b50387bf9ea4dec996847de90936febec451cfc09f63a2c78"
            },
            "downloads": -1,
            "filename": "naampy-0.6.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9029627bf4c0e611b773bd3e520ab0c1",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 1946954,
            "upload_time": "2023-04-17T17:06:19",
            "upload_time_iso_8601": "2023-04-17T17:06:19.007614Z",
            "url": "https://files.pythonhosted.org/packages/f5/2a/a4eece72effd256f422a8db55f613b7d1072c81b87ddcc98997ee63a85e7/naampy-0.6.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "07d835d111eea80a5def08040216ee027246e6ed016431484c6e0e2acb08064b",
                "md5": "04e332351c659daf1b7ac63cc8e342d3",
                "sha256": "ae54a511c816ee33dfbd2a053171617361fbbd126636b0e7bc0d40e4ef048c4a"
            },
            "downloads": -1,
            "filename": "naampy-0.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "04e332351c659daf1b7ac63cc8e342d3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1952180,
            "upload_time": "2023-04-17T17:06:20",
            "upload_time_iso_8601": "2023-04-17T17:06:20.922546Z",
            "url": "https://files.pythonhosted.org/packages/07/d8/35d111eea80a5def08040216ee027246e6ed016431484c6e0e2acb08064b/naampy-0.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-17 17:06:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "appeler",
    "github_project": "naampy",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "naampy"
}
        
Elapsed time: 1.35374s