[Checkins] SVN: hurry.yui/trunk/ Move the yui download functionality from hurry.zopeyui into this package.
Martijn Faassen
faassen at infrae.com
Tue Oct 7 13:28:53 EDT 2008
Log message for revision 91874:
Move the yui download functionality from hurry.zopeyui into this package.
Changed:
A hurry.yui/trunk/MANIFEST.in
U hurry.yui/trunk/setup.py
_U hurry.yui/trunk/src/hurry/yui/
U hurry.yui/trunk/src/hurry/yui/__init__.py
A hurry.yui/trunk/src/hurry/yui/prepare.py
D hurry.yui/trunk/src/hurry/yui/yui.py
U hurry.yui/trunk/src/hurry/yui/yuidepend.py
A hurry.yui/trunk/src/hurry/yui/yuidl.py
-=-
Copied: hurry.yui/trunk/MANIFEST.in (from rev 91867, hurry.zopeyui/trunk/MANIFEST.in)
===================================================================
--- hurry.yui/trunk/MANIFEST.in (rev 0)
+++ hurry.yui/trunk/MANIFEST.in 2008-10-07 17:28:52 UTC (rev 91874)
@@ -0,0 +1,2 @@
+recursive-include src/hurry/yui/yui-build *
+include src/hurry/yui/yui yui.py
Modified: hurry.yui/trunk/setup.py
===================================================================
--- hurry.yui/trunk/setup.py 2008-10-07 16:57:55 UTC (rev 91873)
+++ hurry.yui/trunk/setup.py 2008-10-07 17:28:52 UTC (rev 91874)
@@ -1,9 +1,10 @@
from setuptools import setup, find_packages
-import sys, os
+YUI_VERSION = '2.6.0'
+
setup(
name='hurry.yui',
- version='0.1dev',
+ version=YUI_VERSION + 'dev',
description="YUI for hurry.resource.",
classifiers=[],
keywords='',
@@ -21,6 +22,7 @@
],
entry_points= {
'console_scripts': [
+ 'yuiprepare = hurry.yui.prepare:main',
'yuidepend = hurry.yui.yuidepend:main',
]
},
Property changes on: hurry.yui/trunk/src/hurry/yui
___________________________________________________________________
Name: svn:ignore
+ yui
yui-build
Modified: hurry.yui/trunk/src/hurry/yui/__init__.py
===================================================================
--- hurry.yui/trunk/src/hurry/yui/__init__.py 2008-10-07 16:57:55 UTC (rev 91873)
+++ hurry.yui/trunk/src/hurry/yui/__init__.py 2008-10-07 17:28:52 UTC (rev 91874)
@@ -1 +1,7 @@
-from hurry.yui.yui import *
+try:
+ from hurry.yui.yui import *
+except ImportError:
+ # nasty to ignore this, but can't self-prepare library if no yui.py is
+ # there yet
+ pass
+
Added: hurry.yui/trunk/src/hurry/yui/prepare.py
===================================================================
--- hurry.yui/trunk/src/hurry/yui/prepare.py (rev 0)
+++ hurry.yui/trunk/src/hurry/yui/prepare.py 2008-10-07 17:28:52 UTC (rev 91874)
@@ -0,0 +1,33 @@
+import os, sys
+import shutil
+
+from hurry.yui.yuidepend import yuidepend
+from hurry.yui.yuidl import download
+
+def main():
+ try:
+ version = sys.argv[1]
+ except IndexError:
+ print "Usage: yuiprepare <YUI version>"
+ return
+
+ # download YUI library into package
+ package_dir = os.path.dirname(__file__)
+ yui_dest_path = os.path.join(package_dir, 'yui-build')
+
+ # remove previous yui library
+ shutil.rmtree(yui_dest_path, ignore_errors=True)
+
+ def copy_yui(ex_path):
+ """Copy YUI to location 'yui-build' in package."""
+ yui_build_path = os.path.join(ex_path, 'yui', 'build')
+ shutil.copytree(yui_build_path, yui_dest_path)
+
+ download(version, copy_yui)
+
+ # get dependency structure and create 'yui.py' into package
+ code = yuidepend(version)
+ yui_py_path = os.path.join(package_dir, 'yui.py')
+ f = open(yui_py_path, 'w')
+ f.write(code)
+ f.close()
Deleted: hurry.yui/trunk/src/hurry/yui/yui.py
===================================================================
--- hurry.yui/trunk/src/hurry/yui/yui.py 2008-10-07 16:57:55 UTC (rev 91873)
+++ hurry.yui/trunk/src/hurry/yui/yui.py 2008-10-07 17:28:52 UTC (rev 91874)
@@ -1,52 +0,0 @@
-from hurry.resource import Library, ResourceInclusion
-
-yui = Library('yui')
-
-fonts = ResourceInclusion(yui, 'fonts/fonts.css', minified='fonts/fonts-min.css')
-grids = ResourceInclusion(yui, 'grids/grids.css', depends=[fonts], minified='grids/grids-min.css')
-reset = ResourceInclusion(yui, 'reset/reset.css', minified='reset/reset-min.css')
-reset_fonts = ResourceInclusion(yui, 'reset-fonts/reset-fonts.css', supersedes=[reset, fonts], minified='reset-fonts/reset-fonts-min.css')
-reset_fonts_grids = ResourceInclusion(yui, 'reset-fonts-grids/reset-fonts-grids.css', supersedes=[reset, fonts, grids], minified='reset-fonts-grids/reset-fonts-grids-min.css')
-base = ResourceInclusion(yui, 'base/base.css', minified='base/base-min.css')
-yahoo = ResourceInclusion(yui, 'yahoo/yahoo.js', debug='yahoo/yahoo-debug.js', minified='yahoo/yahoo-min.js')
-dom = ResourceInclusion(yui, 'dom/dom.js', depends=[yahoo], debug='dom/dom-debug.js', minified='dom/dom-min.js')
-event = ResourceInclusion(yui, 'event/event.js', depends=[yahoo], debug='event/event-debug.js', minified='event/event-min.js')
-containercore = ResourceInclusion(yui, 'container/container_core.js', depends=[dom, event], debug='container/container_core-debug.js', minified='container/container_core-min.js')
-calendar = ResourceInclusion(yui, 'calendar/calendar.js', depends=[event, dom], debug='calendar/calendar-debug.js', minified='calendar/calendar-min.js')
-profiler = ResourceInclusion(yui, 'profiler/profiler.js', depends=[yahoo], debug='profiler/profiler-debug.js', minified='profiler/profiler-min.js')
-element = ResourceInclusion(yui, 'element/element-beta.js', depends=[dom, event], debug='element/element-beta-debug.js', minified='element/element-beta-min.js')
-paginator = ResourceInclusion(yui, 'paginator/paginator.js', depends=[element], debug='paginator/paginator-debug.js', minified='paginator/paginator-min.js')
-container = ResourceInclusion(yui, 'container/container.js', depends=[dom, event], supersedes=[containercore], debug='container/container-debug.js', minified='container/container-min.js')
-simpleeditor = ResourceInclusion(yui, 'editor/simpleeditor.js', depends=[element], debug='editor/simpleeditor-debug.js', minified='editor/simpleeditor-min.js')
-menu = ResourceInclusion(yui, 'menu/menu.js', depends=[containercore], debug='menu/menu-debug.js', minified='menu/menu-min.js')
-json = ResourceInclusion(yui, 'json/json.js', depends=[yahoo], debug='json/json-debug.js', minified='json/json-min.js')
-datasource = ResourceInclusion(yui, 'datasource/datasource.js', depends=[event], debug='datasource/datasource-debug.js', minified='datasource/datasource-min.js')
-charts = ResourceInclusion(yui, 'charts/charts-experimental.js', depends=[element, json, datasource], debug='charts/charts-experimental-debug.js', minified='charts/charts-experimental-min.js')
-button = ResourceInclusion(yui, 'button/button.js', depends=[element], debug='button/button-debug.js', minified='button/button-min.js')
-editor = ResourceInclusion(yui, 'editor/editor.js', depends=[menu, element, button], supersedes=[simpleeditor], debug='editor/editor-debug.js', minified='editor/editor-min.js')
-get = ResourceInclusion(yui, 'get/get.js', depends=[yahoo], debug='get/get-debug.js', minified='get/get-min.js')
-yuiloader_dom_event = ResourceInclusion(yui, 'yuiloader-dom-event/yuiloader-dom-event.js', supersedes=[yahoo, dom, event, get], debug='yuiloader-dom-event/yuiloader-dom-event-debug.js', minified='yuiloader-dom-event/yuiloader-dom-event-min.js')
-animation = ResourceInclusion(yui, 'animation/animation.js', depends=[dom, event], debug='animation/animation-debug.js', minified='animation/animation-min.js')
-dragdrop = ResourceInclusion(yui, 'dragdrop/dragdrop.js', depends=[dom, event], debug='dragdrop/dragdrop-debug.js', minified='dragdrop/dragdrop-min.js')
-carousel = ResourceInclusion(yui, 'carousel/carousel-beta.js', depends=[element], debug='carousel/carousel-beta-debug.js', minified='carousel/carousel-beta-min.js')
-yuiloader = ResourceInclusion(yui, 'yuiloader/yuiloader.js', supersedes=[yahoo, get], debug='yuiloader/yuiloader-debug.js', minified='yuiloader/yuiloader-min.js')
-logger = ResourceInclusion(yui, 'logger/logger.js', depends=[event, dom], debug='logger/logger-debug.js', minified='logger/logger-min.js')
-slider = ResourceInclusion(yui, 'slider/slider.js', depends=[dragdrop], debug='slider/slider-debug.js', minified='slider/slider-min.js')
-colorpicker = ResourceInclusion(yui, 'colorpicker/colorpicker.js', depends=[slider, element], debug='colorpicker/colorpicker-debug.js', minified='colorpicker/colorpicker-min.js')
-resize = ResourceInclusion(yui, 'resize/resize.js', depends=[dom, event, dragdrop, element], debug='resize/resize-debug.js', minified='resize/resize-min.js')
-imagecropper = ResourceInclusion(yui, 'imagecropper/imagecropper-beta.js', depends=[dom, event, dragdrop, element, resize], debug='imagecropper/imagecropper-beta-debug.js', minified='imagecropper/imagecropper-beta-min.js')
-yuitest = ResourceInclusion(yui, 'yuitest/yuitest.js', depends=[logger], debug='yuitest/yuitest-debug.js', minified='yuitest/yuitest-min.js')
-connection = ResourceInclusion(yui, 'connection/connection.js', depends=[event], debug='connection/connection-debug.js', minified='connection/connection-min.js')
-utilities = ResourceInclusion(yui, 'utilities/utilities.js', supersedes=[yahoo, event, dragdrop, animation, dom, connection, element, get], debug='utilities/utilities-debug.js', minified='utilities/utilities-min.js')
-cookie = ResourceInclusion(yui, 'cookie/cookie.js', depends=[yahoo], debug='cookie/cookie-debug.js', minified='cookie/cookie-min.js')
-uploader = ResourceInclusion(yui, 'uploader/uploader-experimental.js', depends=[element], debug='uploader/uploader-experimental-debug.js', minified='uploader/uploader-experimental-min.js')
-layout = ResourceInclusion(yui, 'layout/layout.js', depends=[dom, event, element], debug='layout/layout-debug.js', minified='layout/layout-min.js')
-profilerviewer = ResourceInclusion(yui, 'profilerviewer/profilerviewer-beta.js', depends=[profiler, yuiloader, element], debug='profilerviewer/profilerviewer-beta-debug.js', minified='profilerviewer/profilerviewer-beta-min.js')
-datatable = ResourceInclusion(yui, 'datatable/datatable.js', depends=[element, datasource], debug='datatable/datatable-debug.js', minified='datatable/datatable-min.js')
-selector = ResourceInclusion(yui, 'selector/selector-beta.js', depends=[yahoo, dom], debug='selector/selector-beta-debug.js', minified='selector/selector-beta-min.js')
-yahoo_dom_event = ResourceInclusion(yui, 'yahoo-dom-event/yahoo-dom-event.js', supersedes=[yahoo, event, dom], debug='yahoo-dom-event/yahoo-dom-event-debug.js', minified='yahoo-dom-event/yahoo-dom-event-min.js')
-tabview = ResourceInclusion(yui, 'tabview/tabview.js', depends=[element], debug='tabview/tabview-debug.js', minified='tabview/tabview-min.js')
-autocomplete = ResourceInclusion(yui, 'autocomplete/autocomplete.js', depends=[dom, event, datasource], debug='autocomplete/autocomplete-debug.js', minified='autocomplete/autocomplete-min.js')
-imageloader = ResourceInclusion(yui, 'imageloader/imageloader.js', depends=[event, dom], debug='imageloader/imageloader-debug.js', minified='imageloader/imageloader-min.js')
-treeview = ResourceInclusion(yui, 'treeview/treeview.js', depends=[event, dom], debug='treeview/treeview-debug.js', minified='treeview/treeview-min.js')
-history = ResourceInclusion(yui, 'history/history.js', depends=[event], debug='history/history-debug.js', minified='history/history-min.js')
Modified: hurry.yui/trunk/src/hurry/yui/yuidepend.py
===================================================================
--- hurry.yui/trunk/src/hurry/yui/yuidepend.py 2008-10-07 16:57:55 UTC (rev 91873)
+++ hurry.yui/trunk/src/hurry/yui/yuidepend.py 2008-10-07 17:28:52 UTC (rev 91874)
@@ -17,9 +17,11 @@
except IndexError:
print "Usage: yuidepend <YUI version>"
return
+ print yuidepend(version)
+
+def yuidepend(version):
d = load_json(version)
-
- convert_to_inclusions(d)
+ return convert_to_inclusions(d)
def convert_to_inclusions(d):
yui = Library('yui')
@@ -52,9 +54,9 @@
for mode_name in get_modes(inclusion):
inclusion.modes[mode_name] = mode_inclusion = convert_to_mode(
inclusion, mode_name)
-
+
# now generate code
- print generate_code(**inclusion_map)
+ return generate_code(**inclusion_map)
def normalize_name(n):
return str(n.replace('-', '_'))
Copied: hurry.yui/trunk/src/hurry/yui/yuidl.py (from rev 91867, hurry.zopeyui/trunk/yuidl.py)
===================================================================
--- hurry.yui/trunk/src/hurry/yui/yuidl.py (rev 0)
+++ hurry.yui/trunk/src/hurry/yui/yuidl.py 2008-10-07 17:28:52 UTC (rev 91874)
@@ -0,0 +1,45 @@
+import urllib2
+import tempfile, shutil
+import os
+
+SF_URL_TEMPLATE = 'http://sourceforge.net/project/downloading.php?group_id=165715&filename=yui_%s.zip'
+
+def download(version, callback):
+ """Download a yui of version.
+
+ When downloaded, call callback with path to directory
+ with an extracted YUI. The callback will then be able to copy
+ this to the appropriate location.
+ """
+ url = SF_URL_TEMPLATE % version
+ f = urllib2.urlopen(url)
+ data = f.read()
+ f.close()
+
+ download_url = find_a_href(data, 'direct link')
+
+ f = urllib2.urlopen(download_url)
+ file_data = f.read()
+ f.close()
+
+ dirpath = tempfile.mkdtemp()
+ try:
+ yui_path = os.path.join(dirpath, 'yui.zip')
+ ex_path = os.path.join(dirpath, 'yui_ex')
+ g = open(yui_path, 'wb')
+ g.write(file_data)
+ g.close()
+ os.system('unzip -qq "%s" -d "%s"' % (yui_path, ex_path))
+ callback(ex_path)
+ finally:
+ shutil.rmtree(dirpath, ignore_errors=True)
+
+def find_a_href(data, content):
+ """Given start of content of the <a href="">content</a> find href.
+ """
+ i = data.find(content)
+ a = '<a href="'
+ href_start = data.rfind(a, 0, i)
+ href_start += len(a)
+ href_end = data.find('"', href_start)
+ return data[href_start:href_end]
More information about the Checkins
mailing list