Skip to main content

Create __repr__ automatically or declaratively.

Project description

PyPI Version Python Version MIT License

Installation

$ pip install represent

Automatic Generation

from represent import ReprMixin


class Rectangle(ReprMixin, object):
    def __init__(self, name, color, width, height):
        self.name = name
        self.color = color
        self.width = width
        self.height = height

        super(Rectangle, self).__init__()

rect = Rectangle('Timothy', 'red', 15, 4.5)
print(rect)
Rectangle(name='Timothy', color='red', width=15, height=4.5)

Declarative Generation

from represent import ReprHelper


class ContrivedExample(object):
    def __init__(self, description, radians, shape, color, miles):
        self.description = description
        self.degrees = radians * 180 / 3.141592654
        self.shape = shape
        self._color = color
        self.km = 1.60934 * miles

    def __repr__(self):
        r = ReprHelper(self)
        r.positional_from_attr('description')
        r.positional_with_value(self.degrees * 3.141592654 / 180)
        r.keyword_from_attr('shape')
        r.keyword_from_attr('color', '_color')
        r.keyword_with_value('miles', self.km / 1.60934)
        return str(r)

ce = ContrivedExample('does something', 0.345, 'square', 'red', 22)
print(ce)
ContrivedExample('does something', 0.345, shape='square', color='red', miles=22.0)

For pretty printer support and more information, visit the documentation!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Represent-1.2.1.tar.gz (5.8 kB view details)

Uploaded Source

File details

Details for the file Represent-1.2.1.tar.gz.

File metadata

  • Download URL: Represent-1.2.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Represent-1.2.1.tar.gz
Algorithm Hash digest
SHA256 acf8daadd7e96882282deb43fe55d050867722753fd80a3572b693b0d6f0f2ad
MD5 447448185f9fe0865db8fddd3b966811
BLAKE2b-256 031a19f2da154e99b9fd867439a81f4349b2c509d183012089247d58f399bb81

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page