Hello community, here is the log from the commit of package python-lesscpy for openSUSE:Factory checked in at 2017-09-04 12:31:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-lesscpy (Old) and /work/SRC/openSUSE:Factory/.python-lesscpy.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-lesscpy" Mon Sep 4 12:31:31 2017 rev:7 rq:519853 version:0.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-lesscpy/python-lesscpy.changes 2016-08-17 12:05:34.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-lesscpy.new/python-lesscpy.changes 2017-09-04 12:31:39.310887726 +0200 @@ -1,0 +2,11 @@ +Thu Aug 31 06:55:58 UTC 2017 - [email protected] + +- update to 0.12.0 + * no changelog available + +------------------------------------------------------------------- +Thu Aug 24 13:44:20 UTC 2017 - [email protected] + +- singlespec auto-conversion + +------------------------------------------------------------------- @@ -42,0 +54 @@ + Old: ---- lesscpy-0.10.2.tar.gz New: ---- lesscpy-0.12.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-lesscpy.spec ++++++ --- /var/tmp/diff_new_pack.4ejwrH/_old 2017-09-04 12:31:40.266753332 +0200 +++ /var/tmp/diff_new_pack.4ejwrH/_new 2017-09-04 12:31:40.282751083 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-lesscpy # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,32 +16,29 @@ # +%{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-lesscpy -Version: 0.10.2 +Version: 0.12.0 Release: 0 -Url: https://github.com/robotis/lesscpy Summary: Lesscss compiler License: MIT Group: Development/Languages/Python -Source: http://pypi.python.org/packages/source/l/lesscpy/lesscpy-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-build -BuildRequires: python-devel -BuildRequires: python-ply -BuildRequires: python-setuptools -BuildRequires: python-six -# Test requirements: -BuildRequires: python-coverage -BuildRequires: python-flake8 -BuildRequires: python-nose +Url: https://github.com/robotis/lesscpy +Source: https://files.pythonhosted.org/packages/source/l/lesscpy/lesscpy-%{version}.tar.gz +BuildRequires: %{python_module coverage} +BuildRequires: %{python_module devel} +BuildRequires: %{python_module flake8} +BuildRequires: %{python_module nose} +BuildRequires: %{python_module ply} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module six} +BuildRequires: python-rpm-macros Requires: python-ply Requires: python-six -Requires(post): update-alternatives -Requires(preun): update-alternatives -%if 0%{?suse_version} && 0%{?suse_version} <= 1110 -%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%else BuildArch: noarch -%endif +Requires(post): update-alternatives +Requires(postun): update-alternatives +%python_subpackages %description python LessCss Compiler. @@ -58,33 +55,26 @@ rm test/test_{bootstrap3,less,issues}.py %build -python setup.py build +%python_build %install -python setup.py install --prefix=%{_prefix} --root=%{buildroot} -mkdir -p %{buildroot}%{_sysconfdir}/alternatives -mv %{buildroot}%{_bindir}/lesscpy %{buildroot}%{_bindir}/lesscpy-%{py_ver} -ln -sf %{_sysconfdir}/alternatives/lesscpy %{buildroot}%{_bindir}/lesscpy - -%check -python setup.py -q test +%python_install +%python_clone -a %{buildroot}%{_bindir}/lesscpy %post -%_sbindir/update-alternatives \ - --install %{_bindir}/lesscpy lesscpy %{_bindir}/lesscpy-%{py_ver} 20 +%python_install_alternative lesscpy -%preun -if [ $1 -eq 0 ] ; then - %_sbindir/update-alternatives --remove lesscpy %{_bindir}/lesscpy-%{py_ver} -fi +%postun +%python_uninstall_alternative lesscpy + +%check +%python_exec setup.py test -%files +%files %{python_files} %defattr(-,root,root,-) %doc LICENSE README.rst -%{_bindir}/lesscpy -%{_bindir}/lesscpy-%{py_ver} -%ghost %{_sysconfdir}/alternatives/lesscpy +%python_alternative %{_bindir}/lesscpy %{python_sitelib}/lesscpy -%{python_sitelib}/lesscpy-%{version}-py%{py_ver}.egg-info +%{python_sitelib}/lesscpy-%{version}-py*.egg-info %changelog ++++++ lesscpy-0.10.2.tar.gz -> lesscpy-0.12.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/PKG-INFO new/lesscpy-0.12.0/PKG-INFO --- old/lesscpy-0.10.2/PKG-INFO 2014-11-26 21:50:54.000000000 +0100 +++ new/lesscpy-0.12.0/PKG-INFO 2016-10-04 13:18:23.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: lesscpy -Version: 0.10.2 +Version: 0.12.0 Summary: Python LESS compiler Home-page: https://github.com/lesscpy/lesscpy Author: Jóhann T Maríusson @@ -38,7 +38,7 @@ input and is considerably slower than the NodeJS compiler. The plan is to utilize this to build in proper syntax checking and perhaps YUI compressing. - This is an early version, so you are likly to find bugs. + This is an early version, so you are likely to find bugs. For more information on LESS: http://lesscss.org/ or https://github.com/cloudhead/less.js @@ -63,7 +63,6 @@ - Color functions (lighten, darken, saturate, desaturate, spin, hue, mix, saturation, lightness) - Other functions (round, increment, decrement, format '%(', ...) - - Keyframe blocks Differences from less.js @@ -82,7 +81,7 @@ Requirements ------------ - - Python 2.6, 2.7, or 3.3 + - Python 2.6, 2.7, 3.3, 3.4, or 3.5 - ply (Python Lex-Yacc) (check requirements.txt) @@ -189,5 +188,6 @@ Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 Classifier: Topic :: Software Development :: Code Generators Classifier: Topic :: Software Development :: Pre-processors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/README.rst new/lesscpy-0.12.0/README.rst --- old/lesscpy-0.10.2/README.rst 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/README.rst 2016-10-04 11:49:17.000000000 +0200 @@ -30,7 +30,7 @@ input and is considerably slower than the NodeJS compiler. The plan is to utilize this to build in proper syntax checking and perhaps YUI compressing. -This is an early version, so you are likly to find bugs. +This is an early version, so you are likely to find bugs. For more information on LESS: http://lesscss.org/ or https://github.com/cloudhead/less.js @@ -55,7 +55,6 @@ - Color functions (lighten, darken, saturate, desaturate, spin, hue, mix, saturation, lightness) - Other functions (round, increment, decrement, format '%(', ...) -- Keyframe blocks Differences from less.js @@ -74,7 +73,7 @@ Requirements ------------ -- Python 2.6, 2.7, or 3.3 +- Python 2.6, 2.7, 3.3, 3.4, or 3.5 - ply (Python Lex-Yacc) (check requirements.txt) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/__init__.py new/lesscpy-0.12.0/lesscpy/__init__.py --- old/lesscpy-0.10.2/lesscpy/__init__.py 2014-11-26 21:30:47.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/__init__.py 2016-10-04 13:09:38.000000000 +0200 @@ -1,4 +1,4 @@ -__version_info__ = ('0', '10', '2') +__version_info__ = ('0', '12', '0') __version__ = '.'.join(__version_info__) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/lessc/color.py new/lesscpy-0.12.0/lesscpy/lessc/color.py --- old/lesscpy-0.10.2/lesscpy/lessc/color.py 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/lessc/color.py 2016-10-04 11:49:17.000000000 +0200 @@ -12,6 +12,7 @@ import colorsys import re +import six from . import utility from lesscpy.lib import colors @@ -35,7 +36,7 @@ v = 0xff if v < 0: v = 0 - r.append("%02x" % v) + r.append("%02x" % int(v)) return ''.join(r) def operate(self, left, right, operation): @@ -303,7 +304,7 @@ str """ if color and degree: - if isinstance(degree, str): + if isinstance(degree, six.string_types): degree = float(degree.strip('%')) h, l, s = self._hextohls(color) h = ((h * 360.0) + degree) % 360.0 @@ -347,7 +348,7 @@ str """ if color1 and color2: - if isinstance(weight, str): + if isinstance(weight, six.string_types): weight = float(weight.strip('%')) weight = ((weight / 100.0) * 2) - 1 rgb1 = self._hextorgb(color1) @@ -383,14 +384,12 @@ raise ValueError('Cannot format non-color') def _rgbatohex_raw(self, rgba): - values = ["%x" % v for v in [0xff - if h > 0xff else - 0 if h < 0 else h - for h in rgba]] + values = ["%x" % int(v) for v in + [0xff if h > 0xff else 0 if h < 0 else h for h in rgba]] return values def _rgbatohex(self, rgba): - return '#%s' % ''.join(["%02x" % v for v in + return '#%s' % ''.join(["%02x" % int(v) for v in [0xff if h > 0xff else 0 if h < 0 else h @@ -418,7 +417,7 @@ return colorsys.rgb_to_hls(*[c / 255.0 for c in rgb]) def _ophsl(self, color, diff, idx, operation): - if isinstance(diff, str): + if isinstance(diff, six.string_types): diff = float(diff.strip('%')) hls = list(self._hextohls(color)) hls[idx] = self._clamp(operation(hls[idx], diff / 100.0)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/lessc/lexer.py new/lesscpy-0.12.0/lesscpy/lessc/lexer.py --- old/lesscpy-0.10.2/lesscpy/lessc/lexer.py 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/lessc/lexer.py 2016-10-04 11:49:17.000000000 +0200 @@ -46,6 +46,7 @@ 'css_vendor_hack', 'css_uri', 'css_ms_filter', + 'css_keyframe_selector', 'css_media_type', 'css_media_feature', @@ -108,7 +109,7 @@ def t_css_filter(self, t): (r'\[[^\]]*\]' '|(not|lang|nth-[a-z\-]+)\(.+\)' - '|and[ \t]\([^><\{]+\)') + '|and[ \t]\([^><=\{]+\)') return t def t_css_ms_filter(self, t): @@ -173,6 +174,8 @@ t.type = 'less_and' elif v == 'not': t.type = 'less_not' + elif v in ('from', 'to'): + t.type = 'css_keyframe_selector' elif v in css.propertys: t.type = 'css_property' t.lexer.in_property_decl = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/lessc/parser.py new/lesscpy-0.12.0/lesscpy/lessc/parser.py --- old/lesscpy-0.10.2/lesscpy/lessc/parser.py 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/lessc/parser.py 2016-10-04 11:49:17.000000000 +0200 @@ -18,13 +18,14 @@ import tempfile import sys import ply.yacc +import six from . import lexer from . import utility from .scope import Scope from .color import Color from lesscpy.exceptions import CompilationError -from lesscpy.plib import Block, Call, Deferred, Expression, Identifier, Mixin, Property, Statement, Variable, Import +from lesscpy.plib import Block, Call, Deferred, Expression, Identifier, Mixin, NegatedExpression, Property, Statement, Variable, Import, KeyframeSelector class ErrorRegister(object): """ @@ -142,7 +143,7 @@ if filename is not None: raise AssertionError( 'names of file and filename are in conflict') - filename = file.name() + filename = file.name else: filename = '(stream)' @@ -235,7 +236,7 @@ if self.importlvl > 8: raise ImportError( 'Recrusive import level too deep > 8 (circular import ?)') - if isinstance(p[3], str): + if isinstance(p[3], six.string_types): ipath = utility.destring(p[3]) elif isinstance(p[3], list): p[3] = Import(p[3], p.lineno(4)).parse(self.scope) @@ -310,6 +311,12 @@ """ p[0] = Identifier([p[1], p[2]]).parse(self.scope) + def p_keyframe_open(self, p): + """block_open : css_keyframe_selector brace_open + | number brace_open + """ + p[0] = KeyframeSelector([p[1]]).parse(self.scope) + # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # @@ -784,7 +791,7 @@ def p_expression_p_neg(self, p): """ expression : '-' t_popen expression t_pclose """ - p[0] = [p[1], p[3]] + p[0] = NegatedExpression([p[3]], 0) def p_expression_p(self, p): """ expression : t_popen expression t_pclose @@ -1046,4 +1053,3 @@ t(str): Error type """ self.register.register("%s: line: %d: %s\n" % (t, line, e)) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/lessc/scope.py new/lesscpy-0.12.0/lesscpy/lessc/scope.py --- old/lesscpy-0.10.2/lesscpy/lessc/scope.py 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/lessc/scope.py 2016-10-04 11:49:17.000000000 +0200 @@ -7,6 +7,8 @@ See LICENSE for details. .. moduleauthor:: Johann T. Mariusson <[email protected]> """ +import six + from . import utility @@ -193,12 +195,8 @@ var = self.variables('@' + name[2:-1]) if var is False: raise SyntaxError('Unknown escaped variable %s' % name) - try: - if isinstance(var.value[0], basestring): # py3 - var.value[0] = utility.destring(var.value[0]) - except NameError: - if isinstance(var.value[0], str): # py2 - var.value[0] = utility.destring(var.value[0]) + if isinstance(var.value[0], six.string_types): + var.value[0] = utility.destring(var.value[0]) else: var = self.variables(name) if var is False: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/lib/dom.py new/lesscpy-0.12.0/lesscpy/lib/dom.py --- old/lesscpy-0.10.2/lesscpy/lib/dom.py 2014-02-02 13:23:27.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/lib/dom.py 2016-10-04 11:49:17.000000000 +0200 @@ -158,15 +158,6 @@ 'tspan', ] -# Check http://www.w3.org/TR/css3-animations/#keyframes -# Treating them as DOM elements isn't entirely accurate -# but sufficent for our purposes. -css3_animation_keyframe_selectors = [ - 'from', - 'to' -] - elements = html4 elements.extend(html5) elements.extend(svg) -elements.extend(css3_animation_keyframe_selectors) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/plib/__init__.py new/lesscpy-0.12.0/lesscpy/plib/__init__.py --- old/lesscpy-0.10.2/lesscpy/plib/__init__.py 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/plib/__init__.py 2016-10-04 11:49:17.000000000 +0200 @@ -13,7 +13,9 @@ 'Deferred', 'Expression', 'Identifier', + 'KeyframeSelector', 'Mixin', + 'NegatedExpression', 'Node', 'Property', 'Statement', @@ -25,7 +27,9 @@ from .deferred import Deferred from .expression import Expression from .identifier import Identifier +from .keyframe_selector import KeyframeSelector from .mixin import Mixin +from .negated_expression import NegatedExpression from .node import Node from .property import Property from .statement import Statement diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/plib/call.py new/lesscpy-0.12.0/lesscpy/plib/call.py --- old/lesscpy-0.10.2/lesscpy/plib/call.py 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/plib/call.py 2016-10-04 11:49:17.000000000 +0200 @@ -13,6 +13,7 @@ from urllib.parse import quote as urlquote except ImportError: from urllib import quote as urlquote +import six from .node import Node import lesscpy.lessc.utility as utility import lesscpy.lessc.color as Color @@ -45,7 +46,7 @@ name = 'escape' color = Color.Color() args = [t for t in parsed - if not isinstance(t, str) or t not in '(),'] + if not isinstance(t, six.string_types) or t not in '(),'] if hasattr(self, name): try: return getattr(self, name)(*args) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/plib/expression.py new/lesscpy-0.12.0/lesscpy/plib/expression.py --- old/lesscpy-0.10.2/lesscpy/plib/expression.py 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/plib/expression.py 2016-10-04 11:49:17.000000000 +0200 @@ -18,7 +18,8 @@ class Expression(Node): """Expression node. Parses all expression except - color expressions, (handled in the color class) + color expressions (handled in the color class) + and unary negation (handled in the NegatedExpression class). """ def parse(self, scope): @@ -32,7 +33,6 @@ """ assert(len(self.tokens) == 3) expr = self.process(self.tokens, scope) - expr = [self.neg(t, scope) for t in expr] A, O, B = [e[0] if isinstance(e, tuple) else e @@ -55,25 +55,6 @@ return out return self.with_units(out, ua, ub) - def neg(self, value, scope): - """Apply negativity. - args: - value (mixed): test value - scope (Scope): Current scope - raises: - SyntaxError - returns: - str - """ - if value and isinstance(value, list) and value[0] == '-': - val = value[1] - if len(value) > 1 and hasattr(value[1], 'parse'): - val = value[1].parse(scope) - if isinstance(val, str): - return '-' + val - return -val - return value - def with_units(self, val, ua, ub): """Return value with unit. args: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/plib/keyframe_selector.py new/lesscpy-0.12.0/lesscpy/plib/keyframe_selector.py --- old/lesscpy-0.10.2/lesscpy/plib/keyframe_selector.py 1970-01-01 01:00:00.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/plib/keyframe_selector.py 2016-10-04 11:49:17.000000000 +0200 @@ -0,0 +1,50 @@ +# -*- coding: utf8 -*- +""" +.. module:: lesscpy.plib.keyframe_selector + :synopsis: Keyframe selector node. + + Copyright (c) + See LICENSE for details. +""" + +from .node import Node + + +class KeyframeSelector(Node): + + """Keyframe selector node. Represents the keyframe selector in an animation + sequence. Keyframes can be identified by the keywords "from" or "to", or by + percentage. + + http://www.w3.org/TR/css3-animations/#keyframes + """ + + def parse(self, scope): + """Parse node. + args: + scope (Scope): Current scope + raises: + SyntaxError + returns: + self + """ + self.keyframe, = [e[0] if isinstance(e, tuple) else e + for e in self.tokens if str(e).strip()] + self.subparse = False + return self + + def copy(self): + """ Return copy of self + Returns: + KeyframeSelector object + """ + return KeyframeSelector(self.tokens, 0) + + def fmt(self, fills): + """Format identifier + args: + fills (dict): replacements + returns: + str (CSS) + """ + return self.keyframe diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/plib/negated_expression.py new/lesscpy-0.12.0/lesscpy/plib/negated_expression.py --- old/lesscpy-0.10.2/lesscpy/plib/negated_expression.py 1970-01-01 01:00:00.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/plib/negated_expression.py 2016-10-04 11:49:17.000000000 +0200 @@ -0,0 +1,23 @@ +# -*- coding: utf8 -*- +""" +.. module:: lesscpy.plib.negated_expression + :synopsis: Node for unary negated expressions. + + Copyright (c) + See LICENSE for details. +""" + +import six + +from .node import Node + + +class NegatedExpression(Node): + + """Expressions preceded by unary negation.""" + + def parse(self, scope): + val, = self.process(self.tokens, scope) + if isinstance(val, six.string_types): + return '-' + val + return -val diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy/scripts/compiler.py new/lesscpy-0.12.0/lesscpy/scripts/compiler.py --- old/lesscpy-0.10.2/lesscpy/scripts/compiler.py 2014-01-21 12:07:38.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy/scripts/compiler.py 2016-10-04 11:49:17.000000000 +0200 @@ -91,6 +91,8 @@ help="Included less-files (comma separated)") aparse.add_argument('-V', '--verbose', action="store_true", default=False, help="Verbose mode") + aparse.add_argument('-C', '--dont_create_dirs', action="store_true", + default=False, help="Creates directories when outputing files (lessc non-compatible)") fgroup = aparse.add_argument_group('Formatting options') fgroup.add_argument('-x', '--minify', action="store_true", default=False, help="Minify output") @@ -121,6 +123,7 @@ group.add_argument('-N', '--no-css', action="store_true", default=False, help="No css output") aparse.add_argument('target', help="less file or directory") + aparse.add_argument('output', nargs='?', help="output file path") args = aparse.parse_args() try: # @@ -180,6 +183,16 @@ p.scopemap() if not args.no_css and p: out = f.format(p) - print(out) + if args.output: + if not args.dont_create_dirs and not os.path.exists(os.path.dirname(args.output)): + try: + os.makedirs(os.path.dirname(args.output)) + except OSError as exc: # Guard against race condition + if exc.errno != errno.EEXIST: + raise + with open(args.output, "w") as f: + f.write(out) + else: + print(out) except (KeyboardInterrupt, SystemExit, IOError): sys.exit('\nAborting...') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy.egg-info/PKG-INFO new/lesscpy-0.12.0/lesscpy.egg-info/PKG-INFO --- old/lesscpy-0.10.2/lesscpy.egg-info/PKG-INFO 2014-11-26 21:50:54.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy.egg-info/PKG-INFO 2016-10-04 13:18:23.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: lesscpy -Version: 0.10.2 +Version: 0.12.0 Summary: Python LESS compiler Home-page: https://github.com/lesscpy/lesscpy Author: Jóhann T Maríusson @@ -38,7 +38,7 @@ input and is considerably slower than the NodeJS compiler. The plan is to utilize this to build in proper syntax checking and perhaps YUI compressing. - This is an early version, so you are likly to find bugs. + This is an early version, so you are likely to find bugs. For more information on LESS: http://lesscss.org/ or https://github.com/cloudhead/less.js @@ -63,7 +63,6 @@ - Color functions (lighten, darken, saturate, desaturate, spin, hue, mix, saturation, lightness) - Other functions (round, increment, decrement, format '%(', ...) - - Keyframe blocks Differences from less.js @@ -82,7 +81,7 @@ Requirements ------------ - - Python 2.6, 2.7, or 3.3 + - Python 2.6, 2.7, 3.3, 3.4, or 3.5 - ply (Python Lex-Yacc) (check requirements.txt) @@ -189,5 +188,6 @@ Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 Classifier: Topic :: Software Development :: Code Generators Classifier: Topic :: Software Development :: Pre-processors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/lesscpy.egg-info/SOURCES.txt new/lesscpy-0.12.0/lesscpy.egg-info/SOURCES.txt --- old/lesscpy-0.10.2/lesscpy.egg-info/SOURCES.txt 2014-11-26 21:50:54.000000000 +0100 +++ new/lesscpy-0.12.0/lesscpy.egg-info/SOURCES.txt 2016-10-04 13:18:23.000000000 +0200 @@ -33,7 +33,9 @@ lesscpy/plib/expression.py lesscpy/plib/identifier.py lesscpy/plib/import_.py +lesscpy/plib/keyframe_selector.py lesscpy/plib/mixin.py +lesscpy/plib/negated_expression.py lesscpy/plib/node.py lesscpy/plib/property.py lesscpy/plib/statement.py @@ -50,7 +52,6 @@ test/test_color.pyc test/test_expression.py test/test_expression.pyc -test/test_font_awesome.pyc test/test_identifier.py test/test_identifier.pyc test/test_issues.py @@ -58,10 +59,25 @@ test/test_less.py test/test_less.pyc test/test_lexer.py +test/test_lexer.pyc test/test_parser.py +test/test_parser.pyc test/test_pycompile.py +test/test_pycompile.pyc test/test_utility.py test/test_utility.pyc +test/__pycache__/__init__.cpython-35.pyc +test/__pycache__/core.cpython-35.pyc +test/__pycache__/test_bootstrap3.cpython-35.pyc +test/__pycache__/test_color.cpython-35.pyc +test/__pycache__/test_expression.cpython-35.pyc +test/__pycache__/test_identifier.cpython-35.pyc +test/__pycache__/test_issues.cpython-35.pyc +test/__pycache__/test_less.cpython-35.pyc +test/__pycache__/test_lexer.cpython-35.pyc +test/__pycache__/test_parser.cpython-35.pyc +test/__pycache__/test_pycompile.cpython-35.pyc +test/__pycache__/test_utility.cpython-35.pyc test/bootstrap3/css/bootstrap.css test/bootstrap3/css/bootstrap.min.css test/bootstrap3/css/theme.css @@ -178,6 +194,7 @@ test/css/issues/issue4.css test/css/issues/issue5.css test/css/issues/issue6.css +test/css/issues/issue67.css test/less/argb.less test/less/calls.less test/less/colors.less @@ -220,4 +237,5 @@ test/less/issues/issue31.less test/less/issues/issue4.less test/less/issues/issue5.less -test/less/issues/issue6.less \ No newline at end of file +test/less/issues/issue6.less +test/less/issues/issue67.less \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/setup.cfg new/lesscpy-0.12.0/setup.cfg --- old/lesscpy-0.10.2/setup.cfg 2014-11-26 21:50:54.000000000 +0100 +++ new/lesscpy-0.12.0/setup.cfg 2016-10-04 13:18:23.000000000 +0200 @@ -2,7 +2,7 @@ universal = 1 [egg_info] -tag_build = tag_date = 0 +tag_build = tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/setup.py new/lesscpy-0.12.0/setup.py --- old/lesscpy-0.10.2/setup.py 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/setup.py 2016-10-04 11:49:17.000000000 +0200 @@ -53,6 +53,7 @@ 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', 'Topic :: Software Development :: Code Generators', 'Topic :: Software Development :: Pre-processors', ], Binary files old/lesscpy-0.10.2/test/__init__.pyc and new/lesscpy-0.12.0/test/__init__.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/__init__.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/__init__.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/core.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/core.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_bootstrap3.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_bootstrap3.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_color.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_color.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_expression.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_expression.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_identifier.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_identifier.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_issues.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_issues.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_less.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_less.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_lexer.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_lexer.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_parser.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_parser.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_pycompile.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_pycompile.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/__pycache__/test_utility.cpython-35.pyc and new/lesscpy-0.12.0/test/__pycache__/test_utility.cpython-35.pyc differ Binary files old/lesscpy-0.10.2/test/core.pyc and new/lesscpy-0.12.0/test/core.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/css/issues/issue67.css new/lesscpy-0.12.0/test/css/issues/issue67.css --- old/lesscpy-0.10.2/test/css/issues/issue67.css 1970-01-01 01:00:00.000000000 +0100 +++ new/lesscpy-0.12.0/test/css/issues/issue67.css 2016-10-04 11:49:17.000000000 +0200 @@ -0,0 +1,3 @@ +.c { + left: 4; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/css/keyframes.css new/lesscpy-0.12.0/test/css/keyframes.css --- old/lesscpy-0.10.2/test/css/keyframes.css 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/test/css/keyframes.css 2016-10-04 11:49:17.000000000 +0200 @@ -22,3 +22,25 @@ background-position: 40px 0; } } +@keyframes using-percentages { + 0% { + top: 0; + } + 50% { + top: 1px; + } + 100% { + top: 2px; + } +} +@keyframes mixed-in { + from { + left: 0; + } + 50% { + left: 1px; + } + to { + left: 2px; + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/css/keyframes.min.css new/lesscpy-0.12.0/test/css/keyframes.min.css --- old/lesscpy-0.10.2/test/css/keyframes.min.css 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/test/css/keyframes.min.css 2016-10-04 11:49:17.000000000 +0200 @@ -4,3 +4,9 @@ to{background-position:40px 0;}} @keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}} +@keyframes using-percentages{0%{top:0;} +50%{top:1px;} +100%{top:2px;}} +@keyframes mixed-in{from{left:0;} +50%{left:1px;} +to{left:2px;}} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/less/issues/issue67.less new/lesscpy-0.12.0/test/less/issues/issue67.less --- old/lesscpy-0.10.2/test/less/issues/issue67.less 1970-01-01 01:00:00.000000000 +0100 +++ new/lesscpy-0.12.0/test/less/issues/issue67.less 2016-10-04 11:49:17.000000000 +0200 @@ -0,0 +1 @@ +.c { left: -(1 + 1) * -(1 + 1); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/less/keyframes.less new/lesscpy-0.12.0/test/less/keyframes.less --- old/lesscpy-0.10.2/test/less/keyframes.less 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/test/less/keyframes.less 2016-10-04 11:49:17.000000000 +0200 @@ -14,4 +14,21 @@ @keyframes progress-bar-stripes { from { background-position: 0 0; } to { background-position: 40px 0; } -} \ No newline at end of file +} + +// using percentages +@keyframes using-percentages { + 0% { top: 0; } + 50% { top: 1px; } + 100% { top: 2px; } +} + +// in a mix-in +.keyframe-mixin() { + from { left: 0; } + 50% { left: 1px; } + to { left: 2px; } +} +@keyframes mixed-in { + .keyframe-mixin(); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/less/mixin-args-guards.less new/lesscpy-0.12.0/test/less/mixin-args-guards.less --- old/lesscpy-0.10.2/test/less/mixin-args-guards.less 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/test/less/mixin-args-guards.less 2016-10-04 11:49:17.000000000 +0200 @@ -29,6 +29,8 @@ .mixin1(11); .mixin1(-11); } +.eq (@a, @b) when (@a < @b) and (@b = @a) { +} .max (@a, @b) when (@a > @b) { width: @a } Binary files old/lesscpy-0.10.2/test/test_bootstrap3.pyc and new/lesscpy-0.12.0/test/test_bootstrap3.pyc differ Binary files old/lesscpy-0.10.2/test/test_color.pyc and new/lesscpy-0.12.0/test/test_color.pyc differ Binary files old/lesscpy-0.10.2/test/test_expression.pyc and new/lesscpy-0.12.0/test/test_expression.pyc differ Binary files old/lesscpy-0.10.2/test/test_font_awesome.pyc and new/lesscpy-0.12.0/test/test_font_awesome.pyc differ Binary files old/lesscpy-0.10.2/test/test_identifier.pyc and new/lesscpy-0.12.0/test/test_identifier.pyc differ Binary files old/lesscpy-0.10.2/test/test_issues.pyc and new/lesscpy-0.12.0/test/test_issues.pyc differ Binary files old/lesscpy-0.10.2/test/test_less.pyc and new/lesscpy-0.12.0/test/test_less.pyc differ Binary files old/lesscpy-0.10.2/test/test_lexer.pyc and new/lesscpy-0.12.0/test/test_lexer.pyc differ Binary files old/lesscpy-0.10.2/test/test_parser.pyc and new/lesscpy-0.12.0/test/test_parser.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/test/test_pycompile.py new/lesscpy-0.12.0/test/test_pycompile.py --- old/lesscpy-0.10.2/test/test_pycompile.py 2014-11-26 21:28:11.000000000 +0100 +++ new/lesscpy-0.12.0/test/test_pycompile.py 2016-10-04 11:49:17.000000000 +0200 @@ -14,7 +14,7 @@ Unit tests for compile """ - def test_compile(self): + def test_compile_from_stream(self): """ It can compile input from a file-like object """ @@ -22,6 +22,18 @@ output = compile(StringIO("a { border-width: 2px * 3; }"), minify=True) self.assertEqual(output, "a{border-width:6px;}"); + def test_compile_from_file(self): + """ + It can compile input from a file object + """ + + import tempfile + in_file = tempfile.NamedTemporaryFile(mode='w+') + in_file.write("a { border-width: 2px * 3; }") + in_file.seek(0) + output = compile(in_file, minify=True) + self.assertEqual(output, "a{border-width:6px;}"); + def test_raises_exception(self): """ Test if a syntax error raises an exception @@ -30,4 +42,3 @@ fail_func = lambda: compile(StringIO("a }"), minify=True) self.assertRaises(CompilationError, fail_func) - Binary files old/lesscpy-0.10.2/test/test_pycompile.pyc and new/lesscpy-0.12.0/test/test_pycompile.pyc differ Binary files old/lesscpy-0.10.2/test/test_utility.pyc and new/lesscpy-0.12.0/test/test_utility.pyc differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lesscpy-0.10.2/tox.ini new/lesscpy-0.12.0/tox.ini --- old/lesscpy-0.10.2/tox.ini 2014-02-02 18:34:18.000000000 +0100 +++ new/lesscpy-0.12.0/tox.ini 2016-10-04 13:09:38.000000000 +0200 @@ -1,5 +1,5 @@ [tox] -envlist = py26,py27,py33,flake8 +envlist = py26,py27,py3,flake8 [testenv] deps = -r{toxinidir}/test-requirements.txt
