How to use the scour.Unit function in scour

To help you get started, we’ve selected a few scour examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github nhooey / svg-scour / scour.py View on Github external
def properlySizeDoc(docElement, options):
	# get doc width and height
	w = SVGLength(docElement.getAttribute('width'))
	h = SVGLength(docElement.getAttribute('height'))

	if not options.override_size:
	  # if width/height are not unitless or px then it is not ok to rewrite them into a viewBox.
	  # well, it may be OK for Web browsers and vector editors, but not for librsvg.
	  if options.renderer_workaround:
		  if ((w.units != Unit.NONE and w.units != Unit.PX) or
			  (h.units != Unit.NONE and h.units != Unit.PX)):
			  return

	  # else we have a statically sized image and we should try to remedy that

	  # parse viewBox attribute
	  vbSep = re.split("\\s*\\,?\\s*", docElement.getAttribute('viewBox'), 3)
	  # if we have a valid viewBox we need to check it
	  vbWidth,vbHeight = 0,0
	  if len(vbSep) == 4:
		  try:
			  # if x or y are specified and non-zero then it is not ok to overwrite it
			  vbX = float(vbSep[0])
			  vbY = float(vbSep[1])
			  if vbX != 0 or vbY != 0:
				  return
github nhooey / svg-scour / scour.py View on Github external
def str(unitint):
		try:
			return Unit.u2s[unitint]
		except KeyError:
			return 'INVALID'
github nhooey / svg-scour / scour.py View on Github external
10 ** float(expMatch.group(1)))
				unitBegin = expMatch.end(1)
			else:
				# unit or invalid
				numMatch = number.match(str)
				if numMatch != None:
					self.value = float(numMatch.group(0))
					unitBegin = numMatch.end(0)
					
			if int(self.value) == self.value:
				self.value = int(self.value)

			if unitBegin != 0 :
				unitMatch = unit.search(str, unitBegin)
				if unitMatch != None :
					self.units = Unit.get(unitMatch.group(0))
				
			# invalid
			else:
				# TODO: this needs to set the default for the given attribute (how?)
				self.value = 0 
				self.units = Unit.INVALID
github nhooey / svg-scour / scour.py View on Github external
def get(unitstr):
		if unitstr is None: return Unit.NONE
		try:
			return Unit.s2u[unitstr]
		except KeyError:
			return Unit.INVALID
github nhooey / svg-scour / scour.py View on Github external
x1 = SVGLength(node.getAttribute('x1'))
		if x1.value == 0:
			node.removeAttribute('x1')
			num += 1

	# y1: 0%
	if node.getAttribute('y1') != '':
		y1 = SVGLength(node.getAttribute('y1'))
		if y1.value == 0:
			node.removeAttribute('y1')
			num += 1

	# x2: 100%
	if node.getAttribute('x2') != '':
		x2 = SVGLength(node.getAttribute('x2'))
		if (x2.value == 100 and x2.units == Unit.PCT) or (x2.value == 1 and x2.units == Unit.NONE):
			node.removeAttribute('x2')
			num += 1

	# y2: 0%
	if node.getAttribute('y2') != '':
		y2 = SVGLength(node.getAttribute('y2'))
		if y2.value == 0:
			node.removeAttribute('y2')
			num += 1

	# fx: equal to rx
	if node.getAttribute('fx') != '':
		if node.getAttribute('fx') == node.getAttribute('cx'):
			node.removeAttribute('fx')
			num += 1
github nhooey / svg-scour / scour.py View on Github external
# fx: equal to rx
	if node.getAttribute('fx') != '':
		if node.getAttribute('fx') == node.getAttribute('cx'):
			node.removeAttribute('fx')
			num += 1

	# fy: equal to ry
	if node.getAttribute('fy') != '':
		if node.getAttribute('fy') == node.getAttribute('cy'):
			node.removeAttribute('fy')
			num += 1

	# cx: 50%
	if node.getAttribute('cx') != '':
		cx = SVGLength(node.getAttribute('cx'))
		if (cx.value == 50 and cx.units == Unit.PCT) or (cx.value == 0.5 and cx.units == Unit.NONE):
			node.removeAttribute('cx')
			num += 1

	# cy: 50%
	if node.getAttribute('cy') != '':
		cy = SVGLength(node.getAttribute('cy'))
		if (cy.value == 50 and cy.units == Unit.PCT) or (cy.value == 0.5 and cy.units == Unit.NONE):
			node.removeAttribute('cy')
			num += 1

	# r: 50%
	if node.getAttribute('r') != '':
		r = SVGLength(node.getAttribute('r'))
		if (r.value == 50 and r.units == Unit.PCT) or (r.value == 0.5 and r.units == Unit.NONE):
			node.removeAttribute('r')
			num += 1