bee_python 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README CHANGED
@@ -20,4 +20,4 @@ or go to URL http://www.apache.org/licenses/LICENSE-2.0).
20
20
 
21
21
  = Copyright
22
22
 
23
- Bee_python version 0.0.6 (C) Michel Casabianca - 2008-2010
23
+ Bee_python version 0.1.0 (C) Michel Casabianca - 2008-2010
data/egg/mysql/mysql.py CHANGED
@@ -24,11 +24,13 @@ def run_query(query):
24
24
  db = DATABASE)
25
25
  cursor = connection.cursor(MySQLdb.cursors.DictCursor)
26
26
  cursor.execute(query)
27
+ connection.commit()
27
28
  return cursor.fetchall()
28
29
  finally:
29
30
  if cursor:
30
31
  cursor.close()
31
32
  if connection:
33
+ connection.rollback()
32
34
  connection.close()
33
35
 
34
36
  def main():
data/egg/project/test.py CHANGED
@@ -7,7 +7,7 @@ import os
7
7
  import sys
8
8
  import inspect
9
9
  test_dir = os.path.dirname(inspect.currentframe().f_code.co_filename)
10
- src_dir = os.path.join(test_dir, '../src')
10
+ src_dir = os.path.join(test_dir, '..', 'src')
11
11
  sys.path.insert(0, src_dir)
12
12
  import <%= name %>
13
13
  import unittest
@@ -354,6 +354,46 @@ module Bee
354
354
  end
355
355
  end
356
356
 
357
+ # Check Python dependencies using PIP (see http://pypi.python.org/pypi/pip).
358
+ # Takes a single parameter that is the map of dependencies that gives version
359
+ # for a given dependency. A vesion set to ~ (or nil) indicates that this
360
+ # dependency is needed in any version (useful for developement libraries used
361
+ # for development).
362
+ #
363
+ # Example:
364
+ #
365
+ # - python.dependencies: { Django: "1.2.3", PyYAML: ~ }
366
+ def dependencies(dependencies)
367
+ error "python.deps_check parameter is a Map" unless
368
+ dependencies.kind_of?(Hash)
369
+ puts "Checking Python dependencies..."
370
+ lines = `pip freeze`.strip.split("\n")
371
+ installed = {}
372
+ for line in lines
373
+ if line =~ /^[^#].*/
374
+ index = line.index('==')
375
+ name = line[0..index-1]
376
+ version = line[index+2..-1]
377
+ installed[name] = version
378
+ end
379
+ end
380
+ for name in dependencies.keys.sort
381
+ if installed.has_key?(name)
382
+ if not dependencies[name] or dependencies[name] == '*'
383
+ puts "#{name}: OK" if @verbose
384
+ else
385
+ if dependencies[name] != installed[name]
386
+ throw "Dependency '#{name}' in bad version ('#{installed[_name]}' installed instead of '#{dependencies[name]}' required)"
387
+ else
388
+ puts "#{name} (#{dependencies[name]}): OK" if @verbose
389
+ end
390
+ end
391
+ else
392
+ throw "Missing dependency '#{name}'"
393
+ end
394
+ end
395
+ end
396
+
357
397
  private
358
398
 
359
399
  # Add directories to the Python path environment variable.
data/python.yml CHANGED
@@ -4,7 +4,7 @@
4
4
  abstract: true
5
5
  default: [clean, test]
6
6
  alias:
7
- test: [py_check, py_test]
7
+ test: [py_deps, py_check, py_test]
8
8
  doc: py_doc
9
9
  run: py_run
10
10
  clean: py_clean
@@ -46,6 +46,15 @@
46
46
  py_cov_inc: ["*.py"]
47
47
  # main scrip to run
48
48
  py_main: "#{py_src_dir}/#{name}.py"
49
+ # dependencies as a map, for instance:
50
+ #
51
+ # py_deps:
52
+ # Django: "1.2.3"
53
+ # PyYAML: ~
54
+ #
55
+ # Set a version to ~ (or null) to indicate that no specific version is needed.
56
+ # Set dependencies to ~ if you don't want any check (default).
57
+ py_deps: ~
49
58
  # directories to clean
50
59
  py_clean_dirs: [:py_build_dir]
51
60
  # files to clean
@@ -122,3 +131,34 @@
122
131
  script:
123
132
  - rmdir: :py_clean_dirs
124
133
  - rm: :py_clean_files
134
+
135
+ - target: py_deps
136
+ description: Check Python dependencies using PIP
137
+ script:
138
+ - if: defined?(py_deps) and py_deps
139
+ then:
140
+ - python.dependencies: :py_deps
141
+
142
+ - target: py_inst_deps
143
+ description: Install Python dependencies using PIP
144
+ script:
145
+ - if: defined?(py_deps) and py_deps
146
+ then:
147
+ - for: _name
148
+ in: py_deps.keys.sort
149
+ do:
150
+ - if: not py_deps[_name] or py_deps[_name] == '*'
151
+ then:
152
+ - print: "Installing '#{_name}'..."
153
+ - try:
154
+ - "sudo pip install #{_name}"
155
+ - print: "OK"
156
+ catch:
157
+ - print: "ERROR: could not install '#{_name}'"
158
+ else:
159
+ - print: "Installing '#{_name}' in version '#{py_deps[_name]}'..."
160
+ - try:
161
+ - "sudo pip install #{_name}==#{py_deps[_name]}"
162
+ - print: "OK"
163
+ catch:
164
+ - print: "ERROR: could not install '#{_name}' in version '#{py_deps[_name]}'"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bee_python
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 6
10
- version: 0.0.6
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michel Casabianca
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-04 00:00:00 Z
18
+ date: 2012-12-04 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: bee