public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/util/
Date: Tue,  3 Sep 2013 08:35:30 +0000 (UTC)	[thread overview]
Message-ID: <1378197042.7739bc6f1809eabb3f034f50978e1e9f7d0c6c08.dywi@gentoo> (raw)

commit:     7739bc6f1809eabb3f034f50978e1e9f7d0c6c08
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Tue Sep  3 08:30:42 2013 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Tue Sep  3 08:30:42 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=7739bc6f

roverlay/util/counter

generates numbers in ascending order

---
 roverlay/util/counter.py | 68 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/roverlay/util/counter.py b/roverlay/util/counter.py
new file mode 100644
index 0000000..53fe631
--- /dev/null
+++ b/roverlay/util/counter.py
@@ -0,0 +1,68 @@
+# R overlay --
+# -*- coding: utf-8 -*-
+# Copyright (C) 2013 André Erdmann <dywi@mailerd.de>
+# Distributed under the terms of the GNU General Public License;
+# either version 2 of the License, or (at your option) any later version.
+
+try:
+   _LONG = long
+except NameError:
+   _LONG = int
+
+
+class CounterException ( Exception ):
+   pass
+# --- end of CounterException ---
+
+class CounterUnderflow ( CounterException ):
+   pass
+# --- end of CounterUnderflow ---
+
+
+class IDGenerator ( object ):
+
+   def __init__ ( self, first_value=0, use_long=False ):
+      super ( IDGenerator, self ).__init__()
+      self._initial_value = ( _LONG if use_long else int ) ( first_value - 1 )
+      self._current_value = self._initial_value
+   # --- end of __init__ (...) ---
+
+   def reset ( self ):
+      self._current_value = self._initial_value
+   # --- end of reset (...) ---
+
+   def inc ( self, step=1 ):
+      self._current_value += step
+      return self._current_value
+   # --- end of inc (...) ---
+
+   __next__ = inc
+
+   def peek ( self ):
+      val = self._current_value
+      if val == self._initial_value:
+         raise CounterException ( "no number generated so far!" )
+      elif val < self._initial_value:
+         raise CounterUnderflow()
+      else:
+         return val
+   # --- end of peek (...) ---
+
+   def __iter__ ( self ):
+      return self
+   # --- end of __iter__ (...) ---
+
+# --- end of IDGenerator ---
+
+class Counter ( IDGenerator ):
+
+   def dec ( self, step=1 ):
+      if self._current_value > self._initial_value:
+         self._current_value -= step
+         return self._current_value
+      else:
+         self._current_value = self._initial_value
+         raise CounterUnderflow()
+   # --- end of dec (...) ---
+
+# --- end of Counter ---


             reply	other threads:[~2013-09-03  8:35 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-03  8:35 André Erdmann [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-07-07  4:19 [gentoo-commits] proj/R_overlay:master commit in: roverlay/util/ Benda XU
2015-01-26 17:41 André Erdmann
2014-08-23 19:03 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-04-01 16:38 André Erdmann
2014-02-16 16:30 André Erdmann
2014-01-25 18:14 André Erdmann
2013-12-11 18:40 André Erdmann
2013-09-20 15:57 André Erdmann
2013-09-12 16:36 André Erdmann
2013-09-12 16:36 André Erdmann
2013-09-10 14:40 André Erdmann
2013-09-05 10:24 André Erdmann
2013-09-05  9:25 André Erdmann
2013-09-05  9:25 André Erdmann
2013-09-03 15:50 André Erdmann
2013-09-03 15:50 André Erdmann
2013-09-03 12:21 André Erdmann
2013-09-02 16:21 André Erdmann
2013-08-30 14:49 André Erdmann
2013-08-30 14:49 André Erdmann
2013-08-29 13:53 André Erdmann
2013-08-29 12:36 André Erdmann
2013-08-29 12:36 André Erdmann
2013-08-23 13:52 André Erdmann
2013-08-23 13:52 André Erdmann
2013-08-23 13:52 André Erdmann
2013-08-23 13:51 André Erdmann
2013-08-22  9:01 André Erdmann
2013-08-16  6:44 André Erdmann
2013-08-13  8:56 André Erdmann
2013-08-01 12:44 André Erdmann
2013-07-30 18:40 André Erdmann
2013-07-29 14:56 André Erdmann
2013-07-23 14:57 André Erdmann
2013-07-23 14:57 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23 14:57 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-18 19:25 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23  7:51 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-12 13:57 André Erdmann
2013-06-20 23:40 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-06-22 15:24 ` [gentoo-commits] proj/R_overlay:master " André Erdmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1378197042.7739bc6f1809eabb3f034f50978e1e9f7d0c6c08.dywi@gentoo \
    --to=dywi@mailerd.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox