Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Feb 2020 10:54:39 +0000 (UTC)
From:      Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r524842 - in head/devel: . py-heapdict
Message-ID:  <202002021054.012AsdtO072285@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sunpoet
Date: Sun Feb  2 10:54:39 2020
New Revision: 524842
URL: https://svnweb.freebsd.org/changeset/ports/524842

Log:
  Add py-heapdict 1.0.1
  
  heapdict implements the MutableMapping ABC, meaning it works pretty much like a
  regular Python dict. It's designed to be used as a priority queue, where items
  are added and consumed as follows:
  
    hd = heapdict()
    hd[obj1] = priority1
    hd[obj2] = priority2
    # ...
    (obj, priority) = hd.popitem()
  
  Compared to an ordinary dict, a heapdict has the following differences:
  - popitem():
    Remove and return the (key, priority) pair with the lowest priority, instead
    of a random object.
  - peekitem():
    Return the (key, priority) pair with the lowest priority, without removing it.
  
  Unlike the Python standard library's heapq module, the heapdict supports
  efficiently changing the priority of an existing object (often called "decrease-
  key" in textbooks). Altering the priority is important for many algorithms such
  as Dijkstra's Algorithm and A*.
  
  WWW: https://github.com/DanielStutzbach/heapdict

Added:
  head/devel/py-heapdict/
  head/devel/py-heapdict/Makefile   (contents, props changed)
  head/devel/py-heapdict/distinfo   (contents, props changed)
  head/devel/py-heapdict/pkg-descr   (contents, props changed)
Modified:
  head/devel/Makefile

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Sun Feb  2 10:54:33 2020	(r524841)
+++ head/devel/Makefile	Sun Feb  2 10:54:39 2020	(r524842)
@@ -4486,6 +4486,7 @@
     SUBDIR += py-gtfslib
     SUBDIR += py-gyp
     SUBDIR += py-hash_ring
+    SUBDIR += py-heapdict
     SUBDIR += py-hghooks
     SUBDIR += py-hgsubversion
     SUBDIR += py-hgtools

Added: head/devel/py-heapdict/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/py-heapdict/Makefile	Sun Feb  2 10:54:39 2020	(r524842)
@@ -0,0 +1,25 @@
+# Created by: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	heapdict
+PORTVERSION=	1.0.1
+CATEGORIES=	devel python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+DISTNAME=	HeapDict-${PORTVERSION}
+
+MAINTAINER=	sunpoet@FreeBSD.org
+COMMENT=	Heap with decrease-key and increase-key operations
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		python
+USE_PYTHON=	autoplist concurrent distutils
+
+NO_ARCH=	yes
+
+do-test:
+	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} test_heap.py
+
+.include <bsd.port.mk>

Added: head/devel/py-heapdict/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/py-heapdict/distinfo	Sun Feb  2 10:54:39 2020	(r524842)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1580562237
+SHA256 (HeapDict-1.0.1.tar.gz) = 8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6
+SIZE (HeapDict-1.0.1.tar.gz) = 4274

Added: head/devel/py-heapdict/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/py-heapdict/pkg-descr	Sun Feb  2 10:54:39 2020	(r524842)
@@ -0,0 +1,23 @@
+heapdict implements the MutableMapping ABC, meaning it works pretty much like a
+regular Python dict. It's designed to be used as a priority queue, where items
+are added and consumed as follows:
+
+  hd = heapdict()
+  hd[obj1] = priority1
+  hd[obj2] = priority2
+  # ...
+  (obj, priority) = hd.popitem()
+
+Compared to an ordinary dict, a heapdict has the following differences:
+- popitem():
+  Remove and return the (key, priority) pair with the lowest priority, instead
+  of a random object.
+- peekitem():
+  Return the (key, priority) pair with the lowest priority, without removing it.
+
+Unlike the Python standard library's heapq module, the heapdict supports
+efficiently changing the priority of an existing object (often called "decrease-
+key" in textbooks). Altering the priority is important for many algorithms such
+as Dijkstra's Algorithm and A*.
+
+WWW: https://github.com/DanielStutzbach/heapdict



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002021054.012AsdtO072285>