Commit Graph

236 Commits

Author SHA1 Message Date
Friedrich Lindenberg
d56b767479 Implement support for handling file objects as
input to the freeze function, fixes #79.
2014-05-12 19:35:44 +02:00
Friedrich Lindenberg
9c32d18607 fix flake8 errors 2014-04-20 14:07:13 +02:00
John Lee
798e92e472 Fix find order_by bug for descending order 2014-03-07 17:07:38 -08:00
Friedrich Lindenberg
e7d317b38b Flakes are gone 2014-02-18 13:08:06 +01:00
Friedrich Lindenberg
5e90421e2d Fix Python3 support 2014-02-18 13:03:19 +01:00
Friedrich Lindenberg
6ef4cd7814 Revert to using OrderedDict. 2014-02-18 12:59:12 +01:00
Stefan Wehrmeyer
ea31943e18 Fix too early StopIteration on empty result sets
Fixes #77, thanks to @hfaran for report
2014-02-16 13:48:56 +01:00
Friedrich Lindenberg
a797e90357 Don't try to execute DDL in a transactional context. 2014-02-12 13:52:59 +01:00
Chen Liu
03cb294e34 fix rows to rows.rowcount 2014-02-04 09:23:49 +01:00
Chen Liu
5b162feea7 add __repr__ method to Table 2014-02-04 09:23:42 +01:00
Chen Liu
682b90cb6e let table.delete return true/false 2014-02-04 09:23:34 +01:00
Stefan Wehrmeyer
77025cede2 Accept engine_kwargs kwarg in connect call 2014-01-31 22:21:24 +01:00
Stefan Wehrmeyer
cd1d3a1d67 Remove documentation on old __getattr__ API 2014-01-31 22:10:17 +01:00
Stefan Wehrmeyer
3fd1c1185a Pass in create_engine kwargs through database constructor 2014-01-31 22:03:34 +01:00
Stefan Wehrmeyer
ed007bf4be Reduce default String length of pk to 255 2014-01-31 21:11:12 +01:00
Stefan Wehrmeyer
5f2c0193b8 Make print a function in documentation 2014-01-31 20:42:26 +01:00
Stefan Wehrmeyer
8f4cd59c9a Treat columns as ordered throughout code
The set() does not make anything any easier,
lists are closer to underlying representation.
2014-01-31 20:42:04 +01:00
Stefan Wehrmeyer
0e39190062 Reduce complexity of __getitem__ API
If you need to specify more, call get_table method
2014-01-31 19:18:58 +01:00
Grzegorz Niewisiewicz
a4d676f325 Merge branch 'master' into fix-table-cache 2014-01-27 08:56:28 +01:00
Stefan Wehrmeyer
92817d5f4d Make flake8 part of test suite 2014-01-25 21:45:30 +01:00
Stefan Wehrmeyer
0726dd9cf3 Remove OrderedDict implementation as RowProxy is returned
http://docs.sqlalchemy.org/en/rel_0_9/core/connections.html?highlight=rowproxy#sqlalchemy.engine.RowProxy
2014-01-25 21:22:11 +01:00
Stefan Wehrmeyer
eff6925af9 Fix infinite loop in find method
If a _limit is not given, the query limit should
be given by eit
2014-01-25 21:20:18 +01:00
Stefan Wehrmeyer
5a7cafd4e2 Don't convert to datetime, if it is already datetime 2014-01-25 21:06:38 +01:00
Grzegorz Niewisiewicz
d07cc90345 Update the table cache in update_table (fixes 67)
The problem occurs in the following scenario:

* an instance of a Table, obtained through Database.get_table, is used
  to insert some data
* a different instance of Table, obtained through Database.get_table
  call after the data has been inserted, uses a Table instance that is
  not up-to-date

The result is that, e.g. the keys created with the first Table object
aren't accessible via the second object.

This fixes the problem by updating the table cache in
Database.update_table.
2014-01-17 14:54:46 +01:00
Aditya Upadhyay
6d5e1c755f fixed bug with offsets and limits. 2014-01-12 23:56:14 +05:30
Friedrich Lindenberg
382703f753 Merge pull request #46 from 3onyc/issue-34
Implement SQLite datetime fix (Fixes #34)
2014-01-05 09:39:48 -08:00
Friedrich Lindenberg
3abe9d2c8d Merge branch 'python-3' of github.com:stefanw/dataset into stefanw-python-3 2014-01-05 17:52:59 +01:00
Friedrich Lindenberg
ec9a2c56d1 Merge commit '2566581442eff9b17ee439296e7c4e9c232cee26' 2014-01-05 16:01:32 +01:00
Abhinav Upadhyay
508e025689 Fix insert for tables that do not have any primary key.
The insert method returns the value of the primary key for the inserted
row. But for tables that do not have any primary key, it raises an
IndexError, which is clearly wrong. At best it should return None in
such cases and avoid raising any exception.
2014-01-04 11:53:15 +05:30
Gregor Aisch
2566581442 using OrderedDict to preserve key order 2013-12-20 00:01:26 +01:00
Stefan Wehrmeyer
2870fdfb0b Fix a couple of more iterator changes 2013-12-18 11:32:58 +01:00
Stefan Wehrmeyer
426095634c Replace unicode with str, duck type encode 2013-12-18 11:31:41 +01:00
Stefan Wehrmeyer
74b900f1f6 Move from sqlalchemy-migrate to alembic
This affects how columns are added and dropped from
tables. MetaData and SQLATable objects have to be
recreated to make sync changed columns.
2013-12-18 04:08:24 +01:00
Stefan Wehrmeyer
5d3e8b90bf Turn ResultIter class into Python 3 iterator 2013-12-18 04:08:23 +01:00
Stefan Wehrmeyer
23e484cbed Handle Python 3 keys/values iterators 2013-12-18 04:08:23 +01:00
Stefan Wehrmeyer
88c0c1a15f Remove basestring, unicode from code base 2013-12-18 04:08:21 +01:00
Stefan Wehrmeyer
b3520665d7 Replace old except syntax with new one
Drops Python 2.5 support
2013-12-18 03:22:49 +01:00
Stefan Wehrmeyer
ad72ca5c4c Use new urllib.parse imports with fallbacks 2013-12-18 03:22:22 +01:00
3onyc
a75c1968b4 Only apply fix when the current engine has an SQLite dialect 2013-12-10 14:06:06 +01:00
Chen
4a86981026 chang "Text" to "String" in create_table() function, fix issue #51 2013-12-06 23:58:54 -05:00
Friedrich Lindenberg
d393523764 use row.copy() not copy.copy(row) 2013-12-05 13:11:04 +01:00
Chen
36b27c354b add drop_column function 2013-12-04 14:44:01 -05:00
Friedrich Lindenberg
a174225de3 Change code to use copy(). 2013-12-04 17:55:42 +01:00
Friedrich Lindenberg
ff247f17cc Create a new dict before updating data. Fixes #53 2013-12-04 11:09:22 +01:00
3onyc
07c290f691 Implement SQLite datetime fix 2013-11-21 08:48:38 +01:00
Friedrich Lindenberg
b7bbde45fa Fix tests; pass url query args to create_engine. Fixes #40 2013-11-15 23:23:03 +02:00
Friedrich Lindenberg
65198dc74a Use Python-slugify to generate Freezefile slugs.
This lets me remove a lot of unneeded code from the utils, and the
dependency improves the quality a lot.
2013-11-15 22:50:17 +02:00
Friedrich Lindenberg
ea582d3fce Merge pull request #39 from diegoguimaraes/master
Fixing bug
2013-11-15 12:43:56 -08:00
Diego Guimarães
bc16b9e325 Fixing bug
Fixing bug where the insert method always returns 0,
even after a successfully insetion, rather than the id
of the inserted element.
2013-11-14 22:24:44 -02:00
George "elb0w" Tsafas
7675198640 Some refactors I noticed when reading through the code
Pretty nicely written, I didnt actually test these. But I think they are sane. Nice project, im going to use it later.
2013-11-13 09:57:25 -05:00
3onyc
95ca93cff0 Use string comparison in create_table (Fixes issue #33) 2013-11-13 10:05:46 +01:00
Friedrich Lindenberg
dc144a27b0 have find_one return a dict, not a tuple 2013-11-04 17:29:20 +01:00
Friedrich Lindenberg
70eece9e77 Support transforms, fixes #28 2013-09-19 19:25:28 +02:00
Friedrich Lindenberg
a3613ef133 fixes #29: logger for command line app 2013-09-19 18:32:55 +02:00
Yi Xie
257d767b6d add options to create custom primary id and type with shorthand format 2013-09-15 14:12:30 -04:00
Yi Xie
95cc5dd411 simplify creat_table interface 2013-09-13 09:42:35 -04:00
Yi Xie
bfd75360be create table with custom primary_id 2013-09-08 11:35:43 -04:00
Jonathan Eunice
93c05eb542 Added convenience check to `freeze()`. If a whole table is passed
as a result set, rather than a result set, calls ``result.all()``
to automagically "do the right thing."
2013-08-20 13:55:42 -04:00
Friedrich Lindenberg
e488664efe Support generation of static JSONP. 2013-08-19 22:45:05 +02:00
Friedrich Lindenberg
ef45f8dd95 Allow query parameters on database.query(). 2013-08-18 18:09:07 +02:00
Brian Abelson
1f77509017 update table.update to perform the same as upsert 2013-08-11 10:40:27 -04:00
Brian Abelson
904e464dfa allow keys arg for upsert to be a string
I want to be able to use `upsert` without formatting the keys arg as a list, ie:
```
table.upsert(new_data, "id")
```
2013-08-10 21:34:00 -04:00
Paul Furley
69815e65fc Moved logging.basicConfig() so using dataset as a library doesn't interfere with the global logger 2013-08-06 13:48:55 +01:00
Friedrich Lindenberg
39edde3a2c Support postgres schemata, bump version 2013-07-25 10:18:20 +02:00
gka
1dbf8ddc70 application should be able to overwrite environment setting 2013-07-15 10:38:19 +02:00
mattack108
cf8f3dc4d2 Allow to use url defined as env variable. 2013-07-14 21:50:52 +01:00
Friedrich Lindenberg
f520193a9e Merge pull request #17 from scraperdragon/upsert_all_key
Permit upsert with all columns as keys
2013-06-27 09:39:13 -07:00
David McKee
6533fd16e9 upsert with all keys 2013-06-27 12:12:33 +00:00
scraperdragon
79acee2371 Describe what happens when find_one has nothing to return. 2013-06-27 11:47:04 +01:00
Friedrich Lindenberg
e10dc36219 Try to avoid some locking issues. 2013-06-14 10:33:57 +02:00
Friedrich Lindenberg
10dfcad00b Merge branch 'refs/heads/feature/transactions' 2013-06-13 11:57:23 +02:00
Brett Beaudoin
fffa633e84 Added support for "IN" operator of a WHERE clause.
The table update only allowed for "==" operator as in:
  UPDATE mytable SET foo = 'bar' WHERE id = 123;

Now allows for "IN" operator as in:
  UPDATE mytable SET foo = 'bar' WHERE id IN (123, 876);

This required changes to the "_args_to_clause" and "update" functions.
2013-06-06 17:23:52 -06:00
Gregor Aisch
4f3f574d58 made reflect metadata a flag (fixes #9) 2013-05-24 23:50:28 +02:00
Friedrich Lindenberg
1a25fbcd77 Allow user to override freezefile. 2013-05-21 16:17:36 +02:00
Friedrich Lindenberg
db71b6d631 Re-write locking to support transactions. 2013-05-13 21:21:25 +02:00
Friedrich Lindenberg
33908b2699 Use engine for DDL 2013-05-13 20:14:57 +02:00
Friedrich Lindenberg
b5181a4105 Testing with transactions support. 2013-05-10 22:58:23 +02:00
Gregor Aisch
bbfdb2e64b renamed filter args to _filter to avoid confusion with built in filter() 2013-04-30 16:38:01 +02:00
Gregor Aisch
cfe4a0bef6 ensuring that table.all() works without id column (fixes #8) 2013-04-30 00:18:06 +02:00
Friedrich Lindenberg
310b9abd81 Add import of exception; fixes #5 2013-04-26 10:46:43 +02:00
Gregor Aisch
3ad013b1d1 find is now streaming large tables 2013-04-12 16:42:22 +02:00
Gregor Aisch
187ed2680f ResultIter can now deal with generators of resultproxies 2013-04-12 16:41:17 +02:00
Gregor Aisch
47e7eb5193 improved documentation of freeze 2013-04-09 01:10:16 +02:00
Gregor Aisch
96656d3f80 changed API of dataset.freeze()
dataset.freeze() is now expecting a result iterable instead of database
and query.
2013-04-09 00:26:59 +02:00
Gregor Aisch
176f605119 moved str to Database conversion to freeze_export 2013-04-09 00:20:54 +02:00
Gregor Aisch
bb94b1b343 freeze() now accepts either db-urls or db instances 2013-04-09 00:16:09 +02:00
Gregor Aisch
fb18961e32 class Export expects 'common' dict as first parameter 2013-04-09 00:15:10 +02:00
Gregor Aisch
48fa1cbb27 pep8 autoformat 2013-04-09 00:14:12 +02:00
Gregor Aisch
875e0508f2 insert returns last_id (closes #4) 2013-04-06 03:06:51 +02:00
Gregor Aisch
d58ec61b90 fixed bug in deletion of all rows 2013-04-05 11:54:12 +02:00
Gregor Aisch
9de0ad3e82 updated api docs 2013-04-05 00:49:13 +02:00
Gregor Aisch
ee844732b2 fixed table dropping 2013-04-05 00:47:28 +02:00
Gregor Aisch
fe3e5f5df5 checking if a table has been dropped 2013-04-05 00:31:21 +02:00
Friedrich Lindenberg
5cfa9abfb0 Adapt data freeze code base to integrate with dataset.persistence 2013-04-04 23:53:37 +02:00
Friedrich Lindenberg
c2d606bc6f Import datafreeze source code. 2013-04-04 23:05:19 +02:00
Gregor Aisch
4d9ecb2532 replaced with more meaningful example 2013-04-04 20:08:39 +02:00
Gregor Aisch
3bf3b1dac1 fixed insert() example 2013-04-04 20:05:27 +02:00
Gregor Aisch
da2be5bc62 made chunk_size customizable 2013-04-04 19:44:28 +02:00
Gregor Aisch
ec0d2d61f7 added insert_many 2013-04-04 15:43:05 +02:00
Friedrich Lindenberg
f3533de1a7 merge. 2013-04-03 22:27:06 +02:00
Gregor Aisch
b39e4b193a fine-tuning the documentation 2013-04-03 12:46:10 +02:00
Gregor Aisch
258e3f3059 Allowing for direct iteration over rows in a table 2013-04-03 12:28:32 +02:00
Gregor Aisch
7638e898fd added code example 2013-04-03 12:28:11 +02:00
Gregor Aisch
c284d05bd6 docs! 2013-04-03 01:48:26 +02:00
Gregor Aisch
4e78c96370 KeyError wasn't evaluated 2013-04-03 00:56:07 +02:00
Gregor Aisch
e0b66510ab removed sphinx warnings 2013-04-03 00:51:33 +02:00
Gregor Aisch
b5a759087a docs! 2013-04-02 23:45:44 +02:00
Gregor Aisch
f8e6d53bb5 docs! 2013-04-02 13:44:14 +02:00
Gregor Aisch
4d503f42e3 allow sorting by multiple columns and descending order 2013-04-02 13:17:30 +02:00
Gregor Aisch
58c1773777 documentation! 2013-04-02 11:10:29 +02:00
Friedrich Lindenberg
82153522cb Document delete() and all() 2013-04-02 00:20:02 +02:00
Friedrich Lindenberg
963aefe9da merge 2013-04-02 00:14:10 +02:00
Friedrich Lindenberg
e58ffdafde Some additional doc. 2013-04-02 00:10:07 +02:00
Gregor Aisch
a7c07fe944 removed recursion 2013-04-01 22:47:58 +02:00
Gregor Aisch
59b49b597d seld --> self, pep8 2013-04-01 22:43:57 +02:00
Gregor Aisch
866df01a13 simpler code block syntax 2013-04-01 22:41:33 +02:00
Gregor Aisch
077b3f520f doc 2013-04-01 22:41:06 +02:00
Friedrich Lindenberg
26b40c8055 More verbose comments in database. 2013-04-01 22:39:18 +02:00
Friedrich Lindenberg
6ee58e850d Add tables property to database. 2013-04-01 22:09:16 +02:00
Friedrich Lindenberg
0f81dbe52c More unit tests for table. 2013-04-01 22:03:01 +02:00
Gregor Aisch
57afc346c6 added documentation 2013-04-01 21:32:37 +02:00
Gregor Aisch
b76f11c94c added documentation 2013-04-01 21:32:26 +02:00
Friedrich Lindenberg
7c5779da80 More tests on table 2013-04-01 19:56:14 +02:00
Friedrich Lindenberg
8a97902762 Build up test cases a bit 2013-04-01 19:46:17 +02:00
Friedrich Lindenberg
2c17baa6a3 Begin porting tests. 2013-04-01 19:38:02 +02:00
Friedrich Lindenberg
b723b7da7c Refactor to simplify 2013-04-01 19:28:22 +02:00
Friedrich Lindenberg
d3fe91bc73 Moved everything into the OO api, not really tested … 2013-04-01 19:06:14 +02:00
Friedrich Lindenberg
30867fad21 Refactor more stuff up to an object. 2013-04-01 18:05:41 +02:00
Friedrich Lindenberg
14e68f26ab Begin moving things into the objects. 2013-04-01 17:30:52 +02:00
Friedrich Lindenberg
6d15886989 Final part of refactor. 2013-04-01 17:29:58 +02:00
Friedrich Lindenberg
f216a6066e Make "persistence" a module. 2013-04-01 17:29:45 +02:00
Friedrich Lindenberg
22255c3894 Continue to refactor the import for "dataset" 2013-04-01 17:29:30 +02:00
Friedrich Lindenberg
ef535a4855 Refactor imports. 2013-04-01 17:28:29 +02:00
Friedrich Lindenberg
b24e9ae50e Rename db file as well. 2013-04-01 17:04:33 +02:00
Friedrich Lindenberg
4bcf52c182 Merge branch 'refs/heads/master' into HEAD 2013-04-01 17:02:10 +02:00
Friedrich Lindenberg
1d3102e5bc Rename to dataset. 2013-04-01 16:58:57 +02:00