You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2021/09/13 16:38:43 UTC
[allura] branch db/8396 created (now ff17dc5)
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a change to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git.
at ff17dc5 [#8396] upgrade setproctitle
This branch includes the following new commits:
new bee3603 [#8396] Revert "[#8386] remove chardet, make requests library still work"
new d3ffe76 [#8396] restore nose cmd
new 56474b6 [#8396] upgrade requests, depend on charset-normalizer now
new c543a60 [#8396] upgrade requests deps
new ff6ceebc [#8396] upgrade feedparser
new 7214633 [#8396] upgrade inflection (from profanity filter, for ForgeFeedback)
new 892d5d8 [#8396] remove dependency on ipython
new a5ead5e [#8396] upgrade colander and its dependencies
new f7da65b [#8396] upgrade pysolr
new 414f4a6 [#8396] upgrade python-magic
new ff17dc5 [#8396] upgrade setproctitle
The 11 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[allura] 11/11: [#8396] upgrade setproctitle
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit ff17dc50e1d0c5096e75978c9225d5ae6981ed9e
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 22:10:40 2021 +0000
[#8396] upgrade setproctitle
---
requirements.in | 2 +-
requirements.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/requirements.in b/requirements.in
index 0a1eeba..f657a9e 100644
--- a/requirements.in
+++ b/requirements.in
@@ -43,7 +43,7 @@ qrcode
requests
requests-oauthlib
# for taskd proc name switching
-setproctitle==1.1.9
+setproctitle
six
TimerMiddleware==0.5.1
TurboGears2==2.3.12
diff --git a/requirements.txt b/requirements.txt
index 94647fb..60fb6ec 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -157,7 +157,7 @@ requests==2.26.0
# requests-oauthlib
requests-oauthlib==1.2.0
# via -r requirements.in
-setproctitle==1.1.9
+setproctitle==1.2.2
# via -r requirements.in
sgmllib3k==1.0.0
# via feedparser
[allura] 04/11: [#8396] upgrade requests deps
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit c543a6045d5720b0e352967f96b4f0034f89e9b9
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 20:37:02 2021 +0000
[#8396] upgrade requests deps
---
requirements-dev.txt | 6 +++---
requirements.txt | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/requirements-dev.txt b/requirements-dev.txt
index a37ceba..b58798e 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -8,7 +8,7 @@ alabaster==0.7.12
# via sphinx
babel==2.7.0
# via sphinx
-certifi==2019.6.16
+certifi==2021.5.30
# via requests
charset-normalizer==2.0.4
# via requests
@@ -18,7 +18,7 @@ coverage==4.5.4
# via -r requirements-dev.in
docutils==0.15.2
# via sphinx
-idna==2.8
+idna==3.2
# via requests
imagesize==1.1.0
# via sphinx
@@ -67,7 +67,7 @@ tomli==1.2.1
# via pep517
typing-extensions==3.10.0.2
# via importlib-metadata
-urllib3==1.26.5
+urllib3==1.26.6
# via requests
wheel==0.37.0
# via pip-tools
diff --git a/requirements.txt b/requirements.txt
index 7d04c7d..4e6e295 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,7 +16,7 @@ bleach==3.3.0
# via pypeline
cchardet==2.1.7
# via -r requirements.in
-certifi==2019.6.16
+certifi==2021.5.30
# via requests
cffi==1.12.2
# via cryptography
@@ -68,7 +68,7 @@ html5lib==1.0.1
# textile
httplib2==0.19.0
# via oauth2
-idna==2.8
+idna==3.2
# via requests
inflection==0.3.1
# via profanityfilter
@@ -215,7 +215,7 @@ translationstring==1.3
# via colander
turbogears2==2.3.12
# via -r requirements.in
-urllib3==1.26.5
+urllib3==1.26.6
# via requests
waitress==1.4.3
# via webtest
[allura] 02/11: [#8396] restore nose cmd
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit d3ffe7635079bd25828b909f0d0172b0a531a5ff
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 18:00:18 2021 +0000
[#8396] restore nose cmd
---
.travis.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index ced0267..4d90096 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,7 +26,8 @@ jobs:
- pip install https://sourceforge.net/projects/pysvn/files/pysvn/V1.9.12/pysvn-1.9.12.tar.gz
install:
- sudo apt-get install -qq libjpeg8-dev zlib1g-dev
- - pip install -r requirements.txt
+ - pip install nose
+ - pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed
- npm install
script:
- ./rebuild-all.bash
[allura] 09/11: [#8396] upgrade pysolr
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit f7da65bff13f28cc7e508c0a2e05d90db7e8c51c
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 22:04:57 2021 +0000
[#8396] upgrade pysolr
---
Allura/allura/lib/search.py | 14 ++++++++++++++
Allura/allura/lib/solr.py | 3 +++
requirements.in | 2 +-
requirements.txt | 2 +-
4 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/Allura/allura/lib/search.py b/Allura/allura/lib/search.py
index 462ffc2..6d820cf 100644
--- a/Allura/allura/lib/search.py
+++ b/Allura/allura/lib/search.py
@@ -105,6 +105,20 @@ class SearchIndexable(object):
# To do so, we convert markdown into html, and then strip all html tags.
text = g.markdown.convert(text)
doc['text'] = jinja2.Markup.escape(text).striptags()
+
+ # convert some date/time field types to str
+ # from https://github.com/django-haystack/pysolr/blob/1a8887cb2ce1c30ef9d6570704254b4520f8a959/pysolr.py#L692
+ for k, value in doc.items():
+ if hasattr(value, "strftime"):
+ if hasattr(value, "hour"):
+ offset = value.utcoffset()
+ if offset:
+ value = value - offset
+ value = value.replace(tzinfo=None).isoformat() + "Z"
+ else:
+ value = "%sT00:00:00Z" % value.isoformat()
+ doc[k] = value
+
return doc
@classmethod
diff --git a/Allura/allura/lib/solr.py b/Allura/allura/lib/solr.py
index d97141e..de4c536 100644
--- a/Allura/allura/lib/solr.py
+++ b/Allura/allura/lib/solr.py
@@ -17,6 +17,8 @@
from __future__ import unicode_literals
from __future__ import absolute_import
+
+import json
import logging
from tg import config
@@ -145,6 +147,7 @@ class MockSOLR(object):
def add(self, objects):
for o in objects:
o['text'] = ''.join(o['text'])
+ json.dumps(o) # ensure no errors (since pysolr 3.9+ uses json API to solr)
self.db[o['id']] = o
def commit(self):
diff --git a/requirements.in b/requirements.in
index 3b25ead..0a1eeba 100644
--- a/requirements.in
+++ b/requirements.in
@@ -34,7 +34,7 @@ profanityfilter==2.0.6
Pygments
pymongo==3.10.1
Pypeline[creole,markdown,textile,rst]
-pysolr==3.6.0
+pysolr
python-dateutil
python-magic
python-oembed
diff --git a/requirements.txt b/requirements.txt
index 09c1ef6..e11b5c7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -131,7 +131,7 @@ pyparsing==2.4.7
# packaging
pypeline[creole,markdown,rst,textile]==0.5.3
# via -r requirements.in
-pysolr==3.6.0
+pysolr==3.9.0
# via -r requirements.in
python-dateutil==2.8.0
# via
[allura] 10/11: [#8396] upgrade python-magic
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 414f4a631660342b72aa51abd86e349dbaba5b20
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 22:08:27 2021 +0000
[#8396] upgrade python-magic
---
requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index e11b5c7..94647fb 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -137,7 +137,7 @@ python-dateutil==2.8.0
# via
# -r requirements.in
# easywidgets
-python-magic==0.4.15
+python-magic==0.4.24
# via -r requirements.in
python-oembed==0.2.4
# via -r requirements.in
[allura] 01/11: [#8396] Revert "[#8386] remove chardet,
make requests library still work"
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit bee3603c70bd319b9b0ee72dbed3d771261d7d83
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 17:59:08 2021 +0000
[#8396] Revert "[#8386] remove chardet, make requests library still work"
This reverts commit f4ac641bcabcd7bdc199cd022fb13cf79cd93ff3.
---
.travis.yml | 3 +--
Allura/allura/lib/custom_middleware.py | 2 +-
Allura/allura/lib/helpers.py | 16 ----------------
Allura/allura/lib/phone/nexmo.py | 1 -
Allura/allura/lib/project_create_helpers.py | 2 +-
Allura/allura/lib/search.py | 2 +-
Allura/allura/lib/security.py | 2 +-
Allura/allura/lib/solr.py | 2 +-
Allura/allura/webhooks.py | 2 +-
Allura/docs/getting_started/install_each_step.rst | 2 +-
Allura/docs/getting_started/installation.rst | 2 +-
AlluraTest/alluratest/validation.py | 3 +--
ForgeImporters/forgeimporters/github/__init__.py | 1 -
.../tests/github/functional/test_github.py | 2 +-
ForgeImporters/forgeimporters/trac/__init__.py | 1 -
requirements.txt | 2 ++
update.sh | 6 +++---
17 files changed, 16 insertions(+), 35 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 4d90096..ced0267 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,8 +26,7 @@ jobs:
- pip install https://sourceforge.net/projects/pysvn/files/pysvn/V1.9.12/pysvn-1.9.12.tar.gz
install:
- sudo apt-get install -qq libjpeg8-dev zlib1g-dev
- - pip install nose
- - pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed
+ - pip install -r requirements.txt
- npm install
script:
- ./rebuild-all.bash
diff --git a/Allura/allura/lib/custom_middleware.py b/Allura/allura/lib/custom_middleware.py
index 55f9ab6..25b31bf 100644
--- a/Allura/allura/lib/custom_middleware.py
+++ b/Allura/allura/lib/custom_middleware.py
@@ -29,11 +29,11 @@ from tg import tmpl_context as c
from tg.support.middlewares import _call_wsgi_application as call_wsgi_application
from timermiddleware import Timer, TimerMiddleware
from webob import exc, Request
+import pysolr
import six
from ming.odm import session
from allura.lib import helpers as h
-import pysolr # after 'h' import to get requests/chardet patched
from allura.lib.utils import is_ajax
from allura import model as M
import allura.model.repository
diff --git a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
index 79f8ad8..a7a334c 100644
--- a/Allura/allura/lib/helpers.py
+++ b/Allura/allura/lib/helpers.py
@@ -44,22 +44,6 @@ from functools import partial
from io import BytesIO
import cgi
-
-# https://forge-allura.apache.org/p/allura/tickets/8386/
-# we don't want to depend on LGPL'd chardet, but the requests library needs it
-# so if we can't import it, we'll make it exist as a copy of cchardet
-# this spot in the codebase is best, since it is imported by many things and is before 'requests' is imported
-# if https://github.com/psf/requests/pull/5797 is resolved, this hack could be removed
-try:
- import chardet
-except ImportError:
- import sys
- import cchardet
- sys.modules['chardet'] = sys.modules['cchardet']
- import chardet
- chardet.__version__ += '.cchardet'
-
-
import emoji
import tg
import six
diff --git a/Allura/allura/lib/phone/nexmo.py b/Allura/allura/lib/phone/nexmo.py
index f5025d7..f251c93 100644
--- a/Allura/allura/lib/phone/nexmo.py
+++ b/Allura/allura/lib/phone/nexmo.py
@@ -22,7 +22,6 @@ from six.moves.urllib.parse import urljoin
import cgi
import json
-from allura.lib import helpers as h # to get requests/chardet patched
import requests
import jinja2
diff --git a/Allura/allura/lib/project_create_helpers.py b/Allura/allura/lib/project_create_helpers.py
index 026b197..5e08fb3 100644
--- a/Allura/allura/lib/project_create_helpers.py
+++ b/Allura/allura/lib/project_create_helpers.py
@@ -29,6 +29,7 @@ except ImportError: # py2 doesn't have typing yet
import colander as col
import bson
+import requests
import formencode
import six
from six.moves.urllib.parse import urlparse
@@ -42,7 +43,6 @@ from tg import tmpl_context as c, app_globals as g
from allura import model as M
from allura.lib import helpers as h
-import requests
from allura.lib.plugin import ProjectRegistrationProvider
diff --git a/Allura/allura/lib/search.py b/Allura/allura/lib/search.py
index 6d44361..462ffc2 100644
--- a/Allura/allura/lib/search.py
+++ b/Allura/allura/lib/search.py
@@ -30,9 +30,9 @@ import jinja2
from tg import redirect, url
from tg import tmpl_context as c, app_globals as g
from tg import request
+from pysolr import SolrError
from allura.lib import helpers as h
-from pysolr import SolrError # after 'h' import to get requests/chardet patched
from allura.lib.solr import escape_solr_arg
from allura.lib.utils import urlencode
import six
diff --git a/Allura/allura/lib/security.py b/Allura/allura/lib/security.py
index 2889c9e..4ff62f7 100644
--- a/Allura/allura/lib/security.py
+++ b/Allura/allura/lib/security.py
@@ -25,6 +25,7 @@ import sys
import logging
from collections import defaultdict
import hashlib
+import requests
from tg import tmpl_context as c
from tg import request
@@ -562,7 +563,6 @@ class HIBPClient(object):
Raises a named HIBPCompromisedCredentials exception if any found
:param password: user-supplied password
"""
- import requests
result = 0
try:
# sha1 it
diff --git a/Allura/allura/lib/solr.py b/Allura/allura/lib/solr.py
index 138fa6d..d97141e 100644
--- a/Allura/allura/lib/solr.py
+++ b/Allura/allura/lib/solr.py
@@ -21,10 +21,10 @@ import logging
from tg import config
from paste.deploy.converters import asbool
+import pysolr
import six
from allura.lib.helpers import shlex_split
-import pysolr # after helpers import to get requests/chardet patched
log = logging.getLogger(__name__)
diff --git a/Allura/allura/webhooks.py b/Allura/allura/webhooks.py
index 5778b44..a5f0004 100644
--- a/Allura/allura/webhooks.py
+++ b/Allura/allura/webhooks.py
@@ -25,6 +25,7 @@ import time
import socket
import ssl
+import requests
from bson import ObjectId
from tg import expose, validate, redirect, flash, config
from tg.decorators import with_trailing_slash, without_trailing_slash
@@ -39,7 +40,6 @@ from paste.deploy.converters import asint, aslist
from allura.app import AdminControllerMixin
from allura.controllers import BaseController
from allura.lib import helpers as h
-import requests
from allura.lib import validators as v
from allura.lib.decorators import require_post, task
from allura.lib.utils import DateJSONEncoder
diff --git a/Allura/docs/getting_started/install_each_step.rst b/Allura/docs/getting_started/install_each_step.rst
index 4bbe8f0..ec948c2 100644
--- a/Allura/docs/getting_started/install_each_step.rst
+++ b/Allura/docs/getting_started/install_each_step.rst
@@ -112,7 +112,7 @@ We'll upgrade `pip <https://pip.pypa.io/en/stable/>`_ to make sure its a current
(env-allura)~/src$ cd allura
(env-allura)~/src/allura$ pip install -U pip
- (env-allura)~/src/allura$ pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed
+ (env-allura)~/src/allura$ pip install -r requirements.txt
This may take a little while.
diff --git a/Allura/docs/getting_started/installation.rst b/Allura/docs/getting_started/installation.rst
index 1074af5..0c06b18 100644
--- a/Allura/docs/getting_started/installation.rst
+++ b/Allura/docs/getting_started/installation.rst
@@ -165,7 +165,7 @@ Update requirements and reinstall apps:
.. code-block:: bash
- docker-compose run web pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed
+ docker-compose run web pip install -r requirements.txt
docker-compose run web ./rebuild-all.bash
You may want to restart at least "taskd" container after that in order for it to
diff --git a/AlluraTest/alluratest/validation.py b/AlluraTest/alluratest/validation.py
index b10a783..30f9c46 100644
--- a/AlluraTest/alluratest/validation.py
+++ b/AlluraTest/alluratest/validation.py
@@ -39,10 +39,9 @@ import six
import webtest
from webtest import TestApp
from ming.utils import LazyProperty
+import requests
from allura.lib import utils
-from allura.lib import helpers as h # to get requests/chardet patched
-import requests
log = logging.getLogger(__name__)
diff --git a/ForgeImporters/forgeimporters/github/__init__.py b/ForgeImporters/forgeimporters/github/__init__.py
index 2d570b3..32098fa 100644
--- a/ForgeImporters/forgeimporters/github/__init__.py
+++ b/ForgeImporters/forgeimporters/github/__init__.py
@@ -29,7 +29,6 @@ from datetime import datetime
from tg import config, session, redirect, request, expose
from tg.decorators import without_trailing_slash
from tg import tmpl_context as c
-from allura.lib import helpers as h # to get requests/chardet patched
from requests_oauthlib import OAuth2Session
import requests
from formencode import validators as fev
diff --git a/ForgeImporters/forgeimporters/tests/github/functional/test_github.py b/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
index c83cc50..5cb7b8f 100644
--- a/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
+++ b/ForgeImporters/forgeimporters/tests/github/functional/test_github.py
@@ -16,6 +16,7 @@
# under the License.
from __future__ import unicode_literals
from __future__ import absolute_import
+import requests
import tg
from mock import patch, call, Mock
from alluratest.tools import assert_equal
@@ -23,7 +24,6 @@ from unittest import TestCase
from allura.tests import TestController
from allura import model as M
-import requests
class TestGitHubImportController(TestController, TestCase):
diff --git a/ForgeImporters/forgeimporters/trac/__init__.py b/ForgeImporters/forgeimporters/trac/__init__.py
index 7ba6693..3a0949d 100644
--- a/ForgeImporters/forgeimporters/trac/__init__.py
+++ b/ForgeImporters/forgeimporters/trac/__init__.py
@@ -18,7 +18,6 @@
from __future__ import unicode_literals
from __future__ import absolute_import
from formencode import validators as fev
-from allura.lib import helpers as h # to get requests/chardet patched
import requests
from allura.lib import validators
diff --git a/requirements.txt b/requirements.txt
index 967a992..d442ab7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -20,6 +20,8 @@ certifi==2019.6.16
# via requests
cffi==1.12.2
# via cryptography
+chardet==3.0.4
+ # via requests
colander==1.7.0
# via -r requirements.in
crank==0.8.1
diff --git a/update.sh b/update.sh
index f160744..9bf3a1e 100755
--- a/update.sh
+++ b/update.sh
@@ -25,12 +25,12 @@ fi
echo 'Getting latest code with `git pull` ...'
git pull
-echo 'Updating python packages with pip install ...'
-pip install -r requirements.txt --no-deps --upgrade --upgrade-strategy=only-if-needed
+echo 'Updating python packages with `pip install -r requirements.txt` ...'
+pip install -r requirements.txt
if [ "$?" -gt 0 ]; then
echo
echo
- echo 'Command `pip install ...` failed. Sometimes this is a random download error. If so, just try again.'
+ echo 'Command `pip install -r requirements.txt` failed. Sometimes this is a random download error. If so, just try again.'
exit;
fi
[allura] 07/11: [#8396] remove dependency on ipython
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 892d5d80db5a46b52ed680cd4fd96535d233e361
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 21:02:06 2021 +0000
[#8396] remove dependency on ipython
---
Allura/allura/command/show_models.py | 22 ----------------
Allura/allura/lib/utils.py | 20 +++------------
Allura/allura/tests/functional/test_root.py | 6 ++---
Allura/allura/tests/test_helpers.py | 7 +++---
AlluraTest/alluratest/tools.py | 18 ++++++++++++++
ForgeBlog/forgeblog/tests/test_commands.py | 5 ++--
.../forgeimporters/github/tests/test_wiki.py | 18 +++++++-------
.../forgeimporters/trac/tests/test_tickets.py | 6 ++---
.../forgesvn/tests/functional/test_controllers.py | 8 +++---
ForgeSVN/forgesvn/tests/model/test_repository.py | 7 +++---
ForgeWiki/forgewiki/tests/test_converters.py | 7 ++++--
requirements.in | 1 -
requirements.txt | 29 ++--------------------
13 files changed, 57 insertions(+), 97 deletions(-)
diff --git a/Allura/allura/command/show_models.py b/Allura/allura/command/show_models.py
index f4623de..b0fb3ac 100644
--- a/Allura/allura/command/show_models.py
+++ b/Allura/allura/command/show_models.py
@@ -385,25 +385,3 @@ def dfs(root, graph, depth=0):
for node in graph[root][1]:
for r in dfs(node, graph, depth + 1):
yield r
-
-
-def pm(etype, value, tb): # pragma no cover
- import pdb
- import traceback
- try:
- from IPython.ipapi import make_session
- make_session()
- from IPython.Debugger import Pdb
- sys.stderr.write('Entering post-mortem IPDB shell\n')
- p = Pdb(color_scheme='Linux')
- p.reset()
- p.setup(None, tb)
- p.print_stack_trace()
- sys.stderr.write('%s: %s\n' % (etype, value))
- p.cmdloop()
- p.forget()
- # p.interaction(None, tb)
- except ImportError:
- sys.stderr.write('Entering post-mortem PDB shell\n')
- traceback.print_exception(etype, value, tb)
- pdb.post_mortem(tb)
diff --git a/Allura/allura/lib/utils.py b/Allura/allura/lib/utils.py
index 3f566a3..5adc4f4 100644
--- a/Allura/allura/lib/utils.py
+++ b/Allura/allura/lib/utils.py
@@ -440,23 +440,9 @@ def postmortem_hook(etype, value, tb): # pragma no cover
import sys
import pdb
import traceback
- try:
- from IPython.ipapi import make_session
- make_session()
- from IPython.Debugger import Pdb
- sys.stderr.write('Entering post-mortem IPDB shell\n')
- p = Pdb(color_scheme='Linux')
- p.reset()
- p.setup(None, tb)
- p.print_stack_trace()
- sys.stderr.write('%s: %s\n' % (etype, value))
- p.cmdloop()
- p.forget()
- # p.interaction(None, tb)
- except ImportError:
- sys.stderr.write('Entering post-mortem PDB shell\n')
- traceback.print_exception(etype, value, tb)
- pdb.post_mortem(tb)
+ sys.stderr.write('Entering post-mortem PDB shell\n')
+ traceback.print_exception(etype, value, tb)
+ pdb.post_mortem(tb)
class LineAnchorCodeHtmlFormatter(HtmlFormatter):
diff --git a/Allura/allura/tests/functional/test_root.py b/Allura/allura/tests/functional/test_root.py
index 3caf217..31efd55 100644
--- a/Allura/allura/tests/functional/test_root.py
+++ b/Allura/allura/tests/functional/test_root.py
@@ -31,14 +31,14 @@ Please read http://pythonpaste.org/webtest/ for more information.
from __future__ import unicode_literals
from __future__ import absolute_import
import os
+from unittest import skipIf
import six
from tg import tmpl_context as c
-from alluratest.tools import assert_equal, assert_in
+from alluratest.tools import assert_equal, module_not_available
from ming.orm.ormsession import ThreadLocalORMSession
import mock
-from IPython.testing.decorators import module_not_available, skipif
from allura.tests import decorators as td
from allura.tests import TestController
@@ -177,7 +177,7 @@ class TestRootController(TestController):
self.app.get('/p', status=301)
self.app.get('/p/', status=302)
- @skipif(module_not_available('newrelic'))
+ @skipIf(module_not_available('newrelic'), 'requires newrelic')
def test_newrelic_set_transaction_name(self):
from allura.controllers.project import NeighborhoodController
with mock.patch('newrelic.agent.callable_name') as callable_name,\
diff --git a/Allura/allura/tests/test_helpers.py b/Allura/allura/tests/test_helpers.py
index 4e35c01..d743a95 100644
--- a/Allura/allura/tests/test_helpers.py
+++ b/Allura/allura/tests/test_helpers.py
@@ -19,7 +19,7 @@
from __future__ import unicode_literals
from __future__ import absolute_import
-from unittest import TestCase
+from unittest import TestCase, skipIf
from os import path
from datetime import datetime, timedelta
import time
@@ -27,8 +27,7 @@ import time
import PIL
from mock import Mock, patch
from tg import tmpl_context as c
-from alluratest.tools import assert_equals, assert_raises
-from IPython.testing.decorators import skipif, module_not_available
+from alluratest.tools import assert_equals, assert_raises, module_not_available
from datadiff import tools as dd
from webob import Request
from webob.exc import HTTPUnauthorized
@@ -368,7 +367,7 @@ def test_notifications_disabled():
assert_equals(project.notifications_disabled, False)
-@skipif(module_not_available('html2text'))
+@skipIf(module_not_available('html2text'), 'html2text required')
def test_plain2markdown_with_html2text():
"""Test plain2markdown using html2text to escape markdown, if available."""
text = '''paragraph
diff --git a/AlluraTest/alluratest/tools.py b/AlluraTest/alluratest/tools.py
index dd3e4d2..8831b12 100644
--- a/AlluraTest/alluratest/tools.py
+++ b/AlluraTest/alluratest/tools.py
@@ -84,3 +84,21 @@ def assert_greater_equal(*a, **kw):
def assert_regexp_matches(*a, **kw):
return testcase.assertRegexpMatches(*a, **kw)
+
+
+#
+# copied from IPython.testing.decorators
+# BSD license
+def module_not_available(module):
+ """Can module be imported? Returns true if module does NOT import.
+
+ This is used to make a decorator to skip tests that require module to be
+ available, but delay the 'import numpy' to test execution time.
+ """
+ try:
+ mod = __import__(module)
+ mod_not_avail = False
+ except ImportError:
+ mod_not_avail = True
+
+ return mod_not_avail
diff --git a/ForgeBlog/forgeblog/tests/test_commands.py b/ForgeBlog/forgeblog/tests/test_commands.py
index addc8ee..b275067 100644
--- a/ForgeBlog/forgeblog/tests/test_commands.py
+++ b/ForgeBlog/forgeblog/tests/test_commands.py
@@ -20,7 +20,7 @@ from __future__ import absolute_import
from datetime import datetime, timedelta
from tg import app_globals as g
from datadiff.tools import assert_equal
-from IPython.testing.decorators import module_not_available, skipif
+from unittest import skipIf
import pkg_resources
import mock
import feedparser
@@ -28,6 +28,7 @@ import feedparser
from ming.orm.ormsession import ThreadLocalORMSession
from alluratest.controller import setup_basic_test, setup_global_objects
+from alluratest.tools import module_not_available
from allura import model as M
from forgeblog import model as BM
@@ -71,7 +72,7 @@ def _mock_feed(*entries):
_mock_feed.i = 0
-@skipif(module_not_available('html2text'))
+@skipIf(module_not_available('html2text'), 'requires html2text')
@mock.patch.object(feedparser, 'parse')
def test_pull_rss_feeds(parsefeed):
html_content = (
diff --git a/ForgeImporters/forgeimporters/github/tests/test_wiki.py b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
index 578a875..1be0a94 100644
--- a/ForgeImporters/forgeimporters/github/tests/test_wiki.py
+++ b/ForgeImporters/forgeimporters/github/tests/test_wiki.py
@@ -19,17 +19,17 @@
from __future__ import unicode_literals
from __future__ import absolute_import
-from unittest import TestCase
+from unittest import TestCase, skipIf
from alluratest.tools import assert_equal
from mock import Mock, patch, call
from ming.odm import ThreadLocalORMSession
import git
-from IPython.testing.decorators import module_not_available, skipif
from allura import model as M
from allura.tests import TestController
from allura.tests.decorators import with_tool, without_module
from alluratest.controller import setup_basic_test
+from alluratest.tools import module_not_available
from forgeimporters.github.wiki import GitHubWikiImporter
from forgeimporters.github.utils import GitHubMarkdownConverter
from forgeimporters.github import GitHubOAuthMixin
@@ -187,7 +187,7 @@ class TestGitHubWikiImporter(TestCase):
assert_equal(render.call_args_list,
[call('Home.rst', '# test message')])
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
@patch('forgeimporters.github.wiki.WM.Page.upsert')
@patch('forgeimporters.github.wiki.mediawiki2markdown')
def test_with_history_mediawiki(self, md2mkm, upsert):
@@ -300,7 +300,7 @@ Our website is <http://domain.net>.
assert_equal(f(source), result)
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_convert_markup(self):
importer = GitHubWikiImporter()
importer.github_wiki_url = 'https://github.com/a/b/wiki'
@@ -403,7 +403,7 @@ Our website is [[http://domain.net]].
prefix, new),
'<a href="/p/test/wiki/Test Page">Test <b>Page</b></a>')
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_convert_markup_with_mediawiki2markdown(self):
importer = GitHubWikiImporter()
importer.github_wiki_url = 'https://github.com/a/b/wiki'
@@ -431,7 +431,7 @@ Our website is [[http://domain.net]].
assert_equal(f(source, 'test.mediawiki'), result)
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_convert_textile_no_leading_tabs(self):
importer = GitHubWikiImporter()
importer.github_wiki_url = 'https://github.com/a/b/wiki'
@@ -455,7 +455,7 @@ Some text 1.
See [Page]'''
assert_equal(f(source, 'test.textile').strip(), result)
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_convert_markup_with_amp_in_links(self):
importer = GitHubWikiImporter()
importer.github_wiki_url = 'https://github.com/a/b/wiki'
@@ -467,7 +467,7 @@ See [Page]'''
# markdown should be untouched
assert_equal(f(source, 'test.rst').strip(), result)
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_convert_markup_textile(self):
importer = GitHubWikiImporter()
importer.github_wiki_url = 'https://github.com/a/b/wiki'
@@ -513,7 +513,7 @@ some text and **[Tips n\u2019 Tricks]**
'''
assert_equal(f(source, 'test3.textile'), result)
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_convert_textile_special_tag(self):
importer = GitHubWikiImporter()
importer.github_wiki_url = 'https://github.com/a/b/wiki'
diff --git a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
index a942fd5..0b010e0 100644
--- a/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
+++ b/ForgeImporters/forgeimporters/trac/tests/test_tickets.py
@@ -20,15 +20,15 @@ from __future__ import absolute_import
import json
import os
-from unittest import TestCase
+from unittest import TestCase, skipIf
from mock import Mock, patch
from ming.orm import ThreadLocalORMSession
from tg import tmpl_context as c
-from IPython.testing.decorators import module_not_available, skipif
from allura.tests import TestController
from allura.tests.decorators import with_tracker
from alluratest.controller import TestRestApiBase, setup_unit_test
+from alluratest.tools import module_not_available
from allura import model as M
from forgetracker import model as TM
@@ -262,7 +262,7 @@ class TestTracImportSupportFunctional(TestRestApiBase, TestCase):
import_support.get_slug_by_id('204', '2'), comments[1].slug)
@with_tracker
- @skipif(module_not_available('html2text'))
+ @skipIf(module_not_available('html2text'), 'html2text required')
def test_list(self):
from allura.scripts.trac_export import TracExport, DateJSONEncoder
csv_fp = open(os.path.dirname(__file__) + '/data/test-list.csv')
diff --git a/ForgeSVN/forgesvn/tests/functional/test_controllers.py b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
index 116542c..99100f3 100644
--- a/ForgeSVN/forgesvn/tests/functional/test_controllers.py
+++ b/ForgeSVN/forgesvn/tests/functional/test_controllers.py
@@ -23,6 +23,7 @@ import json
import re
import shutil
import os
+from unittest import skipUnless
import six
import tg
@@ -31,7 +32,6 @@ from tg import tmpl_context as c
from ming.orm import ThreadLocalORMSession
from mock import patch
from alluratest.tools import assert_equal, assert_in
-from IPython.testing.decorators import onlyif
from allura import model as M
from allura.lib import helpers as h
@@ -230,7 +230,7 @@ class TestRootController(SVNTestController):
r = self.app.get('/src/2/log/?path=does/not/exist/')
assert 'No (more) commits' in r
- @onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
+ @skipUnless(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball(self):
r = self.app.get('/src/3/tree/')
assert 'Download Snapshot' in r
@@ -245,7 +245,7 @@ class TestRootController(SVNTestController):
r = self.app.get('/src/3/tarball')
assert 'Your download will begin shortly' in r
- @onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
+ @skipUnless(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball_cyrillic(self):
r = self.app.get('/src/6/tree/')
assert 'Download Snapshot' in r
@@ -260,7 +260,7 @@ class TestRootController(SVNTestController):
r = self.app.get('/src/6/tarball')
assert 'Your download will begin shortly' in r
- @onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
+ @skipUnless(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball_path(self):
h.set_context('test', 'svn-tags', neighborhood='Projects')
shutil.rmtree(c.app.repo.tarball_path, ignore_errors=True)
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index 6781b9f..f71a787 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -22,6 +22,8 @@ from __future__ import absolute_import
import os
import shutil
import unittest
+from unittest import skipUnless
+
import pkg_resources
from itertools import count, product
from datetime import datetime
@@ -38,7 +40,6 @@ import ming
from ming.base import Object
from ming.orm import session, ThreadLocalORMSession
from testfixtures import TempDirectory
-from IPython.testing.decorators import onlyif
from alluratest.controller import setup_basic_test, setup_global_objects
from allura import model as M
@@ -434,7 +435,7 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
revision=pysvn.Revision.return_value,
recurse=False)
- @onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
+ @skipUnless(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball(self):
tmpdir = tg.config['scm.repos.tarball.root']
assert_equal(self.repo.tarball_path,
@@ -451,7 +452,7 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
shutil.rmtree(self.repo.tarball_path.encode('utf-8'),
ignore_errors=True)
- @onlyif(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
+ @skipUnless(os.path.exists(tg.config.get('scm.repos.tarball.zip_binary', '/usr/bin/zip')), 'zip binary is missing')
def test_tarball_paths(self):
rev = '19'
h.set_context('test', 'svn-tags', neighborhood='Projects')
diff --git a/ForgeWiki/forgewiki/tests/test_converters.py b/ForgeWiki/forgewiki/tests/test_converters.py
index 398c0a8..bd8fa4d 100644
--- a/ForgeWiki/forgewiki/tests/test_converters.py
+++ b/ForgeWiki/forgewiki/tests/test_converters.py
@@ -17,12 +17,15 @@
from __future__ import unicode_literals
from __future__ import absolute_import
-from IPython.testing.decorators import module_not_available, skipif
+
+from unittest import skipIf
+
+from alluratest.tools import module_not_available
from forgewiki import converters
-@skipif(module_not_available('mediawiki'))
+@skipIf(module_not_available('mediawiki'), 'mediawiki required')
def test_mediawiki2markdown():
mediawiki_text = """
'''bold''' ''italics''
diff --git a/requirements.in b/requirements.in
index 184dea3..67f0136 100644
--- a/requirements.in
+++ b/requirements.in
@@ -54,7 +54,6 @@ wrapt==1.11.2
# testing
datadiff
-ipython<6 # Ipython 7 starts to require py3
mock
pyflakes
#pylint -- disabled due to [#8346] (also requires diff versions on py2 vs 3, including transitive deps which gets tricky with pip-compile)
diff --git a/requirements.txt b/requirements.txt
index 4f06a6c..6036931 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -33,10 +33,7 @@ cryptography==3.3.2
datadiff==2.0.0
# via -r requirements.in
decorator==4.4.0
- # via
- # -r requirements.in
- # ipython
- # traitlets
+ # via -r requirements.in
docutils==0.15.2
# via pypeline
easywidgets==0.3.6
@@ -72,10 +69,6 @@ idna==3.2
# via requests
inflection==0.5.1
# via profanityfilter
-ipython==5.8.0
- # via -r requirements.in
-ipython-genutils==0.2.0
- # via traitlets
iso8601==0.1.12
# via colander
jinja2==2.11.3
@@ -117,26 +110,16 @@ pastedeploy==2.0.1
# pastescript
pastescript==3.1.0
# via -r requirements.in
-pexpect==4.7.0
- # via ipython
-pickleshare==0.7.5
- # via ipython
pillow==8.3.2
# via -r requirements.in
profanityfilter==2.0.6
# via -r requirements.in
-prompt-toolkit==1.0.16
- # via ipython
-ptyprocess==0.6.0
- # via pexpect
pycparser==2.19
# via cffi
pyflakes==2.1.1
# via -r requirements.in
pygments==2.9.0
- # via
- # -r requirements.in
- # ipython
+ # via -r requirements.in
pymongo==3.10.1
# via
# -r requirements.in
@@ -178,8 +161,6 @@ setproctitle==1.1.9
# via -r requirements.in
sgmllib3k==1.0.0
# via feedparser
-simplegeneric==0.8.1
- # via ipython
six==1.15.0
# via
# -r requirements.in
@@ -194,11 +175,9 @@ six==1.15.0
# mock
# paste
# pastescript
- # prompt-toolkit
# python-dateutil
# qrcode
# textile
- # traitlets
# webhelpers2
# webtest
smmap2==2.0.4
@@ -211,8 +190,6 @@ textile==3.0.4
# via pypeline
timermiddleware==0.5.1
# via -r requirements.in
-traitlets==4.3.2
- # via ipython
translationstring==1.3
# via colander
turbogears2==2.3.12
@@ -221,8 +198,6 @@ urllib3==1.26.6
# via requests
waitress==1.4.3
# via webtest
-wcwidth==0.1.7
- # via prompt-toolkit
webencodings==0.5.1
# via
# bleach
[allura] 05/11: [#8396] upgrade feedparser
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit ff6ceebc198cc9946b5001f484b90c8babad01d6
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 20:16:23 2021 +0000
[#8396] upgrade feedparser
---
requirements.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 4e6e295..4e9f939 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -45,7 +45,7 @@ emoji==0.5.3
# via -r requirements.in
feedgenerator==1.9.1
# via -r requirements.in
-feedparser==5.2.1
+feedparser==6.0.8
# via -r requirements.in
formencode==2.0.0
# via
@@ -176,6 +176,8 @@ requests-oauthlib==1.2.0
# via -r requirements.in
setproctitle==1.1.9
# via -r requirements.in
+sgmllib3k==1.0.0
+ # via feedparser
simplegeneric==0.8.1
# via ipython
six==1.15.0
[allura] 03/11: [#8396] upgrade requests,
depend on charset-normalizer now
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 56474b616e12229f3af788eaed704e58fbf6ac3d
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 19:43:23 2021 +0000
[#8396] upgrade requests, depend on charset-normalizer now
---
requirements-dev.txt | 4 ++--
requirements.txt | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 1975e44..a37ceba 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -10,7 +10,7 @@ babel==2.7.0
# via sphinx
certifi==2019.6.16
# via requests
-chardet==3.0.4
+charset-normalizer==2.0.4
# via requests
click==7.0
# via pip-tools
@@ -44,7 +44,7 @@ pytz==2019.1
# via babel
q==2.3
# via -r requirements-dev.in
-requests==2.25.1
+requests==2.26.0
# via sphinx
six==1.15.0
# via sphinx
diff --git a/requirements.txt b/requirements.txt
index d442ab7..7d04c7d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -20,7 +20,7 @@ certifi==2019.6.16
# via requests
cffi==1.12.2
# via cryptography
-chardet==3.0.4
+charset-normalizer==2.0.4
# via requests
colander==1.7.0
# via -r requirements.in
@@ -167,7 +167,7 @@ qrcode==6.1
# via -r requirements.in
repoze.lru==0.7
# via turbogears2
-requests==2.25.1
+requests==2.26.0
# via
# -r requirements.in
# pysolr
[allura] 08/11: [#8396] upgrade colander and its dependencies
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit a5ead5ea2c6911b84d42350a49e68684b3f1e4f2
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 21:45:53 2021 +0000
[#8396] upgrade colander and its dependencies
---
requirements.in | 2 +-
requirements.txt | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/requirements.in b/requirements.in
index 67f0136..3b25ead 100644
--- a/requirements.in
+++ b/requirements.in
@@ -2,7 +2,7 @@ ActivityStream==0.3.0
beautifulsoup4
Beaker
cchardet
-colander==1.7.0
+colander
cryptography
decorator
EasyWidgets>=0.3.6
diff --git a/requirements.txt b/requirements.txt
index 6036931..09c1ef6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -22,7 +22,7 @@ cffi==1.12.2
# via cryptography
charset-normalizer==2.0.4
# via requests
-colander==1.7.0
+colander==1.8.3
# via -r requirements.in
crank==0.8.1
# via turbogears2
@@ -69,7 +69,7 @@ idna==3.2
# via requests
inflection==0.5.1
# via profanityfilter
-iso8601==0.1.12
+iso8601==0.1.16
# via colander
jinja2==2.11.3
# via -r requirements.in
@@ -190,7 +190,7 @@ textile==3.0.4
# via pypeline
timermiddleware==0.5.1
# via -r requirements.in
-translationstring==1.3
+translationstring==1.4
# via colander
turbogears2==2.3.12
# via -r requirements.in
[allura] 06/11: [#8396] upgrade inflection (from profanity filter,
for ForgeFeedback)
Posted by br...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch db/8396
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 7214633114aff4aa6cb9e6b5329c5ba52320ad86
Author: Dave Brondsema <db...@slashdotmedia.com>
AuthorDate: Fri Sep 10 20:26:09 2021 +0000
[#8396] upgrade inflection (from profanity filter, for ForgeFeedback)
---
requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 4e9f939..4f06a6c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -70,7 +70,7 @@ httplib2==0.19.0
# via oauth2
idna==3.2
# via requests
-inflection==0.3.1
+inflection==0.5.1
# via profanityfilter
ipython==5.8.0
# via -r requirements.in