Paul Morelle
998a712242
When wrap is False, don't wrap JSON result
...
Test and solution for issue pudo/dataset#149
2016-01-18 05:59:07 +01:00
Paul Morelle
18bd08c009
dataset.freeze should not close provided fileobj
...
Test and solution for issue pudo/dataset#147
2016-01-18 05:11:24 +01:00
Stefan Wehrmeyer
d16f1df8cd
Don't call fetch on closed result proxy
...
"The DBAPI cursor will be closed by the ResultProxy when all of its result rows (if any) are exhausted"
See http://docs.sqlalchemy.org/en/latest/core/connections.html
2015-12-20 13:15:39 +01:00
Di Wu
b8980221cd
fix infinite recursion
2015-12-20 13:49:07 +08:00
Stefan Wehrmeyer
0f7e7dc73c
Flake8 cleanup
2015-12-19 21:43:51 +01:00
Di Wu
6f4f0313a8
Use fetchmany to prevent huge tables from being loaded into memory at once.
2015-12-13 20:51:14 +08:00
Friedrich Lindenberg
93162ac6fc
add schema hint to create_column, refs #78 (thanks @smnorris)
2015-08-07 12:18:50 +02:00
Víctor Guzmán
b2dc8a3315
release lock in table.py
2015-07-07 21:04:44 +02:00
Friedrich Lindenberg
61b33d9d4f
Use sha1 to generate index IDs.
2015-06-11 11:54:04 +02:00
Friedrich Lindenberg
0c04f647b2
re-introduce relative imports to unbork python 3.
2015-06-08 10:54:46 +02:00
Friedrich Lindenberg
56d5b232d8
Include support for custom result row types, fixes #41 .
2015-05-23 16:15:17 +02:00
Friedrich Lindenberg
7f7cb41858
Handle column name validation more coherently, fixes #45 .
2015-05-23 15:30:19 +02:00
Friedrich Lindenberg
fd3d9f326c
Cannot recall why this is using NullPool, hence removing to fix #65 .
2015-05-23 15:15:00 +02:00
Friedrich Lindenberg
a0eab8876e
Remove space.
2015-05-23 13:41:08 +02:00
Friedrich Lindenberg
819c37d61d
Make __getitem__ an alias for distinct(). Fixes #87 .
2015-05-23 13:01:36 +02:00
Friedrich Lindenberg
5e5d69457e
Add a program name to argparse.
2015-05-23 13:01:01 +02:00
Friedrich Lindenberg
43453415c0
wat
2015-05-21 23:47:46 +02:00
Friedrich Lindenberg
537557285d
Change signature of .upsert and .update on table according to: fixes #43 .
2015-05-21 23:38:14 +02:00
Friedrich Lindenberg
edef86126f
Connect to an in-memory sqlite if no database is specified.
2015-05-21 23:37:37 +02:00
Friedrich Lindenberg
19cc76dd60
Don’t allow dots in column names, fixes #86 .
2015-05-21 23:21:47 +02:00
Friedrich Lindenberg
a95c7be33b
pass schema into table constructors.
2015-05-21 22:07:03 +02:00
Friedrich Lindenberg
e662d8bde7
Support for properly returning a query count.
2015-05-21 18:05:26 +02:00
Friedrich Lindenberg
5dad532478
Clean up imports.
2015-05-21 17:40:57 +02:00
Friedrich Lindenberg
3afcfb3b81
Introduce some sanity checking on table names, fixes #89 .
2015-05-21 17:38:06 +02:00
Friedrich Lindenberg
e9aec72bac
Slurp result proxy in one go so the query doesn’t remain open. Fixes #15 .
2015-05-21 17:17:14 +02:00
Friedrich Lindenberg
9361c8ef9d
Remove datetime fix code.
2015-05-21 16:52:15 +02:00
Friedrich Lindenberg
55c33cbc71
Remove now-invalid import.
2015-05-21 16:52:03 +02:00
Friedrich Lindenberg
c605841390
Switch to normality for slugs
2015-05-21 16:51:57 +02:00
Friedrich Lindenberg
01f85c11b9
Rename reflectMetadata to reflect_metadata, remove SQLite datetime fix.
2015-05-21 16:48:28 +02:00
Friedrich Lindenberg
d3473fc4a6
Include tests from PR, fixes #105 .
2015-05-21 16:47:36 +02:00
Simon Conseil
24e53b6807
Make Travis happy.
2015-02-18 16:48:46 +01:00
Simon Conseil
d5a419cbe0
Reflect views.
...
Currently views does not appear in the list of tables, this allows to add views.
2015-02-18 16:47:10 +01:00
Friedrich Lindenberg
e5c1aa31b4
handle date.isoformat separately, refs #117
2015-01-23 13:14:08 +01:00
Friedrich Lindenberg
bdcd371b5a
Convert plain text queries to SQL to allow argument escaping.
...
Bump 0.5.6, refs #115 .
2015-01-18 13:39:30 +01:00
Friedrich Lindenberg
18bd02419a
better comment
2015-01-18 10:53:58 +01:00
Alexei
7bec815714
Document insert()'s return.
2015-01-07 09:06:34 -05:00
Stefan Wehrmeyer
79d2145202
Make find_one behave more like find
2015-01-06 21:44:59 +01:00
xrotwang
d58e3ec691
extended test coverage for the freeze package, thereby fixing some bugs.
2014-11-06 14:09:52 +01:00
xrotwang
5b7908893d
make dataset.freeze.config compatible with python3
2014-11-06 11:08:07 +01:00
xrotwang
4bf19159c6
Merge remote-tracking branch 'upstream/master'
2014-11-06 10:13:04 +01:00
aniversarioperu
036739589a
Fixing typo in docstring for query
...
The SQLAlchemy link was pointing to a dead link.
2014-10-05 11:51:18 +03:00
aniversarioperu
1e82be8fd0
fixed code and test for Python3
2014-09-04 07:02:27 +03:00
Thomas Levine
17bad827ae
add __contains__
2014-08-29 18:12:25 +00:00
Chenguang Zhang
a8b2f1ad73
Add more instructions for engine_kwargs, to avoid DB connection timeout issues
2014-08-07 16:47:50 +08:00
Tyler Kennedy
91c985b3e8
Update database.py
...
Inverted logic means _release_internal will always fail on a rollback. Fixed and simplified.
2014-07-31 11:07:09 -04:00
xrotwang
0b76c3fadb
fixed problems reported by flake8
2014-07-25 12:46:55 +02:00
xrotwang
a14f0bbde2
ported freezing as csv to python 3.4
2014-07-25 12:15:08 +02:00
Victor Kashirin
38b1114bde
Add support for with statement
2014-06-09 01:36:42 +04:00
Friedrich Lindenberg
f5535fa085
Handle NULL dates, fixes #91 .
2014-05-14 14:39:13 +02:00
Friedrich Lindenberg
fcbaf977c0
Fix flake.
2014-05-12 19:44:15 +02:00
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