update to 0.5

This commit is contained in:
zhanliwen 2020-07-29 20:57:29 +08:00 committed by jinzhimin369
parent bd099f734a
commit 42f94a7821
6 changed files with 12 additions and 663 deletions

View File

@ -1,26 +0,0 @@
From 7483d7f92ea59458c11506999a5895ed87bf8d6b Mon Sep 17 00:00:00 2001
From: Jiri Hnidek <jhnidek@redhat.com>
Date: Fri, 18 May 2018 13:31:31 +0200
Subject: [PATCH] First patch from Fedora Project.
---
tests/test_ini.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tests/test_ini.py b/tests/test_ini.py
index 6a76edb..78b2b3c 100644
--- a/tests/test_ini.py
+++ b/tests/test_ini.py
@@ -144,8 +144,7 @@ class test_comment_line(unittest.TestCase):
'#this is a comment',
';; this is also a comment',
'; so is this ',
- 'Rem and this',
- 'remthis too!'
+ 'Rem and this'
]
def test_parsing(self):
for l in self.lines:
--
2.19.1

Binary file not shown.

BIN
iniparse-0.5.tar.gz Normal file

Binary file not shown.

View File

@ -2,22 +2,15 @@
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
Name: python-iniparse Name: python-iniparse
Version: 0.4 Version: 0.5
Release: 36 Release: 1
Summary: Python Module for Accessing and Modifying Configuration Data in INI files Summary: Python Module for Accessing and Modifying Configuration Data in INI files
License: MIT and PSF License: MIT and PSF
URL: http://code.google.com/p/iniparse/ URL: https://github.com/candlepin/python-iniparse
Source0: http://iniparse.googlecode.com/files/iniparse-%{version}.tar.gz Source0: https://files.pythonhosted.org/packages/source/i/iniparse/iniparse-%{version}.tar.gz
BuildArch: noarch BuildArch: noarch
# PATCH-FIX-UPSTREAM
Patch0: fix-handle-REMXXXX-is-not-comment.patch
# PATCH-FIX-UPSTREAM
Patch1: python3-compat.patch
# PATCH-FIX-UPSTREAM
Patch2: setup-fixes.patch
%description %description
iniparse is an INI parser for Python which is API compatible iniparse is an INI parser for Python which is API compatible
with the standard library's ConfigParser, preserves structure of INI with the standard library's ConfigParser, preserves structure of INI
@ -25,15 +18,6 @@ files (order of sections & options, indentation, comments, and blank
lines are preserved when data is updated), and is more convenient to lines are preserved when data is updated), and is more convenient to
use. use.
%package -n python2-iniparse
Summary: Python 2 version of python-iniparse
%{?python_provide:%python_provide python2-iniparse}
BuildRequires: python2-devel python2-setuptools python2-six python2-test
Requires: python2-six
%description -n python2-iniparse
This package is the python2 version of python-iniparse.
%package -n python3-iniparse %package -n python3-iniparse
Summary: Python 3 version of python-iniparse Summary: Python 3 version of python-iniparse
@ -51,22 +35,15 @@ This package is the python3 version of python-iniparse.
%build %build
%py2_build
%py3_build %py3_build
%install %install
%py2_install
%py3_install %py3_install
%check %check
%{__python2} runtests.py export PYTHONPATH=%{buildroot}%{python3_sitelib}
%{__python3} runtests.py %{__python3} runtests.py
%files -n python2-iniparse
%defattr(-,root,root,-)
%license LICENSE LICENSE-PSF
%{python2_sitelib}/iniparse
%{python2_sitelib}/iniparse-%{version}-py*.egg-info
%files -n python3-iniparse %files -n python3-iniparse
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -75,10 +52,16 @@ This package is the python3 version of python-iniparse.
%{python3_sitelib}/iniparse-%{version}-py*.egg-info %{python3_sitelib}/iniparse-%{version}-py*.egg-info
%files help %files help
%doc README Changelog html/ %doc Changelog html/
%exclude %{_docdir}/iniparse-%{version}/ %exclude %{_docdir}/iniparse-%{version}/
%changelog %changelog
* Wed Jul 29 2020 tianwei<tianwei12@huawei.com> - 0.5-1
- Type:enhancement
- ID:NA
- SUG:NA
- DESC:update release to 0.5
* Fri Sep 27 2019 shenyangyang<shenyangyang4@huawei.com> - 0.4-36 * Fri Sep 27 2019 shenyangyang<shenyangyang4@huawei.com> - 0.4-36
- Type:enhancement - Type:enhancement
- ID:NA - ID:NA

