Merge pull request #113 from Ede123/pep8
Reformat code according to PEP 8
This commit is contained in:
commit
fb9ffb3dbd
9 changed files with 5040 additions and 4443 deletions
3
Makefile
3
Makefile
|
|
@ -23,3 +23,6 @@ test_error_on_flowtext:
|
|||
PYTHONPATH=. scour --error-on-flowtext unittests/flowtext-less.svg /dev/null
|
||||
# .. and this should bail out!
|
||||
PYTHONPATH=. scour --error-on-flowtext unittests/flowtext.svg /dev/null
|
||||
|
||||
flake8:
|
||||
flake8 --max-line-length=119
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
###############################################################################
|
||||
##
|
||||
## Copyright (C) 2010 Jeff Schiller, 2010 Louis Simard, 2013-2015 Tavendo GmbH
|
||||
##
|
||||
## Licensed under the Apache License, Version 2.0 (the "License");
|
||||
## you may not use this file except in compliance with the License.
|
||||
## You may obtain a copy of the License at
|
||||
##
|
||||
## http://www.apache.org/licenses/LICENSE-2.0
|
||||
##
|
||||
## Unless required by applicable law or agreed to in writing, software
|
||||
## distributed under the License is distributed on an "AS IS" BASIS,
|
||||
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
## See the License for the specific language governing permissions and
|
||||
## limitations under the License.
|
||||
##
|
||||
#
|
||||
# Copyright (C) 2010 Jeff Schiller, 2010 Louis Simard, 2013-2015 Tavendo GmbH
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
__version__ = u'0.35'
|
||||
|
|
|
|||
809
scour/scour.py
809
scour/scour.py
File diff suppressed because it is too large
Load diff
|
|
@ -44,11 +44,15 @@ Out[5]: [('M', [(100.0, -200.0)])]
|
|||
from __future__ import absolute_import
|
||||
|
||||
import re
|
||||
from decimal import *
|
||||
from decimal import Decimal, getcontext
|
||||
from functools import partial
|
||||
|
||||
|
||||
# Sentinel.
|
||||
|
||||
|
||||
class _EOF(object):
|
||||
|
||||
def __repr__(self):
|
||||
return 'EOF'
|
||||
EOF = _EOF()
|
||||
|
|
@ -70,6 +74,7 @@ class Lexer(object):
|
|||
|
||||
http://www.gooli.org/blog/a-simple-lexer-in-python/
|
||||
"""
|
||||
|
||||
def __init__(self, lexicon):
|
||||
self.lexicon = lexicon
|
||||
parts = []
|
||||
|
|
@ -270,7 +275,6 @@ class SVGPathParser(object):
|
|||
token = next_val_fn()
|
||||
return x, token
|
||||
|
||||
|
||||
def rule_coordinate_pair(self, next_val_fn, token):
|
||||
# Inline these since this rule is so common.
|
||||
if token[0] not in self.number_tokens:
|
||||
|
|
|
|||
|
|
@ -59,13 +59,15 @@ Out[12]: [('translate', [30.0, -30.0]), ('rotate', [36.0])]
|
|||
from __future__ import absolute_import
|
||||
|
||||
import re
|
||||
from decimal import *
|
||||
from six.moves import range
|
||||
from decimal import Decimal
|
||||
from functools import partial
|
||||
|
||||
from six.moves import range
|
||||
|
||||
|
||||
# Sentinel.
|
||||
class _EOF(object):
|
||||
|
||||
def __repr__(self):
|
||||
return 'EOF'
|
||||
EOF = _EOF()
|
||||
|
|
@ -89,6 +91,7 @@ class Lexer(object):
|
|||
|
||||
http://www.gooli.org/blog/a-simple-lexer-in-python/
|
||||
"""
|
||||
|
||||
def __init__(self, lexicon):
|
||||
self.lexicon = lexicon
|
||||
parts = []
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
# | DASHMATCH | FUNCTION S* any* ')'
|
||||
# | '(' S* any* ')' | '[' S* any* ']' ] S*;
|
||||
|
||||
|
||||
def parseCssString(str):
|
||||
rules = []
|
||||
# first, split on } to get the rule chunks
|
||||
|
|
@ -55,17 +56,20 @@ def parseCssString(str):
|
|||
for chunk in chunks:
|
||||
# second, split on { to get the selector and the list of properties
|
||||
bits = chunk.split('{')
|
||||
if len(bits) != 2: continue
|
||||
if len(bits) != 2:
|
||||
continue
|
||||
rule = {}
|
||||
rule['selector'] = bits[0].strip()
|
||||
# third, split on ; to get the property declarations
|
||||
bites = bits[1].strip().split(';')
|
||||
if len(bites) < 1: continue
|
||||
if len(bites) < 1:
|
||||
continue
|
||||
props = {}
|
||||
for bite in bites:
|
||||
# fourth, split on : to get the property name and value
|
||||
nibbles = bite.strip().split(':')
|
||||
if len(nibbles) != 2: continue
|
||||
if len(nibbles) != 2:
|
||||
continue
|
||||
props[nibbles[0].strip()] = nibbles[1].strip()
|
||||
rule['properties'] = props
|
||||
rules.append(rule)
|
||||
|
|
|
|||
67
setup.py
67
setup.py
|
|
@ -1,24 +1,25 @@
|
|||
###############################################################################
|
||||
##
|
||||
## Copyright (C) 2013-2014 Tavendo GmbH
|
||||
##
|
||||
## Licensed under the Apache License, Version 2.0 (the "License");
|
||||
## you may not use this file except in compliance with the License.
|
||||
## You may obtain a copy of the License at
|
||||
##
|
||||
## http://www.apache.org/licenses/LICENSE-2.0
|
||||
##
|
||||
## Unless required by applicable law or agreed to in writing, software
|
||||
## distributed under the License is distributed on an "AS IS" BASIS,
|
||||
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
## See the License for the specific language governing permissions and
|
||||
## limitations under the License.
|
||||
##
|
||||
#
|
||||
# Copyright (C) 2013-2014 Tavendo GmbH
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
import os
|
||||
import re
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
LONGDESC = """
|
||||
Scour is a SVG optimizer/sanitizer that can be used to produce SVGs for Web deployment.
|
||||
|
|
@ -42,25 +43,25 @@ else:
|
|||
raise RuntimeError("Unable to find version string in %s." % (VERSIONFILE,))
|
||||
|
||||
|
||||
setup (
|
||||
name = 'scour',
|
||||
version = verstr,
|
||||
description = 'Scour SVG Optimizer',
|
||||
# long_description = open("README.md").read(),
|
||||
long_description = LONGDESC,
|
||||
license = 'Apache License 2.0',
|
||||
author = 'Jeff Schiller',
|
||||
author_email = 'codedread@gmail.com',
|
||||
url = 'https://github.com/codedread/scour',
|
||||
platforms = ('Any'),
|
||||
install_requires = ['six>=1.9.0'],
|
||||
packages = find_packages(),
|
||||
zip_safe = True,
|
||||
entry_points = {
|
||||
setup(
|
||||
name='scour',
|
||||
version=verstr,
|
||||
description='Scour SVG Optimizer',
|
||||
# long_description = open("README.md").read(),
|
||||
long_description=LONGDESC,
|
||||
license='Apache License 2.0',
|
||||
author='Jeff Schiller',
|
||||
author_email='codedread@gmail.com',
|
||||
url='https://github.com/codedread/scour',
|
||||
platforms=('Any'),
|
||||
install_requires=['six>=1.9.0'],
|
||||
packages=find_packages(),
|
||||
zip_safe=True,
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'scour = scour.scour:run'
|
||||
]},
|
||||
classifiers = ["License :: OSI Approved :: Apache Software License",
|
||||
classifiers=["License :: OSI Approved :: Apache Software License",
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: Developers",
|
||||
|
|
@ -72,5 +73,5 @@ setup (
|
|||
"Topic :: Software Development :: Pre-processors",
|
||||
"Topic :: Multimedia :: Graphics :: Graphics Conversion",
|
||||
"Topic :: Utilities"],
|
||||
keywords = 'svg optimizer'
|
||||
keywords='svg optimizer'
|
||||
)
|
||||
|
|
|
|||
23
testcss.py
23
testcss.py
|
|
@ -27,25 +27,30 @@ from scour.yocto_css import parseCssString
|
|||
|
||||
|
||||
class Blank(unittest.TestCase):
|
||||
|
||||
def runTest(self):
|
||||
r = parseCssString('')
|
||||
self.assertEqual( len(r), 0, 'Blank string returned non-empty list')
|
||||
self.assertEqual( type(r), type([]), 'Blank string returned non list')
|
||||
self.assertEqual(len(r), 0, 'Blank string returned non-empty list')
|
||||
self.assertEqual(type(r), type([]), 'Blank string returned non list')
|
||||
|
||||
|
||||
class ElementSelector(unittest.TestCase):
|
||||
|
||||
def runTest(self):
|
||||
r = parseCssString('foo {}')
|
||||
self.assertEqual( len(r), 1, 'Element selector not returned')
|
||||
self.assertEqual( r[0]['selector'], 'foo', 'Selector for foo not returned')
|
||||
self.assertEqual( len(r[0]['properties']), 0, 'Property list for foo not empty')
|
||||
self.assertEqual(len(r), 1, 'Element selector not returned')
|
||||
self.assertEqual(r[0]['selector'], 'foo', 'Selector for foo not returned')
|
||||
self.assertEqual(len(r[0]['properties']), 0, 'Property list for foo not empty')
|
||||
|
||||
|
||||
class ElementSelectorWithProperty(unittest.TestCase):
|
||||
|
||||
def runTest(self):
|
||||
r = parseCssString('foo { bar: baz}')
|
||||
self.assertEqual( len(r), 1, 'Element selector not returned')
|
||||
self.assertEqual( r[0]['selector'], 'foo', 'Selector for foo not returned')
|
||||
self.assertEqual( len(r[0]['properties']), 1, 'Property list for foo did not have 1')
|
||||
self.assertEqual( r[0]['properties']['bar'], 'baz', 'Property bar did not have baz value')
|
||||
self.assertEqual(len(r), 1, 'Element selector not returned')
|
||||
self.assertEqual(r[0]['selector'], 'foo', 'Selector for foo not returned')
|
||||
self.assertEqual(len(r[0]['properties']), 1, 'Property list for foo did not have 1')
|
||||
self.assertEqual(r[0]['properties']['bar'], 'baz', 'Property bar did not have baz value')
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
|||
1408
testscour.py
1408
testscour.py
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue