def out_to_clipboard(sender): request = post_multipart("c.docverter.com", "/convert", list(formats.items()) + fields, files) buffer = io.StringIO(request) output = buffer.getvalue() clipboard.set(output) buffer.close() view.close() workflow.stop()
def out_to_editor(sender): request = post_multipart("c.docverter.com", "/convert", list(formats.items()) + fields, files) buffer = io.StringIO(request) output = buffer.getvalue() editor.replace_text(0, 0, output) buffer.close() view.close() workflow.stop()
def out_to_clipboard(sender): request = post_multipart("c.docverter.com", "/convert", formats.items() + fields, files) buffer = StringIO.StringIO(request) output = buffer.getvalue() clipboard.set(output) buffer.close() view.close() workflow.stop()
def out_to_editor(sender): request = post_multipart("c.docverter.com", "/convert", formats.items() + fields, files) buffer = StringIO.StringIO(request) output = buffer.getvalue() editor.replace_text(0, 0, output) buffer.close() view.close() workflow.stop()
# I can't figure out how to grab Custom UI elements from Editorial, so I'm making this simple. I'm putting them in as text in the input to the workflow as a string, splitting them up into separate values, and using those as the variables. import workflow values = workflow.get_input() #value order = "find-type,find-text,replace-text,case_switch" split_values = values.split(',') replace_cancel = bool(split_values[4]) find_type = split_values[0] find_text = split_values[1] replace_text = split_values[2] case_switch = int(split_values[3]) if replace_cancel = True: workflow.stop() else:
def request_download(self, sender): # Check if valid package name pkg = sender.text.lower() response = s.get(uri.format(package=pkg)) if response.status_code == 200: pypi_info = response.json() if pkg in python2packages.keys(): latest_release = select_build(pypi_info, build=python2packages[pkg]) else: latest_release = select_latest(pypi_info, version='2.7') # Check package type package_type = latest_release.get('packagetype', None) # Binary distribution - C-bindings compiled if package_type == 'bdist_wheel': console.alert('Wheel - I don\'t know what to do with this') # Source distribution - C-bindings not compiled yet elif package_type == 'sdist': package_uri = latest_release.get('url', None) filename = os.path.basename(package_uri) extension = os.path.splitext(package_uri)[1] download = s.get(package_uri, allow_redirects=True) download_object = io.BytesIO(download.content) # Decompress archive if '.tar.gz' in filename: with tarfile.open(fileobj=download_object, mode='r') as archive: package_folder = re.compile(r'[^/]*?/' + re.escape(pkg) + r'[/$]') selection = [ tarinfo for tarinfo in archive.getmembers() if package_folder.match(tarinfo.name) ] base_path = selection[0].name.split('/')[0] for tarinfo in selection: tarinfo.name = tarinfo.name[len(base_path) + 1:] archive.extractall( members=selection, path=os.path.expanduser( '~/Documents/site-packages')) console.hud_alert('Package installed!') download_object.close() self.close() workflow.stop() elif extension == '.zip': with zipfile.ZipFile(file=download_object, mode='r') as archive: package_folder = re.compile(r'.*?/(' + re.escape(pkg) + r'(?:/.*$|$))') selection = [ name for name in archive.namelist() if package_folder.match(name) ] for member in selection: filename = package_folder.match(member).group( 1) path = os.path.join( os.path.expanduser( '~/Documents/site-packages'), filename) source = archive.open(member) # Check if path exists if not os.path.exists(os.path.dirname(path)): os.makedirs(os.path.dirname(path)) target = open(path, 'wb') with source, target: shutil.copyfileobj(source, target) console.hud_alert('Package installed!') download_object.close() self.close() workflow.stop() else: sender.text_color = '#c7180c' console.hud_alert('Package not found')
#coding: utf-8 from PIL import Image, ExifTags import photos import workflow import console import editor import os import io import time timestr = time.strftime("%Y-%m-%d") img = photos.pick_image() if not img: workflow.stop() try: for orientation, value in ExifTags.TAGS.items(): if value == 'Orientation': break exif = dict(img._getexif().items()) rot_degrees = {3: 180, 6: 270, 8: 90}.get(exif[orientation], 0) if rot_degrees: img = img.rotate(rot_degrees, expand=True) # cases: image don't have getexif except (AttributeError, KeyError, IndexError): pass doc_path = editor.get_path() doc_dir, fn = os.path.split(doc_path)