Upgrade origin-src to google transit feed 1.2.6
[bus.git] / origin-src / transitfeed-1.2.6 / setup.py
blob:a/origin-src/transitfeed-1.2.6/setup.py -> blob:b/origin-src/transitfeed-1.2.6/setup.py
--- a/origin-src/transitfeed-1.2.6/setup.py
+++ b/origin-src/transitfeed-1.2.6/setup.py
@@ -1,1 +1,121 @@
+#!/usr/bin/python2.5
 
+# Copyright (C) 2007 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""
+This script can be used to create a source distribution, binary distribution
+or Windows executable files. The output is put in dist/
+
+See
+http://code.google.com/p/googletransitdatafeed/wiki/BuildingPythonWindowsExecutables
+for help on creating Windows executables.
+"""
+
+from distutils.core import setup
+import glob
+import os.path
+from transitfeed import __version__ as VERSION
+
+try:
+  import py2exe
+  has_py2exe = True
+except ImportError, e:
+  # Won't be able to generate win32 exe
+  has_py2exe = False
+
+
+# py2exe doesn't automatically include pytz dependency because it is optional
+options = {'py2exe': {'packages': ['pytz']}}
+scripts_for_py2exe = ['feedvalidator.py', 'schedule_viewer.py', 'kmlparser.py',
+                      'kmlwriter.py', 'merge.py', 'unusual_trip_filter.py']
+# On Nov 23, 2009 Tom Brown said: I'm not confident that we can include a
+# working copy of this script in the py2exe distribution because it depends on
+# ogr. I do want it included in the source tar.gz.
+scripts_for_source_only = ['shape_importer.py']
+kwargs = {}
+
+if has_py2exe:
+  kwargs['console'] = scripts_for_py2exe
+  # py2exe seems to ignore package_data and not add marey_graph. This makes it
+  # work.
+  kwargs['data_files'] = \
+      [('schedule_viewer_files',
+          glob.glob(os.path.join('gtfsscheduleviewer', 'files', '*')))]
+  options['py2exe'] = {'dist_dir': 'transitfeed-windows-binary-%s' % VERSION}
+
+setup(
+    version=VERSION,
+    name='transitfeed',
+    url='http://code.google.com/p/googletransitdatafeed/',
+    download_url='http://googletransitdatafeed.googlecode.com/'
+        'files/transitfeed-%s.tar.gz' % VERSION,
+    maintainer='Tom Brown',
+    maintainer_email='tom.brown.code@gmail.com',
+    description='Google Transit Feed Specification library and tools',
+    long_description='This module provides a library for reading, writing and '
+        'validating Google Transit Feed Specification files. It includes some '
+        'scripts that validate a feed, display it using the Google Maps API and '
+        'the start of a KML importer and exporter.',
+    platforms='OS Independent',
+    license='Apache License, Version 2.0',
+    packages=['gtfsscheduleviewer', 'transitfeed'],
+    # Also need to list package_data contents in MANIFEST.in for it to be
+    # included in sdist. See "[Distutils] package_data not used by sdist
+    # command" Feb 2, 2007
+    package_data={'gtfsscheduleviewer': ['files/*']},
+    scripts=scripts_for_py2exe + scripts_for_source_only,
+    zip_safe=False,
+    classifiers=[
+        'Development Status :: 4 - Beta',
+        'Intended Audience :: Developers',
+        'Intended Audience :: Information Technology',
+        'Intended Audience :: Other Audience',
+        'License :: OSI Approved :: Apache Software License',
+        'Operating System :: OS Independent',
+        'Programming Language :: Python',
+        'Topic :: Scientific/Engineering :: GIS',
+        'Topic :: Software Development :: Libraries :: Python Modules'
+        ],
+    options=options,
+    **kwargs
+    )
+
+if has_py2exe:
+  # Sometime between pytz-2008a and pytz-2008i common_timezones started to
+  # include only names of zones with a corresponding data file in zoneinfo.
+  # pytz installs the zoneinfo directory tree in the same directory
+  # as the pytz/__init__.py file. These data files are loaded using
+  # pkg_resources.resource_stream. py2exe does not copy this to library.zip so
+  # resource_stream can't find the files and common_timezones is empty when
+  # read in the py2exe executable.
+  # This manually copies zoneinfo into the zip. See also
+  # http://code.google.com/p/googletransitdatafeed/issues/detail?id=121
+  import pytz
+  import zipfile
+  # Make sure the layout of pytz hasn't changed
+  assert (pytz.__file__.endswith('__init__.pyc') or
+          pytz.__file__.endswith('__init__.py')), pytz.__file__
+  zoneinfo_dir = os.path.join(os.path.dirname(pytz.__file__), 'zoneinfo')
+  # '..\\Lib\\pytz\\__init__.py' -> '..\\Lib'
+  disk_basedir = os.path.dirname(os.path.dirname(pytz.__file__))
+  zipfile_path = os.path.join(options['py2exe']['dist_dir'], 'library.zip')
+  z = zipfile.ZipFile(zipfile_path, 'a')
+  for absdir, directories, filenames in os.walk(zoneinfo_dir):
+    assert absdir.startswith(disk_basedir), (absdir, disk_basedir)
+    zip_dir = absdir[len(disk_basedir):]
+    for f in filenames:
+      z.write(os.path.join(absdir, f), os.path.join(zip_dir, f))
+  z.close()
+