Skip to main content

A Python Package to make life ez for pythonistas

Project description

ez_life

The objective of ez_life is to make coding with Python easier by removing repetitive code while still maintaining the same level of functionality

param2attr

  • Here is a little sneak peak of what you can do with this package!
    • First consider this code block:
from ez_life import Param2attr

class Foo:
	def __init__(self, param1 = None, param2 = None, param3 = None):
		# This sux
			self.param1 = param1
			self.param2 = param2
			self.param3 = param3
  • We can instead create a class that looks like this, using a property decorator to perform the param to attribute assignments
class Foo:
	@Param2attr(exclude=None) 
	def __init__(self, param1 = None, param2 = None, param3 = None): 
		# this good, allows u to write other code here during initialization 
		pass
  • If you are interested to learn about the implementation or other features that param2attr supports, feel free to read the documentation

JTProperty

  • Ez_life can also manage variable dependencies, building upon the @property decorator!

  • First here's some code with the classic @property decorator:

class SetAndGet:
  def __init__(self, r = 1):
    # initialise the protected variable
    self._radius = None

    # calls the @radius.setter method
    self.radius = r
  @property
  def radius(self):
    if self._radius is None:
      self.radius = 2
    return self._radius
  @radius.setter
  def radius(self, r):
    if r <= 0:
      raise ValueError("radius should be greater than 0")
    self._radius = r
  • Using the @JTProperty decorator, we can see that we can abstract away the self._radius variable and hence write less code!
class JTSetAndGet:
  def __init__(self, r = 1):
    self.radius = r
  @JTProperty(setter = True)
  def radius(self):
    return 2

  @radius.setter
  def radius(self, r):
    if r <= 0:
      raise ValueError("radius should be greater than 0")
    return r
  • JTProperty also supports a variety of other features including:
    • Automatic setter creation
    • Graph Dependencies
      • Support for inheritence
  • Read the documentation here to learn about these features!

ez_life directory layout:

  • ez_life: the package containing all .ipynb dev files and converted .py files
    • param2attr.ipynb: dev notebook for automation of parameter creation to class object attributes
    • param2attr.py: param2attr.ipynb -> param2attr.py via Makefile
    • jt_property.ipynb: dev notebook for more writing dependency related code
    • jt_property.py: jt_property.ipynb -> jt_property.py via Makefile
  • .gitignore: for ignoring files when pushing and pulling
  • LICENSE: what u can and can't do with this repo
  • MAKEFILE: automated test cases and .ipynb to .py conversion
  • README: this file essentially
  • test*.py: test files for modules within ez_life

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

ez-life-1.0.1.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

ez_life-1.0.1-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file ez-life-1.0.1.tar.gz.

File metadata

  • Download URL: ez-life-1.0.1.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5

File hashes

Hashes for ez-life-1.0.1.tar.gz
Algorithm Hash digest
SHA256 395f48e306dd7cef47db1c056d7ad94da548e1bfa64095a4555aa1b6ef460120
MD5 5b597990ad4caf6539abecf667a01172
BLAKE2b-256 d0d70d95fd3fcc7e9c55cfc00deafe14a7bbe161a5257666452caa337fe81ba4

See more details on using hashes here.

File details

Details for the file ez_life-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ez_life-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5

File hashes

Hashes for ez_life-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5e26e08e50de678fb90c0d5668a38d400dccf336aa861ea08f04dbd2fd37caf
MD5 951cf9b4c8b2331740da98d0580203bb
BLAKE2b-256 515686ba7cc0e5508db7ae708e2174ab8d78cf7e7bf0e9a3988b308670ebd9b5

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