View File

@ -1,547 +0,0 @@
From 9ea31e4d1267dd620814eceffabb5b7457ea9fae Mon Sep 17 00:00:00 2001
From: Jiri Hnidek <jhnidek@redhat.com>
Date: Fri, 18 May 2018 13:44:39 +0200
Subject: [PATCH] Third patch from Fedora Project (Python3).
---
iniparse/__init__.py | 20 ++++++++++----------
iniparse/compat.py | 30 ++++++++++++++++--------------
iniparse/config.py | 16 ++++++++--------
iniparse/configparser.py | 7 +++++++
iniparse/ini.py | 20 ++++++++++++--------
iniparse/utils.py | 4 ++--
tests/__init__.py | 14 +++++++-------
tests/test_compat.py | 23 +++++++++++++++--------
tests/test_fuzz.py | 18 +++++++++---------
tests/test_ini.py | 8 ++++----
tests/test_misc.py | 4 ++--
tests/test_tidy.py | 2 +-
tests/test_unicode.py | 10 +++++-----
13 files changed, 98 insertions(+), 78 deletions(-)
create mode 100644 iniparse/configparser.py
diff --git a/iniparse/__init__.py b/iniparse/__init__.py
index 8de756f..7193f92 100644
--- a/iniparse/__init__.py
+++ b/iniparse/__init__.py
@@ -3,17 +3,17 @@
# Copyright (c) 2007 Tim Lauridsen <tla@rasmil.dk>
# All Rights Reserved. See LICENSE-PSF & LICENSE for details.
-from ini import INIConfig, change_comment_syntax
-from config import BasicConfig, ConfigNamespace
-from compat import RawConfigParser, ConfigParser, SafeConfigParser
-from utils import tidy
+from .ini import INIConfig, change_comment_syntax
+from .config import BasicConfig, ConfigNamespace
+from .compat import RawConfigParser, ConfigParser, SafeConfigParser
+from .utils import tidy
-from ConfigParser import DuplicateSectionError, \
- NoSectionError, NoOptionError, \
- InterpolationMissingOptionError, \
- InterpolationDepthError, \
- InterpolationSyntaxError, \
- DEFAULTSECT, MAX_INTERPOLATION_DEPTH
+from .configparser import DuplicateSectionError, \
+ NoSectionError, NoOptionError, \
+ InterpolationMissingOptionError, \
+ InterpolationDepthError, \
+ InterpolationSyntaxError, \
+ DEFAULTSECT, MAX_INTERPOLATION_DEPTH
__all__ = [
'BasicConfig', 'ConfigNamespace',
diff --git a/iniparse/compat.py b/iniparse/compat.py
index db89ed8..f95c25c 100644
--- a/iniparse/compat.py
+++ b/iniparse/compat.py
@@ -12,19 +12,21 @@ The underlying INIConfig object can be accessed as cfg.data
"""
import re
-from ConfigParser import DuplicateSectionError, \
- NoSectionError, NoOptionError, \
- InterpolationMissingOptionError, \
- InterpolationDepthError, \
- InterpolationSyntaxError, \
- DEFAULTSECT, MAX_INTERPOLATION_DEPTH
+from .configparser import DuplicateSectionError, \
+ NoSectionError, NoOptionError, \
+ InterpolationMissingOptionError, \
+ InterpolationDepthError, \
+ InterpolationSyntaxError, \
+ DEFAULTSECT, MAX_INTERPOLATION_DEPTH
# These are imported only for compatiability.
# The code below does not reference them directly.
-from ConfigParser import Error, InterpolationError, \
- MissingSectionHeaderError, ParsingError
+from .configparser import Error, InterpolationError, \
+ MissingSectionHeaderError, ParsingError
-import ini
+import six
+
+from . import ini
class RawConfigParser(object):
def __init__(self, defaults=None, dict_type=dict):
@@ -56,7 +58,7 @@ class RawConfigParser(object):
# The default section is the only one that gets the case-insensitive
# treatment - so it is special-cased here.
if section.lower() == "default":
- raise ValueError, 'Invalid section name: %s' % section
+ raise ValueError('Invalid section name: %s' % section)
if self.has_section(section):
raise DuplicateSectionError(section)
@@ -88,7 +90,7 @@ class RawConfigParser(object):
filename may also be given.
"""
files_read = []
- if isinstance(filenames, basestring):
+ if isinstance(filenames, six.string_types):
filenames = [filenames]
for filename in filenames:
try:
@@ -143,7 +145,7 @@ class RawConfigParser(object):
def getboolean(self, section, option):
v = self.get(section, option)
if v.lower() not in self._boolean_states:
- raise ValueError, 'Not a boolean: %s' % v
+ raise ValueError('Not a boolean: %s' % v)
return self._boolean_states[v.lower()]
def has_option(self, section, option):
@@ -234,7 +236,7 @@ class ConfigParser(RawConfigParser):
if "%(" in value:
try:
value = value % vars
- except KeyError, e:
+ except KeyError as e:
raise InterpolationMissingOptionError(
option, section, rawval, e.args[0])
else:
@@ -283,7 +285,7 @@ class SafeConfigParser(ConfigParser):
_badpercent_re = re.compile(r"%[^%]|%$")
def set(self, section, option, value):
- if not isinstance(value, basestring):
+ if not isinstance(value, six.string_types):
raise TypeError("option values must be strings")
# check for bad percent signs:
# first, replace all "good" interpolations
diff --git a/iniparse/config.py b/iniparse/config.py
index 5cfa2ea..3b28549 100644
--- a/iniparse/config.py
+++ b/iniparse/config.py
@@ -143,7 +143,7 @@ class BasicConfig(ConfigNamespace):
>>> n.aaa = 42
>>> del n.x
- >>> print n
+ >>> print(n)
aaa = 42
name.first = paramjit
name.last = oberoi
@@ -152,7 +152,7 @@ class BasicConfig(ConfigNamespace):
>>> isinstance(n.name, ConfigNamespace)
True
- >>> print n.name
+ >>> print(n.name)
first = paramjit
last = oberoi
>>> sorted(list(n.name))
@@ -160,7 +160,7 @@ class BasicConfig(ConfigNamespace):
Finally, values can be read from a file as follows:
- >>> from StringIO import StringIO
+ >>> from six import StringIO
>>> sio = StringIO('''
... # comment
... ui.height = 100
@@ -171,7 +171,7 @@ class BasicConfig(ConfigNamespace):
... ''')
>>> n = BasicConfig()
>>> n._readfp(sio)
- >>> print n
+ >>> print(n)
complexity = medium
data.secret.password = goodness=gracious me
have_python
@@ -199,7 +199,7 @@ class BasicConfig(ConfigNamespace):
def __str__(self, prefix=''):
lines = []
- keys = self._data.keys()
+ keys = list(self._data.keys())
keys.sort()
for name in keys:
value = self._data[name]
@@ -258,7 +258,7 @@ def update_config(target, source):
>>> n.ui.display_clock = True
>>> n.ui.display_qlength = True
>>> n.ui.width = 150
- >>> print n
+ >>> print(n)
playlist.expand_playlist = True
ui.display_clock = True
ui.display_qlength = True
@@ -267,7 +267,7 @@ def update_config(target, source):
>>> from iniparse import ini
>>> i = ini.INIConfig()
>>> update_config(i, n)
- >>> print i
+ >>> print(i)
[playlist]
expand_playlist = True
<BLANKLINE>
@@ -277,7 +277,7 @@ def update_config(target, source):
width = 150
"""
- for name in source:
+ for name in sorted(source):
value = source[name]
if isinstance(value, ConfigNamespace):
if name in target:
diff --git a/iniparse/configparser.py b/iniparse/configparser.py
new file mode 100644
index 0000000..c543d50
--- /dev/null
+++ b/iniparse/configparser.py
@@ -0,0 +1,7 @@
+try:
+ from ConfigParser import *
+ # not all objects get imported with __all__
+ from ConfigParser import Error, InterpolationMissingOptionError
+except ImportError:
+ from configparser import *
+ from configparser import Error, InterpolationMissingOptionError
diff --git a/iniparse/ini.py b/iniparse/ini.py
index 408354d..052d9e9 100644
--- a/iniparse/ini.py
+++ b/iniparse/ini.py
@@ -7,7 +7,7 @@
Example:
- >>> from StringIO import StringIO
+ >>> from six import StringIO
>>> sio = StringIO('''# configure foo-application
... [foo]
... bar1 = qualia
@@ -16,14 +16,14 @@ Example:
... special = 1''')
>>> cfg = INIConfig(sio)
- >>> print cfg.foo.bar1
+ >>> print(cfg.foo.bar1)
qualia
- >>> print cfg['foo-ext'].special
+ >>> print(cfg['foo-ext'].special)
1
>>> cfg.foo.newopt = 'hi!'
>>> cfg.baz.enabled = 0
- >>> print cfg
+ >>> print(cfg)
# configure foo-application
[foo]
bar1 = qualia
@@ -42,9 +42,11 @@ Example:
# Backward-compatiable with ConfigParser
import re
-from ConfigParser import DEFAULTSECT, ParsingError, MissingSectionHeaderError
+from .configparser import DEFAULTSECT, ParsingError, MissingSectionHeaderError
-import config
+import six
+
+from . import config
class LineType(object):
line = None
@@ -278,6 +280,8 @@ class LineContainer(object):
value = property(get_value, set_value)
def __str__(self):
+ for c in self.contents:
+ pass#print(c.__str__())
s = [x.__str__() for x in self.contents]
return '\n'.join(s)
@@ -465,7 +469,7 @@ class INIConfig(config.ConfigNamespace):
self._sections = {}
if defaults is None: defaults = {}
self._defaults = INISection(LineContainer(), optionxformsource=self)
- for name, value in defaults.iteritems():
+ for name, value in defaults.items():
self._defaults[name] = value
if fp is not None:
self._readfp(fp)
@@ -551,7 +555,7 @@ class INIConfig(config.ConfigNamespace):
for line in readline_iterator(fp):
# Check for BOM on first line
- if linecount == 0 and isinstance(line, unicode):
+ if linecount == 0 and isinstance(line, six.text_type):
if line[0] == u'\ufeff':
line = line[1:]
self._bom = True
diff --git a/iniparse/utils.py b/iniparse/utils.py
index 829fc28..f8b773a 100644
--- a/iniparse/utils.py
+++ b/iniparse/utils.py
@@ -1,5 +1,5 @@
-import compat
-from ini import LineContainer, EmptyLine
+from . import compat
+from .ini import LineContainer, EmptyLine
def tidy(cfg):
"""Clean up blank lines.
diff --git a/tests/__init__.py b/tests/__init__.py
index f1fa321..88689fb 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,12 +1,12 @@
import unittest, doctest
-import test_ini
-import test_misc
-import test_fuzz
-import test_compat
-import test_unicode
-import test_tidy
-import test_multiprocessing
+from . import test_ini
+from . import test_misc
+from . import test_fuzz
+from . import test_compat
+from . import test_unicode
+from . import test_tidy
+from . import test_multiprocessing
from iniparse import config
from iniparse import ini
diff --git a/tests/test_compat.py b/tests/test_compat.py
index b8da3d5..b6dfb5c 100644
--- a/tests/test_compat.py
+++ b/tests/test_compat.py
@@ -1,9 +1,16 @@
from iniparse import compat as ConfigParser
-import StringIO
+from six import StringIO
+try:
+ import UserDict
+except ImportError:
+ import collections as UserDict
import unittest
-import UserDict
-from test import test_support
+import sys
+if sys.version_info[0] < 3:
+ from test import test_support
+else:
+ from test import support as test_support
class SortedDict(UserDict.UserDict):
def items(self):
@@ -35,7 +42,7 @@ class TestCaseBase(unittest.TestCase):
def fromstring(self, string, defaults=None):
cf = self.newconfig(defaults)
- sio = StringIO.StringIO(string)
+ sio = StringIO(string)
cf.readfp(sio)
return cf
@@ -161,7 +168,7 @@ class TestCaseBase(unittest.TestCase):
"No Section!\n")
def parse_error(self, exc, src):
- sio = StringIO.StringIO(src)
+ sio = StringIO(src)
self.assertRaises(exc, self.cf.readfp, sio)
def test_query_errors(self):
@@ -181,7 +188,7 @@ class TestCaseBase(unittest.TestCase):
def get_error(self, exc, section, option):
try:
self.cf.get(section, option)
- except exc, e:
+ except exc as e:
return e
else:
self.fail("expected exception type %s.%s"
@@ -227,7 +234,7 @@ class TestCaseBase(unittest.TestCase):
"foo: another very\n"
" long line"
)
- output = StringIO.StringIO()
+ output = StringIO()
cf.write(output)
self.assertEqual(
output.getvalue(),
@@ -465,7 +472,7 @@ class SortedTestCase(RawConfigParserTestCase):
"o1=4\n"
"[a]\n"
"k=v\n")
- output = StringIO.StringIO()
+ output = StringIO()
self.cf.write(output)
self.assertEquals(output.getvalue(),
"[a]\n"
diff --git a/tests/test_fuzz.py b/tests/test_fuzz.py
index 5420dcc..b219500 100644
--- a/tests/test_fuzz.py
+++ b/tests/test_fuzz.py
@@ -1,9 +1,10 @@
import re
import os
import random
+import sys
import unittest
-import ConfigParser
-from StringIO import StringIO
+from six import StringIO
+from six.moves import configparser
from iniparse import compat, ini, tidy
# TODO:
@@ -96,24 +97,25 @@ class test_fuzz(unittest.TestCase):
s = '\n'.join(good_lines)
cc = compat.RawConfigParser()
cc.readfp(StringIO(s))
- cc_py = ConfigParser.RawConfigParser()
+ cc_py = configparser.RawConfigParser()
cc_py.readfp(StringIO(s))
# compare the two configparsers
self.assertEqualConfig(cc_py, cc)
# check that tidy does not change semantics
tidy(cc)
- cc_tidy = ConfigParser.RawConfigParser()
+ cc_tidy = configparser.RawConfigParser()
cc_tidy.readfp(StringIO(str(cc.data)))
self.assertEqualConfig(cc_py, cc_tidy)
except AssertionError:
fname = 'fuzz-test-iter-%d.ini' % fuzz_iter
- print 'Fuzz test failed at iteration', fuzz_iter
- print 'Writing out failing INI file as', fname
+ print('Fuzz test failed at iteration', fuzz_iter)
+ print('Writing out failing INI file as', fname)
f = open(fname, 'w')
f.write(s)
f.close()
raise
+ @unittest.skipIf(sys.version_info[0] > 2, 'http://code.google.com/p/iniparse/issues/detail?id=22#c9')
def assertEqualConfig(self, c1, c2):
self.assertEqualSorted(c1.sections(), c2.sections())
self.assertEqualSorted(c1.defaults().items(), c2.defaults().items())
@@ -123,9 +125,7 @@ class test_fuzz(unittest.TestCase):
self.assertEqual(c1.get(sec, opt), c2.get(sec, opt))
def assertEqualSorted(self, l1, l2):
- l1.sort()
- l2.sort()
- self.assertEqual(l1, l2)
+ self.assertEqual(sorted(l1), sorted(l2))
class suite(unittest.TestSuite):
def __init__(self):
diff --git a/tests/test_ini.py b/tests/test_ini.py
index 78b2b3c..6d974f0 100644
--- a/tests/test_ini.py
+++ b/tests/test_ini.py
@@ -1,5 +1,5 @@
import unittest
-from StringIO import StringIO
+from six import StringIO
from iniparse import ini
from iniparse import compat
@@ -195,13 +195,13 @@ but = also me
self.assertEqual(p._data.find('section2').find('just').value, 'kidding')
itr = p._data.finditer('section1')
- v = itr.next()
+ v = next(itr)
self.assertEqual(v.find('help').value, 'yourself')
self.assertEqual(v.find('but').value, 'also me')
- v = itr.next()
+ v = next(itr)
self.assertEqual(v.find('help').value, 'me')
self.assertEqual(v.find('I\'m').value, 'desperate')
- self.assertRaises(StopIteration, itr.next)
+ self.assertRaises(StopIteration, next, itr)
self.assertRaises(KeyError, p._data.find, 'section')
self.assertRaises(KeyError, p._data.find('section2').find, 'ahem')
diff --git a/tests/test_misc.py b/tests/test_misc.py
index 31cf4da..96ef035 100644
--- a/tests/test_misc.py
+++ b/tests/test_misc.py
@@ -1,9 +1,9 @@
import re
import unittest
import pickle
-import ConfigParser
+from six.moves import configparser
+from six import StringIO
from textwrap import dedent
-from StringIO import StringIO
from iniparse import compat, ini
class CaseSensitiveConfigParser(compat.ConfigParser):
diff --git a/tests/test_tidy.py b/tests/test_tidy.py
index 7304747..26b6cde 100644
--- a/tests/test_tidy.py
+++ b/tests/test_tidy.py
@@ -1,6 +1,6 @@
import unittest
from textwrap import dedent
-from StringIO import StringIO
+from six import StringIO
from iniparse import tidy,INIConfig
from iniparse.ini import EmptyLine
diff --git a/tests/test_unicode.py b/tests/test_unicode.py
index a56fcab..14d4fbd 100644
--- a/tests/test_unicode.py
+++ b/tests/test_unicode.py
@@ -1,5 +1,5 @@
import unittest
-from StringIO import StringIO
+import six
from iniparse import compat, ini
class test_unicode(unittest.TestCase):
@@ -17,14 +17,14 @@ baz = Marc-Andr\202
"""
def basic_tests(self, s, strable):
- f = StringIO(s)
+ f = six.StringIO(s)
i = ini.INIConfig(f)
- self.assertEqual(unicode(i), s)
- self.assertEqual(type(i.foo.bar), unicode)
+ self.assertEqual(six.text_type(i), s)
+ self.assertEqual(type(i.foo.bar), six.text_type)
if strable:
self.assertEqual(str(i), str(s))
else:
- self.assertRaises(UnicodeEncodeError, lambda: str(i))
+ self.assertRaises(UnicodeEncodeError, lambda: six.text_type(i).encode('ascii'))
return i
def test_ascii(self):
--
2.19.1

View File

@ -1,61 +0,0 @@
From 07763b43ff35573564a4a2509c006b1e30fe59ee Mon Sep 17 00:00:00 2001
From: Jiri Hnidek <jhnidek@redhat.com>
Date: Fri, 18 May 2018 13:39:53 +0200
Subject: [PATCH] Second patch from Fedora Project.
---
PKG-INFO | 7 +++++--
setup.py | 10 +++++++---
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index 31c4ad2..bebcb80 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -18,7 +18,10 @@ Classifier: License :: OSI Approved :: MIT License
Classifier: License :: OSI Approved :: Python Software Foundation License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2.4
-Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.3
+Classifier: Programming Language :: Python :: 3.4
Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff --git a/setup.py b/setup.py
index 736cfa1..e2f8de0 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-from distutils.core import setup
+from setuptools import setup
VERSION = '0.4'
@@ -24,12 +24,16 @@ use.''',
'License :: OSI Approved :: Python Software Foundation License',
'Operating System :: OS Independent',
'Programming Language :: Python',
- 'Programming Language :: Python :: 2.4',
- 'Programming Language :: Python :: 2.5',
+ 'Programming Language :: Python :: 2'
'Programming Language :: Python :: 2.6',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.3',
+ 'Programming Language :: Python :: 3.4'
'Topic :: Software Development :: Libraries :: Python Modules',
],
packages = ['iniparse'],
+ install_requires=['six'],
data_files = [
('share/doc/iniparse-%s' % VERSION, ['README', 'LICENSE-PSF',
'LICENSE', 'Changelog',
--
2.19.1