* [gentoo-commits] dev/dev-zero:master commit in: dev-python/parsimonious/, net-misc/httpie/, net-misc/http-prompt/, ...
@ 2016-07-20 12:23 Tiziano Müller
0 siblings, 0 replies; only message in thread
From: Tiziano Müller @ 2016-07-20 12:23 UTC (permalink / raw
To: gentoo-commits
commit: 3cf0af2f5e87a162538e36fcbc8b47723a9c91d4
Author: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 20 12:23:51 2016 +0000
Commit: Tiziano Müller <dev-zero <AT> gentoo <DOT> org>
CommitDate: Wed Jul 20 12:23:51 2016 +0000
URL: https://gitweb.gentoo.org/dev/dev-zero.git/commit/?id=3cf0af2f
net-misc/http-prompt: initial commit + required deps and bumps
dev-python/parsimonious/Manifest | 1 +
...monious-0.7.0_pre20151024-python-3-compat.patch | 835 +++++++++++++++++++++
.../parsimonious-0.7.0_pre20151024.ebuild | 33 +
net-misc/http-prompt/Manifest | 1 +
net-misc/http-prompt/http-prompt-0.4.2.ebuild | 47 ++
net-misc/httpie/Manifest | 3 +
net-misc/httpie/httpie-0.9.4-r1.ebuild | 23 +
net-misc/httpie/metadata.xml | 19 +
8 files changed, 962 insertions(+)
diff --git a/dev-python/parsimonious/Manifest b/dev-python/parsimonious/Manifest
new file mode 100644
index 0000000..b135d04
--- /dev/null
+++ b/dev-python/parsimonious/Manifest
@@ -0,0 +1 @@
+DIST parsimonious-0.7.0_pre20151024.tar.gz 34960 SHA256 88238a0387191bf3ee5d872eb7e467cc9243adf8028272bc7b1f9836774c89f9 SHA512 17617873fbd55abb67746305a66e04300faa3384c8ba1fe9f42069c771c0e01b271fa50873200534c486ea5ef302fdaaa5514e4aae798bce5e8257197d60aacc WHIRLPOOL 1c0dc7b676c917a96c615ae17108b3c47fd6c9dea573390ab8be0b83e4431c16b51753c3e73a16a798dcf9a327f5664e6a1f7be7a824ecf9bb23d5dc0c1122f7
diff --git a/dev-python/parsimonious/files/parsimonious-0.7.0_pre20151024-python-3-compat.patch b/dev-python/parsimonious/files/parsimonious-0.7.0_pre20151024-python-3-compat.patch
new file mode 100644
index 0000000..a27e6a2
--- /dev/null
+++ b/dev-python/parsimonious/files/parsimonious-0.7.0_pre20151024-python-3-compat.patch
@@ -0,0 +1,835 @@
+From 63e7c8faffcfc350a0f96e8654c1c721c0fd1a16 Mon Sep 17 00:00:00 2001
+From: Matthias Urlichs <matthias@urlichs.de>
+Date: Sun, 20 Sep 2015 21:07:18 +0200
+Subject: [PATCH 1/8] Add Py3 compatibility.
+
+All tests pass.
+---
+ parsimonious/exceptions.py | 13 ++++---
+ parsimonious/expressions.py | 9 ++---
+ parsimonious/grammar.py | 66 +++++++++++++++++++++-------------
+ parsimonious/nodes.py | 15 ++++----
+ parsimonious/tests/test_expressions.py | 21 +++++------
+ parsimonious/tests/test_grammar.py | 3 +-
+ parsimonious/tests/test_nodes.py | 1 -
+ parsimonious/utils.py | 15 ++++----
+ 8 files changed, 83 insertions(+), 60 deletions(-)
+
+diff --git a/parsimonious/exceptions.py b/parsimonious/exceptions.py
+index f839e24..3e83853 100644
+--- a/parsimonious/exceptions.py
++++ b/parsimonious/exceptions.py
+@@ -1,6 +1,7 @@
+ from parsimonious.utils import StrAndRepr
++from six import text_type, python_2_unicode_compatible
+
+-
++@python_2_unicode_compatible
+ class ParseError(StrAndRepr, Exception):
+ """A call to ``Expression.parse()`` or ``match()`` didn't match."""
+
+@@ -12,9 +13,9 @@ def __init__(self, text, pos=-1, expr=None):
+ self.pos = pos
+ self.expr = expr
+
+- def __unicode__(self):
++ def __str__(self):
+ rule_name = ((u"'%s'" % self.expr.name) if self.expr.name else
+- unicode(self.expr))
++ text_type(self.expr))
+ return u"Rule %s didn't match at '%s' (line %s, column %s)." % (
+ rule_name,
+ self.text[self.pos:self.pos + 20],
+@@ -40,11 +41,12 @@ def column(self):
+ return self.pos + 1
+
+
++@python_2_unicode_compatible
+ class IncompleteParseError(ParseError):
+ """A call to ``parse()`` matched a whole Expression but did not consume the
+ entire text."""
+
+- def __unicode__(self):
++ def __str__(self):
+ return u"Rule '%s' matched in its entirety, but it didn't consume all the text. The non-matching portion of the text begins with '%s' (line %s, column %s)." % (
+ self.expr.name,
+ self.text[self.pos:self.pos + 20],
+@@ -90,6 +92,7 @@ class BadGrammar(StrAndRepr, Exception):
+ """
+
+
++@python_2_unicode_compatible
+ class UndefinedLabel(BadGrammar):
+ """A rule referenced in a grammar was never defined.
+
+@@ -100,5 +103,5 @@ class UndefinedLabel(BadGrammar):
+ def __init__(self, label):
+ self.label = label
+
+- def __unicode__(self):
++ def __str__(self):
+ return u'The label "%s" was never defined.' % self.label
+diff --git a/parsimonious/expressions.py b/parsimonious/expressions.py
+index c503f8b..8bfc143 100644
+--- a/parsimonious/expressions.py
++++ b/parsimonious/expressions.py
+@@ -12,7 +12,7 @@
+ from parsimonious.exceptions import ParseError, IncompleteParseError
+ from parsimonious.nodes import Node, RegexNode
+ from parsimonious.utils import StrAndRepr
+-
++from six import integer_types, python_2_unicode_compatible
+
+ MARKER = object()
+
+@@ -69,7 +69,7 @@ def _uncached_match(self, text, pos, cache, error):
+ result = (callable(text, pos) if is_simple else
+ callable(text, pos, cache, error, grammar))
+
+- if isinstance(result, (long, int)):
++ if isinstance(result, integer_types):
+ end, children = result, None
+ elif isinstance(result, tuple):
+ end, children = result
+@@ -84,6 +84,7 @@ def _as_rhs(self):
+ return AdHocExpression(name=rule_name)
+
+
++@python_2_unicode_compatible
+ class Expression(StrAndRepr):
+ """A thing that can be matched against a piece of text"""
+
+@@ -176,7 +177,7 @@ def match_core(self, text, pos, cache, error):
+
+ return node
+
+- def __unicode__(self):
++ def __str__(self):
+ return u'<%s %s at 0x%s>' % (
+ self.__class__.__name__,
+ self.as_rule(),
+@@ -272,7 +273,7 @@ def _uncached_match(self, text, pos, cache, error):
+ def _regex_flags_from_bits(self, bits):
+ """Return the textual equivalent of numerically encoded regex flags."""
+ flags = 'tilmsux'
+- return ''.join(flags[i] if (1 << i) & bits else '' for i in xrange(6))
++ return ''.join(flags[i] if (1 << i) & bits else '' for i in range(6))
+
+ def _as_rhs(self):
+ # TODO: Get backslash escaping right.
+diff --git a/parsimonious/grammar.py b/parsimonious/grammar.py
+index 5b95763..36459c6 100644
+--- a/parsimonious/grammar.py
++++ b/parsimonious/grammar.py
+@@ -14,8 +14,10 @@
+ expression)
+ from parsimonious.nodes import NodeVisitor
+ from parsimonious.utils import StrAndRepr, evaluate_string
++from six import text_type, iterkeys, itervalues, iteritems,
++ python_2_unicode_compatible
+
+-
++@python_2_unicode_compatible
+ class Grammar(StrAndRepr, Mapping):
+ """A collection of rules that describe a language
+
+@@ -62,7 +64,7 @@ def __init__(self, rules='', **more_rules):
+ decorated_custom_rules = dict(
+ (k, expression(v, k, self) if isfunction(v) or
+ ismethod(v) else
+- v) for k, v in more_rules.iteritems())
++ v) for k, v in iteritems(more_rules))
+
+ self._expressions, first = self._expressions_from_rules(rules, decorated_custom_rules)
+ self.default_rule = first # may be None
+@@ -71,7 +73,7 @@ def __getitem__(self, rule_name):
+ return self._expressions[rule_name]
+
+ def __iter__(self):
+- return self._expressions.iterkeys()
++ return iterkeys(self._expressions)
+
+ def __len__(self):
+ return len(self._expressions)
+@@ -136,11 +138,11 @@ def _check_default_rule(self):
+ "default rule. Choose a specific rule instead, "
+ "like some_grammar['some_rule'].parse(...).")
+
+- def __unicode__(self):
++ def __str__(self):
+ """Return a rule string that, when passed to the constructor, would
+ reconstitute the grammar."""
+ exprs = [self.default_rule] if self.default_rule else []
+- exprs.extend(expr for expr in self.itervalues() if
++ exprs.extend(expr for expr in itervalues(self) if
+ expr is not self.default_rule)
+ return '\n'.join(expr.as_rule() for expr in exprs)
+
+@@ -264,7 +266,7 @@ def _expressions_from_rules(self, rule_syntax, custom_rules):
+ ''')
+
+
+-class LazyReference(unicode):
++class LazyReference(text_type):
+ """A lazy reference to a rule, which we resolve after grokking all the
+ rules"""
+
+@@ -296,64 +298,74 @@ def __init__(self, custom_rules=None):
+ """
+ self.custom_rules = custom_rules or {}
+
+- def visit_parenthesized(self, parenthesized, (left_paren, _1,
+- expression,
+- right_paren, _2)):
++ def visit_parenthesized(self, parenthesized, _a):
+ """Treat a parenthesized subexpression as just its contents.
+
+ Its position in the tree suffices to maintain its grouping semantics.
+
+ """
++ (left_paren, _1, expression, right_paren, _2) = _a
+ return expression
+
+- def visit_quantifier(self, quantifier, (symbol, _)):
++ def visit_quantifier(self, quantifier, _a):
+ """Turn a quantifier into just its symbol-matching node."""
++ (symbol, _1) = _a
+ return symbol
+
+- def visit_quantified(self, quantified, (atom, quantifier)):
++ def visit_quantified(self, quantified, _a):
++ (atom, quantifier) = _a
+ return self.quantifier_classes[quantifier.text](atom)
+
+- def visit_lookahead_term(self, lookahead_term, (ampersand, term, _)):
++ def visit_lookahead_term(self, lookahead_term, _a):
++ (ampersand, term, _) = _a
+ return Lookahead(term)
+
+- def visit_not_term(self, not_term, (exclamation, term, _)):
++ def visit_not_term(self, not_term, _a):
++ (exclamation, term, _) = _a
+ return Not(term)
+
+- def visit_rule(self, rule, (label, equals, expression)):
++ def visit_rule(self, rule, _a):
+ """Assign a name to the Expression and return it."""
++ (label, equals, expression) = _a
+ expression.name = label # Assign a name to the expr.
+ return expression
+
+- def visit_sequence(self, sequence, (term, other_terms)):
++ def visit_sequence(self, sequence, _a):
+ """A parsed Sequence looks like [term node, OneOrMore node of
+ ``another_term``s]. Flatten it out."""
++ (term, other_terms) = _a
+ return Sequence(term, *other_terms)
+
+- def visit_ored(self, ored, (first_term, other_terms)):
++ def visit_ored(self, ored, _a):
++ (first_term, other_terms) = _a
+ return OneOf(first_term, *other_terms)
+
+- def visit_or_term(self, or_term, (slash, _, term)):
++ def visit_or_term(self, or_term, _a):
+ """Return just the term from an ``or_term``.
+
+ We already know it's going to be ored, from the containing ``ored``.
+
+ """
++ (slash, _, term) = _a
+ return term
+
+- def visit_label(self, label, (name, _)):
++ def visit_label(self, label, _a):
+ """Turn a label into a unicode string."""
++ (name, _) = _a
+ return name.text
+
+- def visit_reference(self, reference, (label, not_equals)):
++ def visit_reference(self, reference, _a):
+ """Stick a :class:`LazyReference` in the tree as a placeholder.
+
+ We resolve them all later.
+
+ """
++ (label, not_equals) = _a
+ return LazyReference(label)
+
+- def visit_regex(self, regex, (tilde, literal, flags, _)):
++ def visit_regex(self, regex, _a):
+ """Return a ``Regex`` expression."""
++ (tilde, literal, flags, _) = _a
+ flags = flags.text.upper()
+ pattern = literal.literal # Pull the string back out of the Literal
+ # object.
+@@ -368,8 +380,9 @@ def visit_spaceless_literal(self, spaceless_literal, visited_children):
+ """Turn a string literal into a ``Literal`` that recognizes it."""
+ return Literal(evaluate_string(spaceless_literal.text))
+
+- def visit_literal(self, literal, (spaceless_literal, _)):
++ def visit_literal(self, literal, _a):
+ """Pick just the literal out of a literal-and-junk combo."""
++ (spaceless_literal, _) = _a
+ return spaceless_literal
+
+ def generic_visit(self, node, visited_children):
+@@ -401,7 +414,7 @@ def _resolve_refs(self, rule_map, expr, done):
+
+ """
+ if isinstance(expr, LazyReference):
+- label = unicode(expr)
++ label = text_type(expr)
+ try:
+ reffed_expr = rule_map[label]
+ except KeyError:
+@@ -417,7 +430,7 @@ def _resolve_refs(self, rule_map, expr, done):
+ for member in expr.members]
+ return expr
+
+- def visit_rules(self, node, (_, rules)):
++ def visit_rules(self, node, _a):
+ """Collate all the rules into a map. Return (map, default rule).
+
+ The default rule is the first one. Or, if you have more than one rule
+@@ -427,6 +440,8 @@ def visit_rules(self, node, (_, rules)):
+ due to being kwarg-based, are unordered.
+
+ """
++ (_, rules) = _a
++
+ # Map each rule's name to its Expression. Later rules of the same name
+ # override earlier ones. This lets us define rules multiple times and
+ # have the last declaration win, so you can extend grammars by
+@@ -441,7 +456,7 @@ def visit_rules(self, node, (_, rules)):
+ # Resolve references. This tolerates forward references.
+ done = set()
+ rule_map = dict((expr.name, self._resolve_refs(rule_map, expr, done))
+- for expr in rule_map.itervalues())
++ for expr in itervalues(rule_map))
+
+ # isinstance() is a temporary hack around the fact that * rules don't
+ # always get transformed into lists by NodeVisitor. We should fix that;
+@@ -459,7 +474,8 @@ def visit_spaceless_literal(self, spaceless_literal, visited_children):
+ ``Token`` objects by their ``type`` attributes."""
+ return TokenMatcher(evaluate_string(spaceless_literal.text))
+
+- def visit_regex(self, regex, (tilde, literal, flags, _)):
++ def visit_regex(self, regex, _a):
++ (tilde, literal, flags, _) = _a
+ raise BadGrammar('Regexes do not make sense in TokenGrammars, since '
+ 'TokenGrammars operate on pre-lexed tokens rather '
+ 'than characters.')
+diff --git a/parsimonious/nodes.py b/parsimonious/nodes.py
+index 8557855..8f65e17 100644
+--- a/parsimonious/nodes.py
++++ b/parsimonious/nodes.py
+@@ -11,8 +11,11 @@
+
+ from parsimonious.exceptions import VisitationError, UndefinedLabel
+ from parsimonious.utils import StrAndRepr
++from six import reraise, python_2_unicode_compatible, with_metaclass,
++ iteritems
+
+
++@python_2_unicode_compatible
+ class Node(StrAndRepr):
+ """A parse tree node
+
+@@ -80,7 +83,7 @@ def indent(text):
+ ret.append(indent(n.prettily(error=error)))
+ return '\n'.join(ret)
+
+- def __unicode__(self):
++ def __str__(self):
+ """Return a compact, human-readable representation of me."""
+ return self.prettily()
+
+@@ -129,7 +132,7 @@ def unvisit(name):
+ """Remove any leading "visit_" from a method name."""
+ return name[6:] if name.startswith('visit_') else name
+
+- methods = [v for k, v in namespace.iteritems() if
++ methods = [v for k, v in iteritems(namespace) if
+ hasattr(v, '_rule') and isfunction(v)]
+ if methods:
+ from parsimonious.grammar import Grammar # circular import dodge
+@@ -148,7 +151,7 @@ def unvisit(name):
+ metaclass).__new__(metaclass, name, bases, namespace)
+
+
+-class NodeVisitor(object):
++class NodeVisitor(with_metaclass(RuleDecoratorMeta,object)):
+ """A shell for writing things that turn parse trees into something useful
+
+ Performs a depth-first traversal of an AST. Subclass this, add methods for
+@@ -171,7 +174,6 @@ class NodeVisitor(object):
+ Heaven forbid you're making it into a string or something else.
+
+ """
+- __metaclass__ = RuleDecoratorMeta
+
+ #: The :term:`default grammar`: the one recommended for use with this
+ #: visitor. If you populate this, you will be able to call
+@@ -215,7 +217,7 @@ def visit(self, node):
+ # Catch any exception, and tack on a parse tree so it's easier to
+ # see where it went wrong.
+ exc_class, exc, tb = exc_info()
+- raise VisitationError, (exc, exc_class, node), tb
++ reraise(VisitationError, VisitationError(exc, exc_class, node), tb)
+
+ def generic_visit(self, node, visited_children):
+ """Default visitor method
+@@ -255,8 +257,9 @@ def match(self, text, pos=0):
+
+ # Internal convenience methods to help you write your own visitors:
+
+- def lift_child(self, node, (first_child,)):
++ def lift_child(self, node, _a):
+ """Lift the sole child of ``node`` up to replace the node."""
++ (first_child,) = _a
+ return first_child
+
+ # Private methods:
+diff --git a/parsimonious/tests/test_expressions.py b/parsimonious/tests/test_expressions.py
+index 5fe625d..404e67b 100644
+--- a/parsimonious/tests/test_expressions.py
++++ b/parsimonious/tests/test_expressions.py
+@@ -8,6 +8,7 @@
+ Optional, ZeroOrMore, OneOrMore, Expression)
+ from parsimonious.grammar import Grammar, rule_grammar
+ from parsimonious.nodes import Node
++from six import text_type
+
+
+ def len_eq(node, length):
+@@ -170,7 +171,7 @@ def test_inner_rule_succeeding(self):
+ eq_(error.pos, 6)
+ eq_(error.expr, grammar['close_parens'])
+ eq_(error.text, text)
+- eq_(unicode(error), u"Rule 'close_parens' didn't match at '!!' (line 1, column 7).")
++ eq_(text_type(error), "Rule 'close_parens' didn't match at '!!' (line 1, column 7).")
+
+ def test_rewinding(self):
+ """Make sure rewinding the stack and trying an alternative (which
+@@ -216,7 +217,7 @@ def test_parse_with_leftovers(self):
+ try:
+ grammar.parse('chitty bangbang')
+ except IncompleteParseError as error:
+- eq_(unicode(error), u"Rule 'sequence' matched in its entirety, but it didn't consume all the text. The non-matching portion of the text begins with 'bang' (line 1, column 12).")
++ eq_(text_type(error), u"Rule 'sequence' matched in its entirety, but it didn't consume all the text. The non-matching portion of the text begins with 'bang' (line 1, column 12).")
+
+ def test_favoring_named_rules(self):
+ """Named rules should be used in error messages in favor of anonymous
+@@ -226,7 +227,7 @@ def test_favoring_named_rules(self):
+ try:
+ grammar.parse('burp')
+ except ParseError as error:
+- eq_(unicode(error), u"Rule 'starts_with_a' didn't match at 'burp' (line 1, column 1).")
++ eq_(text_type(error), u"Rule 'starts_with_a' didn't match at 'burp' (line 1, column 1).")
+
+ def test_line_and_column(self):
+ """Make sure we got the line and column computation right."""
+@@ -240,7 +241,7 @@ def test_line_and_column(self):
+ except ParseError as error:
+ # TODO: Right now, this says "Rule <Literal "\n" at 0x4368250432>
+ # didn't match". That's not the greatest. Fix that, then fix this.
+- ok_(unicode(error).endswith(ur"""didn't match at 'GOO' (line 2, column 4)."""))
++ ok_(text_type(error).endswith(r"""didn't match at 'GOO' (line 2, column 4)."""))
+
+
+ class RepresentationTests(TestCase):
+@@ -258,7 +259,7 @@ def test_unicode(self):
+ ``GrammarTests.test_unicode``.
+
+ """
+- unicode(rule_grammar)
++ text_type(rule_grammar)
+
+ def test_unicode_keep_parens(self):
+ """Make sure converting an expression to unicode doesn't strip
+@@ -266,19 +267,19 @@ def test_unicode_keep_parens(self):
+
+ """
+ # ZeroOrMore
+- eq_(unicode(Grammar('foo = "bar" ("baz" "eggs")* "spam"')),
++ eq_(text_type(Grammar('foo = "bar" ("baz" "eggs")* "spam"')),
+ u'foo = "bar" ("baz" "eggs")* "spam"')
+
+ # OneOf
+- eq_(unicode(Grammar('foo = "bar" ("baz" / "eggs") "spam"')),
++ eq_(text_type(Grammar('foo = "bar" ("baz" / "eggs") "spam"')),
+ u'foo = "bar" ("baz" / "eggs") "spam"')
+
+ # Lookahead
+- eq_(unicode(Grammar('foo = "bar" &("baz" "eggs") "spam"')),
++ eq_(text_type(Grammar('foo = "bar" &("baz" "eggs") "spam"')),
+ u'foo = "bar" &("baz" "eggs") "spam"')
+
+ # Multiple sequences
+- eq_(unicode(Grammar('foo = ("bar" "baz") / ("baff" "bam")')),
++ eq_(text_type(Grammar('foo = ("bar" "baz") / ("baff" "bam")')),
+ u'foo = ("bar" "baz") / ("baff" "bam")')
+
+ def test_unicode_surrounding_parens(self):
+@@ -287,7 +288,7 @@ def test_unicode_surrounding_parens(self):
+ right-hand side of an expression (as they're unnecessary).
+
+ """
+- eq_(unicode(Grammar('foo = ("foo" ("bar" "baz"))')),
++ eq_(text_type(Grammar('foo = ("foo" ("bar" "baz"))')),
+ u'foo = "foo" ("bar" "baz")')
+
+
+diff --git a/parsimonious/tests/test_grammar.py b/parsimonious/tests/test_grammar.py
+index e9bf070..debb390 100644
+--- a/parsimonious/tests/test_grammar.py
++++ b/parsimonious/tests/test_grammar.py
+@@ -9,6 +9,7 @@
+ from parsimonious.grammar import rule_grammar, RuleVisitor, Grammar, TokenGrammar, LazyReference
+ from parsimonious.nodes import Node
+ from parsimonious.utils import Token
++from six import text_type
+
+
+ class BootstrappingGrammarTests(TestCase):
+@@ -158,7 +159,7 @@ def test_unicode(self):
+ bold_open = "(("
+ bold_close = "))"
+ """)
+- lines = unicode(grammar).splitlines()
++ lines = text_type(grammar).splitlines()
+ eq_(lines[0], 'bold_text = bold_open text bold_close')
+ ok_('text = ~"[A-Z 0-9]*"i%s' % ('u' if version_info >= (3,) else '')
+ in lines)
+diff --git a/parsimonious/tests/test_nodes.py b/parsimonious/tests/test_nodes.py
+index cd8671c..404aa36 100644
+--- a/parsimonious/tests/test_nodes.py
++++ b/parsimonious/tests/test_nodes.py
+@@ -67,7 +67,6 @@ def test_str():
+ n = Node('text', 'o hai', 0, 5)
+ good = '<Node called "text" matching "o hai">'
+ eq_(str(n), good)
+- eq_(unicode(n), good)
+
+
+ def test_repr():
+diff --git a/parsimonious/utils.py b/parsimonious/utils.py
+index 1bb9317..5b6f429 100644
+--- a/parsimonious/utils.py
++++ b/parsimonious/utils.py
+@@ -2,7 +2,7 @@
+
+ import ast
+ from sys import version_info
+-
++from six import python_2_unicode_compatible
+
+ class StrAndRepr(object):
+ """Mix-in to add a ``__str__`` and ``__repr__`` which return the
+@@ -10,13 +10,11 @@ class StrAndRepr(object):
+
+ if version_info >= (3,):
+ # Don't return the "bytes" type from Python 3's __str__:
+- def __str__(self):
+- return self.__unicode__()
++ def __repr__(self):
++ return self.__str__()
+ else:
+- def __str__(self):
+- return self.__unicode__().encode('utf-8')
+-
+- __repr__ = __str__ # Language spec says must be string, not unicode.
++ def __repr__(self):
++ return self.__str__().encode('utf-8')
+
+
+ def evaluate_string(string):
+@@ -28,6 +26,7 @@ def evaluate_string(string):
+ return ast.literal_eval(string)
+
+
++@python_2_unicode_compatible
+ class Token(StrAndRepr):
+ """A class to represent tokens, for use with TokenGrammars
+
+@@ -42,7 +41,7 @@ class Token(StrAndRepr):
+ def __init__(self, type):
+ self.type = type
+
+- def __unicode__(self):
++ def __str__(self):
+ return u'<Token "%s">' % (self.type,)
+
+ def __eq__(self, other):
+
+From 51bbab959b5292b08978958db9f8f0908ac423b1 Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 15:31:40 -0700
+Subject: [PATCH 2/8] Update some glue code and fix some bugs
+
+---
+ parsimonious/grammar.py | 2 +-
+ parsimonious/nodes.py | 2 +-
+ setup.py | 4 +++-
+ tox.ini | 3 ++-
+ 4 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/parsimonious/grammar.py b/parsimonious/grammar.py
+index 36459c6..a2db859 100644
+--- a/parsimonious/grammar.py
++++ b/parsimonious/grammar.py
+@@ -14,7 +14,7 @@
+ expression)
+ from parsimonious.nodes import NodeVisitor
+ from parsimonious.utils import StrAndRepr, evaluate_string
+-from six import text_type, iterkeys, itervalues, iteritems,
++from six import text_type, iterkeys, itervalues, iteritems, \
+ python_2_unicode_compatible
+
+ @python_2_unicode_compatible
+diff --git a/parsimonious/nodes.py b/parsimonious/nodes.py
+index 8f65e17..2cf827e 100644
+--- a/parsimonious/nodes.py
++++ b/parsimonious/nodes.py
+@@ -11,7 +11,7 @@
+
+ from parsimonious.exceptions import VisitationError, UndefinedLabel
+ from parsimonious.utils import StrAndRepr
+-from six import reraise, python_2_unicode_compatible, with_metaclass,
++from six import reraise, python_2_unicode_compatible, with_metaclass, \
+ iteritems
+
+
+diff --git a/setup.py b/setup.py
+index 7e68b1b..fe87b96 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,6 +25,7 @@
+ test_suite='nose.collector',
+ url='https://github.com/erikrose/parsimonious',
+ include_package_data=True,
++ install_requires=['six'],
+ classifiers=[
+ 'Intended Audience :: Developers',
+ 'Natural Language :: English',
+@@ -37,9 +38,10 @@
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.2',
+ 'Programming Language :: Python :: 3.3',
++ 'Programming Language :: Python :: 3.4',
++ 'Programming Language :: Python :: 3.5',
+ 'Topic :: Scientific/Engineering :: Information Analysis',
+ 'Topic :: Software Development :: Libraries',
+ 'Topic :: Text Processing :: General'],
+ keywords=['parse', 'parser', 'parsing', 'peg', 'packrat', 'grammar', 'language'],
+- use_2to3=version_info >= (3,)
+ )
+diff --git a/tox.ini b/tox.ini
+index bba20be..5be2c5b 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,7 +1,8 @@
+ [tox]
+-envlist = py26, py27, py32, py33, py34
++envlist = py26, py27, py32, py33, py34, py35
+
+ [testenv]
++usedevelop = True
+ commands = nosetests parsimonious
+ deps = nose
+ # So Python 3 doesn't pick up incompatible, un-2to3'd source from the cwd:
+
+From bcd2aacacf911f129191ebc21744a09a866ad3de Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 15:37:43 -0700
+Subject: [PATCH 3/8] Add a test for __repr__ py3k incompatibility
+
+---
+ parsimonious/tests/test_grammar.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/parsimonious/tests/test_grammar.py b/parsimonious/tests/test_grammar.py
+index debb390..2012c05 100644
+--- a/parsimonious/tests/test_grammar.py
++++ b/parsimonious/tests/test_grammar.py
+@@ -401,6 +401,9 @@ def mod_grammar(grammar):
+ grammar.update(new_grammar)
+ assert_raises(AttributeError, mod_grammar, [grammar])
+
++ def test_repr(self):
++ self.assertTrue(repr(Grammar(r'foo = "a"')))
++
+
+ class TokenGrammarTests(TestCase):
+ """Tests for the TokenGrammar class and associated machinery"""
+
+From 9b64d3847592cc47123c76a5f132b11a65a23893 Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 15:43:34 -0700
+Subject: [PATCH 4/8] Fix string_escape bug
+
+---
+ parsimonious/grammar.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/parsimonious/grammar.py b/parsimonious/grammar.py
+index a2db859..cbc711d 100644
+--- a/parsimonious/grammar.py
++++ b/parsimonious/grammar.py
+@@ -15,7 +15,7 @@
+ from parsimonious.nodes import NodeVisitor
+ from parsimonious.utils import StrAndRepr, evaluate_string
+ from six import text_type, iterkeys, itervalues, iteritems, \
+- python_2_unicode_compatible
++ python_2_unicode_compatible, PY2
+
+ @python_2_unicode_compatible
+ class Grammar(StrAndRepr, Mapping):
+@@ -148,7 +148,8 @@ def __str__(self):
+
+ def __repr__(self):
+ """Return an expression that will reconstitute the grammar."""
+- return "Grammar('%s')" % str(self).encode('string_escape')
++ codec = 'string_escape' if PY2 else 'unicode_escape'
++ return "Grammar('%s')" % str(self).encode(codec)
+
+
+ class TokenGrammar(Grammar):
+
+From 8e21d91af574a9c9a0b3cc70badd1ce03e9cd91b Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 15:47:36 -0700
+Subject: [PATCH 5/8] Update travis.yml to use tox-travis (hopefully).
+
+---
+ .travis.yml | 15 ++++++++-------
+ tox.ini | 8 ++++++++
+ 2 files changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index d1763e8..328ad9f 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -1,11 +1,12 @@
+ language: python
++python:
++ - "2.6"
++ - "2.7"
++ - "3.2"
++ - "3.3"
++ - "3.4"
++ - "3.5"
+ install:
+- - pip install tox
++ - pip install tox tox-travis
+ script:
+ - tox
+-env:
+- - TOXENV=py26
+- - TOXENV=py27
+- - TOXENV=py32
+- - TOXENV=py33
+- - TOXENV=py34
+diff --git a/tox.ini b/tox.ini
+index 5be2c5b..5448cec 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -1,6 +1,14 @@
+ [tox]
+ envlist = py26, py27, py32, py33, py34, py35
+
++[tox:travis]
++2.6 = py26
++2.7 = py27
++3.2 = py32
++3.3 = py33
++3.4 = py34
++3.5 = py35
++
+ [testenv]
+ usedevelop = True
+ commands = nosetests parsimonious
+
+From 26ea616bf3bcdff40bc5210bfdbe29aa517784d1 Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 15:51:15 -0700
+Subject: [PATCH 6/8] Bump version
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index fe87b96..cde4d70 100644
+--- a/setup.py
++++ b/setup.py
+@@ -14,7 +14,7 @@
+
+ setup(
+ name='parsimonious',
+- version='0.6.2',
++ version='0.7.0',
+ description='(Soon to be) the fastest pure-Python PEG parser I could muster',
+ long_description=long_description,
+ author='Erik Rose',
+
+From 07851b04db9d803344990dbe8442649bfd77c72c Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 16:00:48 -0700
+Subject: [PATCH 7/8] Drop support for python 3.2 due to pip incompatibility
+
+---
+ .travis.yml | 1 -
+ tox.ini | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/.travis.yml b/.travis.yml
+index 328ad9f..9bc07a0 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -2,7 +2,6 @@ language: python
+ python:
+ - "2.6"
+ - "2.7"
+- - "3.2"
+ - "3.3"
+ - "3.4"
+ - "3.5"
+diff --git a/tox.ini b/tox.ini
+index 5448cec..4f76b61 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -4,7 +4,6 @@ envlist = py26, py27, py32, py33, py34, py35
+ [tox:travis]
+ 2.6 = py26
+ 2.7 = py27
+-3.2 = py32
+ 3.3 = py33
+ 3.4 = py34
+ 3.5 = py35
+
+From 115539cbb590b47c2d64aae8d66209150e723709 Mon Sep 17 00:00:00 2001
+From: Lucas Wiman <lucaswiman@counsyl.com>
+Date: Sun, 29 May 2016 16:24:28 -0700
+Subject: [PATCH 8/8] Fix bithacks so that "x" can be displayed.
+
+---
+ parsimonious/expressions.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/parsimonious/expressions.py b/parsimonious/expressions.py
+index 8bfc143..0c33fd0 100644
+--- a/parsimonious/expressions.py
++++ b/parsimonious/expressions.py
+@@ -272,8 +272,8 @@ def _uncached_match(self, text, pos, cache, error):
+
+ def _regex_flags_from_bits(self, bits):
+ """Return the textual equivalent of numerically encoded regex flags."""
+- flags = 'tilmsux'
+- return ''.join(flags[i] if (1 << i) & bits else '' for i in range(6))
++ flags = 'ilmsux'
++ return ''.join(flags[i - 1] if (1 << i) & bits else '' for i in range(1, len(flags) + 1))
+
+ def _as_rhs(self):
+ # TODO: Get backslash escaping right.
diff --git a/dev-python/parsimonious/parsimonious-0.7.0_pre20151024.ebuild b/dev-python/parsimonious/parsimonious-0.7.0_pre20151024.ebuild
new file mode 100644
index 0000000..a96c758
--- /dev/null
+++ b/dev-python/parsimonious/parsimonious-0.7.0_pre20151024.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
+
+inherit distutils-r1
+
+GIT_COMMIT="8030d0f84da4e8c6ddbf49ab5073333284ee54e7"
+
+DESCRIPTION="Pure-Python PEG parser"
+HOMEPAGE="https://github.com/erikrose/parsimonious https://pypi.python.org/pypi/parsimonious"
+SRC_URI="https://github.com/erikrose/${PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/six[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/nose[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}/${P}-python-3-compat.patch" )
+
+S="${WORKDIR}/${PN}-${GIT_COMMIT}"
+
+python_test() {
+ nosetests || die
+}
diff --git a/net-misc/http-prompt/Manifest b/net-misc/http-prompt/Manifest
new file mode 100644
index 0000000..3d885c1
--- /dev/null
+++ b/net-misc/http-prompt/Manifest
@@ -0,0 +1 @@
+DIST http-prompt-0.4.2.tar.gz 301879 SHA256 22223b18085670d15d96239b23a5ea50b3264b407259b02004d0699e52ec9206 SHA512 2e3e06e1464095712c55da0b3c40162338672935883475e6118a9fa17561b555cc80a1b3696e585b7800a1b7078976fd643aebfe1d1483547f7c8b71b7349813 WHIRLPOOL 30199caee7d6d98485cb2df00506a9f4e2aaf99ae9f4709d5aea1d09ab2083800bf2c8acac91db86db9aeb71ce64dee8d281c09b392af8255b581c9914195633
diff --git a/net-misc/http-prompt/http-prompt-0.4.2.ebuild b/net-misc/http-prompt/http-prompt-0.4.2.ebuild
new file mode 100644
index 0000000..4c7460a
--- /dev/null
+++ b/net-misc/http-prompt/http-prompt-0.4.2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
+DISTUTILS_SINGLE_IMPL=1
+
+inherit distutils-r1
+
+DESCRIPTION="An interactive command-line HTTP client featuring autocomplete and syntax highlighting"
+HOMEPAGE="https://github.com/eliangcs/http-prompt"
+SRC_URI="https://github.com/eliangcs/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND=">=dev-python/click-5[${PYTHON_USEDEP}]
+ >=net-misc/httpie-0.9.2[${PYTHON_USEDEP}]
+ >=dev-python/parsimonious-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/prompt_toolkit-0.60[${PYTHON_USEDEP}]
+ >=dev-python/pygments-2.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.10[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pexpect[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )"
+
+python_prepare_all() {
+ # remove tests checking the installation
+ rm tests/test_{installation,interaction}.py || die
+
+ # remove tox config passing coverage params to py.test
+ rm tox.ini || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ py.test tests || die
+}
diff --git a/net-misc/httpie/Manifest b/net-misc/httpie/Manifest
new file mode 100644
index 0000000..275800b
--- /dev/null
+++ b/net-misc/httpie/Manifest
@@ -0,0 +1,3 @@
+DIST httpie-0.9.2.tar.gz 73153 SHA256 af3982d41743d986608f1fe6e437d0493df227993c7edf013cc1d61883d40d68 SHA512 5622caa2f3136137d85f91eba9b0a165ec987b696a5e001844c8ecb868d66cfc86b3f3fb3a1ac493d7603c67ca88de0e0ffc776dce855ad69364190607b4fb73 WHIRLPOOL e8a4aa09f7051176ee0340b6f6785bb57353bd4bf8c0dea66b9dc50a1e6aea254eafc7d54e128c78d6fdca2f44338bfcfe6f7aca7623dbf0cd5a7b79c9d1c739
+DIST httpie-0.9.3.tar.gz 73693 SHA256 30a8ff2a72b75cb6033cc84f5b76c336999f91c325f169e78dc6339351ee7f4b SHA512 a98aa19ddcc5223133f1081ce22457d21b838b5779788a08d0b65ea80f903ab577a55e0c73b3656486eec08c3c0910d3e987aed0f117c5f9b3e005c6001000cc WHIRLPOOL a25f0d89339c468eafb3cf79d4aa6e323f3346ced921f6ee907771265577347969185f797022d51f9f037065d1b9c82e366789b40084874b390b9aa39f30084c
+DIST httpie-0.9.4.tar.gz 79889 SHA256 0fc288a85d6c018c64bbc86dfcc9c7fad063e79816840dfa91e8d6c43654761e SHA512 eea4e0fce334d12f9438d89f87d119bc569f8042d95c87f6898b9110030674f49361bf8e119d815330aa117479557766d614510d81c42c9c3a6803c769f38b26 WHIRLPOOL 2a9bb6b45d8b5d62a1118aa09eb0fd4612b56b8fe158c9d8a5295dc3b53e52906afb9888e6724528b19a2b2738f43cc2eb4a124caacf8c1df93056315a1ab87f
diff --git a/net-misc/httpie/httpie-0.9.4-r1.ebuild b/net-misc/httpie/httpie-0.9.4-r1.ebuild
new file mode 100644
index 0000000..4c8cafe
--- /dev/null
+++ b/net-misc/httpie/httpie-0.9.4-r1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5} )
+
+inherit distutils-r1
+
+DESCRIPTION="A CLI, cURL-like tool for humans"
+HOMEPAGE="http://httpie.org/ https://pypi.python.org/pypi/httpie"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="${DEPEND}
+ >=dev-python/requests-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pygments-1.5[${PYTHON_USEDEP}]"
diff --git a/net-misc/httpie/metadata.xml b/net-misc/httpie/metadata.xml
new file mode 100644
index 0000000..34aed7f
--- /dev/null
+++ b/net-misc/httpie/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>vikraman@gentoo.org</email>
+ <name>Vikraman Choudhury</name>
+ </maintainer>
+ <longdescription lang="en">
+ HTTPie is a command line HTTP client. Its goal is to make CLI
+ interaction with web services as human-friendly as possible. It
+ provides a simple http command that allows for sending arbitrary HTTP
+ requests using a simple and natural syntax, and displays colorized
+ responses. HTTPie can be used for testing, debugging, and generally
+ interacting with HTTP servers.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">httpie</remote-id>
+ </upstream>
+</pkgmetadata>
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-07-20 12:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-20 12:23 [gentoo-commits] dev/dev-zero:master commit in: dev-python/parsimonious/, net-misc/httpie/, net-misc/http-prompt/, Tiziano Müller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox