setup.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import sys
  2. from setuptools import setup, find_packages
  3. version = '1.4.2'
  4. pycryptopp = 'pycryptopp>=0.5.12'
  5. tests_require = ['nose', 'webtest']
  6. if not sys.platform.startswith('java') and not sys.platform == 'cli':
  7. tests_require.extend([pycryptopp, 'SQLALchemy'])
  8. try:
  9. import sqlite3
  10. except ImportError:
  11. tests_require.append('pysqlite')
  12. setup(name='Beaker',
  13. version=version,
  14. description="A Session and Caching library with WSGI Middleware",
  15. long_description="""\
  16. Cache and Session Library
  17. +++++++++++++++++++++++++
  18. About
  19. =====
  20. Beaker is a web session and general caching library that includes WSGI
  21. middleware for use in web applications.
  22. As a general caching library, Beaker can handle storing for various times
  23. any Python object that can be pickled with optional back-ends on a
  24. fine-grained basis.
  25. Beaker was built largely on the code from MyghtyUtils, then refactored and
  26. extended with database support.
  27. Beaker includes Cache and Session WSGI middleware to ease integration with
  28. WSGI capable frameworks, and is automatically used by `Pylons
  29. <http://pylonshq.com/>`_.
  30. Features
  31. ========
  32. * Fast, robust performance
  33. * Multiple reader/single writer lock system to avoid duplicate simultaneous
  34. cache creation
  35. * Cache back-ends include dbm, file, memory, memcached, and database (Using
  36. SQLAlchemy for multiple-db vendor support)
  37. * Signed cookie's to prevent session hijacking/spoofing
  38. * Cookie-only sessions to remove the need for a db or file backend (ideal
  39. for clustered systems)
  40. * Extensible Container object to support new back-ends
  41. * Cache's can be divided into namespaces (to represent templates, objects,
  42. etc.) then keyed for different copies
  43. * Create functions for automatic call-backs to create new cache copies after
  44. expiration
  45. * Fine-grained toggling of back-ends, keys, and expiration per Cache object
  46. Documentation
  47. =============
  48. Documentation can be found on the `Official Beaker Docs site
  49. <http://beaker.groovie.org/>`_.
  50. Source
  51. ======
  52. The latest developer version is available in a `Mercurial repository
  53. <http://bitbucket.org/bbangert/beaker/get/tip.gz#egg=Beaker-dev>`_.
  54. """,
  55. classifiers=[
  56. 'Development Status :: 5 - Production/Stable',
  57. 'Environment :: Web Environment',
  58. 'Intended Audience :: Developers',
  59. 'License :: OSI Approved :: BSD License',
  60. 'Programming Language :: Python',
  61. 'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
  62. ],
  63. keywords='wsgi myghty session web cache middleware',
  64. author='Ben Bangart, Mike Bayer, Philip Jenvey',
  65. author_email='ben@groovie.org, pjenvey@groovie.org',
  66. url='http://beaker.groovie.org',
  67. license='BSD',
  68. packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
  69. zip_safe=False,
  70. install_requires=[],
  71. extras_require={
  72. 'crypto':[pycryptopp]
  73. },
  74. test_suite='nose.collector',
  75. tests_require=tests_require,
  76. entry_points="""
  77. [paste.filter_factory]
  78. beaker_session = beaker.middleware:session_filter_factory
  79. [paste.filter_app_factory]
  80. beaker_session = beaker.middleware:session_filter_app_factory
  81. [beaker.backends]
  82. database = beaker.ext.database:DatabaseNamespaceManager
  83. memcached = beaker.ext.memcached:MemcachedNamespaceManager
  84. google = beaker.ext.google:GoogleNamespaceManager
  85. sqla = beaker.ext.sqla:SqlaNamespaceManager
  86. """,
  87. )