Skip to main content

python_avatars

Codacy Badge Code Climate maintainability PyPi version PyPI - Downloads GitHub top language

Randomly generated avatars. (View at: https://github.com/ibonn/python_avatars/blob/main/examples/random_gif_apng/avatars.png)

Avatar library in Python

Table of contents

  1. Features
  2. Install
  3. Usage
  4. License
  5. Acknowledgments

Features

  • Highly customizable. Design your own clothes, hair styles, eyes... and add them to the library copying the svg files into a directory
  • Vanilla Python. No external libraries needed
  • The library contains some colors for clothes, hair and skin and supports user defined colors using hex encoding
  • Pure SVG
  • Random avatar generation

Install

Using pip, from PyPi (latest stable release):

pip install python-avatars

Using pip, from this repository (May not be stable!):

git clone https://github.com/ibonn/python_avatars.git python_avatars
cd python_avatars
pip install -e .

Usage

Create your own avatar

import python_avatars as pa

my_avatar = pa.Avatar(
    style=pa.AvatarStyle.CIRCLE,
    background_color=pa.BackgroundColor.BLACK,
    top=pa.HairType.STRAIGHT_2,
    eyebrows=pa.EyebrowType.DEFAULT_NATURAL,
    eyes=pa.EyeType.DEFAULT,
    nose=pa.NoseType.DEFAULT,
    mouth=pa.MouthType.EATING,
    facial_hair=pa.FacialHairType.NONE,
    # You can use hex colors on any color attribute...
    skin_color="#00FFFF",
    # Or you can use the colors provided by the library
    hair_color=pa.HairColor.BLACK,
    accessory=pa.AccessoryType.NONE,
    clothing=pa.ClothingType.HOODIE,
    clothing_color=pa.ClothingColor.HEATHER
)

# Save to a file
my_avatar.render("my_avatar.svg")

Create a random avatar

import python_avatars as pa

# Completely random avatar
random_avatar_1 = pa.Avatar.random()

# Completely random avatar except for the hat
random_avatar_2 = pa.Avatar.random(top=pa.HatType.HAT)  # More attributes can stay fixed

# Fixed avatar but random clothes
random_avatar_3 = pa.Avatar(
    style=pa.AvatarStyle.CIRCLE,
    hair_color=pa.HairColor.BLACK,
    accessory=pa.AccessoryType.NONE,
    clothing=pa.ClothingType.pick_random(), # The clothes are chosen randomly
)

Custom shirt text

When using the graphic shirt, - ClothingType.GRAPHIC - you can set a custom text if you want to.

import python_avatars as pa

pa.Avatar(
    style=pa.AvatarStyle.CIRCLE,
    background_color='#FF00FF',
    # Choose graphic shirt
    clothing=pa.ClothingType.GRAPHIC_SHIRT,
    clothing_color=pa.ClothingColor.GRAY_02,
    # Important to choose this as shirt_graphic, otherwise shirt_text will be ignored
    shirt_graphic=pa.ClothingGraphic.CUSTOM_TEXT,
    shirt_text='Chess'
).render("avatar_text.svg")

will output the file avatar_text.svg:

Avatar wearing shirt with custom text. (View at: https://github.com/ibonn/python_avatars/blob/main/examples/shirt_text/avatar_text.svg)

Expand the library

Suppose you have a file called suit.svg that looks like this

Suit ready to be used by the avatar. (View at: https://github.com/ibonn/python_avatars/blob/main/examples/install/suit.svg)

You can add it to the library just by running

from python_avatars import install_part

# Install the new part
install_part("suit.svg", pa.ClothingType)

And then use it

suit_avatar = pa.Avatar.random(
    clothing=pa.ClothingType.SUIT
)

suit_avatar.render("suit_avatar.svg")

Which outputs the file suit_avatar.svg that looks like this

Randomly generated avatar wearing the installed suit. (View at: https://github.com/ibonn/python_avatars/blob/main/examples/install/avatar_suit.svg)

The name of the newly added value will be exactly the name of the svg file converted to uppercase replacing all non alphanumeric chars with underscores and removing all leading digits.

Uninstalling the installed part is as easy as installing it

from python_avatars import uninstall_part, ClothingType

uninstall_part(ClothingType.SUIT, confirm=False)    # confirm=False will not prompt for confirmation

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

Metadata

Release files for python-avatars 1.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-avatars 1.4.1
File Size Uploaded
python_avatars-1.4.1.tar.gz 215.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-avatars 1.4.1
File Interpreter ABI Platform
python_avatars-1.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 516.5 kB

Release files / python_avatars-1.4.1.tar.gz

Download URL python_avatars-1.4.1.tar.gz
Size 215.4 kB
Tags Source
SHA-256 checksum
How to use checksums
133dc0e1dfd778f0287aa6b6697da2677aeb3ce985ebf908205068e963165b0e
BLAKE2b-256 checksum
How to use checksums
c2b6cca0fe90db8dd804a81dc1e428f40e168ac194d9a14d2b5268cdc45ef5d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / python_avatars-1.4.1-py3-none-any.whl

Download URL python_avatars-1.4.1-py3-none-any.whl
Size 301.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ef97b1f8ac23583367705f876fbbac1cc118435982532d882ccc788e95663722
BLAKE2b-256 checksum
How to use checksums
b050a6c79dd2e1b9de1aa64f3b38e10be972308dd004f94ac76f6ea6060c9fd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.4.1 This release

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page