Skip to main content

Useful python utilities with less effort.

Project description

versionlicensestatus

useless-py

Useful python utilities with less effort.

Installation:

pip install useless-py

Features:

  • set_interval() function and @interval decorator - similar to Javascript’s setInterval() method, uses gevent

  • set_timeout() function and @timeout decorator - similar to Javascript’s setTimeout() method, uses gevent

  • set_time_limit() function and @time_limit decorator - limits the maximum execution time of a function, raises TimeLimitExceededError

  • @extends decorator - inheritance using a class decorator, inspired by Java’s extends

  • @nocase decorator - class decorator that allows access to attributes regardless of coding style (camelCase or snake_case)

  • @didyoumean decorator - class decorator, raises DidYouMeanError (subclass of AttributeError) which suggest close matches

Usage:

Check “samples” folder.

To-Do:

  • [ ] Class Decorators

    • [x] @extends - like Java’s (instead of direct inheritance). IMO, more readable when you are doing multiple inheritance.

    • [ ] @implements - like Java’s (with the help of python “abc” module).

    • [x] @nocase - rewrite of “nocase” module using a class decorator instead of direct inheritance, more Pythonic, IMO. (https://pypi.python.org/pypi/nocase)

    • [x] @didyoumean - raises a “DidYouMean” exception (instead of AttributeError) when an attribute of an instance does not exist and suggests close matches. Think of “git” when you messed up on giving the correct argument:

      C:\Users\Ronie Martinez>git hello
      git: 'hello' is not a git command. See 'git --help'.
      Did you mean one of these?
          help
          reflog
  • [ ] Context Managers

    • [ ] Regular expressions in a “with” statement - I miss the old Perl 1,2, $3 (special variables)… but global variable is an overkill, let’s make a more Pythonic feature

Author:

Supported by

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