[med-svn] [python-bd2k] 01/03: New upstream version 1.14~alpha1.43
Michael Crusoe
misterc-guest at moszumanska.debian.org
Sat Feb 10 16:01:19 UTC 2018
This is an automated email from the git hooks/post-receive script.
misterc-guest pushed a commit to branch master
in repository python-bd2k.
commit 3e4986e6abdbb0d2c042d0f4ae3be731ab3d666e
Author: Michael R. Crusoe <michael.crusoe at gmail.com>
Date: Sat Feb 10 07:37:15 2018 -0800
New upstream version 1.14~alpha1.43
---
PKG-INFO | 3 ++-
setup.cfg | 3 +--
setup.py | 4 ++--
src/bd2k/util/collections.py | 3 ++-
src/bd2k/util/d32.py | 13 +++++++++----
src/bd2k/util/d64.py | 17 +++++++++++------
src/bd2k/util/ec2/credentials.py | 2 +-
src/bd2k/util/ec2/test/test_credentials.py | 1 +
src/bd2k/util/exceptions.py | 1 +
src/bd2k/util/hashes.py | 8 ++++++--
src/bd2k/util/humanize.py | 6 ++++--
src/bd2k/util/iterables.py | 17 ++++++++++++-----
src/bd2k/util/logging.py | 2 +-
src/bd2k/util/objects.py | 1 +
src/bd2k/util/retry.py | 9 ++++++---
src/bd2k/util/shell.py | 3 ++-
src/bd2k/util/strings.py | 11 +++++++----
src/bd2k/util/test/test_d32.py | 6 ++++--
src/bd2k/util/test/test_d64.py | 6 ++++--
src/bd2k/util/test/test_files.py | 1 +
src/bd2k/util/threading.py | 3 ++-
src/bd2k/util/throttle.py | 5 +++--
src/bd2k/util/xml/builder.py | 4 +++-
src/bd2k_python_lib.egg-info/PKG-INFO | 3 ++-
src/bd2k_python_lib.egg-info/SOURCES.txt | 1 +
src/bd2k_python_lib.egg-info/pbr.json | 2 +-
src/bd2k_python_lib.egg-info/requires.txt | 1 +
27 files changed, 91 insertions(+), 45 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index 5786e6e..c3570da 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,10 +1,11 @@
Metadata-Version: 1.0
Name: bd2k-python-lib
-Version: 1.14a1.dev37
+Version: 1.14a1.dev43
Summary: The BD2K Python module kitchen sink
Home-page: https://github.com/BD2KGenomics/bd2k-python-lib
Author: Hannes Schmidt
Author-email: hannes at ucsc.edu
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN
diff --git a/setup.cfg b/setup.cfg
index c702222..f9b9b96 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -3,7 +3,6 @@ python_files = *.py
addopts = --doctest-modules
[egg_info]
-tag_build = .dev37
+tag_build = .dev43
tag_date = 0
-tag_svn_revision = 0
diff --git a/setup.py b/setup.py
index dde5441..c75b9b1 100644
--- a/setup.py
+++ b/setup.py
@@ -15,12 +15,12 @@ kwargs = dict(
package_dir={ '': 'src' },
packages=find_packages( 'src' ),
- install_requires=[ ],
+ install_requires=[ 'future' ],
tests_require=[
'pytest==2.7.2',
'mock==1.0.1',
'lockfile==0.11.0',
- 'boto==2.38.0' ],
+ 'boto==2.38.0'],
namespace_packages=[ 'bd2k' ] )
from setuptools.command.test import test as TestCommand
diff --git a/src/bd2k/util/collections.py b/src/bd2k/util/collections.py
index 175d87d..c216e66 100644
--- a/src/bd2k/util/collections.py
+++ b/src/bd2k/util/collections.py
@@ -1,5 +1,6 @@
from __future__ import absolute_import
+from builtins import next
import collections
from itertools import dropwhile
@@ -155,7 +156,7 @@ def rindex( l, v ):
2
"""
try:
- n = next( dropwhile( lambda (i, x): v != x, enumerate( reversed( l ), 1 ) ) )[ 0 ]
+ n = next( dropwhile( lambda i_x: v != i_x[1], enumerate( reversed( l ), 1 ) ) )[ 0 ]
except StopIteration:
raise ValueError( v )
else:
diff --git a/src/bd2k/util/d32.py b/src/bd2k/util/d32.py
index 100eacb..7d03b89 100644
--- a/src/bd2k/util/d32.py
+++ b/src/bd2k/util/d32.py
@@ -1,3 +1,4 @@
+from __future__ import division
# Copyright (c) 2015 Hannes Schmidt
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software
@@ -17,6 +18,10 @@
# Inspired by Dominic Tarr's JavaScript at https://github.com/dominictarr/d64
+from builtins import str
+from builtins import range
+from builtins import object
+from past.utils import old_div
class D32( object ):
"""
Base32 encoding and decoding without padding, and using an arbitrary alphabet.
@@ -26,7 +31,7 @@ class D32( object ):
super( D32, self ).__init__( )
self.alphabet = bytearray( alphabet )
self.lookup = bytearray( 255 )
- for i in xrange( 32 ):
+ for i in range( 32 ):
self.lookup[ self.alphabet[ i ] ] = i
def encode( self, d ):
@@ -44,7 +49,7 @@ class D32( object ):
'222k62s62o'
"""
m = len( d )
- n = (m * 8 + 4) / 5
+ n = old_div((m * 8 + 4), 5)
padding = 8 - n % 8
e = bytearray( n + padding )
i, j = 0, 0
@@ -83,7 +88,7 @@ class D32( object ):
'\\xff'
"""
n = len( e )
- m = n * 5 / 8
+ m = old_div(n * 5, 8)
padding = 5 - m % 5
d = bytearray( m + padding )
i, j = 0, 0
@@ -104,7 +109,7 @@ class D32( object ):
d[ i + 4 ] = g[ 6 ] << 5 & 255 | g[ 7 ]
j += 8
i += 5
- return str( d[ :-padding ] )
+ return bytes( d[ :-padding ] )
# A variant of Base64 that maintains the lexicographical ordering such that for any given list of
diff --git a/src/bd2k/util/d64.py b/src/bd2k/util/d64.py
index c77d967..441b3c9 100644
--- a/src/bd2k/util/d64.py
+++ b/src/bd2k/util/d64.py
@@ -1,3 +1,4 @@
+from __future__ import division
# Copyright (c) 2014 Dominic Tarr
# Copyright (c) 2015 Hannes Schmidt
#
@@ -20,13 +21,17 @@
+from builtins import str
+from builtins import range
+from builtins import object
+from past.utils import old_div
class D64( object ):
def __init__( self, special_chars ):
super( D64, self ).__init__( )
alphabet = 'PYFGCRLAOEUIDHTNSQJKXBMWVZpyfgcrlaoeuidhtnsqjkxbmwvz1234567890'
self.alphabet = bytearray( sorted( alphabet + special_chars ) )
self.lookup = bytearray( 255 )
- for i in xrange( 64 ):
+ for i in range( 64 ):
code = self.alphabet[ i ]
self.lookup[ code ] = i
@@ -45,11 +50,11 @@ class D64( object ):
'..31.kF40VR'
"""
l = len( data )
- s = bytearray( (l * 4 + 2) / 3 )
+ s = bytearray( old_div((l * 4 + 2), 3) )
hang = 0
j = 0
a = self.alphabet
- for i in xrange( l ):
+ for i in range( l ):
v = ord( data[ i ] )
r = i % 3
if r == 0:
@@ -89,11 +94,11 @@ class D64( object ):
"""
n = len( e )
j = 0
- b = bytearray( n * 3 / 4 )
+ b = bytearray( old_div(n * 3, 4) )
hang = 0
l = self.lookup
- for i in xrange( n ):
+ for i in range( n ):
v = l[ ord( e[ i ] ) ]
r = i % 4
if r == 0:
@@ -111,7 +116,7 @@ class D64( object ):
j += 1
else:
assert False
- return str( b )
+ return bytes( b )
standard = D64( '._' )
diff --git a/src/bd2k/util/ec2/credentials.py b/src/bd2k/util/ec2/credentials.py
index 58b0a5d..37e9452 100644
--- a/src/bd2k/util/ec2/credentials.py
+++ b/src/bd2k/util/ec2/credentials.py
@@ -109,7 +109,7 @@ def _populate_keys_from_metadata_server( self ):
log.debug( 'Racing to create %s.', tmp_path )
# Only one process, the winner, will succeed
try:
- fd = os.open( tmp_path, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0600 )
+ fd = os.open( tmp_path, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o600 )
except OSError as e:
if e.errno == errno.EEXIST:
log.debug( 'Lost the race to create %s. Waiting on winner to remove it.', tmp_path )
diff --git a/src/bd2k/util/ec2/test/test_credentials.py b/src/bd2k/util/ec2/test/test_credentials.py
index 1fa713f..eb1b0a5 100644
--- a/src/bd2k/util/ec2/test/test_credentials.py
+++ b/src/bd2k/util/ec2/test/test_credentials.py
@@ -1,3 +1,4 @@
+from builtins import range
import logging
import errno
diff --git a/src/bd2k/util/exceptions.py b/src/bd2k/util/exceptions.py
index 1a8885a..7f5da21 100644
--- a/src/bd2k/util/exceptions.py
+++ b/src/bd2k/util/exceptions.py
@@ -1,3 +1,4 @@
+from builtins import object
from contextlib import contextmanager
import sys
diff --git a/src/bd2k/util/hashes.py b/src/bd2k/util/hashes.py
index 29e6aae..d816bb7 100644
--- a/src/bd2k/util/hashes.py
+++ b/src/bd2k/util/hashes.py
@@ -1,3 +1,6 @@
+from builtins import str
+from builtins import next
+from past.builtins import basestring
def hash_json( hash_obj, value ):
"""
Compute the hash of a parsed JSON value using the given hash object. This function does not
@@ -58,7 +61,7 @@ def hash_json( hash_obj, value ):
ValueError: Type <type 'object'> is not supported
"""
try:
- items = value.iteritems( )
+ items = iter(value.items( ))
except AttributeError:
# Must check for string before testing iterability since strings are iterable
if isinstance( value, basestring ):
@@ -123,7 +126,8 @@ def _hash_hashable( hash_obj, items ):
hash_obj.update( '}' )
-def _hash_hashable_item( hash_obj, (k, v) ):
+def _hash_hashable_item( hash_obj, k_v ):
+ (k, v) = k_v
if isinstance( k, basestring ):
hash_obj.update( k )
hash_obj.update( ':' )
diff --git a/src/bd2k/util/humanize.py b/src/bd2k/util/humanize.py
index 32b8a3b..3125b46 100644
--- a/src/bd2k/util/humanize.py
+++ b/src/bd2k/util/humanize.py
@@ -8,8 +8,10 @@ Working with Python 2.x and 3.x.
Author: Giampaolo Rodola' <g.rodola [AT] gmail [DOT] com>
License: MIT
"""
+from __future__ import division
# see: http://goo.gl/kTQMs
+from past.utils import old_div
SYMBOLS = {
'customary' : ('', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'),
'customary_ext' : ('byte', 'kilo', 'mega', 'giga', 'tera', 'peta', 'exa',
@@ -65,7 +67,7 @@ def bytes2human(n, fmt='%(value).1f %(symbol)s', symbols='customary'):
prefix[s] = 1 << (i+1)*10
for symbol in reversed(symbols[1:]):
if n >= prefix[symbol]:
- value = float(n) / prefix[symbol]
+ value = old_div(float(n), prefix[symbol])
return fmt % locals()
return fmt % dict(symbol=symbols[0], value=n)
@@ -110,7 +112,7 @@ def human2bytes(s):
s = s[1:]
num = float(num)
letter = s.strip()
- for name, sset in SYMBOLS.items():
+ for name, sset in list(SYMBOLS.items()):
if letter in sset:
break
else:
diff --git a/src/bd2k/util/iterables.py b/src/bd2k/util/iterables.py
index 9235753..b157483 100644
--- a/src/bd2k/util/iterables.py
+++ b/src/bd2k/util/iterables.py
@@ -1,4 +1,11 @@
-from itertools import takewhile, izip, izip_longest, dropwhile, imap, chain
+from builtins import map
+from builtins import zip
+from builtins import object
+from itertools import takewhile, dropwhile, chain
+try:
+ from itertools import zip_longest as zip_longest
+except:
+ from itertools import izip_longest as zip_longest
def common_prefix( xs, ys ):
@@ -18,7 +25,7 @@ def common_prefix( xs, ys ):
>>> list( common_prefix('A','B') )
[]
"""
- return imap( lambda (x, y): x, takewhile( lambda (a, b): a == b, izip( xs, ys ) ) )
+ return map( lambda x_y: x_y[0], takewhile( lambda a_b: a_b[0] == a_b[1], zip( xs, ys ) ) )
def disparate_suffix( xs, ys ):
@@ -38,7 +45,7 @@ def disparate_suffix( xs, ys ):
>>> list( disparate_suffix('A','B') )
[('A', 'B')]
"""
- return dropwhile( lambda (a, b): a == b, izip_longest( xs, ys ) )
+ return dropwhile( lambda a_b1: a_b1[0] == a_b1[1], zip_longest( xs, ys ) )
def flatten( iterables ):
@@ -121,7 +128,7 @@ class concat( object ):
i = x,
return i
- return flatten( imap( expand, self.args ) )
+ return flatten( map( expand, self.args ) )
# noinspection PyPep8Naming
@@ -166,4 +173,4 @@ class crush( object ):
except AttributeError:
return x,
- return flatten( imap( expand, self.iterables ) )
+ return flatten( map( expand, self.iterables ) )
diff --git a/src/bd2k/util/logging.py b/src/bd2k/util/logging.py
index 93fec58..a1b8f51 100644
--- a/src/bd2k/util/logging.py
+++ b/src/bd2k/util/logging.py
@@ -15,7 +15,7 @@ class Utf8SyslogFormatter( logging.Formatter ):
def getMessage( _self ):
msg = origGetMessage( )
- if isinstance( msg, unicode ):
+ if isinstance( msg, str ):
try:
# First check if we can represent the message as ASCII without loosing
# information. That we we can avoid writing the BOM unless absolutely necessary.
diff --git a/src/bd2k/util/objects.py b/src/bd2k/util/objects.py
index 4f44e7d..c87d61e 100644
--- a/src/bd2k/util/objects.py
+++ b/src/bd2k/util/objects.py
@@ -1,4 +1,5 @@
from __future__ import absolute_import
+from builtins import object
from bd2k.util import sync_memoize
diff --git a/src/bd2k/util/retry.py b/src/bd2k/util/retry.py
index 031b338..3f15ff2 100644
--- a/src/bd2k/util/retry.py
+++ b/src/bd2k/util/retry.py
@@ -1,7 +1,10 @@
from __future__ import absolute_import
+from future import standard_library
+standard_library.install_aliases()
+from builtins import next
import time
-import urllib2
+import urllib.request, urllib.error, urllib.parse
from contextlib import contextmanager
import logging
@@ -119,7 +122,7 @@ default_timeout = 300
def retryable_http_error( e ):
- return isinstance( e, urllib2.HTTPError ) and e.code in ('503', '408', '500')
+ return isinstance( e, urllib.error.HTTPError ) and e.code in ('503', '408', '500')
def retry_http( delays=default_delays, timeout=default_timeout, predicate=retryable_http_error ):
@@ -128,7 +131,7 @@ def retry_http( delays=default_delays, timeout=default_timeout, predicate=retrya
>>> for attempt in retry_http(timeout=5):
... with attempt:
... i += 1
- ... raise urllib2.HTTPError('http://www.test.com', '408', 'some message', {}, None)
+ ... raise urllib.error.HTTPError('http://www.test.com', '408', 'some message', {}, None)
Traceback (most recent call last):
...
HTTPError: HTTP Error 408: some message
diff --git a/src/bd2k/util/shell.py b/src/bd2k/util/shell.py
index 562b677..94e9c3d 100644
--- a/src/bd2k/util/shell.py
+++ b/src/bd2k/util/shell.py
@@ -1,8 +1,9 @@
+from builtins import range
import re
def quote(s, level=1):
- for i in xrange( 0, level ):
+ for i in range( 0, level ):
s = _quote( s )
return s
diff --git a/src/bd2k/util/strings.py b/src/bd2k/util/strings.py
index 563004f..15f8de3 100644
--- a/src/bd2k/util/strings.py
+++ b/src/bd2k/util/strings.py
@@ -1,5 +1,8 @@
# coding=utf-8
+from builtins import str
+from builtins import next
+from builtins import range
import inspect
@@ -40,7 +43,7 @@ def to_english( iterable, separator=", ", conjunction=' and ', empty='empty',
"""
i = iter( iterable )
try:
- x = i.next( )
+ x = next(i)
except StopIteration:
return empty
r = [ ]
@@ -49,7 +52,7 @@ def to_english( iterable, separator=", ", conjunction=' and ', empty='empty',
if wrapper is not None:
x = wrapper + x + wrapper
try:
- n = i.next( )
+ n = next(i)
except StopIteration:
if len(r) > 2:
r.append( conjunction )
@@ -61,7 +64,7 @@ def to_english( iterable, separator=", ", conjunction=' and ', empty='empty',
if r: r.append( separator )
r.append( x )
x = n
- return ''.join( r )
+ return str(''.join( r ))
def interpolate( template, skip_frames=0, **kwargs ):
@@ -116,7 +119,7 @@ def interpolate_dict( template, dictionary, skip_frames=0 ):
def __interpolate( template, skip_frames, dictionary ):
frame = inspect.currentframe( )
- for i in xrange( skip_frames + 2 ):
+ for i in range( skip_frames + 2 ):
prev_frame = frame
frame = frame.f_back
del prev_frame
diff --git a/src/bd2k/util/test/test_d32.py b/src/bd2k/util/test/test_d32.py
index aaf9711..4b5043a 100644
--- a/src/bd2k/util/test/test_d32.py
+++ b/src/bd2k/util/test/test_d32.py
@@ -19,6 +19,8 @@
# Inspired by JavaScript code found at https://github.com/dominictarr/d64
from __future__ import absolute_import
+from builtins import map
+from builtins import range
from unittest import TestCase
from bd2k.util.d32 import standard as d32
import os
@@ -26,5 +28,5 @@ import os
class TestD32( TestCase ):
def test( self ):
- l = [ os.urandom( i ) for i in xrange( 1000 ) ]
- self.assertEqual( map( d32.decode, sorted( map( d32.encode, l ) ) ), sorted( l ) )
+ l = [ os.urandom( i ) for i in range( 1000 ) ]
+ self.assertEqual( list(map( d32.decode, sorted( map( d32.encode, l ) ) )), sorted( l ) )
diff --git a/src/bd2k/util/test/test_d64.py b/src/bd2k/util/test/test_d64.py
index efdbcc1..64a64b1 100644
--- a/src/bd2k/util/test/test_d64.py
+++ b/src/bd2k/util/test/test_d64.py
@@ -19,6 +19,8 @@
# Ported from JS found at https://github.com/dominictarr/d64
from __future__ import absolute_import
+from builtins import map
+from builtins import range
from unittest import TestCase
from bd2k.util.d64 import standard as d64
import os
@@ -26,5 +28,5 @@ import os
class TestD64( TestCase ):
def test( self ):
- l = [ os.urandom( i ) for i in xrange( 1000 ) ]
- self.assertEqual( map( d64.decode, sorted( map( d64.encode, l ) ) ), sorted( l ) )
+ l = [ os.urandom( i ) for i in range( 1000 ) ]
+ self.assertEqual( list(map( d64.decode, sorted( map( d64.encode, l ) ) )), sorted( l ) )
diff --git a/src/bd2k/util/test/test_files.py b/src/bd2k/util/test/test_files.py
index c693c16..f33df20 100644
--- a/src/bd2k/util/test/test_files.py
+++ b/src/bd2k/util/test/test_files.py
@@ -1,3 +1,4 @@
+from builtins import range
from unittest import TestCase
from mock import MagicMock, call
diff --git a/src/bd2k/util/threading.py b/src/bd2k/util/threading.py
index da69067..7be66de 100644
--- a/src/bd2k/util/threading.py
+++ b/src/bd2k/util/threading.py
@@ -1,4 +1,5 @@
from __future__ import absolute_import
+from builtins import range
import sys
import threading
@@ -10,7 +11,7 @@ class BoundedEmptySemaphore( threading._BoundedSemaphore ):
def __init__( self, value=1, verbose=None ):
super( BoundedEmptySemaphore, self ).__init__( value, verbose )
- for i in xrange( value ):
+ for i in range( value ):
assert self.acquire( blocking=False )
diff --git a/src/bd2k/util/throttle.py b/src/bd2k/util/throttle.py
index a69165f..cb21e5e 100644
--- a/src/bd2k/util/throttle.py
+++ b/src/bd2k/util/throttle.py
@@ -1,12 +1,13 @@
from __future__ import absolute_import
+from builtins import object
import time
import threading
from bd2k.util.threading import BoundedEmptySemaphore
-class GlobalThrottle:
+class GlobalThrottle(object):
"""
A thread-safe rate limiter that throttles all threads globally. This should be used to
regulate access to a global resource. It can be used as a function/method decorator or as a
@@ -58,7 +59,7 @@ class GlobalThrottle:
return wrapper
-class LocalThrottle:
+class LocalThrottle(object):
"""
A thread-safe rate limiter that throttles each thread independently. Can be used as a
function or method decorator or as a simple object, via its .throttle() method.
diff --git a/src/bd2k/util/xml/builder.py b/src/bd2k/util/xml/builder.py
index a5ad6cb..c7e94c8 100644
--- a/src/bd2k/util/xml/builder.py
+++ b/src/bd2k/util/xml/builder.py
@@ -40,6 +40,8 @@
from __future__ import absolute_import
+from past.builtins import basestring
+from builtins import object
"""
The ``E`` Element factory for generating XML documents.
"""
@@ -188,7 +190,7 @@ class ElementMaker(object):
def add_dict(elem, item):
attrib = elem.attrib
- for k, v in item.items():
+ for k, v in list(item.items()):
if isinstance(v, basestring):
attrib[k] = v
else:
diff --git a/src/bd2k_python_lib.egg-info/PKG-INFO b/src/bd2k_python_lib.egg-info/PKG-INFO
index 5786e6e..c3570da 100644
--- a/src/bd2k_python_lib.egg-info/PKG-INFO
+++ b/src/bd2k_python_lib.egg-info/PKG-INFO
@@ -1,10 +1,11 @@
Metadata-Version: 1.0
Name: bd2k-python-lib
-Version: 1.14a1.dev37
+Version: 1.14a1.dev43
Summary: The BD2K Python module kitchen sink
Home-page: https://github.com/BD2KGenomics/bd2k-python-lib
Author: Hannes Schmidt
Author-email: hannes at ucsc.edu
License: UNKNOWN
+Description-Content-Type: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN
diff --git a/src/bd2k_python_lib.egg-info/SOURCES.txt b/src/bd2k_python_lib.egg-info/SOURCES.txt
index 6bfe1f1..1734f87 100644
--- a/src/bd2k_python_lib.egg-info/SOURCES.txt
+++ b/src/bd2k_python_lib.egg-info/SOURCES.txt
@@ -38,4 +38,5 @@ src/bd2k_python_lib.egg-info/SOURCES.txt
src/bd2k_python_lib.egg-info/dependency_links.txt
src/bd2k_python_lib.egg-info/namespace_packages.txt
src/bd2k_python_lib.egg-info/pbr.json
+src/bd2k_python_lib.egg-info/requires.txt
src/bd2k_python_lib.egg-info/top_level.txt
\ No newline at end of file
diff --git a/src/bd2k_python_lib.egg-info/pbr.json b/src/bd2k_python_lib.egg-info/pbr.json
index e47388c..70af2d2 100644
--- a/src/bd2k_python_lib.egg-info/pbr.json
+++ b/src/bd2k_python_lib.egg-info/pbr.json
@@ -1 +1 @@
-{"is_release": false, "git_version": "a662f3c"}
\ No newline at end of file
+{"is_release": false, "git_version": "ea5b46e"}
\ No newline at end of file
diff --git a/src/bd2k_python_lib.egg-info/requires.txt b/src/bd2k_python_lib.egg-info/requires.txt
new file mode 100644
index 0000000..2c6edea
--- /dev/null
+++ b/src/bd2k_python_lib.egg-info/requires.txt
@@ -0,0 +1 @@
+future
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-bd2k.git
More information about the debian-med-commit
mailing list