-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpavement.py
More file actions
171 lines (140 loc) · 5.27 KB
/
pavement.py
File metadata and controls
171 lines (140 loc) · 5.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
try:
import paver
except ImportError:
# Ignore pavement during tests.
pass
else:
from paver.easy import *
import paver.misctasks
import paver.setuputils
from paver.setuputils import setup
from textwrap import dedent
from setuptools import Extension, find_packages
from schevo.release import VERSION
setup(
name='Schevo',
version=VERSION,
description='Next-generation DBMS',
long_description=dedent("""
Schevo is a next-generation DBMS that focuses on the following:
* **Rapid Development**.
It's easy and fun to create even the most complex of
databases. Easily write and understand schema syntax. Quickly
place required initial data directly in your schema; use the
same syntax to create sets of sample data for development use.
* **Rich Schema Definition**.
Write database schemata using concise, easy-to-read Python
code. Your schema will describe not only database structure, but
also all transactions and rules that ensure database integrity.
* **Automated Schema Evolution**.
Deploy a Schevo database and use it to store valuable data, then
easily make further changes to the structure of the
database. Use Schevo's tools to help restructure a database and
safely migrate data from one schema version to the next.
* **Transaction Based**.
Schevo protects your data. Use transactions to make all changes
to a Schevo database (it's the only way it allows you to!), and
you can trust Schevo to ensure that your database is left in a
consistent state at all times.
* **User Interface Generation**.
User interface code takes advantage of the richness of your
database schema. Use a full-featured database navigator to
interact with your database without writing a single line of
code outside your database schema. Build customized UIs using
Schevo-aware widgets and UI tools.
You can also get the `latest development version
<http://github.com/gldnspud/schevo/zipball/master#egg=Schevo-dev>`__.
"""),
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Topic :: Database :: Database Engines/Servers',
'Topic :: Software Development :: Libraries :: '
'Application Frameworks',
],
keywords='database dbms',
author='ElevenCraft Inc.',
author_email='schevo@googlegroups.com',
url='http://www.schevo.org/',
license='MIT',
packages=find_packages(exclude=['doc', 'tests']),
include_package_data=True,
package_data={
'schevo.test.icons': ['*.png'],
},
zip_safe=False,
install_requires=[
'SchevoDurus == dev, >= 3.1.0dev-20090922',
],
extras_require={
'notifications': ['Louie >= 1.1'],
'templates': ['PasteScript >= 1.7.3'],
},
tests_require=['nose >= 0.10.4'],
test_suite='nose.collector',
ext_modules=[
Extension('schevo.store._s_persistent',
['schevo/store/_s_persistent.c']),
],
entry_points = """
[console_scripts]
schevo = schevo.script.main:start
schevo_hotshot = schevo.script.main:start_hotshot
[paste.paster_create_template]
schevo = schevo.template:SchevoTemplate
[schevo.backend]
schevostore = schevo.store.backend:SchevoStoreBackend
[schevo.schevo_command]
backends = schevo.script.backends:start
db = schevo.script.db:start
shell = schevo.script.shell:start
""",
)
options(
cog=Bunch(
basdir='doc/source',
includedir='doc/source',
pattern='*.txt',
beginspec='<==',
endspec='==>',
endoutput='<==end==>',
),
sphinx=Bunch(
docroot='doc',
builddir='build',
sourcedir='source',
),
)
@task
@needs('generate_setup', 'minilib', 'setuptools.command.sdist')
def sdist():
"""Overrides sdist to make sure that our setup.py is generated."""
pass
@task
@needs(['paver.doctools.cog', 'paver.doctools.html', 'paver.doctools.uncog'])
def html():
pass
@task
@needs('html')
def docs():
import webbrowser
index_file = path('doc/build/html/index.html')
webbrowser.open('file://' + index_file.abspath())
@task
def doctests():
from paver.doctools import _get_paths
import sphinx
options.order('sphinx', add_rest=True)
paths = _get_paths()
sphinxopts = ['', '-b', 'doctest', '-d', paths.doctrees,
paths.srcdir, paths.htmldir]
ret = dry(
"sphinx-build %s" % (" ".join(sphinxopts),), sphinx.main, sphinxopts)
@task
@needs(['doctests', 'nosetests'])
def test():
pass