|version|\ |license|\ |status|

useless-py
==========

Useful python utilities with less effort.

Installation:
-------------

.. code:: sh

    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 <https://github.com/Code-ReaQtor/useless-py/tree/master/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:

      .. code:: sh

          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:
-------

-  Ronie Martinez (ronmarti18@gmail.com)

.. |version| image:: https://img.shields.io/pypi/v/useless-py.svg
.. |license| image:: https://img.shields.io/pypi/l/useless-py.svg
.. |status| image:: https://img.shields.io/pypi/status/useless-py.svg
