Use manifest. Be compatible with synnefo. Declare namespace. packaging-generator
authorAntony Chazapis <chazapis@gmail.com>
Thu, 26 Jan 2012 22:50:03 +0000 (00:50 +0200)
committerAntony Chazapis <chazapis@gmail.com>
Thu, 26 Jan 2012 22:50:03 +0000 (00:50 +0200)
TODO
packaging/defaults.py
packaging/snf-pithos-app.py
packaging/snf-pithos-backend.py
packaging/snf-pithos-lib.py
packaging/snf-pithos-tools.py
pithos/__init__.py
setup.py

diff --git a/TODO b/TODO
index ccfa358..bd3d0df 100644 (file)
--- a/TODO
+++ b/TODO
@@ -2,7 +2,4 @@ TODO
 ----
 
 This is for packaging:
-* Declare namespace
 * Use synnefo settings
-* Use synnefo versioning in setup
-* Setup manifest for adding non python files in app package
index f0f5426..fcfca60 100644 (file)
@@ -10,8 +10,5 @@ setup_args = {
     'maintainer': 'GRNET',
     'maintainer_email': 'pithos@grnet.gr',
     
-    'include_package_data': True,
-    #'package_data': find_package_data('.'),
-    
-    #'namespace_packages': ['pithos'],
+    'namespace_packages': ['pithos'],
 }
index 22c2861..37d97a6 100644 (file)
@@ -1,8 +1,14 @@
 from defaults import setup_args
+from find_data import find_package_data
 
 name = 'pithos.api'
 
+manifest = 'recursive-include pithos *.json *.html *.json *.xml *.txt'
+
 description = setup_args['description'] + ' (application)'
+package_data = {}
+package_data.update(find_package_data('./pithos/api', 'pithos.api'))
+package_data.update(find_package_data('./pithos/ui', 'pithos.ui'))
 setup_args.update({
     'name': 'snf-pithos-app',
     'description': description,
@@ -13,6 +19,7 @@ setup_args.update({
         'pithos.middleware',
         'pithos.ui'
     ],
+    'package_data': package_data,
     'install_requires': [
         'snf-common',
         'snf-webapp',
index df9a611..e1702dc 100644 (file)
@@ -2,6 +2,8 @@ from defaults import setup_args
 
 name = 'pithos.backends'
 
+manifest = ''
+
 description = setup_args['description'] + ' (backend)'
 setup_args.update({
     'name': 'snf-pithos-backend',
index bb14827..6579983 100644 (file)
@@ -2,6 +2,8 @@ from defaults import setup_args
 
 name = 'pithos.lib'
 
+manifest = ''
+
 description = setup_args['description'] + ' (library)'
 setup_args.update({
     'name': 'snf-pithos-lib',
index cb6a993..65bb11d 100644 (file)
@@ -2,6 +2,8 @@ from defaults import setup_args
 
 name = 'pithos.tools'
 
+manifest = ''
+
 description = setup_args['description'] + ' (tools)'
 setup_args.update({
     'name': 'snf-pithos-tools',
index 5e3c81a..c0c9962 100644 (file)
@@ -38,3 +38,11 @@ def get_version():
         if VERSION[3] != 'final':
             version = '%s %s %s' % (version, VERSION[3], VERSION[4])
     return version
+
+# GRNET addition: Make this a namespace package.
+try:
+    import pkg_resources
+    pkg_resources.declare_namespace(__name__)
+except ImportError:
+    import pkgutil
+    __path__ = pkgutil.extend_path(__path__, __name__)
index d6d75fb..547210c 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -54,16 +54,21 @@ except ImportError:
     print 'Can not find package %s' % package_name
     sys.exit(-1)
 
+# Create manifest.
+manifest = open('MANIFEST.in', 'w')
+manifest.write(package.manifest)
+manifest.close()
+
 from packaging import distribute_setup
-#distribute_setup.use_setuptools()
+distribute_setup.use_setuptools()
 
 HERE = os.path.abspath(os.path.normpath(os.path.dirname(__file__)))
-# try:
-#     # try to update the version file
-#     from synnefo.util import version
-#     version.update_version('pithos.api', 'version', HERE)
-# except ImportError:
-#     pass
+try:
+    # Update the version file.
+    from synnefo.util import version
+    version.update_version(package.name, 'version', HERE)
+except ImportError:
+    pass
 
 def read(fname):
     file = os.path.join(HERE, fname)
@@ -82,7 +87,7 @@ setup_args = {
     'license': 'BSD',
     'url': 'http://code.grnet.gr/',
     'description': 'Package short description',
-    'long_description': '', #read('README'),
+    'long_description': read('README'),
     'classifiers': [
         'Development Status :: 3 - Alpha',
         'Operating System :: OS Independent',
@@ -96,16 +101,14 @@ setup_args = {
     'maintainer': 'Package maintainer',
     'maintainer_email': 'maintainer@grnet.gr',
     
-#     'packages': find_packages(),
-#     'package_dir': {'': '.'},
-     'include_package_data': True,
-#     'package_data': find_package_data('.'),
+    #'packages': find_packages(),
+    #'package_dir': {'': '.'},
+    #'include_package_data': True,
+    #'package_data': find_package_data('.'),
     'zip_safe': False,
     
     'dependency_links': ['http://docs.dev.grnet.gr/pypi/'],
 }
 
 setup_args.update(package.setup_args)
-print setup_args
-
 setup(**setup_args)