From 04ef415fd1326d9749ad2d967015a46e6f1bd223 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sun, 26 Jun 2011 07:23:14 +0200 Subject: setup.py: make namespace packages work, add missing stuff add url and namespaces_packages decl use 1-line __init__.py for xstatic and xstatic.pkg namespace packages move most of the code to xstatic.main --- setup.py | 2 ++ xstatic/__init__.py | 55 +------------------------------------------------ xstatic/main.py | 51 +++++++++++++++++++++++++++++++++++++++++++++ xstatic/pkg/__init__.py | 1 + 4 files changed, 55 insertions(+), 54 deletions(-) create mode 100644 xstatic/main.py create mode 100644 xstatic/pkg/__init__.py diff --git a/setup.py b/setup.py index 9e802bf..a2137fd 100644 --- a/setup.py +++ b/setup.py @@ -23,8 +23,10 @@ setup( keywords=[], author='Thomas Waldmann', author_email='tw@waldmann-edv.de', + url='http:/bitbucket.org/thomaswaldmann/xstatic', license='MIT license', packages=find_packages(), + namespace_packages=['xstatic', 'xstatic.pkg', ], include_package_data=True, zip_safe=False, install_requires=[], # there should never be a dependency! diff --git a/xstatic/__init__.py b/xstatic/__init__.py index d6066d7..de40ea7 100644 --- a/xstatic/__init__.py +++ b/xstatic/__init__.py @@ -1,54 +1 @@ -# Copyright: 2011 by the XStatic authors, see AUTHORS.txt for details. -# License: MIT license, see LICENSE.txt for details. - -""" -XStatic - main package with minimal support code to work with static file packages -""" - -# http://remote_base/path -# http://local_base/path - -class XStatic(object): - """ - minimal support code to access resources from xstatic.pkg.* files - or CDN locations. - """ - name = None # lowercase short name - base_dir = None # fs path to the files - locations = {} # CDN/remote locations - - def __init__(self, root_url='/xstatic', provider='local', protocol='http'): - """ - :arg root_url: the common root url path for all local xstatic - resources - :arg provider: 'local' to get it from local server or - a name of another source (e.g. CDN) - :arg protocol: 'http' (default) or 'https' - """ - self.provider = provider - if provider == 'local': - self.base_url = "%s/%s" % (root_url, self.name) - else: - self.base_url = self.locations[(provider, protocol)] - - def get_mapping(self): - """ - query the mapping url -> directory, use this to setup - your own static file serving. - """ - if self.provider == 'local': - return self.base_url, self.base_dir - - def url_for(self, path): - """ - compute the url for some resource. - - :arg path: a relative path into the data - """ - loc = self.base_url - if isinstance(loc, str): - loc = "%s/%s" % (loc, path) - elif isinstance(loc, dict): - loc = loc[path] - return loc - +__import__('pkg_resources').declare_namespace(__name__) diff --git a/xstatic/main.py b/xstatic/main.py new file mode 100644 index 0000000..1ea94bf --- /dev/null +++ b/xstatic/main.py @@ -0,0 +1,51 @@ +# Copyright: 2011 by the XStatic authors, see AUTHORS.txt for details. +# License: MIT license, see LICENSE.txt for details. + +""" +XStatic - main package with minimal support code to work with static file packages +""" + +class XStatic(object): + """ + minimal support code to access resources from xstatic.pkg.* files + or CDN locations. + """ + name = None # lowercase short name + base_dir = None # fs path to the files + locations = {} # CDN/remote locations + + def __init__(self, root_url='/xstatic', provider='local', protocol='http'): + """ + :arg root_url: the common root url path for all local xstatic + resources + :arg provider: 'local' to get it from local server or + a name of another source (e.g. CDN) + :arg protocol: 'http' (default) or 'https' + """ + self.provider = provider + if provider == 'local': + self.base_url = "%s/%s" % (root_url, self.name) + else: + self.base_url = self.locations[(provider, protocol)] + + def get_mapping(self): + """ + query the mapping url -> directory, use this to setup + your own static file serving. + """ + if self.provider == 'local': + return self.base_url, self.base_dir + + def url_for(self, path): + """ + compute the url for some resource. + + :arg path: a relative path into the data + """ + loc = self.base_url + if isinstance(loc, str): + loc = "%s/%s" % (loc, path) + elif isinstance(loc, dict): + loc = loc[path] + return loc + diff --git a/xstatic/pkg/__init__.py b/xstatic/pkg/__init__.py new file mode 100644 index 0000000..de40ea7 --- /dev/null +++ b/xstatic/pkg/__init__.py @@ -0,0 +1 @@ +__import__('pkg_resources').declare_namespace(__name__) -- cgit v1.2.1