Skip to main content

Moose-like object system for Python

Project description

Synopsis

import elk


class Point(elk.Elk):
    x = elk.ElkAttribute(mode='rw', type=int)
    y = elk.ElkAttribute(mode='rw', type=int)

    def clear(self):
        self.x = 0
        self.y = 0


class Point3D(Point):
    z = elk.ElkAttribute(mode='rw', type=int)

    @elk.after('clear')
    def clear_z(self):
        self.z = 0

What is Elk?

Elk (homepage) is an object system for Python inspired by Moose for Perl. It implements many of the features of Moose including:

  • attribute delegation

  • default attribute values

  • lazy attribute initialisation

  • read-only attributes

  • required attributes

  • attribute type constraints

  • roles

  • method modifiers

Elk is written in pure Python and there are no dependencies beyond the standard library.

How does Elk differ from Moose?

Moose has many features that are not (yet) implemented in Elk.

While Elk tries to faithfully implement Moose paradigms and patterns in Python, it uses Python idioms and language features as much as possible. There are also some differences in terminology in order to be consistent with Python terminology or idioms.

There is not yet a namespace for Elk extensions, nor any convenient mechanism for extending it.

Installation

pip install elk

License

Elk is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Contributing

The Elk source code is available from https://github.com/frasertweedale/elk.

Bug reports, patches, feature requests, code review and documentation are welcomed.

To submit a patch, please use git send-email or generate a pull request. Write a well formed commit message. If your patch is nontrivial, update the copyright notice at the top of each changed file.

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

elk-0.2.1.tar.gz (37.0 kB view details)

Uploaded Source

File details

Details for the file elk-0.2.1.tar.gz.

File metadata

  • Download URL: elk-0.2.1.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for elk-0.2.1.tar.gz
Algorithm Hash digest
SHA256 08f02690d51b7a144b5d760e290f466e8ae281899c0f033f054b8d8ff498fe5e
MD5 25ae3e2d8bb793d80ed8bf89f145b2b4
BLAKE2b-256 7813a506537df9ca0cf50001f6c8e615d57be094aacfc10d9c6afeaafda9ab36

See more details on using hashes here.

Supported by

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