Source code for chemistry_tools.pubchem.images

#!/usr/bin/env python3
#
#  images.py
"""
Functions for handling images.
"""
#
#  Copyright (c) 2019-2020 Dominic Davis-Foster <dominic@davis-foster.co.uk>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation; either version 3 of the
#  License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#  GNU Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#  MA 02110-1301, USA.
#

# stdlib
from io import BytesIO
from typing import Sequence, Union

# 3rd party
from PIL import Image  # nodep

# this package
from .enums import PubChemNamespace
from .pug_rest import do_rest_get

__all__ = ["get_structure_image"]


[docs]def get_structure_image( identifier: Union[str, int, Sequence[Union[str, int]]], namespace: Union[PubChemNamespace, str] = PubChemNamespace.name, width: int = 300, height: int = 300 ) -> Image.Image: """ Returns an image of the structure of the compound with the given name. :param identifier: Identifiers (e.g. name, CID) for the compound to look up. When using the CID namespace data for multiple compounds can be retrieved at once by supplying either a comma-separated string or a list. :param namespace: The type of identifier to look up. Valid values are in :class:`~.PubChemNamespace`. :param width: The image width in pixels. :param height: The image height in pixels. :return: Pillow Image data """ r = do_rest_get(namespace, identifier, "PNG", png_width=width, png_height=height) return Image.open(BytesIO(r.content))
rest_get_structure_image = get_structure_image